如何配置iptables?

常见问题

如何配置iptables?

2025-04-17 01:00


Linux防火墙配

                                            

Linux防火墙配置完全指南:iptables从入门到精通

作为Linux系统管理员,iptables防火墙的配置是必备的核心技能。本文将全面解析iptables的配置方法,帮助您构建强大的网络安全防线。

一、iptables基础概念

iptables是Linux内核集成的包过滤防火墙系统,通过规则链(Chain)来控制网络数据包的流动。主要包含四个默认表(table):

  • filter表:默认表,负责过滤数据包
  • nat表:网络地址转换
  • mangle表:修改数据包内容
  • raw表:数据包跟踪

二、iptables基本语法

iptables命令的基本格式为:

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

常用命令选项:

  • -A:追加规则
  • -I:插入规则
  • -D:删除规则
  • -L:列出规则
  • -F:清空规则

三、实战配置示例

1. 基本防火墙配置

# 清空现有规则
iptables -F
iptables -X

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

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

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

2. 开放特定端口

# 允许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

3. NAT配置示例

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

# 配置SNAT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

# 配置DNAT
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.1.100:80

四、高级配置技巧

1. 防止DoS攻击

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

2. 基于MAC地址过滤

iptables -A INPUT -m mac --mac-source 00:0F:EA:91:04:08 -j ACCEPT

3. 日志记录

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

五、iptables规则持久化

重启后iptables规则会丢失,需要保存规则:

CentOS/RHEL:

service iptables save
或
/usr/libexec/iptables/iptables.init save

Ubuntu/Debian:

apt-get install iptables-persistent
netfilter-persistent save

六、总结

掌握iptables配置是Linux系统安全的重要保障。通过本文的学习,您应该已经了解了iptables的基本原理和常用配置方法。建议在生产环境中配置前先在测试环境验证,并定期备份iptables规则。

随着Linux内核的发展,nftables正逐步取代iptables,但iptables仍然是当前最广泛使用的Linux防火墙解决方案。

实用小贴士:

  • 使用iptables -L -v -n查看详细规则
  • 复杂规则建议使用脚本管理
  • 定期检查防火墙日志
  • 考虑使用前端工具如firewalld简化管理


标签:
  • iptables
  • Linux防火墙
  • 网络安全配置
  • 莱卡云