US CERT Vulnerability Note VU#464113
Сканируя Nessus парочку хостов, столкнулся с тем, что Nessus определял, что система (Linux 2.6.x) не фильтрует TCP/IP пакеты, у которых установлены флаги SYN
и FIN
, что, теоретически, может привести к обходу межсетевого экрана (firewall).
Подробности об уязвимости в архиве Neohapsis и в базе данных US CERT (что характерно, уязвимость датируется 2002 годом). С другой стороны, RFC1644 разрешает пакеты, с установленными флагами SYN
и FIN
.
Тем, кому T/TCP
не интересен, закрывать уязвимость могут следующим образом:
/sbin/iptables -A INPUT -p tcp -m tcp --tcp-flags SYN,RST SYN,RST -j DROP
/sbin/iptables -A INPUT -p tcp -m tcp --tcp-flags SYN,PSH SYN,PSH -j DROP
/sbin/iptables -A INPUT -p tcp -m tcp --tcp-flags SYN,URG SYN,URG -j DROP
Кроме того, я запрещаю ICMP-запросы address mask request
и timestamp request
:
/sbin/iptables -A INPUT -p icmp -m icmp --icmp-type timestamp-request -j DROP
/sbin/iptables -A OUTPUT -p icmp -m icmp --icmp-type timestamp-reply -j DROP
и отбрасываю все неверные пакеты:
/sbin/iptables -I FORWARD -m state --state INVALID -j DROP
/sbin/iptables -I OUTPUT -m state --state INVALID -j DROP
I would add these rules as well:
iptables -A INPUT -p tcp --tcp-flags FIN,RST FIN,RST -j DROP
iptables -A INPUT -p tcp --tcp-flags ACK,FIN FIN -j DROP
iptables -A INPUT -p tcp --tcp-flags ACK,PSH PSH -j DROP
iptables -A INPUT -p tcp --tcp-flags ACK,URG URG -j DROP