网络安全与iptables防火墙配置

发布于:2025-09-14 ⋅ 阅读:(20) ⋅ 点赞:(0)

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

配置说明

  1. 默认策略:初始设置为ACCEPT确保配置过程中不会意外断开连接,最后设置为DROP增强安全性

  2. 回环接口:允许本地进程间通信

  3. 状态跟踪:允许已建立和相关连接,确保响应流量正常通过

  4. 服务端口

    • SSH(22):远程管理

    • HTTP(80):Web服务

    • DNS(53):域名解析(仅传出)

验证与测试

配置完成后,使用nmap扫描验证:

nmap -sS -O 服务器IP地址

应只显示22和80端口为开放状态,其他端口显示为filtered(被过滤)或closed(关闭)。

注意事项

  1. 在远程服务器上配置防火墙时,务必先允许SSH连接,避免将自己锁在系统外

  2. 可根据实际需求调整规则,如添加HTTPS(443)端口

  3. 规则配置后需保存以确保重启后依然有效:

    # CentOS 6及以前
    service iptables save
    
    # CentOS 7及以后使用firewalld
    # 或安装iptables-services包
    yum install iptables-services
    systemctl enable iptables
    service iptables save

此配置提供了基础的Web服务器防护,仅允许必要的网络通信,有效减少攻击面。