我想阻止所有IP(CIDR 0.0.0.0/0),除了SSH,FTP和SMTP端口的德国IP。 所以,这些端口的默认策略应该是“DROP”。 我有一个所有德国IP CIDR范围列表将在“接受”列表。
我还没有理解iptables是如何工作的,需要语法的帮助。 我还没有find如何configuration特定主机有2个互斥规则ACCEPT和DROP时的行为。 我有一台虚拟机上的Debian Linux,但是我无法testing,因为我的networking中只有一台计算机,所以我不能testingIP范围是否被拒绝。
另外,是否有可能告诉iptables接受一个dynamic主机名,例如一个DynDns主机名,后面的IP地址总是被更改?
我的想法是(未经testing):
iptables -I INPUT -s 0.0.0.0/0 --dport 21 -j DROP iptables -I INPUT -s 1.2.3.4 --dport 21 -j ACCEPT
1.2.3.4是一个允许的IP示例。
丹尼尔,
你可能会想要沿着这个方向行事。 这只是从Red Hat的/ etc / sysconfig / iptables文件中直接删除。
*filter :INPUT DROP [0:0] :FORWARD DROP [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -i lo -j ACCEPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -s 10.1.1.0/24 -p tcp -m multiport --dports 22,80,443,5666 -j ACCEPT -A INPUT -s 10.2.2.2 -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT COMMIT
如您所见,input的默认策略是丢弃。 所以你不必做任何特定的放置规则。 你只需要说出你想要的就可以了。 在我的例子中,我已经展示了在哪里可以为1个规则执行多个协议,或者为1个规则执行单个协议。
编辑:下面是一个示例脚本,您可以使用它来创build您的iptable规则。
#!/bin/bash # Iptables configuration script # Flush all current rules from iptables /sbin/iptables -F # Loopback address /sbin/iptables -A INPUT -i lo -j ACCEPT # Allowed any established connections /sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # Allow FTP and SSH from specific IPs /sbin/iptables -A INPUT -s 10.0.2.0/24 -p tcp -m state --state NEW -m multiport --dports 21,22 -j ACCEPT # Allow pings from monitoring server /sbin/iptables -A INPUT -s 1.1.1.1 -p icmp -m icmp --icmp-type any -j ACCEPT # Allow web server access from anywhere /sbin/iptables -A INPUT -p tcp -m multiport --dports 80,443 -j ACCEPT # Drop rules to prevent them from entering the logs /sbin/iptables -A INPUT -p tcp -m multiport --dports 135,137,138 -j DROP /sbin/iptables -A INPUT -p udp -m multiport --dports 135,137,138 -j DROP /sbin/iptables -A INPUT -p all -d 255.255.255.255 -j DROP # Log dropped traffic /sbin/iptables -A INPUT -j LOG -m limit --limit 10/m --log-level 4 --log-prefix "Dropped Traffic: " # Set default policies for INPUT, FORWARD and OUTPUT chains /sbin/iptables -P INPUT DROP /sbin/iptables -P FORWARD DROP /sbin/iptables -P OUTPUT ACCEPT # Save settings /sbin/service iptables save # List rules /sbin/iptables -L -v