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访问。 平也应该工作。

在本地networking(eth0),任何人都应该能够访问任何东西,只是阻止本地IP的192.168.1.20和192.168.1.30从访问192.168.1.50服务器。

如何使用iptables做到这一点?

我想阻塞所有到eth1的传入路由,但只允许端口21.只是为了使外部IP不能访问我们的Web服务器,FTP服务器等,只允许端口21 SSH访问。 平也应该工作。

最简洁的方法是将Web / ftp服务器configuration为仅侦听内部接口。 这样,你就不必担心任何networking相关的技术。

如果因为任何原因不能这样做,请应用这些规则:

 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监听的地方。)


在本地networking(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,那么就像在eth1上使用类似的icmp规则。