售前咨询400-838-0503

Linux系统如何配置IPtables规则?

技术文档 2025-04-21 02:22

Linux系统IPtables防火墙规则配置完全指南

在Linux运维工作中,IPtables作为内核级防火墙工具,是保护服务器安全的重要屏障。本文将详细介绍IPtables的基本概念、配置方法和实用技巧,帮助您掌握这一强大的网络安全工具。

一、IPtables基础概念

IPtables是Linux内核集成的包过滤系统,通过定义规则链(Chain)来控制网络流量的进出。主要包含三个默认链:

  • INPUT链:处理进入本机的数据包
  • OUTPUT链:处理从本机发出的数据包
  • FORWARD链:处理转发到其他主机的数据包

每个规则链都按照从上到下的顺序匹配规则,一旦匹配成功就会执行相应的动作(ACCEPT/DROP/REJECT等)。

二、IPtables基本命令格式

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

常用命令选项:

  • -A:在链尾追加规则
  • -I:在指定位置插入规则
  • -D:删除规则
  • -L:列出规则
  • -F:清空规则
  • -P:设置链的默认策略

三、实战配置步骤

1. 查看当前规则

iptables -L -n -v

2. 设置默认策略

iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

3. 允许本地回环

iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

4. 允许已建立的连接

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

5. 开放特定端口

# 允许SSH(22端口)
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# 允许HTTP(80端口)
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

# 允许HTTPS(443端口)
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

四、高级配置技巧

1. 限制连接速率

iptables -A INPUT -p tcp --dport 80 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT

2. 阻止特定IP

iptables -A INPUT -s 192.168.1.100 -j DROP

3. 端口转发

iptables -t nat -A PREROUTING -p tcp --dport 8080 -j REDIRECT --to-port 80

4. 记录被拒绝的包

iptables -A INPUT -j LOG --log-prefix "IPTABLES DENIED: " --log-level 4

五、规则持久化

CentOS/RHEL系统:

service iptables save

Ubuntu/Debian系统:

apt-get install iptables-persistent
netfilter-persistent save

六、常见问题排查

  • 规则不生效:检查规则顺序,确认是否有更早的匹配规则
  • 无法远程连接:检查INPUT链是否开放了相应端口
  • 网络不通:检查FORWARD链和NAT表的配置
  • 查看日志:/var/log/messages或/var/log/syslog

掌握IPtables配置是Linux系统管理员的必备技能。通过合理的规则设置,可以有效保护服务器免受网络攻击。建议定期检查防火墙规则,并根据实际需求进行调整优化。对于生产环境,应先在小范围测试新规则,确认无误后再全面应用。

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

提交工单