私のPCには、wlan0とeth0の2つのネットインターフェイスが装備されています。 WiFiポートをwlan0のアクセスポイントとして使用したい。だから私はhostapd機能を使用し、ローカルネットワークのルーティングモードで正しく動作します。ユーザーはそのように作成されたアクセスポイントに接続でき、DHCPは両方のセグメントで正しく機能します。 hostapdを搭載したPCには、ファイアウォールやiptablesルールがありません(iptablesとファイアウォールが無効になっています)。 ADSLルーターに組み込まれているファイアウォールのみを使用したい。
私のネット設定は次のとおりです
...... hostapdを備えたPC .................ケーブル接続.................. ADSLルーター
..... wlan0 .............. eth0 ..... <----------------------- -------> ........... 192.168.0.1 ...................... <--->インターネット192.168.10.1 ... 192.168.0.7 ..............................静的ルーティングを192.168.10.Xに追加
pCのifconfig:
eth0 Link encap:Ethernet HWaddr 00:12:3F:F2:31:65
inet addr:192.168.0.7 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::212:3fff:fef2:3165/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2169539 errors:0 dropped:0 overruns:0 frame:0
TX packets:1008097 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3056198487 (2.8 GiB) TX bytes:72727161 (69.3 MiB)
Interrupt:16
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:3398 errors:0 dropped:0 overruns:0 frame:0
TX packets:3398 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:495444 (483.8 KiB) TX bytes:495444 (483.8 KiB)
mon.wlan0 Link encap:UNSPEC HWaddr 00-14-A5-04-94-3C-90-F0-00-00-00-00-00-00-00-00
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:151 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:17092 (16.6 KiB) TX bytes:0 (0.0 b)
wlan0 Link encap:Ethernet HWaddr 00:14:A5:04:94:3C
inet addr:192.168.10.1 Bcast:192.168.10.255 Mask:255.255.255.0
inet6 addr: fe80::214:a5ff:fe04:943c/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:1502 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:279392 (272.8 KiB)
私はiptablesではまったく初心者です。だから、誰かが私に簡単なNAT iptables configをPCで設定するのを手伝ってくれませんか?hostapd(ネットワーク192.168.10.X)経由でネットワークに接続しているすべてのユーザーにインターネットへのアクセスとインターネットからのアクセスを許可しますか?トラフィックをフィルタリングしたくありません。NATだけをフィルタリングします。
OK、THX。しかし、WiFiセグメントからインターネットに接続できません。 WiFiに接続されたクライアントのアドレスは192.168.10.48(DHCP経由)です。このアドレスからeth0ポートで気づくことができるinlyトラフィックは
16:50:14.671587 ARP, Request who-has 192.168.0.48 tell 192.168.0.1, length 46
注意-アドレスは192.168.10.48ではなく192.168.0.48です。したがって、マスカレードの継ぎ目が機能します。
イーブン192.168.0.1にpingできない-ADSLルーターのポート。以前は可能でした。
そして、インターネットからWIFIユーザーへのアクセスはどうですか?もちろん、ADSLルーターでセットアップし、特定のIPポートプーリングをインターネットからそのようなWiFiユーザーの特定のIPアドレスに転送します。
編集
systemstlは、iptablesが以下であることを示しています。
iptables.service loaded active exited
しかしもちろん私は走ります:
systemctl enable iptables.service
systemctl start iptables.service
編集
動作します!ただし、(起動スクリプトから)コンピューターを起動するたびに手動で追加する必要があります。
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
それは正常な状況ですか?
最も単純な形式:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
これにより、すべてのWiFiユーザーがインターネットにアクセスできます。
もちろん、他のルーティング設定がすでに行われていると仮定します。
カーネルで有効な転送
sysctl net.ipv4.ip_forward=1
iptables
で転送が有効になっています:
iptables -P FORWARD ACCEPT
iptables -F FORWARD
問題が発生した場合にtcpdump -nn -i eth0
を使用してeth0
のトラフィックを監視し、適切にNAT処理されているかどうか、応答が戻ってきているかどうかなどを確認します。
編集: "コンピューターを起動するたびに手動で追加する必要があります(起動スクリプトから)..."お持ちのLinuxディストリビューション。悲しいことに、ほとんどのディストリビューションには独自のファイアウォールツールがあります。最終的にはiptables
を呼び出すだけですが、作者は何らかの理由でiptablesの動作を難読化することがユーザーの望みであると信じています。
あなたの質問に答えるために-おそらくあなたのファイアウォールはこのNATルールを自動的に追加するように構成することができます。しかし正確な方法は正当な理由もなくLinuxディストリビューション間で異なります。悲しいですが本当です。
私はあらゆる場面でファイアウォールを作成しました。使用する前にREADMEとスクリプトをお読みください。HOSTAPに必要なルールを含めました)
必須パーツ:
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 wlan0 -o eth0 -j ACCEPT
iptables -A INPUT -j ACCEPT >> /dev/null 2>&1
iptables -A OUTPUT -j ACCEPT >> /dev/null 2>&1