本文目录导读:
大家好,今天咱们来聊聊服务器防火墙配置这个话题,作为运维人员,防火墙是服务器安全的第一道防线,而iptables作为Linux系统中最经典的防火墙工具,掌握它几乎是必备技能,别担心,即使你是新手,看完这篇文章也能轻松上手!
什么是iptables?
在开始操作前,咱们先简单科普一下:iptables是Linux内核中集成的包过滤防火墙,它通过设置规则来决定是否允许数据包进出服务器,你可以把它想象成一个“门卫”,只放允许的“好人”进来,其他“坏人”统统挡在门外。
安装与启用iptables
步骤1:检查是否已安装
先看看你的服务器有没有安装iptables:

iptables -V
如果显示版本号,说明已经安装;如果没有,继续下一步。
步骤2:安装iptables
不同Linux发行版的安装方式不同,以下是常见系统的命令:
| 操作系统 | 安装命令 |
|---|---|
| CentOS/RHEL | yum install iptables-services |
| Ubuntu/Debian | apt-get install iptables-persistent |
注意:Ubuntu系统中,我们通常还会安装
iptables-persistent,这样重启后规则不会丢失。
步骤3:启动并设置开机自启
安装完成后,需要启动服务并设置开机自启:
# 启动iptables systemctl start iptables # 设置开机自启动 systemctl enable iptables
基本配置iptables
iptables的核心是链(Chain),主要有三种链:
- INPUT:处理进入服务器的数据包
- OUTPUT:处理从服务器出去的数据包
- FORWARD:处理经过服务器转发的数据包
清空默认规则
每次配置前,建议先清空默认规则:
iptables -F
设置默认策略
默认策略决定了没有匹配规则时如何处理数据包,通常建议设置为DROP(拒绝所有),然后手动开放需要的端口:
# 默认拒绝所有进入的数据包 iptables -P INPUT DROP # 默认允许所有出去的数据包 iptables -P OUTPUT ACCEPT # 默认拒绝转发的数据包 iptables -P FORWARD DROP
开放常见端口
比如开放SSH(22端口)、HTTP(80端口)和HTTPS(443端口):
# 允许SSH访问 iptables -A INPUT -p tcp --dport 22 -j ACCEPT # 允许HTTP访问 iptables -A INPUT -p tcp --dport 80 -j ACCEPT # 允许HTTPS访问 iptables -A INPUT -p tcp --dport 443 -j ACCEPT
注意:
-A INPUT表示将规则添加到INPUT链的末尾。
进阶配置技巧
允许特定IP访问
有时候你可能需要允许某个IP地址访问服务器,比如给同事开放权限:
iptables -A INPUT -s 192.168.1.100 -j ACCEPT
其中-s表示源IP地址。

禁止某个端口
如果想禁止某个端口的访问,比如关闭RDP(3389端口):
iptables -A INPUT -p tcp --dport 3389 -j DROP
允许本地回环流量
本地回环流量(lo接口)是服务器内部通信使用的,必须允许:
iptables -A INPUT -i lo -j ACCEPT
保存配置
配置完成后,别忘了保存,否则重启服务器会丢失规则:
# 对于CentOS/RHEL系统 service iptables save # 对于Debian/Ubuntu系统 iptables-save > /etc/iptables/rules.v4
常见问题解答
Q1:如何查看当前iptables规则?
iptables -L -n -v
-L:列出规则-n:不解析IP地址和端口名-v:显示详细信息
Q2:如何删除某条规则?
比如删除INPUT链中的第一条规则:
iptables -D INPUT 1
Q3:如何重置iptables?
iptables -F iptables -X iptables -t nat -F iptables -t mangle -F
案例:只允许SSH访问的服务器配置
假设你有一台只提供SSH服务的服务器,其他所有端口都不开放,可以这样配置:
# 清空所有规则 iptables -F # 设置默认策略为DROP iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT # 允许SSH访问 iptables -A INPUT -p tcp --dport 22 -j ACCEPT # 保存配置 service iptables save
这样配置后,只有通过SSH能登录服务器,其他所有访问都会被拒绝,大大提高了安全性。
iptables虽然配置起来有点“硬核”,但掌握后你会发现它其实非常强大,通过合理的规则设置,你可以轻松控制服务器的访问权限,保护服务器安全。
记住几个关键点:
- 先安装,再配置
- 默认策略设为DROP
- 必要端口手动开放
- 保存配置不丢失
如果你觉得iptables太复杂,也可以考虑使用firewalld(动态防火墙)或ufw(简化版iptables),但理解iptables的原理对Linux运维来说依然是基础中的基础。
如果你还有其他关于iptables的问题,欢迎在评论区留言,我会一一解答!
相关的知识点:

