Jam*_*son 6 networking linux firewall iptables ipsec
我正在使用 IPSet 为不同国家/地区构建 IP 范围,如下所示:
# Canada
ipset -F ca.zone
ipset -N ca.zone nethash
for IP in $(wget -O - http://www.ipdeny.com/ipblocks/data/countries/ca.zone)
do ipset -A ca.zone $IP
echo $IP
done
Run Code Online (Sandbox Code Playgroud)
然后,我使用以下 iptables 规则从服务器上的某些端口阻止这些国家/地区:
iptables -A INPUT -m set --match-set fr.zone src -p tcp --dport 15765 -j DROP
iptables -A INPUT -m set --match-set cn.zone src -p tcp --dport 15765 -j DROP
iptables -A INPUT -m set --match-set ca.zone src -p tcp --dport 16247 -j DROP
iptables -A INPUT -m set --match-set de.zone src -p tcp --dport 16247 -j DROP
Run Code Online (Sandbox Code Playgroud)
这一切都很好,但我想通过只允许某些 IPSet 国家/地区 ip 范围来为某些端口实现相反的目标。例如,阻止除我的 uk.zone 和 th.zone 集内的 IP 之外的所有 IP。
我需要什么 iptables 规则来实现这一目标?
颠倒假设:允许通过你想要的那些,然后拒绝其余的:
iptables -A INPUT -m set --match-set uk.zone src -p tcp --dport 15765 -j ACCEPT
iptables -A INPUT -m set --match-set th.zone src -p tcp --dport 15765 -j ACCEPT
iptables -A INPUT -p tcp --dport 15765 -j DROP
Run Code Online (Sandbox Code Playgroud)
(对于端口 16247 也类似,或者尝试巧妙地使用-m multiport)。请注意,顺序很重要:例外 ( ACCEPTs) 需要出现在规则 ( DROP)之前。
| 归档时间: |
|
| 查看次数: |
7186 次 |
| 最近记录: |