尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
告别iptables!nftables-blacklist让服务器安全防护更简单高效
告别iptablesnftables-blacklist让服务器安全防护更简单高效【免费下载链接】nftables-blacklistA bash script to ban large numbers of IP addresses published in blacklists.项目地址: https://gitcode.com/gh_mirrors/ip/nftables-blacklistnftables-blacklist是一款基于bash脚本的服务器安全防护工具它能够自动下载公共IP黑名单并使用nftables进行阻止有效抵御脚本小子、僵尸网络和其他恶意流量的攻击。该工具全面支持IPv4、IPv6协议具备CIDR聚合功能内置白名单机制、定时任务调度以及服务器IP自动检测等实用特性为Linux服务器提供简单高效的安全防护解决方案。 为什么选择nftables-blacklist传统的iptables/ipset组合已逐渐被淘汰nftables作为新一代的Linux防火墙工具在性能和功能上都有显著提升。nftables-blacklist正是基于nftables构建的高效IP黑名单管理工具它具有以下核心优势高效处理能力轻松应对10万级别的IP黑名单不会对服务器性能造成明显影响智能IP聚合自动合并重叠的IP范围例如将两个/24网段合并为一个/23网段原子化更新黑名单更新采用事务方式确保规则切换的安全性全面协议支持同时支持IPv4和IPv6协议包括CIDR表示法自动白名单保护能够自动检测服务器自身IP防止意外的自我阻塞 系统要求使用nftables-blacklist需要满足以下条件Debian 10 / Ubuntu 20.04 或其他支持nftables的Linux发行版nftables防火墙工具iprange工具用于合并重叠IP范围和处理白名单减法常用工具curl, grep, sed, sort, wc通常已预装⚡ 快速开始Debian/Ubuntu1. 安装辅助工具首先需要安装必要的辅助工具sudo apt install curl iprange2. 下载脚本使用curl命令下载最新的nftables-blacklist脚本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.sh3. 创建配置目录并下载配置文件sudo mkdir -p /etc/nftables-blacklist if [ -f /etc/nftables-blacklist/nftables-blacklist.conf ]; then echo Config already exists, skipping download else sudo curl -fsSL -o /etc/nftables-blacklist/nftables-blacklist.conf \ https://raw.githubusercontent.com/trick77/nftables-blacklist/master/nftables-blacklist.conf fi4. 编辑配置可选根据需要编辑配置文件sudo nano /etc/nftables-blacklist/nftables-blacklist.conf5. 运行初始更新执行脚本应用初始黑名单规则sudo /usr/local/sbin/update-blacklist.sh /etc/nftables-blacklist/nftables-blacklist.conf6. 验证是否工作通过以下命令验证nftables-blacklist是否正常工作# 列出黑名单表 sudo nft list table inet blacklist # 显示IPv4集合内容 sudo nft list set inet blacklist blacklist4 # 显示IPv6集合内容 sudo nft list set inet blacklist blacklist6 # 检查丢弃计数器 sudo nft list chain inet blacklist input 配置自动更新为了保持黑名单的最新状态建议配置自动更新机制。以下是使用systemd定时器实现每日自动更新的方法创建定时器和服务文件sudo cat EOF /etc/systemd/system/nftables-blacklist-update.timer [Unit] DescriptionUpdate nftables IP blacklist daily [Timer] OnCalendar*-*-* 23:33:00 Persistenttrue RandomizedDelaySec14400 [Install] WantedBytimers.target EOFsudo cat EOF /etc/systemd/system/nftables-blacklist-update.service [Unit] DescriptionUpdate nftables IP blacklist Afternetwork-online.target Wantsnetwork-online.target [Service] Typeoneshot 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提示每天更新1-2次已经足够。过于频繁的更新可能会被黑名单提供商禁止访问。⚙️ 配置选项详解nftables-blacklist的主要配置文件是nftables-blacklist.conf以下是一些关键配置选项设置默认值描述ENABLE_IPV4yes是否阻止IPv4地址ENABLE_IPV6yes是否阻止IPv6地址FORCEyes如果nftables表/集不存在自动创建AUTO_WHITELISTno自动检测并白名单服务器自身IP建议设为yesBLOCK_FORWARDno是否在forward链中也阻止黑名单IPNFT_CHAIN_PRIORITY-200检查黑名单的优先级-200表示非常早CURL_CONNECT_TIMEOUT10黑名单服务器连接超时时间秒CURL_MAX_TIME30每个黑名单下载的最大时间秒 自定义黑名单你可以通过编辑配置文件中的BLACKLISTS数组来自定义要使用的黑名单源BLACKLISTS( # 自定义本地列表 file:///etc/nftables-blacklist/custom.list # 公共黑名单 https://www.spamhaus.org/drop/drop_v4.json https://lists.blocklist.de/lists/all.txt # 阻止整个国家使用国家代码如cn、ru等 # https://raw.githubusercontent.com/ipverse/country-ip-blocks/master/country/ru/ipv4-aggregated.txt )️ 白名单设置防止自我阻塞有时服务器的IP可能会出现在公共黑名单中为了防止自我阻塞可以通过以下方式配置白名单手动白名单编辑配置文件中的WHITELIST数组WHITELIST( 203.0.113.10 # 服务器IP 203.0.113.0/24 # 网络范围 2001:db8::1 # IPv6地址 )对于IPv4白名单中的范围如10.0.0.0/8将正确排除该范围内的所有IP即使黑名单中包含该范围内的单个IP。注意IPv6白名单仅匹配精确地址不支持CIDR范围。外部白名单文件WHITELIST条目也可以是指向纯文本文件的file://URL每行一个IP/CIDR#开头为注释空行将被忽略WHITELIST( 203.0.113.10 file:///etc/nftables-blacklist/extra.list )自动检测服务器IP要自动白名单服务器自身IP推荐AUTO_WHITELISTyes这将检测所有本地接口IP并查询外部服务如o11.net、icanhazip.com获取公共IP。 检查被阻止的数据包使用以下命令查看被阻止的数据包统计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 blacklist ip6 saddr blacklist6 counter packets 42 bytes 3360 drop comment IPv6 blacklist } 故障排除nftables table does not exist当FORCEyes默认值时脚本会自动创建nftables表/集。如果遇到此错误请确保配置中的FORCEyes。检查IP是否被阻止sudo nft get element inet blacklist blacklist4 { 1.2.3.4 } sudo nft get element inet blacklist blacklist6 { 2001:db8::1 }大型IP集合10万条目对于非常大的IP集合可能会遇到Message too long或No buffer space available错误。可以通过增加内核网络缓冲区解决# 添加到/etc/sysctl.d/99-nftables.conf net.core.rmem_max 8388608 net.core.rmem_default 8388608 # 立即应用 sysctl -p /etc/sysctl.d/99-nftables.conf 从旧版ipset/iptables迁移如果你之前使用的是旧版ipset/iptables版本可以按照以下步骤迁移删除旧的ipset/iptables规则和遗留文件# 删除iptables规则和ipset iptables -D INPUT -m set --match-set blacklist src -j DROP ipset destroy blacklist # 删除旧的cron任务 rm -f /etc/cron.d/update-blacklist # 删除旧脚本 rm -f /usr/local/sbin/update-blacklist.sh # 备份需要保留的自定义内容后删除旧配置目录 rm -rI /etc/ipset-blacklist按照前面的快速开始指南设置新的nftables版本️ 卸载要完全从系统中删除nftables-blacklist停止并禁用systemd定时器和服务sudo systemctl disable --now nftables-blacklist-update.timer sudo systemctl disable --now nftables-blacklist.service删除nftables黑名单表sudo nft delete table inet blacklist删除systemd单元文件sudo rm -f /etc/systemd/system/nftables-blacklist.service sudo rm -f /etc/systemd/system/nftables-blacklist-update.service sudo rm -f /etc/systemd/system/nftables-blacklist-update.timer sudo systemctl daemon-reload删除脚本sudo rm -f /usr/local/sbin/update-blacklist.sh删除配置和数据sudo rm -rI /etc/nftables-blacklist完成这些步骤后黑名单的所有痕迹将被清除所有以前被阻止的流量将恢复正常。总结nftables-blacklist提供了一种简单高效的方式来保护Linux服务器免受恶意IP的攻击。通过自动化的黑名单更新和智能的IP管理它能够在不影响服务器性能的情况下提供强大的安全防护。无论是对于新手还是有经验的系统管理员nftables-blacklist都是一个值得尝试的服务器安全工具。要开始使用nftables-blacklist只需执行以下命令克隆仓库git clone https://gitcode.com/gh_mirrors/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),仅供参考
RELATED

