nftables-blacklist新手入门:5分钟内快速部署恶意IP拦截系统
【免费下载链接】nftables-blacklistA bash script to ban large numbers of IP addresses published in blacklists.项目地址: https://gitcode.com/gh_mirrors/ip/nftables-blacklist
你是否担心服务器受到恶意IP攻击?想要快速部署一个高效的安全防护系统吗?今天我将为你介绍一个简单易用的解决方案——nftables-blacklist恶意IP拦截系统。这个工具可以帮助你在5分钟内轻松部署,自动屏蔽全球恶意IP地址,为你的服务器提供强大的第一道防线!🚀
什么是nftables-blacklist?
nftables-blacklist是一个基于Bash脚本的自动化工具,专门用于保护Linux服务器免受恶意IP地址的攻击。它通过自动下载公开的黑名单列表,使用现代防火墙技术nftables来阻止这些IP访问你的服务器。无论是脚本小子、僵尸网络还是其他不受欢迎的流量,都能被有效拦截。
核心功能亮点 ✨
- 自动更新:定期从多个权威黑名单源获取最新的恶意IP列表
- 智能合并:自动合并重叠的IP范围,优化防火墙规则
- 双栈支持:同时支持IPv4和IPv6地址拦截
- 防误伤机制:自动检测并白名单你的服务器IP,避免自我封锁
- 高性能处理:轻松处理10万+IP地址,不影响服务器性能
快速部署指南:5分钟搞定!
第一步:准备工作
确保你的系统是Debian 10+或Ubuntu 20.04+(其他支持nftables的Linux发行版也可用),然后安装必要的工具:
sudo apt update sudo apt install curl iprange第二步:下载安装脚本
从官方仓库获取最新版本的脚本:
sudo curl -fsSL -o /usr/local/sbin/update-blacklist.sh \ https://raw.githubusercontent.com/trick77/nftables-blacklist/master/update-blacklist.sh sudo chmod +x /usr/local/sbin/update-blacklist.sh第三步:创建配置文件
创建配置目录并下载默认配置文件:
sudo mkdir -p /etc/nftables-blacklist sudo curl -fsSL -o /etc/nftables-blacklist/nftables-blacklist.conf \ https://raw.githubusercontent.com/trick77/nftables-blacklist/master/nftables-blacklist.conf第四步:运行首次更新
执行初始黑名单更新,系统将自动下载并应用防护规则:
sudo /usr/local/sbin/update-blacklist.sh /etc/nftables-blacklist/nftables-blacklist.conf就是这么简单!你的服务器现在已经受到保护了!✅
配置优化技巧
开启自动白名单功能
为了避免误封自己的服务器IP,强烈建议开启自动白名单功能。编辑配置文件/etc/nftables-blacklist/nftables-blacklist.conf:
# 找到这一行,将no改为yes AUTO_WHITELIST=yes自定义黑名单源
你可以根据需要添加或删除黑名单源。配置文件中的BLACKLISTS数组包含了多个权威的黑名单源:
# 示例:添加自定义黑名单 BLACKLISTS=( "https://www.spamhaus.org/drop/drop_v4.json" # Spamhaus DROP列表 "https://lists.blocklist.de/lists/all.txt" # Blocklist.de全列表 "file:///etc/nftables-blacklist/custom.list" # 本地自定义列表 )手动添加白名单
如果你的服务器有固定IP或需要保护特定IP段,可以手动添加到白名单:
WHITELIST=( "203.0.113.10" # 你的服务器IP "203.0.113.0/24" # 你的网络段 "2001:db8::1" # IPv6地址 )自动化更新设置
使用Systemd定时器
为了让黑名单保持最新,建议设置每日自动更新。创建Systemd服务文件:
sudo cat <<'EOF' > /etc/systemd/system/nftables-blacklist-update.timer [Unit] Description=每日更新nftables IP黑名单 [Timer] OnCalendar=*-*-* 23:33:00 Persistent=true [Install] WantedBy=timers.target EOF sudo cat <<'EOF' > /etc/systemd/system/nftables-blacklist-update.service [Unit] Description=更新nftables IP黑名单 After=network-online.target [Service] Type=oneshot ExecStart=/usr/local/sbin/update-blacklist.sh --cron /etc/nftables-blacklist/nftables-blacklist.conf EOF启用定时器:
sudo systemctl daemon-reload sudo systemctl enable --now nftables-blacklist-update.timer查看定时器状态
systemctl list-timers nftables-blacklist-update监控与验证
检查拦截效果
查看有多少恶意流量被成功拦截:
sudo nft list chain inet blacklist input输出示例:
chain input { type filter hook input priority -200; policy accept; ip saddr @blacklist4 counter packets 1523 bytes 91380 drop comment "IPv4黑名单" ip6 saddr @blacklist6 counter packets 42 bytes 3360 drop comment "IPv6黑名单" }验证IP是否被拦截
检查特定IP是否在黑名单中:
# 检查IPv4地址 sudo nft get element inet blacklist blacklist4 '{ 1.2.3.4 }' # 检查IPv6地址 sudo nft get element inet blacklist blacklist6 '{ 2001:db8::1 }'高级功能探索
测试模式(干运行)
在正式应用前进行测试:
sudo update-blacklist.sh --dry-run /etc/nftables-blacklist/nftables-blacklist.conf容器网络保护
如果你的服务器运行Docker或其他容器,可以启用转发链保护:
# 在配置文件中设置 BLOCK_FORWARD=yes性能优化
处理大量IP地址时,可能需要调整内核网络缓冲区:
# 创建优化配置 echo "net.core.rmem_max = 8388608" | sudo tee /etc/sysctl.d/99-nftables.conf echo "net.core.rmem_default = 8388608" | sudo tee -a /etc/sysctl.d/99-nftables.conf # 立即生效 sudo sysctl -p /etc/sysctl.d/99-nftables.conf故障排除指南
常见问题解决
nftables表不存在错误
- 确保配置文件中
FORCE=yes - 脚本会自动创建必要的表和集合
- 确保配置文件中
下载失败
- 检查网络连接
- 确认curl工具已安装
- 可能需要调整超时设置
规则未生效
- 使用
sudo nft list table inet blacklist检查规则 - 确认nftables服务正在运行
- 使用
日志查看
在cron模式下运行会生成结构化日志:
# 查看systemd日志 sudo journalctl -u nftables-blacklist-update.service安全最佳实践
定期审查黑名单源
建议每季度检查一次使用的黑名单源,确保它们仍然可靠且适合你的使用场景。配置文件中的每个源都有不同的更新频率、范围和误报率。
备份配置文件
定期备份你的自定义配置:
sudo cp /etc/nftables-blacklist/nftables-blacklist.conf /etc/nftables-blacklist/nftables-blacklist.conf.backup监控系统性能
虽然nftables-blacklist设计为轻量级,但在处理大量IP时仍建议监控系统资源使用情况。
从旧版本迁移
如果你之前使用过iptables/ipset版本的blacklist,迁移非常简单:
- 移除旧的iptables规则和ipset
- 删除旧的脚本和配置
- 按照本文指南安装新的nftables版本
详细的迁移步骤可以参考项目中的 archive/README.md 文件。
结语
nftables-blacklist恶意IP拦截系统为Linux服务器管理员提供了一个简单、高效、自动化的安全解决方案。通过5分钟的快速部署,你就能为服务器建立起强大的第一道防线,自动拦截全球恶意IP地址。
无论你是个人开发者还是企业运维人员,这个工具都能帮助你:
- ✅节省时间:自动化更新,无需手动维护
- ✅提高安全性:基于多个权威黑名单源
- ✅避免误伤:智能白名单机制
- ✅性能优异:处理10万+IP无压力
现在就开始保护你的服务器吧!🛡️ 如果你在使用过程中遇到任何问题,可以参考项目文档或社区讨论。记住,安全防护是一个持续的过程,定期更新和维护是关键!
注:本文基于nftables-blacklist项目编写,具体配置可能因系统环境而异。建议在生产环境部署前进行充分测试。
【免费下载链接】nftables-blacklistA bash script to ban large numbers of IP addresses published in blacklists.项目地址: https://gitcode.com/gh_mirrors/ip/nftables-blacklist
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考