在iptables中添加新的过滤规则,通常需要使用iptables命令。以下是一些基本的步骤和示例,用于向iptables添加新的过滤规则:
iptables有多个预定义的链,如INPUT、OUTPUT和FORWARD。你需要确定要在哪个链上添加规则。
iptables规则可以有四种动作:
ACCEPT:允许数据包通过。DROP:丢弃数据包,不给出任何回应。REJECT:拒绝数据包,并给出一个错误响应。LOG:记录数据包信息到系统日志。你可以根据多种条件来匹配数据包,如源IP地址、目的IP地址、端口号、协议类型等。
sudo iptables -A INPUT -p tcp --dport 22 -s 192.168.1.100 -j ACCEPT
解释:
-A INPUT:在INPUT链上追加规则。-p tcp:指定协议为TCP。--dport 22:指定目的端口为22(SSH端口)。-s 192.168.1.100:指定源IP地址为192.168.1.100。-j ACCEPT:如果匹配条件满足,则接受数据包。sudo iptables -A INPUT -s 192.168.1.100 -j DROP
解释:
-A INPUT:在INPUT链上追加规则。-s 192.168.1.100:指定源IP地址为192.168.1.100。-j DROP:如果匹配条件满足,则丢弃数据包。sudo iptables -A INPUT -p icmp -j LOG --log-prefix "ICMP Packet Detected: "
解释:
-A INPUT:在INPUT链上追加规则。-p icmp:指定协议为ICMP。-j LOG --log-prefix "ICMP Packet Detected: ":如果匹配条件满足,则记录数据包信息到系统日志,并添加前缀"ICMP Packet Detected: "。在某些Linux发行版中,iptables规则在系统重启后会丢失。为了持久化规则,你需要保存它们。
iptables-save和iptables-restoresudo iptables-save > /etc/iptables/rules.v4
sudo iptables-restore < /etc/iptables/rules.v4
netfilter-persistent在Debian及其衍生版中,可以使用netfilter-persistent服务来保存和恢复iptables规则。
sudo netfilter-persistent save
sudo netfilter-persistent reload
通过这些步骤,你可以向iptables添加新的过滤规则,并确保它们在系统重启后仍然有效。