Linux云服务器iptables防火墙配置完全指南
在云服务器运维工作中,防火墙配置是保证系统安全的第一道防线。作为Linux系统内置的防火墙工具,iptables凭借其灵活性和强大的功能,成为服务器安全防护的标配。本文将详细介绍在主流Linux发行版上配置iptables的全过程,包含实用规则示例和常见问题解决方案。
一、iptables基础概念
iptables通过定义规则链(Chain)来管理网络流量:
- INPUT链:处理进入本机的数据包
- OUTPUT链:处理从本机发出的数据包
- FORWARD链:处理转发的数据包
每个链默认包含ACCEPT
、DROP
和REJECT
三种基本动作。
二、基础配置流程
1. 检查iptables状态
sudo iptables -L -n -v
2. 设置默认策略(重要安全步骤)
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT
3. 允许已建立的连接
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
三、常用规则配置示例
1. 开放SSH端口(22)
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
2. 开放Web服务端口
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
3. 允许ICMP(ping)
sudo iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
4. 限制连接频率(防DDoS)
sudo iptables -A INPUT -p tcp --dport 80 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT
四、规则持久化保存
不同发行版保存方式不同:
CentOS/RHEL系:
sudo service iptables save
sudo chkconfig iptables on
Ubuntu/Debian系:
sudo apt-get install iptables-persistent
sudo netfilter-persistent save
五、高级技巧
1. 端口转发示例
sudo iptables -t nat -A PREROUTING -p tcp --dport 8080 -j REDIRECT --to-port 80
2. 特定IP访问控制
sudo iptables -A INPUT -s 192.168.1.100 -j ACCEPT
sudo iptables -A INPUT -s 203.0.113.0/24 -j DROP
六、常见问题解决
1. 规则不生效?
检查规则顺序(iptables按顺序匹配),确认没有冲突规则
2. 误操作锁定自己?
云服务器控制台通常提供”救援模式”或VNC访问功能
3. 如何清空所有规则?
sudo iptables -F
sudo iptables -X
sudo iptables -Z
iptables配置需要根据实际业务需求进行调整,建议在修改前备份现有规则。对于生产环境,可以考虑结合fail2ban等工具增强防护能力。定期审查防火墙规则是保障服务器长期安全运行的重要习惯。