Answers:
一班轮:
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
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
INPUT
为OUTPUT
,则会阻止使用服务器本身某些地址发送的某些数据包(而不是路由/转发)。我怀疑这是否有意义,除非您可能想阻止绑定到某些特定接口的程序。
--src 1.2.3.4/30
iptables -I xxx --src 7.8.9.10 -j ACCEPT
这是我的一个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
service iptables save
。