Iptables:如何只允许一个 IP 通过特定端口?

Iptables:如何只允许一个 IP 通过特定端口?

在我的 ubuntu 服务器上,Iptables 怎样才能只允许特定端口上有一个 IP 地址?

谢谢

答案1

一句话:

iptables -I INPUT \! --src 1.2.3.4 -m tcp -p tcp --dport 777 -j DROP  # if it's not 1.2.3.4, drop it

更优雅的解决方案:

iptables -N xxx  # create a new chain named xxx
iptables -A xxx --src 1.2.3.4 -j ACCEPT  # allow 1.2.3.4
iptables -A xxx --src 1.2.3.5 -j ACCEPT  # allow 1.2.3.5
iptables -A xxx --src 1.2.3.6 -j ACCEPT  # allow 1.2.3.6
iptables -A xxx -j DROP  # drop everyone else
iptables -I INPUT -m tcp -p tcp --dport 777 -j xxx  # use chain xxx for packets coming to TCP port 777

答案2

下面是我的一个 CentOS 系统中的示例(地址已被混淆):

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp -s 1.2.3.4 -d 5.6.7.8 --dport 22 -j ACCEPT

答案3

我使用 shorewall 配置 IP 表。使用类似接受从一个主机到端口 123 的规则。

接受网络:192.0.2.1 $FW tcp 1234

相关内容