私は私のubuntuサーバーファイアウォールを構成するのにいくつかの問題があります...私の状況はこれです:
eth0->インターネット
eth1-> lan1
eth2-> lan2
一部の特定のサービスを除いて、lan1のクライアントがlan2のクライアントと通信できないようにしたい。例えば。 lan1のクライアントがlan2のクライアントにSSH接続できるようにしたいのですが、それだけです。その他の通信は禁止されています。
だから、私はこのルールをiptablesに追加します:
#Block all traffic between lan, but permit traffic to internet
iptables -I FORWARD -i eth1 -o ! eth0 -j DROP
iptables -I FORWARD -i eth2 -o ! eth0 -j DROP
# Accept ssh traffic from lan1 to client 192.168.20.2 in lan2
iptables -A FORWARD -i eth1 -o eth2 -p tcp --dport 22 -d 192.168.20.2 -j ACCEPT
これは機能しませんでした。 iptables -L FORWARD -vを実行すると、次のようになります。
Chain FORWARD (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
33 144 DROP all -- eth1 !eth0 anywhere anywhere
0 0 DROP all -- eth2 !eth0 anywhere anywhere
23630 20M ACCEPT all -- any any anywhere anywhere state RELATED,ESTABLISHED
0 0 ACCEPT all -- eth1 any anywhere anywhere
175 9957 ACCEPT all -- eth1 any anywhere anywhere
107 6420 ACCEPT all -- eth2 any anywhere anywhere
0 0 ACCEPT all -- pptp+ any anywhere anywhere
0 0 ACCEPT all -- tun+ any anywhere anywhere
0 0 ACCEPT tcp -- eth1 eth2 anywhere server2.lan tcp dpt:ssh
すべてのパケットがドロップされ、最後のルールのパケット数は0です。
構成を変更するにはどうすればよいですか?ありがとうございました。
よろしくマルコ
DROPはチェーンの最前線にあります(最初に処理されます)。 SSHルールのSSHアクセスを許可するルールの後にDROPを配置する必要があります。
このようなものが機能するはずです:
#Accept ssh traffic from lan1 to client 192.168.20.2 in lan2
iptables -A FORWARD -i eth1 -o eth2 -p tcp --dport 22 -d 192.168.20.2 -j ACCEPT
#Block all traffic between lan, but permit traffic to internet
iptables -A FORWARD -i eth1 -o ! eth0 -j DROP
iptables -A FORWARD -i eth2 -o ! eth0 -j DROP
(-Aを使用して、これらのルールをチェーンの最後に追加します)