#-------------------------------------------------------------# # Paketfirewall-Skript für HAsterisk-Server 6.3 # Version: 1.11 # Verfasser: Michael Vahl # Lizenz: GPL #-------------------------------------------------------------# # Aktivieren des SYN-Cookies echo 1 > /proc/sys/net/ipv4/tcp_syncookies # Zu Anfang werden alle Ketten geloescht echo "Loeschen aller Regelwerke!" iptables -F iptables -X # Setzen der Sicherheitsstragie "Deny-All" echo "Sicherheitsstrategie Deny-All" iptables -P INPUT DROP iptables -P OUTPUT DROP # Loopback-Kommunikation (vorerst deaktiviert, da keine Anwendungen den Loopback nutzen. #echo " Konfiguriere Interface $INTERN..." #iptables -A INPUT -i lo -j ACCEPT #iptables -A OUTPUT -o lo -j ACCEPT #----------------- # Eigentliches Firewall-Regelwerk #----------------- # Anlegen einer Regel zur Verhindern von Brute-Force Angriffen auf SSH iptables -N SSHATT # Anlegen einer Regel zur Verhinderung von SYN-Flooding angriffen iptables -N SYNATT iptables -N SCAATT echo "Initialisierung der Firewall" # SYN-Flood Angriffe werden verhindert iptables -A INPUT -i eth0 -p tcp --syn -j SYNATT iptables -A SYNATT -m recent --update --seconds 60 --hitcount 10 -j LOG --log-prefix="!SYN-FLOOD! " --log-level debug iptables -A SYNATT -m recent --update --seconds 60 --hitcount 10 -j DROP iptables -A SYNATT -m recent --set # Brute-Force Angriffe werden verhindert. iptables -A INPUT -i eth0 -p tcp --syn --dport 22 -j SSHATT iptables -A SSHATT -m recent --update --seconds 10 --hitcount 3 -j LOG --log-prefix="!BRUTE-FORCE! " --log-level debug iptables -A SSHATT -m recent --update --seconds 10 --hitcount 3 -j DROP iptables -A SSHATT -m recent --set # Port-Scanner werden in ihrer Funktion behindert, wenn kein Flag im TCP- # Segment gesetzt ist. iptables -A INPUT -i eth0 -p tcp --tcp-flags ALL NONE -j SCAATT iptables -A SCAATT -m recent --update --seconds 60 --hitcount 1 -j LOG --log-prefix="!PORT-SCAN! " --log-level debug iptables -A SCAATT -m recent --update --seconds 60 --hitcount 1 -j DROP iptables -A SCAATT -m recent --set # Port-Scanner werden in ihrer Funktion behindert, wenn alle Flags im TCP- # Segment gesetzt sind. iptables -A INPUT -i eth0 -p tcp --tcp-flags ALL ALL -j SCAATT iptables -A SCAATT -m recent --update --seconds 60 --hitcount 1 -j LOG --log-prefix="!PORT-SCAN! " --log-level debug iptables -A SCAATT -m recent --update --seconds 60 --hitcount 1 -j DROP iptables -A SCAATT -m recent –-set # Port-Scanner werden in ihrer Funktion behindert, wenn das FIN-Flag im TCP- # Segment gesetzt ist. iptables -A INPUT -i eth0 -p tcp --tcp-flags ALL FIN -j SCAATT iptables -A SCAATT -m recent --update --seconds 60 --hitcount 1 -j LOG --log-prefix="!PORT-SCAN! " --log-level debug -m state --state NEW iptables -A SCAATT -m recent --update --seconds 60 --hitcount 1 -j DROP -m state --state NEW iptables -A SCAATT -m recent –-set # Kommunikation über SSH zulassen iptables -A INPUT -i eth0 -p tcp -s 10.0.0.0/8 --sport 1024:65535 --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp --sport 22 -d 10.0.0.0/8 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT #Kommunikation über SIP/UDP zulassen iptables -A INPUT -i eth0 -p udp -s 10.0.0.0/8 --sport 1024:65535 --dport 5060 -j ACCEPT iptables -A OUTPUT -o eth0 -p udp --sport 5060 -d 10.0.0.0/8 --dport 1024:65535 -j ACCEPT # Kommunikation über RTP/UDP zulassen iptables -A INPUT -i eth0 -p udp -s 10.0.0.0/8 --sport 1024:65535 --dport 10000:20000 -j ACCEPT iptables -A OUTPUT -o eth0 -p udp --sport 10000:20000 -d 10.0.0.0/8 --dport 1024:65535 -j ACCEPT iptables -A INPUT -p tcp -j LOG --log-prefix="!GEDROPT! " --log-level debug iptables -A INPUT -p udp -j LOG --log-prefix="!GEDROPT! " --log-level debug iptables -A INPUT -p icmp -j LOG --log-prefix="!GEDROPT! " --log-level debug iptables -A INPUT -j DROP #----------------Ende Konfiguration---------------------