私たちは現在、Linuxコンピュータ(debian)をWiFi制御とルーターとして使用してシステムをセットアップしています。 Linuxコンピュータは、WiFi(wlan0とwlan1)を介して2つのWiFiネットワーク(AとBと呼ばれる)に接続されています。その後、PCはイーサネットを介してLinuxボックスに接続され、両方のWiFiネットワーク上のすべてのデバイスにアクセスできます。 ASCIIアート画像を見る
WiFi A (192.170.1.xx)
/
/
PC (192.168.2.xx) ----- (192.168.2.1) Linux (192.170.1.253)
\
\
WiFi B (192.170.1.xx)
ルーティングに必要なプロトコルは次のとおりです。
- PCから192.170.1.xxデバイスへのSSH接続
- ポート1234/4321経由でPCから192.170.1.xxデバイスへのTCP
- PCから192.170.1.xxデバイスへのPING
問題はIPTableの設定方法に関連しています。
- PCのゲートウェイは192.168.2.1に設定されているため、PCが192.170.1.xxに送信するすべてのパケットはLinuxボックスにルーティングされますか?
これはうまくいくべきだと思います(まだテストしていません)。これが正しいのか、それとも私の論理に根本的に間違った点があるのかを指摘してもらえますか?
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth0 -o wlan 1-m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
iptables -A FORWARD -i wlan1 -o eth0 -j ACCEPT
答え1
注:Wi-Fi AとBは異なるサブネット上になければなりません。それ以外の場合、Linuxシステムはエラーを報告します。
eth0がPC用であると仮定すると、このルールを使用して目的のsshポートとtcpポートを取得できます。
iptables -t filter -A FORWARD -i eth0 -o <Interface> -d <Des subnet> -p tcp --dport <Des Port> -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
pingを許可するには、次のものを使用できます。
iptables -t filter -A FORWARD -i eth0 -o <Interface> -d <Des subnet> -p icmp --icmp-type 8 -j ACCEPT
答え2
Wi-Fi AとWi-Fi Bに同じアドレス範囲を使用しているようで、Linuxボックスにはその範囲に1つのアドレスしかないので、両方のWLANインターフェイスを接続する必要があると思います(つまり、単一のネットワークとして扱われます)。場合によっては、iptablesルールがブリッジインターフェイスを参照する必要があります。
バラよりこの問題ブリッジされたネットワークにおけるフィルタリングの構成についていくつかの考え方。または、各 Wi-Fi ネットワークに 192.170.1.xx の異なるサブネットを割り当てた場合、Linux ボックスには、指定した単一の 192.170.1.253 アドレスではなく、各サブネットに 1 つの IP アドレスが必要です。