上一篇
linux服务器防火墙设置
- 云服务器
- 2025-07-27
- 7
nux 服务器防火墙设置常用工具有iptables和firewalld,可通过添加规则允许/拒绝特定端口、IP访问,并保存配置。
是关于Linux服务器防火墙设置的详细说明:
主流工具选择
根据不同的Linux发行版,常用的防火墙管理工具包括:

- iptables(传统工具,适用于多数旧系统)
- firewalld(CentOS/RHEL 7+默认支持,基于区域概念动态管理)
- ufw(Ubuntu/Debian简化版界面,命令更友好)
可通过以下命令判断当前使用的防火墙类型:

systemctl status firewalld # 检查firewalld状态 systemctl status iptables # 检查iptables状态
使用iptables配置规则
基础操作示例:
| 功能 | 命令示例 | 说明 |
|---|---|---|
| 查看现有规则 | iptables -L -n -v | 以数字格式详细显示所有规则 |
| 清空所有规则 | iptables -F | 谨慎使用!会删除全部现有规则 |
| 设置默认策略 | iptables -P INPUT DROP | 拒绝所有入站流量(推荐安全策略) |
| 允许SSH连接 | iptables -A INPUT -p tcp --dport 22 -j ACCEPT | 放行TCP协议的22端口(SSH服务) |
| 开放HTTP/HTTPS访问 | iptables -A INPUT -p tcp --dport 80,443 -j ACCEPT | 同时允许80和443端口的Web服务 |
| 屏蔽特定IP地址 | iptables -A INPUT -s 192.168.1.100 -j DROP | 阻止来自指定IP的所有请求 |
| 保存规则至文件 | iptables-save > /etc/iptables/rules.v4 | CentOS/RHEL系统持久化配置;Ubuntu需手动执行此命令 |
注意事项:
- 规则顺序至关重要:iptables按顺序匹配规则,应将允许的规则前置,拒绝规则后置。
- 测试前保留SSH通道:避免因误操作导致无法远程登录服务器。
- 启用日志记录:通过iptables -A INPUT -j LOG --log-prefix "iptables-dropped: "记录被拦截的流量详情。
使用firewalld配置规则
常用命令速查表:
| 操作 | 命令示例 | 作用说明 |
|---|---|---|
| 查看状态 | firewall-cmd --state | 显示防火墙运行状态(running/not running) |
| 查看已开放端口 | firewall-cmd --list-ports | 列出当前允许的端口号及协议 |
| 永久添加端口 | firewall-cmd --permanent --add-port=80/tcp | 持久化开放80端口的TCP服务 |
| 移除端口规则 | firewall-cmd --remove-port=8080/tcp --permanent | 删除之前添加的8080端口规则 |
| 允许特定IP访问 | firewall-cmd --add-source=192.168.1.100/32 --permanent | 授权单个IP地址的全部通信 |
| 禁止特定IP访问 | firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.1.100/32" reject' --permanent | 通过富规则实现复杂策略 |
| 重载配置生效 | firewall-cmd --reload | 使修改后的参数立即生效 |
优势特性:
- 区域划分:默认提供public、internal等预设区域,方便分类管理不同网络环境。
- 服务绑定:直接关联系统服务名称(如--add-service=http),而非仅依赖端口号。
- 动态更新:无需重启服务即可应用新规则。
使用ufw配置规则(适用于Ubuntu/Debian)
典型应用场景:
sudo ufw enable # 启动防火墙并加载默认策略(通常为入站拒绝) sudo ufw allow 22/tcp # 允许SSH远程连接 sudo ufw allow 80,443/tcp # 同时开放HTTP和HTTPS服务 sudo ufw deny from 192.168.1.100 # 封禁指定IP的所有请求 sudo ufw status numbered # 查看带序号的规则列表便于批量管理
最佳实践建议
- 最小权限原则:仅开放必要端口和服务,其余全部拒绝。
- 定期审计规则:使用iptables -L或firewall-cmd --list-all检查异常条目。
- 备份与恢复:重要操作前备份配置文件(如iptables-save > backup.conf)。
- 日志监控:结合journalctl -u firewalld分析攻破尝试记录。
相关问题与解答
Q1: 如果误删防火墙规则导致无法远程登录怎么办?
A: 若物理机旁可直接操作控制台,则重新配置网卡或使用急救模式修复;如果是云服务器,建议通过VNC控制台登录后恢复默认规则,紧急情况下可临时关闭防火墙:systemctl stop firewalld或ufw disable。
Q2: firewalld和iptables能否共存?
A: 两者底层均基于Netfilter框架,但上层管理方式不同,同一时刻只能选择一个作为主控工具,可通过systemctl disable firewalld切换至纯iptables模式,反之亦
