Состояния Iptables

Я пытаюсь запретить внешним сетям инициировать подключение к моим внутренним сетям как для TCP, так и для UDP. Я думаю использовать --state. Я не уверен в том, что означает справочная страница для разных состояний.

«NEW означает, что пакет начал новое соединение или иным образом связан с соединением, которое не видело пакеты в обоих направлениях» справочная страница

Отслеживает ли NEW рукопожатие? Как в

client1 -SYN-> client2 NEW
client1 ‹-SYN,ACK- client2 NEW
client1 -ACK-> client2 ESTABLISHED

-or-

client1 -SYN-> client2 NEW
client1 ‹-SYN,ACK- client2 NEW
client1 -ACK-> client2 NEW
client1 ‹-DATA- client2 ESTABLISHED

для UDP

client1 -MSG1-> client2 NEW
client1 ‹-MSG2- client2 NEW
client1 -MSG3-> client2 ESTABLISHED

-or-

client1 -MSG1-> client2 NEW
client1 ‹-MSG2- client2 ESTABLISHED

Будет ли это блокировать входящие новые подключения, но разрешать новые исходящие подключения?

-A FORWARD -p tcp -m state --state NEW ! -s 192.168.1.0/24 -j DROP
-A FORWARD -p tcp -m state --state ESTABLISHED ! -s 192.168.1.0/24 -j DROP
-A FORWARD -p tcp -m state --state NEW,ESTABLISHED -s 192.168.1.0/24 -j ACCEPT

person CatFish    schedule 07.04.2013    source источник


Ответы (2)


Я не тестировал UDP, но для TCP, как только пакет SYN был отправлен, соединение становится УСТАНОВЛЕННЫМ, поэтому

client1 -SYN-> client2 NEW
client1 ‹-SYN-ACK- client2 ESTABLISHED

person CatFish    schedule 08.04.2013

client1 -SYN-> client2 NEW
client1 <-SYN,ACK- client2 ESTABLISH
client1 -ACK-> client2 ESTABLISHED

Будьте осторожны, когда SYN, ACK, это должен быть статус ESTABLISHED, если это SYN, ACK и это новое соединение, это обычно атака.

и вы также должны добавить СВЯЗАННОЕ состояние.

хорошо, если ваша текущая машина имеет IP-адрес 192.168.1.0/24, она будет заблокирована при создании исходящих соединений

Мое предложение таково:

$IPTABLES -A INPUT -p tcp -s 192.168.1.0/24 --tcp-flags SYN,ACK SYN,ACK -m state --state NEW -j REJECT --reject-with tcp-reset 
$IPTABLES -A INPUT -p tcp -s 192.168.1.0/24 ! --syn -m state --state NEW -j DROP
$IPTABLES -A allowed -p TCP -s 192.168.1.0/24 --syn -j ACCEPT
$IPTABLES -A allowed -p TCP -s 192.168.1.0/24 -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A allowed -p TCP -s 192.168.1.0/24 -j DROP
person Zhenyu Li    schedule 17.09.2014