Ubuntu防火墙(ufw)开启/关闭服务的方法
Ubuntu系统默认使用ufw(Uncomplicated Firewall)作为防火墙管理工具,其本质是基于iptables的简化前端,更适合普通用户操作。以下是针对“开启/关闭服务”的详细步骤(这里的“服务”指允许/禁止特定端口或应用层协议的访问):
在操作前,需先确认ufw是否已启用,避免因防火墙未运行导致规则无效。
命令:sudo ufw status
Status: active,表示ufw已启用;Status: inactive,表示ufw未启用(需先启用才能配置规则)。“开启服务”本质是允许外部流量访问本机的特定端口或协议,可通过“服务名称”(如ssh、http、https,对应/etc/services中的定义)或“端口+协议”(如22/tcp、80/tcp)指定。
命令格式:sudo ufw allow [服务名称或端口/协议]
示例:
sudo ufw allow ssh 或 sudo ufw allow 22/tcp;sudo ufw allow http 或 sudo ufw allow 80/tcp;sudo ufw allow https 或 sudo ufw allow 443/tcp;sudo ufw allow dns 或 sudo ufw allow 53(默认包含tcp/udp)。若需允许某台设备(如公司内网电脑)完全访问本机,可使用from参数指定源IP:
命令格式:sudo ufw allow from [源IP地址]
示例:允许192.168.1.100访问本机所有端口:sudo ufw allow from 192.168.1.100。
若需更精细控制(如仅允许某IP访问本机的数据库端口),可组合from和port参数:
命令格式: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。
“关闭服务”本质是禁止外部流量访问本机的特定端口或协议,同样可通过“服务名称”或“端口+协议”指定。
命令格式:sudo ufw deny [服务名称或端口/协议]
示例:
sudo ufw deny ftp 或 sudo ufw deny 21/tcp;8080/tcp端口(自定义应用端口):sudo ufw deny 8080/tcp。若之前已通过allow命令开启了某服务,可通过delete命令删除该规则,达到“关闭”的效果:
命令格式:sudo ufw delete allow [服务名称或端口/协议]
示例:删除之前允许的SSH服务规则:sudo ufw delete allow ssh 或 sudo ufw delete allow 22/tcp。
添加或删除规则后,需通过以下命令查看当前ufw的规则列表,确认操作是否成功:
命令:sudo ufw status
ALLOW(允许)或DENY(禁止)条目(如22/tcp ALLOW Anywhere);sudo ufw reload。deny incoming(拒绝所有入站流量)、allow outgoing(允许所有出站流量),这是较为安全的默认设置。若需修改默认策略(如允许所有入站流量),可使用sudo ufw default allow incoming,但会降低系统安全性,不建议在生产环境中使用。ssh、http)时,需确保该服务名称存在于/etc/services文件中(可通过cat /etc/services | grep 服务名称验证),否则需直接使用“端口/协议”格式。sudo ufw disable)会使系统失去网络层防护,仅建议在完全信任的网络环境(如家庭网络)或调试网络问题时临时使用。调试完成后应及时重新启用:sudo ufw enable。通过以上步骤,可灵活管理Ubuntu防火墙的服务访问权限,平衡系统安全性与网络可用性。