zeroznet/dropshit
GitHub: zeroznet/dropshit
一款自动下载威胁情报并加载到 nftables 或 PF 防火墙的黑名单管理工具,解决 IP 封禁的自动化与原子更新问题。
Stars: 0 | Forks: 0
# dropshit
下载威胁情报黑名单并将其加载到防火墙丢弃表中。
## 功能
- 从 Spamhaus 和 FireHol 获取 11 个黑名单(Tor 出口、DDoS 网络、网络犯罪、滥用者等)
- 移除注释、去重并清理条目
- 可选合并本地手动黑名单(默认为 `~/work/dropshit.txt`)
- 原子化更新防火墙规则
## 支持的系统
| 系统 | 防火墙 | 机制 |
|------|--------|------|
| Linux(Debian 13+) | nftables | 管理 `table inet dropshit`,包含 IPv4/IPv6 集合和输入丢弃链 |
| FreeBSD | PF | 通过 `pfctl` 替换 `` 表 |
## 安装
```
curl -fsSL https://raw.githubusercontent.com/zeroznet/dropshit/main/dropshit.sh \
-o /usr/local/sbin/dropshit && chmod +x /usr/local/sbin/dropshit
```
不带 `curl` 的 FreeBSD:
```
fetch -q -o /usr/local/sbin/dropshit \
https://raw.githubusercontent.com/zeroznet/dropshit/main/dropshit.sh
chmod +x /usr/local/sbin/dropshit
```
## 定时任务配置
```
@hourly root /usr/local/sbin/dropshit >/dev/null
```
## FreeBSD 前置条件
你的 `pf.conf` 必须在运行脚本前定义好表和丢弃规则:
```
table persist file "/var/db/dropshit.txt"
block drop in log quick on $ext_if from
```
脚本仅更新表数据 — PF 规则保留在 `pf.conf` 中。
## 可选手动黑名单
在脚本中(或通过环境变量)设置 `MANUAL_LIST` 以包含自定义条目。
默认路径:`~/work/dropshit.txt`。如果文件不存在则静默跳过。
## 许可证
根据 BSD-2-Clause 许可证授权。详见 LICENSE 文件。
标签:BSD, Cron, Cutter, Debian, DNS 阻断, FreeBSD, IP 阻断, nftables, PB级数据处理, PF, Shell, 入侵防御, 原子更新, 去重, 威胁情报, 安全运维, 定时任务, 开发者工具, 数据挖掘, 本地合并, 网络调试, 网络防护, 脚本, 自动化, 评论清理, 进程监控, 防火墙, 黑名单