ubuntu

Ubuntu防火墙如何开启关闭服务

小樊
53
2025-10-16 15:38:03
栏目: 智能运维

Ubuntu防火墙(ufw)开启/关闭服务的方法

Ubuntu系统默认使用ufw(Uncomplicated Firewall)作为防火墙管理工具,其本质是基于iptables的简化前端,更适合普通用户操作。以下是针对“开启/关闭服务”的详细步骤(这里的“服务”指允许/禁止特定端口或应用层协议的访问):

一、前提:确认ufw状态

在操作前,需先确认ufw是否已启用,避免因防火墙未运行导致规则无效。
命令sudo ufw status

二、开启/允许服务(允许外部访问特定端口或协议)

“开启服务”本质是允许外部流量访问本机的特定端口或协议,可通过“服务名称”(如sshhttphttps,对应/etc/services中的定义)或“端口+协议”(如22/tcp80/tcp)指定。

1. 允许单个服务(端口/协议)

命令格式sudo ufw allow [服务名称或端口/协议]
示例

2. 允许特定IP访问所有服务

若需允许某台设备(如公司内网电脑)完全访问本机,可使用from参数指定源IP:
命令格式sudo ufw allow from [源IP地址]
示例:允许192.168.1.100访问本机所有端口:sudo ufw allow from 192.168.1.100

3. 允许特定IP访问特定端口

若需更精细控制(如仅允许某IP访问本机的数据库端口),可组合fromport参数:
命令格式sudo ufw allow from [源IP地址] to any port [端口号]
示例:允许192.168.1.100访问本机的3306/tcp端口(MySQL数据库):sudo ufw allow from 192.168.1.100 to any port 3306

三、关闭/禁止服务(阻止外部访问特定端口或协议)

“关闭服务”本质是禁止外部流量访问本机的特定端口或协议,同样可通过“服务名称”或“端口+协议”指定。

1. 禁止单个服务(端口/协议)

命令格式sudo ufw deny [服务名称或端口/协议]
示例

2. 删除已有的允许规则(间接关闭服务)

若之前已通过allow命令开启了某服务,可通过delete命令删除该规则,达到“关闭”的效果:
命令格式sudo ufw delete allow [服务名称或端口/协议]
示例:删除之前允许的SSH服务规则:sudo ufw delete allow sshsudo ufw delete allow 22/tcp

四、验证规则是否生效

添加或删除规则后,需通过以下命令查看当前ufw的规则列表,确认操作是否成功:
命令sudo ufw status

五、注意事项

  1. 默认策略:ufw的默认策略是deny incoming(拒绝所有入站流量)、allow outgoing(允许所有出站流量),这是较为安全的默认设置。若需修改默认策略(如允许所有入站流量),可使用sudo ufw default allow incoming,但会降低系统安全性,不建议在生产环境中使用。
  2. 服务名称依赖:使用“服务名称”(如sshhttp)时,需确保该服务名称存在于/etc/services文件中(可通过cat /etc/services | grep 服务名称验证),否则需直接使用“端口/协议”格式。
  3. 谨慎关闭防火墙:关闭ufw(如通过sudo ufw disable)会使系统失去网络层防护,仅建议在完全信任的网络环境(如家庭网络)或调试网络问题时临时使用。调试完成后应及时重新启用:sudo ufw enable

通过以上步骤,可灵活管理Ubuntu防火墙的服务访问权限,平衡系统安全性与网络可用性。

0
看了该问题的人还看了