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.