菜鸟科技网

防火墙端口配置命令有哪些常用操作?

防火墙端口配置是网络安全管理中的重要环节,通过合理配置端口可以实现网络访问控制、防范恶意攻击等目的,不同操作系统和防火墙软件的端口配置命令有所不同,以下将以常见的Linux系统(iptables、firewalld)和Windows系统(防火墙高级安全)为例,详细介绍防火墙端口配置的相关命令和操作步骤。

防火墙端口配置命令有哪些常用操作?-图1
(图片来源网络,侵删)

Linux系统防火墙端口配置命令

基于iptables的端口配置

iptables是Linux系统中传统的防火墙工具,通过规则链来控制数据包的流动,以下是常用的iptables端口配置命令:

(1)查看当前规则

sudo iptables -L -n -v

参数说明:-L列出规则,-n以数字形式显示IP和端口,-v显示详细信息。

(2)允许特定端口访问
允许TCP协议的80端口(HTTP服务)和443端口(HTTPS服务):

防火墙端口配置命令有哪些常用操作?-图2
(图片来源网络,侵删)
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

参数说明:-A INPUT表示添加到INPUT链(入站规则),-p tcp指定协议为TCP,--dport指定目标端口,-j ACCEPT表示允许通过。

(3)拒绝特定端口访问
拒绝TCP协议的22端口(SSH服务)的访问:

sudo iptables -A INPUT -p tcp --dport 22 -j DROP

-j DROP表示丢弃数据包。

(4)删除规则
通过规则序号删除:

防火墙端口配置命令有哪些常用操作?-图3
(图片来源网络,侵删)
sudo iptables -L INPUT --line-numbers  # 查看INPUT链的规则序号
sudo iptables -D INPUT 3              # 删除序号为3的规则
```删除:
```bash
sudo iptables -D INPUT -p tcp --dport 22 -j DROP

(5)保存规则
不同Linux发行版的保存命令不同:

  • CentOS/RHEL:sudo service iptables save
  • Ubuntu/Debian:sudo iptables-save > /etc/iptables/rules.v4

基于firewalld的端口配置

firewalld是CentOS 7及以上版本、Ubuntu等系统默认的防火墙管理工具,支持区域(Zone)和动态规则更新。

(1)启动并启用firewalld

sudo systemctl start firewalld
sudo systemctl enable firewalld

(2)查看当前区域和规则

sudo firewall-cmd --get-active-zones  # 查看活跃区域
sudo firewall-cmd --list-all          # 查看默认区域的规则

(3)添加端口到区域
将TCP 80端口添加到public区域:

sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --reload  # 重新加载防火墙使规则生效

参数说明:--permanent表示永久生效(不添加此参数为临时生效),--add-port指定端口和协议。

(4)删除端口规则

sudo firewall-cmd --permanent --remove-port=80/tcp
sudo firewall-cmd --reload

(5)查看已添加的端口

sudo firewall-cmd --list-ports

Windows系统防火墙端口配置命令

Windows系统通过“高级安全Windows防火墙”进行端口配置,可通过图形界面或命令行(netsh)实现,以下重点介绍命令行方式:

(1)打开命令提示符(管理员权限)
以管理员身份运行CMD或PowerShell。

(2)查看当前防火墙规则

netsh advfirewall firewall show rule name=all

(3)添加入站规则允许端口访问
允许TCP 3389端口(远程桌面)的入站访问:

netsh advfirewall firewall add rule name="Allow RDP" dir=in action=allow protocol=TCP localport=3389

参数说明:name为规则名称,dir=in表示入站规则,action=allow允许通过,protocol=TCP指定协议,localport指定本地端口。

(4)添加出站规则允许端口访问
允许TCP 53端口(DNS)的出站访问:

netsh advfirewall firewall add rule name="Allow DNS Out" dir=out action=allow protocol=TCP localport=53

(5)删除规则
通过规则名称删除:

netsh advfirewall firewall delete rule name="Allow RDP"

(6)启用或禁用防火墙

netsh advfirewall set allprofiles state on  # 启用所有配置文件
netsh advfirewall set allprofiles state off # 禁用所有配置文件

防火墙端口配置注意事项

  1. 最小权限原则:仅开放业务必需的端口,避免开放高危端口(如135、139、445等)。
  2. 协议限制:根据服务需求明确协议类型(TCP/UDP/ICMP),例如DNS服务同时使用TCP和UDP 53端口。
  3. 规则顺序:防火墙规则按顺序匹配,建议将拒绝规则置于允许规则之后。
  4. 日志记录:开启防火墙日志,记录被拦截的访问尝试,便于安全审计。
  5. 测试验证:配置完成后,通过外部工具(如telnetnmap)测试端口是否可达,避免配置错误导致服务中断。

常见端口服务对照表

端口号 协议 常见服务 安全说明
22 TCP SSH 建议修改默认端口并限制IP访问
25 TCP SMTP 邮件发送服务,需防范中继攻击
53 TCP/UDP DNS 域名解析服务,避免开放公网访问
80 TCP HTTP 网页服务,建议升级至HTTPS
110 TCP POP3 邮件接收服务,明文传输不安全
143 TCP IMAP 邮件接收服务,替代POP3
443 TCP HTTPS 加密网页服务
3389 TCP RDP 远程桌面,需强密码和IP限制
3306 TCP MySQL 数据库服务,禁止公网访问
5432 TCP PostgreSQL 数据库服务,禁止公网访问

相关问答FAQs

Q1: 如何开放临时端口规则,重启后自动失效?
A: 在Linux firewalld中使用--permanent参数可永久生效,若省略该参数则规则为临时规则,重启防火墙或系统后失效。

sudo firewall-cmd --add-port=80/tcp  # 临时开放80端口

在iptables中,临时规则不执行保存操作即可,重启后规则会恢复到上次保存的状态。

Q2: 防火墙端口配置后,如何测试端口是否开放成功?
A: 可使用以下工具测试:

  1. Linux/macOStelnet IP 端口nc -zv IP 端口(需安装netcat工具)。
  2. Windowstelnet IP 端口(需启用Telnet客户端)。
  3. 跨平台工具nmap -p 端口 IP(可详细扫描端口状态)。
    若测试成功,说明规则配置正确;若失败,需检查防火墙规则、服务是否启动及网络连通性。
分享:
扫描分享到社交APP
上一篇
下一篇