linux – 如何使用iptables删除美国境外的所有子网

linux – 如何使用iptables删除美国境外的所有子网,第1张

概述我想阻止美国以外的所有子网.我制作了一个包含所有美国子网的脚本.除了我的清单,我想禁止或删除所有内容.有人能给我一个例子,告诉我如何开始拒绝一切吗? 这是-L的输出 Chain INPUT (policy DROP)target prot opt source destinationACCEPT all -- anywhere 我想阻止美国以外的所有子网.我制作了一个包含所有美国子网的脚本.除了我的清单,我想禁止或删除所有内容.有人能给我一个例子,告诉我如何开始拒绝一切吗?

这是-L的输出

Chain input (policy DROP)target     prot opt source               destinationACCEPT     all  --  anywhere             anywhereACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABliSHEDACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ftp state NEWDROP       icmp --  anywhere             anywhereChain FORWARD (policy DROP)target     prot opt source               destinationChain OUTPUT (policy ACCEPT)target     prot opt source               destination

这些都是规则

iptables --Fiptables --policy input DROPiptables --policy FORWARD DROPiptables --policy OUTPUT ACCEPTiptables -A input -i lo -j ACCEPTiptables -A input -i eth0 -m state --state ESTABliSHED,RELATED -j ACCEPTiptables -A input -p tcp -i eth0 --dport 21 -m state --state NEW -j ACCEPTiptables -A input -p icmp -j DROP

为了清楚起见,使用这些规则,我仍然可以在没有子网列表的情况下连接到端口21.我想阻止所有子网,只打开美国境内的子网.

解决方法 如果数据包匹配’接受’,则立即接受.如果它与DROP匹配则立即丢弃.

听起来您只希望美国的主机能够连接到ftp.有几种方法可以实现这一目标.

制定许多像这样的复杂规则.

iptables -P input DROPiptables -A input -i eth0 -m state --state ESTABliSHED,RELATED -j ACCEPTiptables -A input --src 1.2.3.4/24 -p tcp -i eth0 --dport 21 -m state --state NEW -j ACCEPTiptables -A input --src 4.5.6.7/12 -p tcp -i eth0 --dport 21 -m state --state NEW -j ACCEPTiptables -A input --src 8.9.1.2/31 -p tcp -i eth0 --dport 21 -m state --state NEW -j ACCEPT

创建一个新的链,将所有流量发送到链,对所有美国子网使用RETURN,并在链中使用最终规则DROP其他所有内容.这应该是更好的方法,因为将进行较少的条件检查.

iptables -P input DROPiptables -A input -i eth0 -m state --state ESTABliSHED,RELATED -j ACCEPTiptables -N USNETSiptables -A USNETS -s 1.2.3.4/24 -j RETURNiptables -A USNETS -s 4.5.6.7/12 -j RETURNiptables -A USNETS -s 8.9.1.2/31 -j RETURNiptables -A USNETS -j DROP # drop everything that isnt in USNETSiptables -A input -j USNETS # send everything to USNETS# PERMIT traffic thatiptables -A input -p tcp -i eth0 --dport 21 -m state --state NEW -j ACCEPT

通过使用单独的更改,您甚至可以在USNETS链中添加/删除内容,而无需在分配新地址空间时重置整个防火墙.我认真地质疑这个想法是否值得付出努力.外面的人都可以进入,他们只会使用代理.

你甚至可以反过来做,并在链中做所有的端口/服务.

iptables -P input DROPiptables -A input -i eth0 -m state --state ESTABliSHED,RELATED -j ACCEPTiptables -N SRVCSiptables -A SRVCS -p tcp -i eth0 --dport 21 -m state --state NEW -j RETURNiptables -A SRVCS -j DROP # drop everything that isnt in allowed SRVCSiptables -A input -j SRVCS # send everything to SRVCS# PERMIT traffic that has been returned from SRVCSiptables -A input --src 1.2.3.4/24 -j ACCEPTiptables -A input --src 4.5.6.7/12 -j ACCEPTiptables -A input --src 8.9.1.2/31 -j ACCEPT
总结

以上是内存溢出为你收集整理的linux – 如何使用iptables删除美国境外的所有子网全部内容,希望文章能够帮你解决linux – 如何使用iptables删除美国境外的所有子网所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/1035842.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存