124 lines
2.9 KiB
Markdown
124 lines
2.9 KiB
Markdown
# 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 系统上安装所需的开发工具和库:
|
||
|
||
```bash
|
||
sudo apt update
|
||
sudo apt install build-essential golang
|
||
sudo apt install libpcap-dev libcap-dev libipset-dev libsystemd-dev
|
||
```
|
||
|
||
在 Centos 7 系统上安装所需的开发工具和库:
|
||
|
||
```bash
|
||
yum groupinstall "Development Tools" -y
|
||
yum install ipset-devel libattr-devel libpcap-devel libcap-devel
|
||
```
|
||
|
||
### 下载项目
|
||
|
||
克隆项目仓库:
|
||
|
||
```bash
|
||
git clone https://git.aixiao.me/DenyIP.git
|
||
cd DenyIP
|
||
```
|
||
|
||
## 构建
|
||
|
||
编译项目:
|
||
|
||
```bash
|
||
cd DenyIP
|
||
make clean
|
||
make ipquery
|
||
make
|
||
```
|
||
|
||
## 使用方法
|
||
|
||
### 命令行选项
|
||
|
||
```bash
|
||
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#
|
||
```
|
||
|
||
### 示例命令
|
||
|
||
- **启动守护进程**:
|
||
|
||
```bash
|
||
./denyip -d -i eth0
|
||
```
|
||
|
||
- **启用Iptables规则**:
|
||
|
||
```bash
|
||
./denyip -s start
|
||
```
|
||
|
||
- **禁用Iptables规则**:
|
||
|
||
```bash
|
||
./denyip -s stop
|
||
```
|
||
|
||
- **查看帮助信息**:
|
||
|
||
```bash
|
||
./denyip -h
|
||
```
|
||
|
||
- **关闭守护进程**:
|
||
|
||
```bash
|
||
killall -15 denyip
|
||
```
|
||
|
||
## 贡献
|
||
|
||
欢迎贡献代码和提出改进建议!请通过 Pull Request 或 Issue 的方式提交。
|
||
|
||
## 联系信息
|
||
|
||
- **邮箱**:<aixiao@aixiao.me>
|
||
- **日期**:20241024
|
||
|
||
## 许可证
|
||
|
||
本项目遵循 GNU 许可证,详情参见 [LICENSE](LICENSE) 文件。
|
||
|
||
---
|
||
|
||
希望这个 `README.md` 文件能够帮助您更好地介绍和使用 `DenyIP` 项目。如果有任何其他需求或修改,请随时告知。
|