Linux 防火墙入门:iptables 搭建与使用教程

Linux 防火墙入门:iptables 搭建与使用教程
李氏Linux 防火墙入门:iptables 搭建与使用教程
iptables 是 Linux 下非常经典和强大的防火墙工具,可以实现对数据包的过滤、转发和NAT处理。本教程将介绍如何在 Linux 系统中安装并配置基本的 iptables 防火墙规则。
✨ 什么是 iptables?
iptables 是 Linux 内核集成的防火墙工具,可以对进出系统的网络流量进行匹配、过滤、转发等操作。它工作在网络层,是配置防护服务器安全的重要工具之一。
🛠 安装 iptables
大部分 Linux 发行版都已预装 iptables,如果没有,可以使用以下命令进行安装:
Debian / Ubuntu 系统:
sudo apt update
sudo apt install iptables -y
CentOS / RHEL 系统:
sudo yum install iptables -y
Alpine(如用于 Docker 容器)系统:
apk add iptables
🧱 基础命令格式
iptables [-t 表名] 命令 链名 条件 -j 动作
常用表:
filter:默认表,处理包的过滤。
nat:网络地址转换,主要处理端口映射。
mangle:用于修改 IP 头字段。
常用链:
INPUT:处理进入本机的数据。
OUTPUT:处理本机发出的数据。
FORWARD:处理转发的数据。
🔓 常见操作示例
- 查看已有规则
iptables -L -n -v
- 放行指定端口(如 22/80/443)
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
- 拒绝所有其他入站流量
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
- 允许本地回环接口访问(非常重要)
iptables -A INPUT -i lo -j ACCEPT
- 保存规则(不同系统不同方式)
Debian/Ubuntu:
sudo apt install iptables-persistent
sudo netfilter-persistent save
CentOS:
sudo service iptables save
🔁 清空规则和重置设置
iptables -F # 清空所有规则
iptables -X # 删除用户自定义链
iptables -Z # 计数器归零
iptables -P INPUT ACCEPT # 恢复默认策略
📌 设置开机自动生效
对于基于 Systemd 的系统,可以使用 iptables-persistent 或将规则写入启动脚本中。
也可以创建如下脚本并设置为开机启动:
#!/bin/bash
iptables -F
iptables -P INPUT DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
然后将该脚本加入 /etc/rc.local 或使用 systemd 启动服务加载。
🧪 测试是否生效
可以使用如下命令测试端口连通性:
telnet your_ip 80
# 或
nc -zv your_ip 80
✅ 小结
本文介绍了 iptables 的基本概念、安装方法以及常见使用场景,适合对 Linux 网络安全感兴趣的初学者。如果你想构建更复杂的规则集,可以继续深入了解 iptables 的匹配模块(如 conntrack、state)或结合 firewalld 和 nftables 使用。
📌 提示:误操作可能导致 SSH 断连,请谨慎操作,并建议使用控制台或添加 -j LOG 日志规则先观察。

