Linux防火墙怎样防范蠕虫病毒
小樊
48
2025-11-24 18:14:39
Linux防火墙防范蠕虫病毒的实用方案
一、防护思路与总体策略
- 采用最小化暴露:仅开放必需服务(如 SSH 22、HTTP/HTTPS 80/443),其余端口默认拒绝,降低被扫描与利用的概率。
- 实施默认拒绝 + 白名单:未明确允许的入站流量一律丢弃,对管理口与业务口分别制定策略。
- 强化入口与出口双向控制:入口阻断扫描与滥用,出口限制异常外联(如矿池、C2 域名/IP)。
- 启用连接频率限制与自动化封禁:对暴力破解、端口扫射与高频请求进行速率限制与临时拉黑。
- 结合日志与告警:记录可疑流量与规则命中,配合监控平台做快速处置。
- 配合漏洞修复与最小权限:防火墙是“减速带”,根本仍需及时修补服务漏洞、避免以 root 运行不受信程序。
二、基础防火墙配置要点
- 使用 iptables/nftables 的通用做法
- 仅放行必要端口(示例为 22/80/443),其余默认丢弃;对回环接口放行;对已建立连接放行,减少状态跟踪压力。
- 示例(iptables):
- 允许回环与已建立连接:
iptables -A INPUT -i lo -j ACCEPT;iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
- 放行业务端口:
iptables -A INPUT -p tcp --dport 22 -j ACCEPT;iptables -A INPUT -p tcp --dport 80,443 -j ACCEPT
- 默认拒绝:
iptables -P INPUT DROP
- 使用 nftables 可做更简洁的统一规则管理(适合新系统)。
- 使用 firewalld(CentOS 7+/Fedora 等)
- 启动与持久化:
systemctl enable --now firewalld
- 放行服务/端口:
firewall-cmd --permanent --add-service=http --add-service=https 或 --add-port=80/tcp,443/tcp
- 查看与生效:
firewall-cmd --list-all;firewall-cmd --reload
- 使用 ufw(Ubuntu/Debian 常见)
- 快速策略:
ufw default deny incoming;ufw allow 22,80,443/tcp;ufw enable
三、针对蠕虫的高阶防护规则
- 端口滥用与暴力破解的速率限制
- SSH 防爆破(iptables 速率限制):
iptables -I INPUT -p tcp --dport 22 -m limit --limit 10/min -j ACCEPT(可按实际调整为更严格阈值)。
- 通用端口洪泛/扫描抑制(以 CSF 的 PORTFLOOD 为例):
- 语法:
PORTFLOOD = "port;protocol;hit count*;interval seconds"
- 示例:
PORTFLOOD = "22;tcp;5;300,80;tcp;20;5"(含义:TCP 22 端口 5 次/300 秒触发封禁;TCP 80 端口 20 次/5 秒触发封禁)。
- 连接数限制与异常连接抑制
- 限制单源并发连接数(示例:HTTP 单 IP 超过 50 个连接则拒绝):
iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 50 -j REJECT。
- 出口异常外联拦截(示例思路)
- 建立“矿池/恶意域名”集合(如 ipset),对常见矿池端口(如 3333、4444、5555、7777、8888)的出站 SYN 包进行拦截;结合 DNS/威胁情报动态更新集合。
- 自动化封禁与联动
- 使用 Fail2Ban 对 SSH、FTP、Web 管理面板等日志进行监控,自动封禁多次失败来源;与防火墙规则联动实现自动拉黑与定时解封。
四、面向常见蠕虫传播面的专项加固
- Redis 暴露面治理
- 禁止外网访问 Redis(仅内网绑定)、设置强密码、以低权限运行;对公网开放 Redis 是诸多蠕虫(如挖矿蠕虫)常用的入侵入口。
- SSH 安全
- 建议采用IP 白名单或跳板机访问;结合密钥登录并禁用密码;对失败登录触发速率限制与自动封禁。
- 区域隔离与纵深防御
- 采用“信任区/DMZ/非信任区”模型:内网信任区宽松、DMZ 仅放行业务必要端口、外网入站仅允许已建立连接与白名单流量。
五、监控、验证与应急响应
- 监控与审计
- 实时查看规则命中:
iptables -L -v -n;按接口/协议观察异常流量(如 iftop -nNP -i eth0)。
- 对关键规则开启日志(如 LOG 目标或 NFLOG),接入 SIEM/告警平台做可视化与溯源。
- 验证与演练
- 定期做端口与服务暴露面核查(如
netstat -nultp、firewall-cmd --list-all),对变更进行回归测试,确保业务不受影响。
- 应急处置要点
- 发现异常外联或暴力扫描时,先隔离受害主机或临时封禁来源网段;随后清理持久化(如 crontab、异常服务/启动项)、修补漏洞并恢复最小暴露策略。