iptables - 阻止来自 Eth1 的传入并允许来自 eth0 的所有

I'l*_*ack 5 security linux firewall iptables centos

我有点坚持使用 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
Run Code Online (Sandbox Code Playgroud)

我想阻止所有传入路由,eth1但只允许端口 21。这样外部 IP 就无法访问我们的 Web 服务器、ftp 服务器等。只允许端口 21 进行 SSH 访问。平也应该工作。

在本地网络 (eth0) 上,任何人都应该能够访问任何内容,但只能阻止本地 ip 的 192.168.1.20 和 192.168.1.30 访问 192.168.1.50 服务器。

如何使用 iptables 来完成?

Kar*_*box 7

我想阻止所有到 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
Run Code Online (Sandbox Code Playgroud)

(顺便说一下,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
Run Code Online (Sandbox Code Playgroud)

这会丢弃来自这些主机的所有数据包。如果您也希望此处允许 ping,请对 icmp 使用类似的规则,就像在 eth1 上一样。