一、iptables防火墙基础认知
作为Linux系统最经典的防火墙工具,iptables通过表(Tables)、链(Chains)、规则(Rules)三级结构实现网络流量控制。云服务器环境下,合理配置iptables可有效防范SSH暴力破解、DDoS攻击等常见安全威胁。
核心组件:
- filter表:默认表,负责数据包过滤
- nat表:网络地址转换
- mangle表:特殊数据包修改
- INPUT链:处理入站流量
- OUTPUT链:处理出站流量
二、云服务器配置实操
1. 基础安全配置
# 清空现有规则
iptables -F
iptables -X
# 设置默认策略(拒绝所有)
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
# 允许本地回环
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
2. 开放必要端口(以SSH为例)
# 允许已建立的连接
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# 开放SSH端口(建议修改默认22端口)
iptables -A INPUT -p tcp --dport 22022 -j ACCEPT
# Web服务端口示例
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
云平台特殊注意: 阿里云/腾讯云等平台需同时配置安全组规则,二者为叠加关系
三、高级防护策略
1. 防CC攻击配置
# 限制单个IP连接数
iptables -I INPUT -p tcp --dport 80 -m connlimit --connlimit-above 50 -j DROP
# 防SYN洪水攻击
iptables -A INPUT -p tcp --syn -m limit --limit 1/s --limit-burst 3 -j ACCEPT
2. 日志监控规则
# 记录异常访问
iptables -A INPUT -p tcp --dport 22 -m recent --name ssh_attack --set
iptables -A INPUT -p tcp --dport 22 -m recent --name ssh_attack --update --seconds 60 --hitcount 3 -j LOG --log-prefix "SSH Attack: "
四、规则持久化方案
云服务器重启后iptables规则会丢失,推荐以下保存方式:
Ubuntu/Debian系统:
apt install iptables-persistent
netfilter-persistent save
CentOS/RHEL系统:
service iptables save
chkconfig iptables on
建议将最终规则保存为/etc/iptables.rules备份文件
常见问题解答
Q:配置后无法远程连接怎么办?
A:通过云平台控制台使用VNC连接,检查规则是否误拦截了SSH流量,建议先设置默认策略为ACCEPT调试
Q:如何查看生效的规则?
A:使用iptables -L -n -v命令,-v参数可显示流量统计
