From 782debcd74e8d1f9f7092ddf6253feb04e9a461b Mon Sep 17 00:00:00 2001 From: aixiao Date: Tue, 29 Oct 2024 10:49:41 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9MD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 139 +++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 96 insertions(+), 43 deletions(-) diff --git a/README.md b/README.md index 60fea37..34787d4 100644 --- a/README.md +++ b/README.md @@ -1,53 +1,106 @@ -# denyip +# DenyIP: 拒绝非大陆IP访问的Linux服务器防火墙工具 -针对非国际业务的Linux服务器构建防火墙策略: +## 概述 -利用 libpcap 抓取网络包,从中提取源IP地址。 -使用 libipset 实现IP黑名单管理,将不符合访问条件的IP添加至黑名单集合。 -结合 ip2region 库进行初步的IP地域判定,筛选大陆以外的IP地址。 -通过 Go ipquery 进一步精准识别IP地理位置,将确认的非大陆IP加入到 ipset 集合,严格限制非大陆来源的访问。 -此方案能有效保护大陆服务器免受非本地业务访问,提高访问控制的精度与效率。 +`DenyIP` 是一个用于保护大陆服务器免受非本地业务访问的防火墙工具。通过结合 `libpcap`、`libipset`、`ip2region` 和 `Go ipquery`,该工具能够高效地捕获网络数据包、提取源IP地址、进行地理位置判断,并将非大陆IP地址添加到IP黑名单中,从而严格限制非大陆来源的访问。 -## Build +## 特点 -~~~bash -# Debian System -apt install build-essential -apt install golang -apt install libpcap-dev libcap-dev libsystemd-dev +- **数据包捕获**:使用 `libpcap` 捕获网络数据包,提取源IP地址。 +- **IP黑名单管理**:使用 `libipset` 管理IP黑名单,高效存储和匹配IP地址。 +- **初步IP地域判定**:使用 `ip2region` 库进行初步的IP地理位置判断。 +- **精确IP地理位置判断**:使用 `Go ipquery` 进一步精准识别IP地理位置。 +- **灵活的命令行选项**:支持守护进程模式、指定网络接口、启用/禁用Iptables规则等。 -root@NIUYULING:/mnt/c/Users/root/Desktop/git.aixiao.me/DenyIP# make clean; make -rm -rf a.out ipquery -rm -rf cap.o common.o ip2region/ip2region.o ip2region/xdb_searcher.o libipset.o -gcc -g -Wall -Iip2region -c cap.c -o cap.o -gcc -g -Wall -Iip2region -c common.c -o common.o -gcc -g -Wall -Iip2region -c ip2region/ip2region.c -o ip2region/ip2region.o -gcc -g -Wall -Iip2region -c ip2region/xdb_searcher.c -o ip2region/xdb_searcher.o -gcc -g -Wall -Iip2region -c libipset.c -o libipset.o -gcc -g -Wall -Iip2region -o a.out cap.o common.o ip2region/ip2region.o ip2region/xdb_searcher.o libipset.o -lpcap -ldbus-1 -lsystemd -L/usr/lib64 -lcap -lipset -lmnl -root@NIUYULING:/mnt/c/Users/root/Desktop/git.aixiao.me/DenyIP# -~~~ +## 安装 -### Help +### 依赖项 -~~~bash +在 Debian 系统上安装所需的开发工具和库: -root@NIUYULING:/mnt/c/Users/root/Desktop/git.aixiao.me/DenyIP# ./a.out -h -DenyIP version 0.2 -拒绝Linux服务器非大陆IP工具 -MAIL: aixiao@aixiao.me -Date: 20241024 - Usage: denyip [-d] [-i ] [-s ] [-h|-?] - -d Daemon mode - -i interface (default eth0) - -s regular signal (default start|stop) - start Enable Iptables rule - stop Disable Iptables rule - -h|-? Help Information +```bash +sudo apt update +sudo apt install build-essential golang libpcap-dev libcap-dev libsystemd-dev +``` + +### 下载项目 + +克隆项目仓库: + +```bash +git clone https://git.aixiao.me/DenyIP.git +cd DenyIP +``` + +## 构建 + +编译项目: + +```bash +make clean +make +``` + +## 使用方法 + +### 命令行选项 + +```bash +Usage: denyip [-d] [-i ] [-s ] [-h|-?] + -d Daemon mode + -i interface (default eth0) + -s regular signal (default start|stop) + start Enable Iptables rule + stop Disable Iptables rule + -h|-? Help Information +``` + +### 示例命令 + +- **启动守护进程**: + + ```bash + ./denyip -d -i eth0 + ``` + +- **启用Iptables规则**: + + ```bash + ./denyip -s start + ``` + +- **禁用Iptables规则**: + + ```bash + ./denyip -s stop + ``` + +- **查看帮助信息**: + + ```bash + ./denyip -h + ``` + +- **关闭守护进程**: + + ```bash + killall -15 denyip + ``` -root@niuyuling:~/DenyIP# killall -15 denyip # 关闭 -root@niuyuling:~/DenyIP# ./denyip -i eth0 # 启动 -root@niuyuling:~/DenyIP# ./denyip -s start # Iptables 规则打开 -root@niuyuling:~/DenyIP# ./denyip -s stop # Iptables 规则关闭 -~~~ +## 贡献 + +欢迎贡献代码和提出改进建议!请通过 Pull Request 或 Issue 的方式提交。 + +## 联系信息 + +- **邮箱**: +- **日期**:20241024 + +## 许可证 + +本项目遵循 MIT 许可证,详情参见 [LICENSE](LICENSE) 文件。 + +--- + +希望这个 `README.md` 文件能够帮助您更好地介绍和使用 `DenyIP` 项目。如果有任何其他需求或修改,请随时告知。 \ No newline at end of file