1. 首页
  2. 系统运维
  3. Linux

HAProxy使用GeoIP禁止某个国家IP访问

如何让HAProxy使用GeoIP禁止某个国家IP访问?接下来我们使用GeoIP来过滤,而GeoIP数据库,一般都会保持更新,这个可以通过访问maxmind网站下载。GeoIP里包含我们要阻止的国家/地区的所有子网,获取这些子网后我们可以通过HAproxy的ACL来控制。

一、下载需要的安装包

 yum install wget unzip gcc 

二、下载

git clone https://github.com/berkayunal/haproxy-geoip-iprange.git
wget http://geolite.maxmind.com/download/geoip/database/GeoIPCountryCSV.zip

三、解压 GeoIP 数据库

unzip GeoIPCountryCSV.zip 

四、格式化IP范围

cut -d, -f1,2,5 GeoIPCountryWhois.csv | head 
cut -d, -f1,2,5 GeoIPCountryWhois.csv | head | ./iprange 

再次剪切文件,以将子网分成文件

cut -d, -f1,2,5 GeoIPCountryWhois.csv | ./iprange | sed 's/"//g' | awk -F' ' '{ print $1 >> $2".subnets" }' 

五、获取子网

我们将获得234个根据状态解析的子网文件

HAProxy使用GeoIP禁止某个国家IP访问

六、设置ACL规则

接下来,我们将尝试通过子网ID使中国以外的国家/地区无法访问我们的网站。

#Access Control List 
acl indo-sub src -f /etc/haproxy/CN.subnets
tcp-request connection reject if !indo-sub

七、测试

测试后发现其他国家的IP都无法通过HAProxy访问了。

联系我们

0574-55011290

QQ:248687950

邮件:admin@nbhao.org

工作时间:周一至周五,9:00-18:00,节假日休息

QR code