Abrir e redirecionar porta

3

Estou tentando configurar o SNMP para um roteador para que eu possa monitorá-lo de uma instalação existente do Nagios em um servidor externo. Estou tendo problemas para fazer com que o roteador responda às solicitações SNMP da WAN, apesar de tentar algumas regras diferentes do iptables. O roteador é um novo ASUS RT-AC66U, executando o AsusWRT 3.0.0.4.270.26 (compilação Merlin).

Eu fui muito recentemente e infelizmente obrigado a mudar para a Comcast como um ISP, e eles dizem que bloqueiam as portas 161 e 162 em toda a rede. Em vista disso, estou tentando redirecionar o 1610 para o 161. No momento, tenho o encaminhamento de porta configurado para meu NAS, 1611- > 161, e o SNMP funciona muito bem lá.

A primeira coisa que tentei foi configurar uma regra de encaminhamento de porta a partir de 1610- > 127.0.0.1: 161 (UDP), que não parecia funcionar:

[ssube@centos-server ~]$ snmpwalk -v 2c -c [name] [ip]:1610
Timeout: No Response from [ip]:1610

[ssube@centos-server ~]$ snmpwalk -v 2c -c [name] [ip]:1611
SNMPv2-MIB::sysDescr.0 = STRING: Linux Triton 2.6.32.12 #2668 Tue Dec 11 12:36:30 CST 2012 armv5tel
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10

A regra do NAS está funcionando bem, como você pode ver acima. Remover a regra NAS e substituir 1610 por 1611 em todas as regras do roteador não pareceu ajudar. A mensagem de erro (sem resposta) foi consistente, independentemente do que eu tentei.

Minha segunda tentativa foi passar pelo próprio iptables. Eu configurei as seguintes regras:

boss@RT-AC66U:/jffs/scripts# cat firewall-start
#!/bin/sh

iptables -I INPUT 1 -p udp --dport 1610 -j ACCEPT
boss@RT-AC66U:/jffs/scripts# cat nat-start
#!/bin/sh

iptables -t nat -A PREROUTING -p udp --dport 1610 -j REDIRECT --to-port 161

De dentro da LAN, posso ver o roteador bem:

ssube@KRAKEN /c/Program Files/ConEmu > snmpwalk -v 2c -c [name] 192.168.1.1:1610
SNMPv2-MIB::sysDescr.0 = STRING: Linux RT-AC66U 2.6.22.19 #1 Sun Mar 17 17:16:27 EDT 2013 mips
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10

No entanto, ainda não consigo vê-lo fora da LAN, com ou sem a regra da cadeia INPUT. Ambas as regras aparecem no iptables:

boss@RT-AC66U:/tmp/home/root# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
.....
ACCEPT     udp  --  anywhere             anywhere            udp dpt:1610

(listado antes de qualquer regra DROP, depois de alguns ACCEPTs não relacionados)

boss@RT-AC66U:/jffs/scripts# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
VSERVER    all  --  anywhere             [ip].comcast.net
REDIRECT   udp  --  anywhere             anywhere            udp dpt:1610 redir ports 161

Ainda assim, não há sorte no SNMP externo. Eu tentei o tcpdump para ver se os pacotes estão fazendo isso, mas rodar o tcpdump no roteador parece me tirar do wifi dentro de alguns segundos, e eu não tive a chance de conectar o roteador e rodá-lo lá ainda (vai editar com atualizações quando eu faço).

Os scripts parecem estar funcionando, desde que as regras aparecem. Eu suspeito que o problema está nas regras, mas estou tendo dificuldade em defini-lo e ainda não recebi uma resposta no quadro de mensagens do firmware.

    
por ssube 07.06.2013 / 05:21

1 resposta

1

Parece que você está apenas tentando fazer uma porta direta para a frente de [WAN IP]: 1610 para [LAN IP]: 161. Estas 3 regras devem fazer isso:

# forwards port 1610 -> 611
$ iptables -t nat -A PREROUTING -p tcp -d [LAN IP] --dport 1610 -j DNAT --to [LAN IP]:611

OBSERVAÇÃO: [LAN IP] seria o endereço IP do seu servidor interno.

# Allow 1610 traffic
iptables -A INPUT -i eth0 -p tcp --dport 1610 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 1610 -m state --state ESTABLISHED -j ACCEPT
    
por 07.06.2013 / 11:13