面向内部威胁的防护要把“谁能访问什么、在哪儿能访问、访问多快多频繁”说清楚:以默认拒绝为基线,按源地址/区域细分策略,区分入站/出站/转发三类流量,优先放行已建立连接,对敏感服务(如数据库、管理口)实施最小权限与白名单,并对暴力尝试与异常速率进行连接频率限制。在 Linux 上可通过 firewalld(基于区域与运行时/永久配置)或 iptables(基于链与表)落地这些策略。
启用与基础
systemctl start firewalld && systemctl enable firewalldfirewall-cmd --state;查看默认区域:firewall-cmd --get-default-zone只允许受控网段访问数据库(示例:仅 192.168.20.0/24 访问 3306/TCP)
firewall-cmd --permanent --zone=public \
--add-rich-rule='rule family="ipv4" source address="192.168.20.0/24" port port="3306" protocol="tcp" accept'
firewall-cmd --reload
<rule family="ipv4">
<source address="192.168.20.0/24"/>
<port protocol="tcp" port="3306"/>
<accept/>
</rule>
firewall-cmd --list-rich-rules --zone=public 或从外部主机测试连通性。出站与转发控制
firewall-cmd --permanent --zone=public \
--add-rich-rule='rule family="ipv4" destination address="192.168.1.53" port port="53" protocol="udp" accept'
firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" port port="53" protocol="udp" drop'
firewall-cmd --reload
firewall-cmd --permanent --zone=internal --add-interface=eth1
firewall-cmd --permanent --zone=internal --add-rich-rule='rule family="ipv4" port port="80" protocol="tcp" accept'
firewall-cmd --permanent --zone=internal --add-rich-rule='rule family="ipv4" port port="443" protocol="tcp" accept'
firewall-cmd --reload
服务器本机基线(默认拒绝,仅放行必要流量)
iptables -F
iptables -X
iptables -Z
# 默认策略
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
# 本地回环与已建立连接
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# 仅内网 192.168.1.0/24 访问 3306
iptables -A INPUT -p tcp -s 192.168.1.0/24 --dport 3306 -j ACCEPT
# SSH 端口(示例 2222),带速率限制
iptables -A INPUT -p tcp --dport 2222 -m state --state NEW -m recent --set --name SSH
iptables -A INPUT -p tcp --dport 2222 -m state --state NEW -m recent \
--update --seconds 60 --hitcount 4 --rttl --name SSH -j DROP
iptables -A INPUT -p tcp --dport 2222 -j ACCEPT
网关/跳板转发(仅放行内网到外网的 80/443)
# 内网→外网 80/443
iptables -A FORWARD -i eth1 -o eth0 -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -p tcp --dport 443 -j ACCEPT
# 其余转发默认拒绝
iptables -A FORWARD -j DROP
# 可选:内网 DNS 放行(UDP 53)
iptables -A FORWARD -s 192.168.1.0/24 -p udp --dport 53 -j ACCEPT
iptables -A FORWARD -d 192.168.1.0/24 -p udp --sport 53 -j ACCEPT
说明:上述示例体现了“默认拒绝 + 状态放行 + 源白名单 + 速率限制”的组合用法,可按业务继续细化到具体网段、端口与协议。
firewall-cmd --reload 生效;iptables 建议使用脚本化管理并保留备份。