今年我曾两次遭受中国防火墙的 DDos 攻击。
现在我从下载区域文件http://www.ipdeny.com/ipblocks/.我想做这些事情:
- 如果任何地方的人想要连接到我服务器的特定端口,都可以进来。
- 如果来自中国的人想要连接到我的服务器的任何其他端口,则所有数据包都应该被丢弃。来自其他国家的任何其他人都可以正确连接到我的服务器。
我能怎么做?
我使用 Cloudflare CDN 免费计划,但我只想在我的服务器上执行上述操作。
答案1
如果您正在使用iptables
它将返回第一个匹配规则。例如,如果您想允许 http 并拒绝中国的其他端口,请确保 http 允许规则排在第一位:
iptables -A INPUT -d myhost --dport 80 -j ACCEPT
iptables -A INPUT -m set --match-set china src -j DROP
使用上述语句,您将需要ipset
使用以下命令创建一个 for china :
ipset create china hash:net
while read line; do ipset add china $line; done < china.ipblock-file
答案2
如果您想阻止使用 Apache 模块,那么您也可以尝试以下操作:
MaxMindDBEnable On
MaxMindDBFile DB /path/to/GeoIP/GeoLite2-Country.mmdb
MaxMindDBEnv MM_COUNTRY_CODE DB/country/iso_code
SetEnvIf MM_COUNTRY_CODE ^(CN|RU|DE|FR) BlockCountry
Deny from env=BlockCountry