温馨提示×

Ubuntu防火墙怎样限制端口访问

小樊
43
2025-10-16 15:38:56
栏目: 智能运维

Ubuntu防火墙(ufw)限制端口访问的完整步骤

1. 安装ufw(若未安装)

Ubuntu系统通常预装ufw,若未安装,可通过以下命令安装:

sudo apt update sudo apt install ufw 

2. 启用ufw并设置默认策略

  • 启用防火墙
    sudo ufw enable 
    系统会提示确认,输入y并按回车键。启用后,ufw会在系统启动时自动运行。
  • 设置默认策略
    为增强安全性,建议设置默认拒绝所有传入连接(允许所有传出连接),仅明确允许的端口可被访问:
    sudo ufw default deny 

3. 限制端口访问的具体方法

① 拒绝特定端口访问(全局)

若需禁止所有外部IP访问某一端口(如禁止外部访问FTP端口21/tcp),可使用以下命令:

sudo ufw deny 21/tcp 
  • 说明21/tcp表示TCP协议的21端口,若需限制UDP端口,将tcp替换为udp(如21/udp)。
  • 验证规则
    sudo ufw status 
    输出中会显示21/tcp DENY Anywhere,表示规则已生效。

② 允许特定端口访问(全局)

若需允许所有外部IP访问某一端口(如允许HTTP端口80/tcp),可使用以下命令:

sudo ufw allow 80/tcp 
  • 说明:允许后,sudo ufw status会显示80/tcp ALLOW Anywhere

③ 允许指定IP访问特定端口

若需限制仅某一IP(如192.168.1.100)可访问某一端口(如SSH端口22/tcp),可使用以下命令:

sudo ufw allow from 192.168.1.100 to any port 22 
  • 说明from 192.168.1.100指定源IP,to any port 22表示目标端口为22/tcp(可简写为sudo ufw allow from 192.168.1.100 to any port 22/tcp)。
  • 验证规则
    sudo ufw status 
    输出中会显示192.168.1.100 ALLOW to any port 22

④ 拒绝指定IP访问特定端口

若需禁止某一IP(如192.168.1.100)访问某一端口(如SSH端口22/tcp),可使用以下命令:

sudo ufw deny from 192.168.1.100 to any port 22 

4. 管理ufw规则

① 删除规则

若需删除已添加的规则(如删除允许192.168.1.100访问22/tcp的规则),可使用以下命令:

sudo ufw delete allow from 192.168.1.100 to any port 22 
  • 说明:删除规则时需指定完整规则内容(与添加时的命令一致)。

② 查看带编号的规则

若需通过编号删除规则(更直观),可使用以下命令查看带编号的规则列表:

sudo ufw status numbered 

输出示例:

Status: active To Action From -- ------ ---- [ 1] 22/tcp ALLOW IN 192.168.1.100 [ 2] 80/tcp ALLOW IN Anywhere 
  • 删除编号为1的规则
    sudo ufw delete 1 

③ 重置ufw

若需清除所有自定义规则并恢复默认状态,可使用以下命令:

sudo ufw reset 

5. 注意事项

  • 备份规则:修改规则前,建议备份当前配置(ufw规则存储在/etc/ufw/目录下),防止误操作导致无法访问。
  • 测试规则:应用新规则后,建议从外部设备测试端口访问情况(如使用telnetnmap工具),确保规则生效。
  • 日志记录:若需监控防火墙流量,可开启日志记录:
    sudo ufw logging on 
    日志文件默认存储在/var/log/ufw.log

通过以上步骤,可灵活使用ufw限制Ubuntu防火墙的端口访问,保障系统安全。

0