# ipblack **Repository Path**: matrixonline/ipblack ## Basic Information - **Project Name**: ipblack - **Description**: 禁止外国ip访问服务 - **Primary Language**: PHP - **License**: BSD-2-Clause - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2021-07-05 - **Last Updated**: 2023-02-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 禁用国外ip访问 - 简介 由于刚建站完毕没几天,看到`nginx`访问日志出现大量404,防止服务器被中病毒,并且很多ip是国外的,因此写一个脚本禁止这些非法ip.分析`nginx`访问日志,分析ip是否是国内ip,若不是国内ip直接永久拒绝此ip访问 - 核心功能 根据国内路由文件判断是否是[中国ip地址](https://raw.githubusercontent.com/ym/chnroutes2/master/chnroutes.txt) - 流程 `shell`调起`php`脚本扫描`nginx`访问日志目录,对比白名单缓存ip和黑名单缓存ip(防止接口请求限制),请求ip定位接口,添加到服务器防火墙`iptables`里. - 使用 1.配置项目根目录下`config.php`(复制config-demo.php)里`SITE_LOG_PATH`为`nginx`访问日志目录, 2.配置`iptables.sh`里`PHP_COMMAND`为`php`命令所在文件目录,给可执行权限: ```shell script chmod +x iptables.sh ``` 3.添加定时任务 ```shell script #每分钟扫描一次nginx访问日志 * * * * * /bin/bash /path/iptables.sh >> /path/run.log ``` - 建议配合fail2ban使用.防止国内的非法访问.不知道`bantime`怎么设置永久禁止 - 也可用`ipset`设置黑名单集合,具体查看根目录下`ipset.sh`