Iptablesを使用して2つのイーサネットポートを処理するにはどうすればよいですか?
lAN用のeth0ポート(192.168.1.50プライベートIP)。
eth1ポートは、ケーブルモデム(80.0.xxx.xxxパブリックIP)を介してインターネットに接続されています。
ifconfig
outout:
eth0 Link encap:Ethernet HWaddr 00:19:99:C1:86:BB
inet addr:192.168.1.50 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:137532 errors:0 dropped:0 overruns:0 frame:0
TX packets:55658 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:99968969 (95.3 MiB) TX bytes:10403525 (9.9 MiB)
Interrupt:50 Memory:fe700000-fe720000
eth1 Link encap:Ethernet HWaddr 00:19:99:C1:61:3B
inet addr:80.0.xxx.xxx Bcast:255.255.255.255 Mask:255.255.252.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:144558 errors:0 dropped:0 overruns:0 frame:0
TX packets:70347 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:34500131 (32.9 MiB) TX bytes:27893843 (26.6 MiB)
Interrupt:177 Memory:fe600000-fe620000
Iptablesを使用してeth1
へのすべての着信ルートをブロックするが、ポート22のみを許可する方法。インターネット側でWebサーバーやftpサーバーなどにアクセスできないようにします。SSHアクセスにはポート22のみを許可します。 pingも機能するはずです。
ローカルネットワーク(eth0
)には、70を超えるクライアントPCがあります-サーバー上のすべてにアクセスできるはずですが、内部ローカルIPの192.168.1.20と192.168.1.30が192.168.1.50(プライベート)にアクセスするのをブロックするだけです。 ip)サーバー。
Iptablesを使用してどのように行うことができますか?
-i device
および-o device
を使用して、イーサネットデバイスを照合できます。例えば。、
iptables -P INPUT DROP
iptables -A INPUT -i lo -j ACCEPT # must allow machine to talk to itself, else much breakage.
iptables -A INPUT -i eth0 -j ACCEPT
iptables -A INPUT -i eth1 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -i eth1 -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
または類似。 -s
/-d
を使用して、送信元と宛先のIPアドレスでフィルタリングすることもできます。
代わりに-i lan
&-i wan
を使用できるように、イーサネットインターフェイスに名前を付けることをお勧めします。 udevルールでそれらに名前を付けることができます。 Debianでは、/etc/udev/rules.d/70-persistent-net.rules
を編集します。
PS:WANインターフェースをフィルタリングするとき、DHCPを使用している場合は、DHCPが引き続き機能することを確認してください。そうしないと、リースの期限が切れると接続が不思議に切断されます。