Linux
iptables - 阻止來自 Eth1 的傳入並允許來自 eth0 的所有
我有點堅持使用 iptables 來處理兩個乙太網埠。
用於 LAN 的 eth0 埠(192.168.1.50 私有 IP)。
eth1 埠通過電纜調製解調器(80.0.xxx.xxx 公共 IP)連接到網際網路。
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
我想阻止所有傳入的路由,
eth1
但只允許埠 21。只是為了讓外部 IP 無法訪問我們的 Web 伺服器、ftp 伺服器等。只允許埠 21 進行 SSH 訪問。平也應該工作。在本地網路(eth0)上,任何人都應該能夠訪問任何東西,只是阻止本地 ip 的 192.168.1.20 和 192.168.1.30 訪問 192.168.1.50 伺服器。
如何使用 iptables 完成?
我想阻止所有到 eth1 的傳入路由,但只允許埠 21。只是為了讓外部 IP 無法訪問我們的 Web 伺服器、ftp 伺服器等。只允許埠 21 進行 SSH 訪問。平也應該工作。
最乾淨的方法是將 web/ftp-servers 配置為僅在內部介面上偵聽。這樣,您根本不必擔心任何與網路相關的技術。
如果您因任何原因不能這樣做,請應用以下規則:
iptables -A INPUT -i eth1 -p icmp -j ACCEPT # allow ping iptables -A INPUT -i eth1 -p tcp --dport 21 -j ACCEPT # allow SSH iptables -A INPUT -i eth1 -j DROP # drop everything else
(順便說一下,SSH 的預設埠是 22,但我認為您最清楚 SSH 監聽的位置。)
在本地網路(eth0)上,任何人都應該能夠訪問任何東西,只是阻止本地 ip 的 192.168.1.20 和 192.168.1.30 訪問 192.168.1.50 伺服器。
簡單的:
iptables -A INPUT -i eth0 -s 192.168.1.20 -j DROP iptables -A INPUT -i eth0 -s 192.168.1.30 -j DROP
這會丟棄來自這些主機的所有數據包。如果您希望此處也允許 ping,請對 icmp 使用類似的規則,如 eth1 上的規則。