Как заставить работать iptables+synproxy и форвардинг в ipip-туннель?
Смысл следующий, имеется одна машина с достаточными ресурсами чтобы отбить syn-flood, с нее трафик через gre-туннель отсылается на другую машину. При помощи нехитрых правил:
iptables -A POSTROUTING -t nat -p tcp -s 192.168.168.0/30 -j SNAT --to-source 192.168.0.1
iptables -t nat -A PREROUTING -p tcp -d 192.168.0.1 -j DNAT --to-destination 192.168.168.2
iptables -A FORWARD -d 192.168.168.2 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
Но естественно как только организовать syn-flood, на "фильтрующий" сервер, то весь этот траф полетит и в туннель.
Для этого должен помочь synproxy:
iptables -t raw -I PREROUTING -i eth0 -p tcp -m tcp --syn --dport 80 -j CT --notrack
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 80 -m state --state INVALID,UNTRACKED -j SYNPROXY --sack-perm --timestamp --wscale 7 --mss 1460
iptables -A INPUT -m state --state INVALID -j DROP
Но незадача в том, что при использовании этих правил трафик перестает попадать в туннель. Вопрос в том как фильтровать флуд и в туннель отправлять только чистый трафик?