售前咨询400-838-0503

Linux系统如何配置iptables规则?

发布:2025-05-14 07:09

Linux系统配置iptables规则完全指南

iptables是Linux系统中最强大的防火墙工具之一,掌握其配置方法对于系统管理员和网络安全人员至关重要。本文将详细介绍如何从零开始配置iptables规则,包括基础概念、常用命令和实战案例。

一、理解iptables基本架构

iptables采用表(table)、链(chain)和规则(rule)的三层结构:

  • 表(table):包括filter(过滤)、nat(地址转换)、mangle(数据包修改)和raw(连接跟踪)
  • 链(chain):INPUT(入站)、OUTPUT(出站)、FORWARD(转发)、PREROUTING和POSTROUTING
  • 规则(rule):具体的匹配条件和动作

二、iptables基础配置命令

# 查看当前规则
sudo iptables -L -n -v

# 清空所有规则
sudo iptables -F

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

# 允许本地回环接口
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A OUTPUT -o lo -j ACCEPT

# 设置默认策略
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT

三、实用规则配置示例

1. 基本防火墙配置

# 允许已建立的连接
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

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

# ICMP协议(ping)
sudo iptables -A INPUT -p icmp -j ACCEPT

2. 端口转发配置

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

# 将外部8080端口转发到内部192.168.1.100的80端口
sudo iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 192.168.1.100:80
sudo iptables -A FORWARD -p tcp -d 192.168.1.100 --dport 80 -j ACCEPT

四、规则保存与管理

1. 保存iptables规则

不同Linux发行版保存方法不同:

  • Debian/Ubuntu: sudo iptables-save > /etc/iptables.rules
  • CentOS/RHEL: sudo service iptables save

2. 开机自动加载

/etc/rc.local文件中添加:

iptables-restore < /etc/iptables.rules

五、高级技巧与安全建议

1. 防止DDoS攻击

# 限制新建连接速率
sudo iptables -A INPUT -p tcp --syn -m limit --limit 1/s --limit-burst 3 -j ACCEPT

2. 记录被拒绝的数据包

sudo iptables -A INPUT -j LOG --log-prefix "IPTABLES-DROPPED: "
sudo iptables -A INPUT -j DROP

3. 安全建议

  • 始终从本地控制台开始配置,避免锁定自己
  • 先设置ACCEPT规则再设置DROP策略
  • 定期备份iptables规则
  • 考虑使用更现代的nftables替代iptables

掌握iptables配置是Linux系统管理的重要技能。通过本文介绍的基础命令和实用示例,您应该能够开始构建自己的防火墙规则。记住,良好的防火墙策略应该是"默认拒绝,明确允许"的原则,并且要定期审查和更新规则以适应不断变化的网络环境。

按文档操作后还是不行,把机器编号、出问题的时间点和现象截图一起提工单,能少来回一轮。

提交工单