685b29a0459b4f7d7d72272ff613adced309f2a6
DenyIP
概述
DenyIP 是一个用于保护大陆服务器免受非本地业务访问的防火墙工具。通过结合 libpcap、libipset、ip2region 和 Go ipquery,该工具能够高效地捕获网络数据包、提取源IP地址、进行地理位置判断,并将非大陆IP地址添加到IP黑名单中,从而严格限制非大陆来源的访问。
特点
- 数据包捕获:使用
libpcap捕获网络数据包,提取源IP地址。 - IP黑名单管理:使用
libipset管理IP黑名单,高效存储和匹配IP地址。 - 初步IP地域判定:使用
ip2region库进行初步的IP地理位置判断。 - 精确IP地理位置判断:使用
Go ipquery进一步精准识别IP地理位置。 - 灵活的命令行选项:支持守护进程模式、指定网络接口、启用/禁用Iptables规则等。
安装
依赖项
在 Debian 系统上安装所需的开发工具和库:
sudo apt update
sudo apt install build-essential golang
sudo apt install libpcap-dev libcap-dev libipset-dev libsystemd-dev
在 Centos 7 系统上安装所需的开发工具和库:
yum groupinstall "Development Tools" -y
yum install ipset-devel libattr-devel libpcap-devel libcap-devel
下载项目
克隆项目仓库:
git clone https://git.aixiao.me/DenyIP.git
cd DenyIP
构建
编译项目:
cd DenyIP
make clean
make ipquery
make
使用方法
命令行选项
root@NIUYULING:/mnt/c/Users/root/Desktop/git.aixiao.me/DenyIP# ./denyip -h
DenyIP version 0.2
拒绝Linux服务器非大陆IP工具
MAIL: aixiao@aixiao.me
Date: 20241024
Usage: denyip [-d] [-i <interface>] [-s <start|stop>] [-h|-?]
-d --daemon Daemon mode
-i --interface interface (default eth0)
-l print iptables rule
-s --signal regular signal (default start|stop)
start Enable Iptables rule
stop Disable Iptables rule
-h|-? Help Information
root@NIUYULING:/mnt/c/Users/root/Desktop/git.aixiao.me/DenyIP#
示例命令
-
启动守护进程:
./denyip -d -i eth0 -
启用Iptables规则:
./denyip -s start -
禁用Iptables规则:
./denyip -s stop -
查看帮助信息:
./denyip -h -
关闭守护进程:
killall -15 denyip
贡献
欢迎贡献代码和提出改进建议!请通过 Pull Request 或 Issue 的方式提交。
联系信息
- 邮箱:aixiao@aixiao.me
- 日期:20241024
许可证
本项目遵循 GNU 许可证,详情参见 LICENSE 文件。
希望这个 README.md 文件能够帮助您更好地介绍和使用 DenyIP 项目。如果有任何其他需求或修改,请随时告知。
稳定版本0.2
Latest
Languages
C
90.2%
CMake
3.4%
M4
3%
Shell
1.5%
Go
1.2%
Other
0.7%