相关推荐

离线也能观鸟:whoBIRD模型下载与离线使用完全教程

离线也能观鸟:whoBIRD模型下载与离线使用完全教程

离线也能观鸟:whoBIRD模型下载与离线使用完全教程 【免费下载链接】whoBIRD Identify bird sounds in real time with this Android version of BirdNET. Bird sound recognition for more than 6,000 species worldwide. 项目地址: https://gitcode.com/gh_mirr…

📅 2026/8/22 4:10:26
RL4CO Hydra配置完全手册:灵活管理复杂实验配置

RL4CO Hydra配置完全手册:灵活管理复杂实验配置

RL4CO Hydra配置完全手册:灵活管理复杂实验配置 【免费下载链接】rl4co A PyTorch library for all things Reinforcement Learning (RL) for Combinatorial Optimization (CO) 项目地址: https://gitcode.com/gh_mirrors/rl/rl4co 🚀 RL4CO Hydr…

📅 2026/8/11 20:48:46
SOCD Cleaner:打破键盘冲突瓶颈,让游戏操作精准度提升300%

SOCD Cleaner:打破键盘冲突瓶颈,让游戏操作精准度提升300%

SOCD Cleaner:打破键盘冲突瓶颈,让游戏操作精准度提升300% 【免费下载链接】socd Key remapper for epic gamers 项目地址: https://gitcode.com/gh_mirrors/so/socd 你是否曾在《街头霸王6》的对决中,因为同时按下W和S键导致角色卡住…

