我有一个列表 access.txt
123.456.4.6
23.56.78.8
21.4.5.77
跑步:
iptables -A INPUT -p tcp -s $i --dport 1234 -j ACCEPT
我的问题在access.txt列表中,每分钟都会出现一个新的IP地址。我每次都需要重新启动 iptables 来获取(添加)新闻 ip 地址。
如何在不重启的情况下添加新闻IP地址?
答案1
对黑名单或白名单使用 ipset,因此 iptables 规则始终相同:
ipset create whitewall hash:net
ipset add whitewall 123.156.4.6
ipset add whitewall 23.56.78.8
ipset add whitewall 21.4.5.77
iptables -A INPUT -i em2 -p tcp --dport 1234 -m set --match-set whitelist src -jACCEPT
现在您可以在重新启动时从 ipset 或或add
获取地址。delete
save
restore
答案2
不起作用,我的赌注在哪里,我创建了 2 个列表
ipset.whitelist.conf
iptables_rules_66
#创建白名单哈希:net family inet hashsize 1024 maxelem 65536
添加白名单 22.21.78.21
添加白名单22.22.44.5
#设置默认链策略
*nat
:预路由接受
:输入接受
:输出接受
: 后布线接受
犯罪
*筛选
:输入下降
:向前下降
:输出接受
:fail2ban-ssh - [0:0]
失败 2 条禁令规则(让它们始终排在第一位)
-A 输入 -p tcp -m 多端口 --dports 22 -jfail2ban-ssh
允许已建立的会话接收流量
-A 输入 -m conntrack --ctstate 已建立,相关 -j 接受 -A 输入 -p icmp -s 10.0.0.0/8 -j 接受
-A 输入 -p tcp -s 10.66.0.0/10 -j 接受
-A INPUT -p tcp -m tcp --dport 1963 -m set --match-set 白名单 src -j
接受
-A INPUT -p tcp -m tcp --dport 1234 -m set --match-set 白名单 src -j 接受
-A INPUT -p tcp -m tcp --dport 80 -m set --match-set 白名单 src -j 接受
从第二台服务器允许一切
-A 输入 -s xx.xx.xx.x -j 接受
允许 VPN 80-1945-4546
-A 输入 -i tun0 -p tcp --dport 80 -j 接受
-A 输入 -i tun0 -p tcp --dport 1945 -j 接受
-A 输入 -i tun0 -p tcp --dport 7000 -j 接受
-A 输入 -i tun0 -p tcp --dport 8096 -j 接受
在本地主机上接受
-A 输入 -i lo -j 接受
-A 输出 -o lo -j 接受
犯罪
#/sbin/ipset 恢复 < /etc/ipset.whitelist.conf
/sbin/iptables-restore < /etc/iptables_rules_66
不工作