售前咨询400-838-0503

如何配置iptables规则?

技术文档 2025-06-12 08:00

Linux系统下iptables防火墙配置完全指南

作为Linux系统管理员,掌握iptables防火墙配置是必备技能。本文将详细介绍iptables的工作原理、基本语法以及常用配置示例,帮助您构建强大的网络安全防线。

一、iptables基础概念

iptables是Linux内核内置的防火墙工具,通过Netfilter框架实现网络数据包过滤功能。它主要包含以下几个核心概念:

  • 表(Table):filter(默认)、nat、mangle等
  • 链(Chain):INPUT、OUTPUT、FORWARD等
  • 规则(Rule):匹配条件和目标动作

数据包会按照预定义的顺序依次通过各个表和链,直到匹配到某条规则或到达默认策略。

二、iptables基本语法

iptables命令的基本格式为:

iptables [-t 表名] 命令选项 [链名] [规则匹配条件] -j 目标动作

常用命令选项:

  • -A:追加规则
  • -I:插入规则
  • -D:删除规则
  • -L:列出规则
  • -F:清空规则
  • -P:设置默认策略

常见匹配条件:

  • -p:协议(tcp/udp/icmp等)
  • -s:源IP地址
  • -d:目标IP地址
  • --sport/--dport:源/目标端口
  • -i/-o:输入/输出接口

三、实用配置示例

1. 基本安全策略

# 设置默认策略为拒绝
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

# 允许本地回环通信
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

# 允许已建立的连接
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    

2. Web服务器配置

# 允许HTTP/HTTPS访问
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

# 允许SSH访问(限制源IP)
iptables -A INPUT -p tcp --dport 22 -s 192.168.1.0/24 -j ACCEPT
    

3. 端口转发配置

# 启用IP转发
echo 1 > /proc/sys/net/ipv4/ip_forward

# 转发外部8080到内部80端口
iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 192.168.1.100:80
iptables -t nat -A POSTROUTING -j MASQUERADE
    

四、规则管理与持久化

配置好的iptables规则默认不会保存,重启后会丢失。可以通过以下方式持久化:

1. 保存当前规则

# CentOS/RHEL
service iptables save

# Debian/Ubuntu
iptables-save > /etc/iptables.rules
    

2. 开机自动加载

在/etc/rc.local中添加:

iptables-restore < /etc/iptables.rules
    

3. 使用iptables-persistent包(Ubuntu)

apt-get install iptables-persistent
netfilter-persistent save
    

五、调试与排错技巧

  • 使用iptables -L -v -n查看详细规则和计数器
  • 通过iptables -L --line-numbers显示规则编号
  • 使用tcpdump抓包分析数据包流向
  • 检查系统日志/var/log/syslog或/var/log/messages

iptables是Linux系统强大的防火墙工具,虽然学习曲线较陡,但掌握后将极大提升系统安全性。建议从简单规则开始,逐步构建适合自己环境的防火墙策略。配置完成后务必进行测试,确保既保障安全又不影响正常服务。

如本公告涉及你的产品,或有不清楚之处,可提交工单确认。

提交工单