Re: IPtables bash script

Jonathan Plews <[email protected]> Mon, 23 May 2016 07:00:42 -0000
Newsgroups gmane.linux.debian.devel.firewall
Message-ID <20160523065306-3502-3593-mailpile@motoko>
I'm not saying knowing iptables is bad, but Shorewall is much
better than these kind of things.

I think you may have some unlogged drops, that'd be the first
thing to check.


Ralph Sanchez <[email protected]> wrote:
> Hello All, I have taken up to writing this bash script to
> change my iptables rules. It seems the only issue I've found is
> that it seems to not want to connect to certain websites at
> some moments and not others, or generally but sometimes it
> let's it through without changing anything. This completely
> stops if I add RELATED to my OUTPUT ACCEPT next to NEW, just
> not sure how that impacts security exactly.
> 
> Also, any advice on making this script better, or stronger per
> secuirty, would be appreciated as this is both my first time
> scripting in bash from scratch and my first IPTABLES venture.
> 
> Oh, and don't mind the echo lines, those are solely for my
> entertainment upon running.
> 
> #!/bin/sh
> 
> IPT=/sbin/iptables
> IP6=/sbin/ip6tables
> echo "[+] ENTRY PLUG EJECTED, READY FOR PILOT ENTRY" read OK
> 
> echo " $OK ENTRY PLUG INSERTION COMPLETE"
> 
> echo "[+] Flooding the cockpit with LCL. Don't try and hold
> your breath, just breath normal. It's weird at first, but
> you'll get used to it "
> 
> $IPT -F
> 
> $IPT -F  -t nat
> 
> $IPT -X
> 
> echo "[+] Synch ratio 99%, within permissable parameters..."
> 
> $IP6 -P INPUT DROP
> 
> $IP6 -P FORWARD DROP
> 
> $IP6 -P OUTPUT DROP
> 
> $IPT -P INPUT DROP
> 
> $IPT -P FORWARD DROP
> 
> $IPT -P OUTPUT DROP
> ## INPUT  Rules ###
> 
> echo "[+] AT Field is active, moving EVA UNIT 1 to elevator
> 24..."
> 
> $IPT -A INPUT -m conntrack --ctstate INVALID -j LOG
> --log-prefix "INVALID_DROPS" --log-ip-options --log-tcp-options
> 
> $IPT -A INPUT -m conntrack --ctstate NEW -j LOG --log-prefix
> "NEW_DROPS" --log-ip-options --log-tcp-options
> 
> $IPT -A INPUT -m conntrack --ctstate INVALID -j DROP
> 
> $IPT -A INPUT -p icmp --icmp-type echo-request -j DROP
> 
> $IPT -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j
> ACCEPT
> 
> $IPT -A INPUT --in-interface lo -j ACCEPT
> 
> $IPT -A INPUT -p tcp --dport 443 -j ACCEPT
> 
> $IPT -A INPUT -p tcp --dport 80 -j ACCEPT
> 
> ## FORWARD Rules ##
> 
> #$IPT -A FORWARD -m conntrack --ctstate INVALID -j LOG
> --log-prefix "INVALID_FORWARD" --log-ip-options
> --log-tcp-options
> 
> #$IPT -A FORWARD -i lo -j ACCEPT
> 
> #$IPT -A FORWARD -m conntrack --ctstate INVALID -j DROP
> 
> #$IPT -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j
> ACCEPT
> ## OUTPUT Rules ##
> 
> echo "[+] It's up to you now, Shinji..."
> 
> $IPT -A OUTPUT --out-interface lo -j ACCEPT # Allows ALL
> Loopback traffic
> 
> $IPT -A OUTPUT -m conntrack --ctstate NEW -j ACCEPT # Only
> allow NEW connection outbound.
> 
> $IPT -A OUTPUT -p tcp -m multiport --dports 80,443 -m owner
> --uid-owner privoxy -j ACCEPT # Allows Privoxy via HTTP and
> HTTPS
> 
> $IPT -A OUTPUT -p tcp --dport 443 -j ACCEPT # ACCEPT outbound
> https
> 
> $IPT -A OUTPUT -p tcp --dport 80 -j ACCEPT # ACCEPT outbound
> http (DO NOT LEAVE ACTIVE!)
> 
> $IPT -A OUTPUT -m owner --uid-owner root -j ACCEPT # Allows ALL
> root requests
>
Encryption key for Jonathan Plews.asc (application/pgp-keys, 1.7 KB)
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1

