Linux服务器iptables防火墙配置完全指南
在Linux服务器安全管理中,iptables作为最经典的防火墙工具,至今仍被广泛使用。本文将详细介绍iptables的工作原理、基础语法和实战配置方法,帮助您构建安全的服务器防护体系。
一、iptables基础概念
iptables是Linux内核集成的包过滤系统,通过表(table)、链(chain)和规则(rule)三个层级来管理网络流量:
- 表(table):包括filter(默认)、nat、mangle等
- 链(chain):INPUT(入站)、OUTPUT(出站)、FORWARD(转发)
- 规则(rule):具体的过滤条件
二、iptables基本语法
iptables [-t 表名] 命令选项 [链名] [规则条件] [-j 目标动作]
常用命令选项:
| 选项 | 说明 |
|---|---|
| -A | 在链尾追加规则 |
| -I | 在指定位置插入规则 |
| -D | 删除规则 |
| -L | 列出规则 |
| -F | 清空规则 |
| -P | 设置链默认策略 |
三、实战配置步骤
1. 查看当前规则
iptables -L -n -v
2. 设置默认策略
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
3. 开放本地回环
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
4. 允许已建立的连接
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
5. 开放SSH端口(示例为22)
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
6. 开放Web服务端口
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
7. 限制ICMP(ping)
iptables -A INPUT -p icmp --icmp-type 8 -m limit --limit 1/s -j ACCEPT
四、规则持久化保存
配置完成后,需要保存规则以防重启失效:
Ubuntu/Debian
iptables-save > /etc/iptables.rules
apt install iptables-persistent
netfilter-persistent save
CentOS/RHEL
service iptables save
或
iptables-save > /etc/sysconfig/iptables
五、高级配置技巧
1. 防止DDoS攻击
iptables -A INPUT -p tcp --dport 80 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT
2. 端口转发
iptables -t nat -A PREROUTING -p tcp --dport 8080 -j REDIRECT --to-port 80
3. IP黑名单
iptables -A INPUT -s 192.168.1.100 -j DROP
4. 限制连接数
iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 20 -j REJECT
六、常见问题排查
- 使用
iptables -L -n -v查看规则是否生效 - 检查默认策略是否过于严格
- 确认保存了iptables规则
- 查看系统日志
/var/log/messages或/var/log/syslog
通过以上配置,您已经为Linux服务器建立了一个基本的防火墙防护体系。建议定期审查iptables规则,根据实际业务需求进行调整,在安全性和可用性之间找到最佳平衡点。
温馨提示:生产环境中修改iptables前,建议先通过at命令设置定时恢复,或在本地终端保持一个活动会话,以防配置错误导致服务器无法访问。
