我想将 IP 范围 xxx.xx.xxx.x/yy 列入白名单iptables
。我已经测试了许多变体,但没有成功,例如:
iptables -A INPUT -s xxx.xx.xxx.x/yy -j ACCEPT
iptables -A INPUT -i eth0 -s xxx.xx.xxx.x/yy -j ACCEPT
iptables -A INPUT -i eth1 -s xxx.xx.xxx.x/yy -j ACCEPT
iptables -A OUTPUT -o eth0 -d xxx.xx.xxx.x/yy -j ACCEPT
iptables -A OUTPUT -o eth1 -d xxx.xx.xxx.x/yy -j ACCEPT
我希望有一个人可以帮助我 :-)
答案1
开始吧
清除现有链
sudo iptables --flush
sudo iptables --delete-chain
允许环回
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A OUTPUT -o lo -j ACCEPT
可选:允许所有 ICMP
sudo iptables -A INPUT -p icmp --icmp-type any -j ACCEPT
sudo iptables -A OUTPUT -p icmp -j ACCEPT
允许已建立的连接
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
然后规则所有传入流量来自xxx.xx.xxx.x/yy
sudo iptables -A INPUT -m state --state NEW -s xxx.xx.xxx.x/yy -j ACCEPT
全部拒绝接受以上规则
sudo iptables -A INPUT -j DROP
默认策略
sudo iptables -P INPUT DROP
sudo iptables -P OUTPUT ACCEPT
节省
sudo service iptables save
尝试。
答案2
如果你想白名单该前缀,我假设您有一个匹配更大范围(可能是 0.0.0.0/0)的规则,该规则拒绝所有流量。您确定该规则没有出现前您的白名单中有任何内容吗? 的输出是什么iptables --line-numbers --list -n
?