修改MD
This commit is contained in:
139
README.md
139
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 <interface>] [-s <start|stop>] [-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 <interface>] [-s <start|stop>] [-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 的方式提交。
|
||||
|
||||
## 联系信息
|
||||
|
||||
- **邮箱**:<aixiao@aixiao.me>
|
||||
- **日期**:20241024
|
||||
|
||||
## 许可证
|
||||
|
||||
本项目遵循 MIT 许可证,详情参见 [LICENSE](LICENSE) 文件。
|
||||
|
||||
---
|
||||
|
||||
希望这个 `README.md` 文件能够帮助您更好地介绍和使用 `DenyIP` 项目。如果有任何其他需求或修改,请随时告知。
|
||||
Reference in New Issue
Block a user