#!/bin/bash IPTABLES="/sbin/iptables" iptables -A FORWARD -s 192.168.2.0/24 -p tcp -m multiport --destination-ports 22,23,2323 -m state --state NEW -m recent --set iptables -A FORWARD -s 192.168.2.0/24 -p tcp -m multiport --destination-ports 22,23,2323 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 -j DROP iptables -A FORWARD -s 192.168.2.0/24 -p tcp --sport 6881 -j DROP /sbin/iptables -A FORWARD -d 177.107.80.0/20 -j ACCEPT /sbin/iptables -N udp-flood /sbin/iptables -A FORWARD -p udp -j udp-flood /sbin/iptables -A udp-flood -p udp -m limit --limit 10/s -j RETURN /sbin/iptables -A udp-flood -j LOG --log-level 4 --log-prefix 'UDP-flood attempt: ' /sbin/iptables -A udp-flood -j DROP /sbin/iptables -N syn-flood /sbin/iptables -A FORWARD -p tcp --syn -j syn-flood /sbin/iptables -A syn-flood -m limit --limit 30/s --limit-burst 60 -j RETURN /sbin/iptables -A syn-flood -j LOG --log-level 4 --log-prefix 'SYN-flood attempt: ' /sbin/iptables -A syn-flood -j DROP #iptables -L -n -v #iptables -A FORWARD -s 192.168.2.0/24 -p tcp --dport 22 -j DROP #iptables -A FORWARD -s 192.168.2.0/24 -p tcp --dport 1101 -j DROP #iptables -A FORWARD -s 192.168.2.0/24 -p tcp --dport 13412 -j DROP /sbin/iptables -A POSTROUTING -m mark --mark 0 -p tcp --dport 21 -t mangle -j MARK --set-mark 1 /sbin/iptables -A POSTROUTING -m mark --mark 0 -p tcp --dport 80 -t mangle -j MARK --set-mark 1 /sbin/iptables -A POSTROUTING -m mark --mark 0 -p udp --dport 53 -t mangle -j MARK --set-mark 1 /sbin/iptables -A POSTROUTING -m mark --mark 0 -p tcp --dport 1:1023 -t mangle -j MARK --set-mark 1 /sbin/iptables -A POSTROUTING -m mark --mark 0 -p tcp --dport 1024:65535 -t mangle -j MARK --set-mark 2 /sbin/iptables -A POSTROUTING -m mark --mark 0 -p udp --dport 1024:65535 -t mangle -j MARK --set-mark 2 /sbin/iptables -A POSTROUTING -m mark --mark 0 -t mangle -p tcp -j MARK --set-mark 2 /sbin/iptables -A PREROUTING -t mangle -p tcp -j CONNMARK --restore-mark /sbin/iptables -A PREROUTING -t mangle -p tcp -m mark ! --mark 0 -j ACCEPT /sbin/iptables -A PREROUTING -m mark --mark 0 -p tcp --dport 21 -t mangle -j MARK --set-mark 1 /sbin/iptables -A PREROUTING -m mark --mark 0 -p tcp --dport 80 -t mangle -j MARK --set-mark 1 /sbin/iptables -A PREROUTING -m mark --mark 0 -p udp --dport 53 -t mangle -j MARK --set-mark 1 /sbin/iptables -A PREROUTING -m mark --mark 0 -p tcp --dport 1:1023 -t mangle -j MARK --set-mark 1 /sbin/iptables -A PREROUTING -m mark --mark 0 -p tcp --dport 1024:65535 -t mangle -j MARK --set-mark 2 /sbin/iptables -A PREROUTING -m mark --mark 0 -p udp --dport 1024:65535 -t mangle -j MARK --set-mark 2 /sbin/iptables -A PREROUTING -m mark --mark 0 -t mangle -p tcp -j MARK --set-mark 2 /sbin/iptables -A PREROUTING -t mangle -m ipp2p --edk --kazaa --gnu --bit --apple --dc --soul --winmx --ares -j MARK --set-mark 2 /sbin/iptables -A PREROUTING -t mangle -p tcp -m mark --mark 1 -j CONNMARK --save-mark #/sbin/tc qdisc del dev eth0 root #/sbin/tc qdisc add dev eth0 root handle 1: htb default 2 #/sbin/tc class add dev eth0 parent 1: classid 1:1 htb rate 51200Kbit ceil 51200Kbit #/sbin/tc class add dev eth0 parent 1:1 classid 1:2 htb rate 56Kbit ceil 512Kbit #/sbin/tc class add dev eth0 parent 1:1 classid 1:3 htb rate 56Kbit ceil 512Kbit #/sbin/tc filter add dev eth0 parent 1:0 protocol ip prio 4 handle 1 fw classid 1:3 /sbin/iptables -A FORWARD -d 177.107.80.0/20 -j ACCEPT /sbin/iptables -N udp-flood /sbin/iptables -A FORWARD -p udp -j udp-flood /sbin/iptables -A udp-flood -p udp -m limit --limit 10/s -j RETURN /sbin/iptables -A udp-flood -j LOG --log-level 4 --log-prefix 'UDP-flood attempt: ' /sbin/iptables -A udp-flood -j DROP # ######################### # SYN-Flood protection in a user defined chain /sbin/iptables -N syn-flood /sbin/iptables -A FORWARD -p tcp --syn -j syn-flood /sbin/iptables -A syn-flood -m limit --limit 30/s --limit-burst 60 -j RETURN /sbin/iptables -A syn-flood -j LOG --log-level 4 --log-prefix 'SYN-flood attempt: ' /sbin/iptables -A syn-flood -j DROP #iptables -L -n -v #/sbin/iptables -A FORWARD -s 192.168.2.0/24 -p tcp -m multiport --destination-ports 22,23,2323 -j DROP #iptables -A FORWARD -s 192.168.2.0/24 -p tcp --dport 22 -j DROP #iptables -A FORWARD -s 192.168.2.0/24 -p tcp --dport 1101 -j DROP #iptables -A FORWARD -s 192.168.2.0/24 -p tcp --dport 13412 -j DROP