# NAT setup *nat :PREROUTING ACCEPT [5:861] :POSTROUTING ACCEPT [2:156] :OUTPUT ACCEPT [5:776] -A POSTROUTING -o ppp0 -j MASQUERADE COMMIT # Mangle setup *mangle :PREROUTING ACCEPT [444:43563] :INPUT ACCEPT [444:43563] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [402:144198] :POSTROUTING ACCEPT [402:144198] -A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,PSH,URG -j DROP -A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP -A PREROUTING -p tcp -m tcp --tcp-flags SYN,RST SYN,RST -j DROP -A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN FIN,SYN -j DROP -A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,PSH,URG -j DROP -A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP -A PREROUTING -p tcp -m tcp --tcp-flags SYN,RST SYN,RST -j DROP -A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN FIN,SYN -j DROP -A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,PSH,URG -j DROP -A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP -A PREROUTING -p tcp -m tcp --tcp-flags SYN,RST SYN,RST -j DROP -A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN FIN,SYN -j DROP -A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,PSH,URG -j DROP -A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP -A PREROUTING -p tcp -m tcp --tcp-flags SYN,RST SYN,RST -j DROP -A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN FIN,SYN -j DROP COMMIT # Filter setup *filter :INPUT DROP [1:242] :FORWARD DROP [0:0] :OUTPUT DROP [0:0] :LOG_DROP - [0:0] :LOG_ACCEPT - [0:0] :icmp_packets - [0:0] # Set up inputs # Allow established, related connections -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT # Allow ssh -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT # Allow ident -A INPUT -p tcp -m tcp --dport 113 -j ACCEPT # Allow localhost -A INPUT -s 127.0.0.1 -j ACCEPT # Deal with ICMP -A INPUT -p icmp -j icmp_packets # Log and drop anything else -A INPUT -j LOG_DROP # Now for outputs -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT # Allow outgoing www connections -A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT # Allow outgoing DNS requests -A OUTPUT -p udp -m udp --dport 53 -j ACCEPT # Allow localhost -A OUTPUT -d 127.0.0.1 -j ACCEPT # Allow all outgoing ICMP -A OUTPUT -p icmp -j ACCEPT # Log and drop anything else -A OUTPUT -j LOG_DROP # Now log drops -A LOG_DROP -j LOG --log-prefix "[IPTABLES DROP] " --log-tcp-options --log-ip-options -A LOG_DROP -j DROP # Log accept packets, if desired -A LOG_ACCEPT -j LOG --log-prefix "[IPTABLES ACCEPT] " --log-tcp-options --log-ip-options -A LOG_ACCEPT -j ACCEPT # Set up icmp -A icmp_packets -p icmp -m icmp --icmp-type 0 -j ACCEPT -A icmp_packets -p icmp -m icmp --icmp-type 8 -j DROP -A icmp_packets -p icmp -m icmp --icmp-type 3 -j ACCEPT -A icmp_packets -p icmp -m icmp --icmp-type 11 -j ACCEPT COMMIT