mQENBFbYHbUBCACyGAJz28Kh2ug7EWBAATbuZp1P5xFX2ftedrVJsWnL9CL9k/SM
g9wdXMCCesJOZGMZ2uZloCe/iU3CkfrgGDkh4wFiu21tVjsYhtkiXaKzZ4K/WCoz
f5X32r2TerpikdvGxIWeQOv+z+PMfbAw2645nrQXvoVrkjMLwEPKAhf/pL9grqYu
Hj6V/Rf/fzaUgxhtizV8+3kZ+cg6IwmbAmGYjPASNJr1C5VYwXsWlhfm+m/5qRiX
ntR1emSPnUhltawwJ4xtNpqXwgD2xKn/Sq75bWA6TZaJbM2U6ttrpfohL/1URF3V
2m+errJxPA3t6VgUqEuzUpC67rlPr2cu3A+vABEBAAG0JkpvbmF0aGFuIFBsZXdz
IDxqb25hdGhhbkBwbGV3cy5vcmcudWs+iQE4BBMBAgAiBQJW2B21AhsDBgsJCAcD
AgYVCAIJCgsEFgIDAQIeAQIXgAAKCRCSWTwPl3oYPmMvCACtcPTaavuQ/ZP7IOJs
QyfwslEBZAjJKbIi0xsIeU+yB6/fHihobjNQn6TafR9JA4Q0Q/snYWYvvPyFOzJr
Z1hc+1w54ULNulJyb/qJQ8DsiPpKYkmv7A+rX9CIkFlH5rFUkMAQgUKWIk9GPSxz
8fLtd4oXj1upoYww0aOF2oRhj7JOStIvgRVUVsQjBN1HHKZ9xJetwV8+sSMrv4Lm
1DQfAtbMN2oRvodAo7orpI3l6woVTh9luuTYD+uA2EQzr1HVbMQ5gyE5rHDNDXhm
4GHLXHQaOsikRc7daD/LtFFe+nhdkx4YlIdokiJ4fWPFD7WTcCA8Rozc4Nstlshe
Uzf3uQENBFbYHbUBCACol0qFXWstO7xFgb4q0Ay28lM2F5AZKhpmfKYi+X9HjnsE
zkgSGJFVGnnL/7TW5EG+5hcTzcKL3k7ukHAvQGdZWfRQVRQ0iHGxN6PBwewSMJAN
FPh/cxvA7pRgumHKLakZuqCVQF3xybfCu2BrUL+YP+P/jZ7A8aUIf90sC986GoP9
bl+Z9yk9u2uuDYsdTXY7113oUKHOAiVdDo5H7PNM26j25Gx8dlA7mScScHT+9puk
peCPUU0ZsjxZ9W1xcmWkhgP0z4J2FAzAg/YoPhTZvG32plS0xU60oC+p2i70bzIb
7PdPfIfxbXqX5RvPg4SUR6Ra/Scz3zD3GwqamlqhABEBAAGJAR8EGAECAAkFAlbY
HbUCGwwACgkQklk8D5d6GD4MVgf/cXhpvJ+3F5fysMEAz+0Gz/1/ymAHY/blHh2s
tmJduuR2AdNb+D3Zviq8ac3cXeri2hS30V8C8tZLLIYMDjwcYIUs2xjdbWwjfvOs
BNcbINBwoaEbBqJOdfXQwNKg5ipH2aNnJuFZfAjpWzOfcEIoaGnTPpWH0a7FWnR2
Izf3pUkaONCm7l0ewGM3WKkfpA3+N351Z1Bpk0eDqH6mS7yeCOWVq74UIvMDEP8b
BKLWBrLQOCtJpHYdzvzybfRxedeA3Yuw0sPFcwb42O62MbEQJt9+MG1bNY/VMq7I
QE+jbVKP8Nb3DYvaCOGOKbhefdEPESH0DS4CdqeFJOuGzmn1Qg==
=uyXn
-----END PGP PUBLIC KEY BLOCK-----
signature.asc (application/pgp-signature, 473 B)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQEcBAABAgAGBQJXQqqaAAoJEJJZPA+Xehg+xcgIALDbhxx+krR+JsnvmPAaBGbZ
B0RkW/ku0LluyAlAMjSIqilIqZyfI3hkxFtkhLMD69D3n3w2Oma7FY7aFrM1fWBy
eMcxikQOMPH7pljxG5SkmHvrj7D4W4lxvN0yys5GeYld91jhIvTNA58mghEx6Q+Z
OgM/BLy+AW1repZJGrD/DbNtr5h589lPljNsVhiDDJofgR/dvR2PhrKpu43MYHS1
GfHRH9zQspsmseHivjClEvqUhREORgTiTqKK3/BcWcOjIhyTz7PoRhr+0thUGl6/
5fzCGqRBA8rD/wLO5lg1Xf5f/96UcG4Z35QgZ8/OM6LLkfS39gd7h2xjcd6NJAA=
=WrMQ
-----END PGP SIGNATURE-----