################################################################# # alles sperren # ################################################################# -P INPUT DROP -P OUTPUT DROP -P FORWARD DROP ################################################################# # alle Regellisten loeschen # ################################################################# -F -t nat -F -X ################################################################# # eigene Regellisten neu anlegen # ################################################################# #Forward -N inet_to_lan -N inet_to_lan_tcp -N inet_to_lan_udp -N inet_to_lan_icmp -N lan_to_inet -N lan_to_inet_tcp -N lan_to_inet_udp -N lan_to_inet_icmp #Input -N lan_in_fw -N lan_in_fw_tcp -N lan_in_fw_udp -N lan_in_fw_icmp -N inet_in_fw -N inet_in_fw_tcp -N inet_in_fw_udp -N inet_in_fw_icmp #Output -N fw_out_inet -N fw_out_inet_tcp -N fw_out_inet_udp -N fw_out_inet_icmp -N fw_out_lan -N fw_out_lan_tcp -N fw_out_lan_udp -N fw_out_lan_icmp #Speziell -N drop_xmas_null ################################################################# # loopback erlauben # ################################################################# -A INPUT -i lo -j ACCEPT -A OUTPUT -o lo -j ACCEPT ################################################################# # MTU probleme beheben # # (beim Masqueraden werden die Packete fragmentiert) # ################################################################# -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu ################################################################# # XMAS(ALLE Lampen an (TCPFlags)) und NULL Pakete verwerfen # ################################################################# -A INPUT -p tcp --tcp-flags ALL ALL -j drop_xmas_null -A FORWARD -p tcp --tcp-flags ALL ALL -j drop_xmas_null -A INPUT -p tcp --tcp-flags ALL NONE -j drop_xmas_null -A FORWARD -p tcp --tcp-flags ALL NONE -j drop_xmas_null -A drop_xmas_null -m limit -j LOG --log-prefix \"DROP XMAS or NULL PACKET: \" -A drop_xmas_null -j DROP ################################################################# # von INPUT abzweigen # ################################################################# #-A INPUT -i $DEV_LAN -s $NET_LAN -d $IP_FIREWALL -j ACCEPT #-A INPUT -i $DEV_LAN -s $NET_LAN -d $NET_LAN -j ACCEPT -A INPUT -i $DEV_LAN -s $NET_LAN -j ACCEPT -A INPUT -i $DEV_LAN -p udp --dport 67 -j ACCEPT #-A INPUT -i $DEV_LAN -s $NET_LAN -d $IP_FIREWALL -j lan_in_fw # -A lan_in_fw -p tcp -j lan_in_fw_tcp # -A lan_in_fw -p udp -j lan_in_fw_udp # -A lan_in_fw -p icmp -j lan_in_fw_icmp # -A lan_in_fw -m limit --limit 6/m -j LOG --log-prefix \"DROP PACKET: lan_in_fw \" # -A lan_in_fw -j DROP -A INPUT -i $DEV_INET -s $NET_INET -j inet_in_fw -A inet_in_fw -p tcp -j inet_in_fw_tcp -A inet_in_fw -p udp -j inet_in_fw_udp -A inet_in_fw -p icmp -j inet_in_fw_icmp -A inet_in_fw -m limit --limit 6/m -j LOG --log-prefix \"DROP PACKET: inet_in_fw \" -A inet_in_fw -j DROP -A INPUT -m limit --limit 6/m -j LOG --log-prefix \"DROP PACKET: INPUT \" ################################################################# # von OUTPUT abzweigen # ################################################################# #-A OUTPUT -o $DEV_LAN -s $IP_FIREWALL -d $NET_LAN -j ACCEPT -A OUTPUT -o $DEV_LAN -d $NET_LAN -j ACCEPT #-A OUTPUT -o $DEV_LAN -s $IP_FIREWALL -d $NET_LAN -j fw_out_lan # -A fw_out_lan -p tcp -j fw_out_lan_tcp # -A fw_out_lan -p udp -j fw_out_lan_udp # -A fw_out_lan -p icmp -j fw_out_lan_icmp # -A fw_out_lan -m limit --limit 2/s -j LOG --log-prefix \"DROP PACKET: fw_out_lan \" # -A fw_out_lan -j DROP -A OUTPUT -o $DEV_INET -d $NET_INET -j fw_out_inet -A fw_out_inet -p tcp -j fw_out_inet_tcp -A fw_out_inet -p udp -j fw_out_inet_udp -A fw_out_inet -p icmp -j fw_out_inet_icmp -A fw_out_inet -m limit --limit 6/m -j LOG --log-prefix \"DROP PACKET: fw_out_inet \" -A fw_out_inet -j DROP -A OUTPUT -m limit --limit 6/m -j LOG --log-prefix \"DROP PACKET: OUTPUT \" ################################################################# # von FORWARD abzweigen # ################################################################# -A FORWARD -i $DEV_INET -o $DEV_LAN -s $NET_INET -d $NET_LAN -j inet_to_lan -A inet_to_lan -p tcp -j inet_to_lan_tcp -A inet_to_lan -p udp -j inet_to_lan_udp -A inet_to_lan -p icmp -j inet_to_lan_icmp -A inet_to_lan -m limit --limit 1/s -j LOG --log-prefix \"DROP PACKET: inet_to_lan \" -A inet_to_lan -j DROP -A FORWARD -i $DEV_LAN -o $DEV_INET -s $NET_LAN -d $NET_INET -j lan_to_inet -A lan_to_inet -p tcp -j lan_to_inet_tcp -A lan_to_inet -p udp -j lan_to_inet_udp -A lan_to_inet -p icmp -j lan_to_inet_icmp -A lan_to_inet -m limit --limit 1/s -j LOG --log-prefix \"DROP PACKET: lan_to_inet \" -A lan_to_inet -j DROP -A FORWARD -m limit --limit 6/m -j LOG --log-prefix \"DROP PACKET: FORWARD \" ################################################################# # Blacklist bearbeiten # ################################################################# -A inet_in_fw_tcp -s $BLACKLIST -j DROP ################################################################# # Masquading am DEV_INET # ################################################################# -t nat -A POSTROUTING -o $DEV_INET -j MASQUERADE ################################################################# # allg. DNAT (Destination Network Address Translation) # ################################################################# -t nat -A PREROUTING -i $DEV_INET -p tcp --dport http -j DNAT --to $IP_WEBSERV ################################################################# # ping erlauben # ################################################################# -A lan_in_fw_icmp -m limit --limit 5/s -j ACCEPT -A inet_in_fw_icmp -m limit --limit 5/s -j ACCEPT -A fw_out_lan_icmp -m limit --limit 5/s -j ACCEPT -A fw_out_inet_icmp -m limit --limit 5/s -j ACCEPT -A inet_to_lan_icmp -m limit --limit 5/s -j ACCEPT -A lan_to_inet_icmp -m limit --limit 5/s -j ACCEPT ################################################################# # domain # ################################################################# #UDP #FW kann ins INET fragen -A fw_out_inet_udp -p udp --sport 1024: --dport domain -j ACCEPT -A inet_in_fw_udp -p udp --sport domain --dport 1024: -j ACCEPT #aus dem LAN kann man die FW fragen -A lan_in_fw_udp -p udp --sport 1024: --dport domain -j ACCEPT -A fw_out_lan_udp -p udp --sport domain --dport 1024: -j ACCEPT #TCP #FW kann ins INET fragen -A fw_out_inet_tcp -p tcp --sport 1024: --dport domain -m state --state NEW,ESTABLISHED -j ACCEPT -A inet_in_fw_tcp -p tcp --sport domain --dport 1024: -m state --state ESTABLISHED -j ACCEPT #aus dem LAN kann man die FW fragen -A lan_in_fw_tcp -p tcp --sport 1024: --dport domain -m state --state NEW,ESTABLISHED -j ACCEPT -A fw_out_lan_tcp -p tcp --sport domain --dport 1024: -m state --state ESTABLISHED -j ACCEPT ################################################################# # ssh # ################################################################# #aus dem LAN in die FW -A lan_in_fw_tcp -p tcp --sport 1024: --dport ssh -m state --state NEW,ESTABLISHED -j ACCEPT -A fw_out_lan_tcp -p tcp --sport ssh --dport 1024: -m state --state ESTABLISHED -j ACCEPT #aus dem LAN in das INET -A lan_to_inet_tcp -p tcp --sport 1024: --dport ssh -m state --state NEW,ESTABLISHED -j ACCEPT -A inet_to_lan_tcp -p tcp --sport ssh --dport 1024: -m state --state ESTABLISHED -j ACCEPT #aus der FW in das INET -A fw_out_inet_tcp -p tcp --sport 1024: --dport ssh -m state --state NEW,ESTABLISHED -j ACCEPT -A inet_in_fw_tcp -p tcp --sport ssh --dport 1024: -m state --state ESTABLISHED -j ACCEPT #aus der INET in die FW -A inet_in_fw_tcp -p tcp --sport 1024: --dport ssh -m state --state NEW,ESTABLISHED -j ACCEPT -A fw_out_inet_tcp -p tcp --sport ssh --dport 1024: -m state --state ESTABLISHED -j ACCEPT