#!/bin/bash #FIXME check syn/ack's too Me='plength' MyVersion='0.1' Action="$1" case "$Action" in start) echo "Starting $Me" iptables -N $Me iptables -A $Me -p tcp \! --syn -j RETURN iptables -A $Me -p tcp --syn -m length --length 40 -j RETURN iptables -A $Me -p tcp --syn -m length --length 44 -j RETURN iptables -A $Me -p tcp --syn -m length --length 48 -j RETURN iptables -A $Me -p tcp --syn -m length --length 52 -j RETURN iptables -A $Me -p tcp --syn -m length --length 60 -j RETURN iptables -A $Me -p tcp --syn -m length --length 64 -j RETURN iptables -A $Me -p tcp --syn -m length --length 68 -j RETURN iptables -A $Me -j LOG --log-prefix "FB-$Me " iptables -A INPUT -i \! lo -p tcp -j $Me iptables -A FORWARD -p tcp -j $Me iptables -A OUTPUT -p tcp -j $Me ;; stop) echo "Stopping $Me" iptables -D INPUT -i \! lo -p tcp -j $Me iptables -D FORWARD -p tcp -j $Me iptables -D OUTPUT -p tcp -j $Me iptables -D $Me -j LOG --log-prefix "FB-$Me " iptables -D $Me -p tcp --syn -m length --length 40 -j RETURN iptables -D $Me -p tcp --syn -m length --length 44 -j RETURN iptables -D $Me -p tcp --syn -m length --length 48 -j RETURN iptables -D $Me -p tcp --syn -m length --length 52 -j RETURN iptables -D $Me -p tcp --syn -m length --length 60 -j RETURN iptables -D $Me -p tcp --syn -m length --length 64 -j RETURN iptables -D $Me -p tcp --syn -m length --length 68 -j RETURN iptables -D $Me -p tcp \! --syn -j RETURN iptables -F $Me iptables -X $Me ;; esac