📅 2026/9/8 6:05:41
MORE NEWS

更多资讯

📰

C++20 ranges投影函数的内联优化与编译期排序实践

C20把std::ranges带到标准库之后,写算法的姿势发生了一次不小的变化:迭代器对变成了范围,算法可以直接接受一个范围参数,还多了一个叫“投影函数”的东西。很多朋友第一次看到std::ranges::sort(vec, {}, &Person::age)这种写…

📰

开放科学实战指南:从理念到落地的完整工作流

算起来,我做科研的头几年,基本都耗在“重复造轮子”和“找不着北”上。实验方案是最新的,但数据整理方式却是二十年前的;论文发出去,审稿人问的原始数据,我自己都要翻半天文件夹。那时候我就想,…

📰

深入Ext2底层:Block Group与inode机制全解析

1. 为什么要钻进 Ext2 的底层很多人在 Linux 上工作了几年,天天ls、rm、cat,却不一定清楚这些命令背后,文件系统到底在玩什么花样。我当初也有这个困惑:文件明明存在磁盘上,怎么一断电就没了?为什么删除一个…

📰

ReactOS 0.3.15 源码编译实战:从环境准备到虚拟机启动

简介:ReactOS-0.3.15-REL-src.zip是一份基于ReactOS 0.3.15版的完整源代码压缩包,面向对Windows内核机制感兴趣的系统开发者、驱动研究者和开源操作系统学习者。ReactOS以兼容Windows应用与驱动为目标,此版本源码可用于剖析内核对象管理、进程…

📰

platform-tools.zip 报错无法定位程序输入点?adb 与 fastboot 配置实战指南

简介:这份工具包是面向安卓开发与测试人员的平台工具集合,重点解决调试过程中常见的 ADB 服务版本与客户端版本不一致、找不到设备或模拟器等问题。压缩包体积仅 1.74MB,共包含 22 个文件,其中既有安卓调试桥、fastboot、SQLite 命…

📰

文件加密工具深度盘点:从BitLocker到age的选型与实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