ポートのオープンとリダイレクト

ポートのオープンとリダイレクト

外部サーバーの既存のNagiosインストールで監視できるように、ルーターのSNMPを設定しようとしています。いくつかの他のiptablesルールを試しましたが、ルータにWANからのSNMP要求に応答させることはできません。ルータは、AsusWRT 3.0.0.4.270.26(Merlinバージョン)を実行する新しいAsus RT-AC66Uです。

残念ながら、私は最近ISPとしてComcastに切り替える必要があり、Comcastはネットワーク上のポート161と162をブロックしたと述べました。これを考慮して、1610を161にリダイレクトしようとしています。現在、私のNAS(1611-> 161)にポート転送が設定されており、SNMPが正しく機能しています。

最初に試したのは、1610->127.0.0.1:161(UDP) でポート転送ルールを設定することでしたが、うまくいかないようです。

[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

NASルールは上記のように正しく機能します。 NASルールを削除し、すべてのルータルールで1610を1611に置き換えることは役に立たないようです。何を試しても、エラーメッセージ(応答なし)が一貫しています。

2番目の試みはiptables自体を確認することでした。私は次のルールを作成しました。

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

LAN内部でルータをよく見ることができます。

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

ただし、INPUTチェーンルールがあるかどうかにかかわらず、LANの外ではまだ見えません。どちらのルールも 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

(DROPルールの前とは無関係のACCEPTの後にリストされています)

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

しかし、外部SNMPの状況はまだ良くありません。パケットがまったく入っていることを確認するためにtcpdumpを試しましたが、ルータでtcpdumpを実行すると、数秒でWi-Fiから抜け出すように見え、ルータを接続して実行する機会がありませんでした。それはまだそこにあります(更新すると、そうするときに編集が行われます)。

ルールが表示されるため、スクリプトが機能しているようです。ルールに問題があるようですが、正確に見つけることが困難であり、まだファームウェアメッセージ掲示板から回答を受けていません。

ベストアンサー1

[WAN IP]:1610 を [LAN IP]:161 に直接ポート転送するようです。次の3つのルールがこれを達成する必要があります。

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

メモ: [LAN IP]内部サーバーのIPアドレスになります。

# 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

おすすめ記事