Skip to content

Linux防火墙端口添加删除完整指南

概述

Linux系统中的防火墙管理是服务器安全的重要组成部分。不同的Linux发行版使用不同的防火墙工具,本文档详细介绍主流防火墙工具的端口管理方法,包括firewalld、UFW和iptables。

前提条件

需要root权限或sudo权限来执行防火墙配置命令。

防火墙工具识别

首先确定系统使用的防火墙服务:

bash
# 检查firewalld状态
systemctl status firewalld

# 检查UFW状态  
systemctl status ufw

# 检查iptables服务
systemctl status iptables

使用firewalld (CentOS/RHEL 7+, Fedora)

添加端口

bash
# 永久添加端口(需重载生效)
sudo firewall-cmd --permanent --add-port=8080/tcp

# 临时添加端口(立即生效,重启后失效)
sudo firewall-cmd --add-port=8080/tcp

# 添加后重载防火墙使永久规则生效
sudo firewall-cmd --reload

删除端口

bash
# 永久删除端口
sudo firewall-cmd --permanent --remove-port=8080/tcp

# 临时删除端口
sudo firewall-cmd --remove-port=8080/tcp

# 删除后重载防火墙
sudo firewall-cmd --reload

高级配置

bash
# 查看所有开放的端口
sudo firewall-cmd --list-ports

# 查看所有规则
sudo firewall-cmd --list-all

# 按区域添加端口
sudo firewall-cmd --zone=public --permanent --add-port=3306/tcp

# 添加端口范围
sudo firewall-cmd --permanent --add-port=10000-11000/tcp

# 添加服务而非端口
sudo firewall-cmd --permanent --add-service=http

参数详解

参数说明
--permanent永久配置,需reload生效
--add-port=<端口>/<协议>添加指定端口
--remove-port=<端口>/<协议>删除指定端口
--zone=<区域名>指定防火墙区域
--add-service=<服务名>添加预定义服务
--reload重载防火墙配置

使用UFW (Ubuntu/Debian)

添加端口

bash
# 添加TCP端口
sudo ufw allow 8080/tcp

# 添加UDP端口
sudo ufw allow 8080/udp

# 添加端口范围
sudo ufw allow 6000:6010/tcp

# 如果防火墙未启用,启用它
sudo ufw enable

删除端口

bash
# 删除TCP端口
sudo ufw delete allow 8080/tcp

# 删除UDP端口
sudo ufw delete allow 8080/udp

# 删除端口范围
sudo ufw delete allow 6000:6010/tcp

高级配置

bash
# 查看当前防火墙状态
sudo ufw status verbose

# 按IP地址添加规则
sudo ufw allow from 192.168.1.100 to any port 22

# 拒绝特定端口
sudo ufw deny 3306

# 允许特定IP访问特定端口
sudo ufw allow from 192.168.1.0/24 to any port 3306

# 按接口添加规则
sudo ufw allow in on eth0 to any port 80

参数详解

参数说明
allow允许规则
deny拒绝规则
delete删除规则
from <IP>源地址限制
to any port <端口>目标端口限制
in on <接口>入站接口限制
status查看状态

使用iptables (传统方式)

添加端口

bash
# 添加TCP入站规则
sudo iptables -A INPUT -p tcp --dport 8080 -j ACCEPT

# 添加UDP入站规则
sudo iptables -A INPUT -p udp --dport 53 -j ACCEPT

# 保存规则(不同发行版命令可能不同)
sudo service iptables save
# 或
sudo iptables-save > /etc/iptables/rules.v4

删除端口

bash
# 删除TCP入站规则
sudo iptables -D INPUT -p tcp --dport 8080 -j ACCEPT

# 删除UDP入站规则
sudo iptables -D INPUT -p udp --dport 53 -j ACCEPT

# 保存规则
sudo service iptables save

高级配置

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

# 添加IP限制的规则
sudo iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 22 -j ACCEPT

# 插入规则到特定位置
sudo iptables -I INPUT 3 -p tcp --dport 8080 -j ACCEPT

# 更改默认策略(谨慎使用)
sudo iptables -P INPUT DROP

# 规则持久化
sudo apt install iptables-persistent
sudo netfilter-persistent save

参数详解

参数说明
-A添加规则到链末尾
-I插入规则到指定位置
-D删除规则
-p协议(tcp/udp/icmp)
--dport目标端口
-s源IP地址
-j跳转目标(ACCEPT/DROP/REJECT)
-L -n -v列出规则,数字显示,详细信息

常见场景示例

Web服务器配置

bash
# firewalld
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

# UFW
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

# iptables
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

数据库服务器(限制IP访问)

bash
# firewalld
sudo firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.1.0/24' port protocol='tcp' port='3306' accept"
sudo firewall-cmd --reload

# UFW
sudo ufw allow from 192.168.1.0/24 to any port 3306

# iptables
sudo iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 3306 -j ACCEPT

注意事项

⚠️ 安全提醒

  • 配置前确保有物理或控制台访问权限,避免锁死自己
  • 生产环境建议先在测试环境验证规则
  • 添加拒绝规则前确保允许SSH等管理端口访问

⚠️ 最佳实践

  • 遵循最小权限原则,只开放必要端口
  • 使用源IP限制提高安全性
  • 定期检查和清理无用规则
  • 对规则变更进行记录和审计

故障排查

连接问题排查

bash
# 检查端口是否开放
sudo ss -tuln | grep 8080
# 或
sudo netstat -tuln | grep 8080

# 检查防火墙规则
# firewalld
sudo firewall-cmd --list-all

# UFW
sudo ufw status verbose

# iptables
sudo iptables -L -n -v

规则备份与恢复

bash
# firewalld
sudo cp /etc/firewalld/zones/public.xml /etc/firewalld/zones/public.xml.backup

# UFW
sudo cp /etc/ufw/user.rules /etc/ufw/user.rules.backup

# iptables
sudo iptables-save > /root/iptables.rules.backup

总结

Linux防火墙管理是服务器安全的基础工作,不同发行版使用不同的防火墙工具。通过掌握firewalld、UFW和iptables的基本操作,运维人员可以有效地管理服务器端口访问控制,保障系统安全。配置防火墙时务必遵循最小权限原则,并进行充分测试,避免影响正常业务访问。

用心记录,持续学习 | CNB