Я новичок в iptables и работе с сетями, поэтому извините меня за такие начальные вопросы.
Я нашел в Интернете часть фильтрации некорректных пакетов:
/usr/bin/sudo /sbin/iptables -A tcpchk -p tcp --tcp-flags ALL SYN -m state --state NEW -j RETURN
Но насколько я знаю, первый (новый) пакет должен содержать флаг SYN и это правило будет запрещать новые соединения? Или я не так понимаю?
А что произойдет после применения следующих правил?
/usr/bin/sudo /sbin/iptables -A tcpchk -p tcp --tcp-flags ALL RST,ACK,PSH
/usr/bin/sudo /sbin/iptables -A tcpchk -p tcp --tcp-flags ALL RST,ACK,URG
/usr/bin/sudo /sbin/iptables -A tcpchk -p tcp --tcp-flags ALL RST,ACK,PSH,URG
/usr/bin/sudo /sbin/iptables -A tcpchk -p tcp --tcp-flags ALL FIN,PSH,ACK,URG
/usr/bin/sudo /sbin/iptables -A tcpchk -p tcp --tcp-flags ALL ACK,URG
/usr/bin/sudo /sbin/iptables -A tcpchk -p tcp --tcp-flags ALL ACK,URG,FIN
Если я прав, то никаких действий не требуется? iptables проверит указанные выше флаги и просто перейдет к следующим правилам, верно?
решение1
Во втором примере нет никаких действий, поэтому он не делает ничего, кроме сбора статистики.
iptables -xvn -L tcpchk
ALL SYN соответствует установленным соединениям и выбрасывает установленное соединение из цепочки tcpchk и возвращает его в родительскую цепочку, предположительно INPUT.-j ВОЗВРАТвернуть пакет родительскому объекту.
Правило не вызовет сбоев, поскольку на самом деле ничего не отбрасывает и не отклоняет.