web-dev-qa-db-ja.com

dd-wrt-外部からのマシンへのアクセスを制限する

Dd-wrtで、「外の世界」からIPホワイトリストを持つ単一のマシンへのアクセスを制限できますか?したがって、単一の「外部」IPからネットワーク上の単一のマシンへのアクセスを許可したいので、他のすべてのマシンは外部の発信者からの呼び出しを受け入れる必要があります。

1
SFun28

dd-wrtはiptablesの使用を許可します。ファイアウォールコマンドは、dd-wrt ​​GUIの[管理]-> [コマンド]-> [テキストボックスにコマンドを入力-> [ファイアウォールの保存]]に挿入できます。

私は盗んだ、すみません、引用、 dd-wrt ​​wiki から:

外部の特定のホスト/アドレスからルーターにSSH接続できるようにルールを追加したいとします。次に、次のように入力します。

iptables -A INPUT -p tcp -s 150.100.whatever.something --dport 22 -j logaccept

つまり、次のように言っています。ルーターのポート22宛てのトラフィックの送信元アドレスを使用して、プロトコルtcpを許可するルールをINPUTチェーンに追加し、logacceptにジャンプします。単にACCEPTにジャンプする-jACCEPTを使用することもできましたが、この場合は、追跡するためだけにログに記録したいので、この目的のために設定したチェーンであるlogacceptを使用します。

注:WANからのリモートSSHアクセスを許可するには、INPUTチェーンにルールを追加するだけで十分な場合があります。ただし、ルーターがまだNAT /ゲートウェイモードであり、SSHポートをWAN側(ポート2222など))で従来とは異なるものに再マップする場合は、代わりにPREROUTINGルールを挿入できます。 。これは、リモートWAN SSH管理を有効にした場合のGUIの実際の動作です。

iptables -A INPUT -p tcp -m tcp -d `nvram get lan_ipaddr` --dport 22 -j logaccept  
iptables -t nat -A PREROUTING -p tcp -m tcp -d `nvram get wan_ipaddr` --dport 2222 -j DNAT --to-destination `nvram get lan_ipaddr`:22
2
queso

iptablesルールはチェーンで読み取られるため、最初に満たされたルールが使用されます。私の例では、ルールはチェーンの最下部に追加されます(-Aオプションを使用)。すでにポート22を転送していると言う場合、GUIを介して転送したと仮定します。これは問題ありません。GUIが行うことは、コマンドで表示できるiptablesルールに変換することです。

iptables -vnL

これは、適切なIPテーブルルールの完全なリストを示しています。

2番目のコメントについて:iptablesは、トラフィックがルーターのWANとLAN部分の間を通過している場合にのみ適用されます。つまり、アドレスがプライベート範囲(192.168.xx)にある場合は、それが配信されます。 LAN上の適切なホストへの接続は、LANインターフェイスのみを使用して行われますが、LANで発信されたパケットのパブリックアドレスは、配信のためにWAN)に自動的にダンプされます。

この動作をテストするために実行できる興味深い実験は、192.168.xx:22などの内部アドレスを使用して内部ホストに接続してから、dd-wrtGUIでそのポートのポート転送をオフにしてみることです。 76.54.999.257:22(もちろん実際のアドレスを使用する場合を除く)のように、同じポートで外部IPアドレスに接続します(dd-wrt ​​GUIを調べて見つけます)。ポートフォワーディングを無効にすると、実際には、外部接続が機能しない場合でも内部接続が機能することがわかります。

Dd-wrtがWAN側のポートと見なす動作と、VLANなどを使用してLAN側のポートとは何かを微調整して、実際に物理ポートを奇妙な方法で論理的にグループ化することができますが、それは質問の範囲を超えています。

1
queso