Linux iptables - rejeitar tcp SYN com RST

1

Estou fazendo uma implementação em uma máquina linux para rejeitar as solicitações de telnet de entrada da porta wan telnet 8023. A funcionalidade é obtida usando as regras abaixo do iptables. A primeira regra na cadeia de criação de NAT para DNAT de entrada de quadros tcp da porta 8023 para 23, e a segunda regra para rejeitar esses quadros tcp na porta 23 com tcp-reset

iptables -t nat -A PREROUTING -i wan+ -p tcp --dport 8023 -j DNAT --to-destination :23
iptables -A INPUT -i wan+ -p tcp --dport 23 -j REJECT --reject-with tcp-reset

A nova sessão na máquina wan é terminada depois de adicionar essas regras.

[root@ROOT ~]# telnet 192.168.3.252 8023
Trying 192.168.3.252...
Connected to 192.168.3.252.
Escape character is '^]'.
Connection closed by foreign host.

No entanto, ao ver a captura wireshark de toda a transação da máquina wan, a seguinte sequência foi observada.

TCP sequence:
SYN -->
    <-- SYN/ACK
ACK -->
    <-- RST

A captura wireshark também foi anexada.

Podemos enviar o RST para o primeiro pedido de SYN pela regra no iptables como abaixo?

TCP sequence:
SYN -->
    <-- RST

Alguém poderia ajudar nesse sentido ... Agradecemos antecipadamente.

    
por MuruganV-userm 22.08.2014 / 15:04

1 resposta

1

Interessante.

Acabei de testar isso e no meu sistema funciona como você espera. Eu testei com a porta 25 no meu servidor local que não está em alta utilização:

iptables-save
# Generated by iptables-save v1.4.12 on Fri Aug 22 14:34:49 2014
*nat
:PREROUTING ACCEPT [12:1729]
:INPUT ACCEPT [12:1729]
:OUTPUT ACCEPT [110:7484]
:POSTROUTING ACCEPT [110:7484]
-A PREROUTING -p tcp -m tcp --dport 225 -j DNAT --to-destination :25
COMMIT
# Completed on Fri Aug 22 14:34:49 2014
# Generated by iptables-save v1.4.12 on Fri Aug 22 14:34:49 2014
*filter
:INPUT ACCEPT [888:1187686]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [883:134630]
-A INPUT -p tcp -m tcp --dport 25 -j REJECT --reject-with tcp-reset
COMMIT
# Completed on Fri Aug 22 14:34:49 2014

telnet XXX.XXX.XXX.XXX 225
Trying XXX.XXX.XXX.XXX...
telnet: Unable to connect to remote host: Connection refused

Eu não obtenho a conexão estabelecida e, em seguida, a redefinição como você faz.

Estou usando o Linux 3.2.0-67 & iptables v1.4.12

tcpdump -vvvv tcp port 225
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
14:48:29.178049 IP (tos 0x10, ttl 64, id 50487, offset 0, flags [DF], proto TCP (6), length 60)
    xx.39444 > xxxxx.225: Flags [S], cksum 0x2c0d (correct), seq 47731887, win 14600, options [mss 1460,sackOK,TS val 665686424 ecr 0,nop,wscale 5], length 0
14:48:29.178089 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 40)
    xxxxx.225 > xx.39444: Flags [R.], cksum 0x3745 (incorrect -> 0x8628), seq 0, ack 47731888, win 0, length 0
    
por 22.08.2014 / 15:38