背景介绍
公网上的服务器更容易受到攻击
●互联网上有很多扫描器,24小时不间断扫描服务器,然后去尝试获取一定权限,进而控制您的服务器。
●实际运维和查看服务器日志中,发现 大多数发起攻击的服务器在国外 ,如荷兰、美国、新加坡、日本等国家。
●不论我们购买的是云服务器还是IDC机房托管的服务器,只要我们对外提供了一定的服务,就会暴漏服务端口。
解决方案
大多国内公司的服务器都是面向国内用户
能不能禁止国外的IP访问服务器呢?显著提升服务器的安全性,答案是肯定的。
我们首先介绍一些背景知识:
服务器上都是有防火墙工具软件的(Iptables),可以用来过滤和拦截请求
Iptables中包含了一个叫Ipset的模块,支持匹配大批量IP地址段,同时兼具良好的性能
IPdeny IP country blocks 这个网站会定期更新全球分配的IP地址段
接下来我们梳理下禁止国外IP的思路(如下图):
1首先把国内的IP地址段整理到到Ipset中
2接着从Iptables中调用Ipset模块判断来源IP是否在国内的IP地址段中
3最后如果来源IP是国内IP地址就放行,否则就将数据包丢弃。
实现步