iptables基本概念
iptables是Linux系统中强大的防火墙工具,它工作在用户空间,通过命令行界面与内核空间的netfilter框架交互,实现数据包过滤、网络地址转换(NAT)等功能。
Web服务器防火墙配置实例
以下是针对Web服务器的iptables配置步骤,只开放必要的SSH(22)和HTTP(80)端口:
# 1. 设置默认策略为ACCEPT并清空现有规则 iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT iptables -F# 2. 允许回环接口通信 iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT# 3. 允许已建立和相关连接 iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT# 4. 允许SSH传入和传出连接 iptables -A INPUT -p tcp --dport 22 -j ACCEPT iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT# 5. 允许HTTP传入和传出连接 iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT# 6. 允许DNS查询(UDP 53端口) iptables -A OUTPUT -p udp --dport 53 -j ACCEPT# 7. 设置默认策略为DROP(确保先允许必要服务) iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP
配置说明
默认策略:初始设置为ACCEPT确保配置过程中不会意外断开连接,最后设置为DROP增强安全性
回环接口:允许本地进程间通信
状态跟踪:允许已建立和相关连接,确保响应流量正常通过
服务端口:
SSH(22):远程管理
HTTP(80):Web服务
DNS(53):域名解析(仅传出)
验证与测试
配置完成后,使用nmap扫描验证:
nmap -sS -O 服务器IP地址
应只显示22和80端口为开放状态,其他端口显示为filtered(被过滤)或closed(关闭)。
注意事项
在远程服务器上配置防火墙时,务必先允许SSH连接,避免将自己锁在系统外
可根据实际需求调整规则,如添加HTTPS(443)端口
规则配置后需保存以确保重启后依然有效:
# CentOS 6及以前 service iptables save# CentOS 7及以后使用firewalld # 或安装iptables-services包 yum install iptables-services systemctl enable iptables service iptables save
此配置提供了基础的Web服务器防护,仅允许必要的网络通信,有效减少攻击面。