-
核心目标:
- 允许必要的流量(如 HTTP/HTTPS、SSH、RDP)。
- 阻止未经授权的连接(如恶意端口、黑客攻击)。
- 记录日志以便审计和故障排查。
-
关键要素:
- 规则方向:入站(Inbound)、出站(Outbound)、转发(Forward)。
- 协议类型:TCP、UDP、ICMP 等。
- 端口 / 端口范围:如 80(HTTP)、443(HTTPS)、22(SSH)。
- 源 / 目标 IP / 子网:限制访问来源或目的地(如仅允许公司 IP 访问服务器)。
- 动作:允许(Allow)、拒绝(Deny)、记录(Log)。
- 查看当前规则:
- 基础规则配置:
- 允许本地回环接口(必须保留,否则系统可能异常):
iptables -A INPUT -i lo -j ACCEPT
- 允许已建立的连接和相关流量(避免阻断正常响应):
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
- 允许特定端口(如 SSH 22 端口):
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
- 允许 HTTP/HTTPS(80/443 端口):
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
- 拒绝所有其他入站流量:
- 保存规则(重启后生效,不同系统命令可能不同):
service iptables save
iptables-save > /etc/iptables/rules.v4
- 基础命令:
systemctl start firewalld
firewall-cmd --list-all
- 添加规则(永久生效需加
--permanent
):
- 允许端口:
firewall-cmd --add-port=22/tcp
firewall-cmd --add-port=80/tcp --add-port=443/tcp
- 允许服务(如
ssh
、http
、https
,服务定义在 /usr/lib/firewalld/services/
):
firewall-cmd --add-service=ssh
firewall-cmd --add-service=http
- 拒绝特定 IP 访问(如拒绝 192.168.1.100):
firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.1.100" reject'
- 启用 UFW:
- 允许规则:
ufw allow ssh
ufw allow 80/tcp
ufw allow 443/tcp
ufw allow from 192.168.1.0/24
- 拒绝规则:
- 通过图形界面配置:
- 打开 控制面板 > 系统和安全 > Windows 防火墙 > 高级设置。
- 入站规则/ 出站规则 > 新建规则,按向导配置端口、协议、IP 范围、动作(允许 / 拒绝)。
- 常用命令行(PowerShell / 命令提示符):
- 允许端口(如 3389 RDP):
New-NetFirewallRule -DisplayName "Allow RDP" -Direction Inbound -Protocol TCP -LocalPort 3389 -Action Allow
- 阻止程序(如禁止某.exe 联网):
New-NetFirewallRule -DisplayName "Block App" -Direction Outbound -Path "C:\App\example.exe" -Action Block
- 配置逻辑:
- 登录云平台控制台,进入 安全组 或 防火墙 设置。
- 添加规则:指定协议(如 TCP)、端口(如 80/443)、源 IP(如 0.0.0.0/0 表示允许所有,或指定特定 IP 段)。
- 最佳实践:
- 避免开放 0.0.0.0/0 到敏感端口(如 22、3389),仅允许可信 IP 段。
- 区分公网和内网规则(内网规则可放宽,公网严格限制)。
-
最小化开放原则:
- 仅开放业务必需的端口,关闭所有不必要的服务(如默认关闭 3389、23 Telnet)。
- 示例:Web 服务器仅开放 80、443;SSH 服务器仅允许管理 IP 访问。
-
状态检测(Stateful Inspection):
- 允许 “已建立连接” 的响应流量(如客户端访问 Web 服务器后,服务器返回数据应自动允许),避免手动开放所有端口。
-
日志与监控:
- 启用日志记录(如
iptables
中添加 -j LOG
动作),定期分析异常连接(如频繁扫描端口的 IP)。
- Windows 防火墙可在高级设置中开启日志,路径:
%systemroot%\system32\logfiles\firewall\pfirewall.log
。
-
规则优先级:
- 防火墙按规则顺序匹配(从上到下),精确规则(如特定 IP + 端口)应放在通用规则(如拒绝所有)之前。
-
远程管理保护:
- 配置 SSH/RDP 时,先允许本地连接(如通过 VNC 或本地终端),再逐步开放远程访问,避免配置错误导致锁死。
-
定期更新与备份:
- 定期审查规则,删除过时配置(如不再使用的测试端口)。
- 备份防火墙配置(如 Linux 的
iptables-save
、Windows 的导出策略),以便故障恢复。
- 无法访问服务:检查防火墙是否允许对应端口,规则方向是否正确(入站 / 出站)。
- 规则不生效:确认是否使用
--permanent
(firewalld)或保存配置(iptables),重启后规则是否还原。
- 性能影响:复杂规则可能影响网络吞吐量,建议使用硬件防火墙或云防火墙分担负载。
通过合理配置防火墙,可有效减少攻击面,保护系统和数据安全。根据具体场景(个人电脑、服务器、云环境)选择合适的工具和规则,遵循 “最小权限” 原则是关键。