一、防火墙基础概念与准备工作
在开始配置前,需明确防火墙的核心功能:通过预定义规则控制进出服务器的网络流量。单机环境推荐使用系统内置防火墙工具:
- Linux系统:iptables/nftables(传统方案)或firewalld(RedHat系)
- Windows系统:Windows Defender防火墙
操作前务必确认:
Linux检查防火墙状态
sudo systemctl status firewalld
或
sudo iptables -L -n
二、核心配置步骤
1. 默认策略设置
建议采用白名单模式,默认拒绝所有流量:
设置默认策略(Linux iptables示例)
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT
2. 必要端口放行规则
根据服务类型开放端口,例如Web服务器需放行:
放行SSH(22)、HTTP(80)、HTTPS(443)
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
3. 防御常见攻击
添加防SYN Flood攻击规则:
sudo iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT
sudo iptables -A INPUT -p tcp --syn -j DROP
三、高级防护策略
1. 地理IP封锁
使用ipset屏蔽特定国家IP段:
创建IP集并添加IP段
sudo ipset create malicious_country hash:net
sudo ipset add malicious_country 1.0.0.0/8
应用规则
sudo iptables -A INPUT -m set --match-set malicious_country src -j DROP
2. 应用层防护
通过connlimit模块限制连接数:
sudo iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 50 -j REJECT
四、规则持久化与测试
Linux系统需保存规则(不同发行版命令不同):
Ubuntu/Debian
sudo iptables-save > /etc/iptables.rules
CentOS/RHEL
sudo service iptables save
测试建议:
- 使用
nmap
扫描开放端口 - 通过
curl
测试服务可达性 - 检查系统日志
/var/log/syslog
或journalctl
五、Windows服务器特别提示
通过PowerShell配置防火墙:
禁止所有入站流量(需管理员权限)
Set-NetFirewallProfile -Profile Domain,Public,Private -DefaultInboundAction Block
放行特定端口
New-NetFirewallRule -DisplayName "Allow HTTP" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow
评论