服务器防火墙是网络安全的第一道屏障,通过过滤进出流量阻止未授权访问。基础配置需明确开放端口,拒绝所有非必要入站连接,并设置默认策略为“拒绝”。Linux推荐使用firewalld或iptables,Windows则通过图形界面或PowerShell定义规则,确保仅允许可信IP访问关键服务。
服务器防火墙怎么设置?
服务器防火墙是保护系统安全的核心防线,通过合理配置可有效拦截恶意流量、防止数据泄露。以下是分步骤的防火墙设置指南,涵盖主流操作系统(Linux/Windows)及关键配置要点:
一、Linux系统防火墙设置
1. 基础规则配置
查看当前规则
bash# iptables示例sudo iptables -L -n -v # 查看规则列表及流量统计# firewalld示例sudo firewall-cmd --list-all # 查看所有规则
允许特定端口
bash# iptables方式sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT # 允许SSHsudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT # 允许HTTP# firewalld方式sudo firewall-cmd --add-port=22/tcp --permanent # 永久生效需加--permanentsudo firewall-cmd --reload # 重新加载规则
拒绝其他所有入站流量
bash# iptables sudo iptables -A INPUT -j DROP # 默认拒绝所有未明确允许的流量# firewalld默认策略为拒绝,无需额外配置
2. 高级防护配置
限制SSH连接频率
bash# iptables示例:每分钟最多5次新连接,超限封禁IPsudo iptables -A INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --setsudo iptables -A INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --update --seconds 60 --hitcount 5 -j DROP
启用ICMP防护
bash# 允许必要ICMP类型
sudo iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPTsudo iptables -A INPUT -p icmp -j DROP # 拒绝其他ICMP类型
3. 持久化配置
iptables
bashsudo apt install iptables-persistent # Debian/Ubuntusudo netfilter-persistent save # 保存规则# 或手动保存到文件sudo iptables-save > /etc/iptables/rules.v4
firewalld
bashsudo firewall-cmd --runtime-to-permanent # 将当前规则转为永久
二、Windows系统防火墙设置
1. 图形界面配置
打开防火墙管理界面
进入「控制面板」→「系统和安全」→「Windows Defender防火墙」→「高级设置」。
创建入站规则
右键「入站规则」→「新建规则」→ 选择「端口」→ 指定端口(如3389 RDP)→ 选择「允许连接」→ 勾选适用网络类型(域/专用/公共)→ 命名规则(如「Allow-RDP」)。
限制IP访问
在规则属性中切换至「作用域」选项卡,在「远程IP地址」中添加允许的IP段。
2. 命令行配置
允许特定端口
powershellNew-NetFirewallRule -DisplayName "Allow-HTTP" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow
阻止特定IP
powershellNew-NetFirewallRule -DisplayName "Block-Malicious-IP" -Direction Inbound -RemoteAddress 203.0.113.45 -Action Block
3. 高级安全设置
启用日志记录
在防火墙高级设置中,右键「Windows Defender防火墙属性」→ 切换至「日志」选项卡 → 勾选「记录丢弃的数据包」→ 指定日志路径(如C:\firewall.log)。
配置IPsec策略
用于加密特定流量,需通过「组策略管理」配置。
三、通用安全建议
最小化开放端口
仅开放业务必需端口,关闭默认共享。
定期更新规则
每周检查防火墙日志(/var/log/kern.log或Windows事件查看器),封禁异常IP。
结合云安全组
云服务器需在控制台配置安全组规则,与本地防火墙形成双重防护。
测试规则有效性
使用nmap扫描服务器端口:
bashnmap -sS -p 1-65535 你的服务器IP # 检测开放端口
四、常见问题排查
规则不生效
检查规则顺序。
确认防火墙服务是否运行(systemctl status firewalld或netsh advfirewall show allprofiles)。
误封合法流量
通过日志定位被拒绝的IP,临时添加白名单规则测试:
bash# Linux临时允许IPsudo iptables -A INPUT -s 192.168.1.100 -j ACCEPT# Windows临时允许IP(PowerShell)New-NetFirewallRule -DisplayName "Temp-Allow-IP" -Direction Inbound -RemoteAddress 192.168.1.100 -Action Allow
通过以上步骤,可构建基础防火墙防护体系。对于高安全需求场景,建议结合WAF、IDS/IPS进行深度防护。高级防护包括限制连接频率、启用日志记录及结合云安全组形成多层防御。运维中需定期审查日志、更新规则,及时封禁异常IP。