在禁用服务前,建议先通过以下命令查看当前防火墙规则,确认目标服务是否已被允许访问:
sudo ufw status
若服务(如smtp、ssh)已在允许列表中,继续下一步;若未允许,则无需禁用。
使用ufw deny命令禁止外部访问目标服务,语法为:
sudo ufw deny [service_name]
其中[service_name]为服务名称(而非端口号),需来自Ubuntu系统/etc/services文件中的预定义服务(如smtp、ssh、http、ftp等)。
示例:
sudo ufw deny smtp
sudo ufw deny ssh
再次运行sudo ufw status,查看目标服务是否已从允许列表中移除,或显示为“DENY”状态。例如:
Status: active
To Action From
-- ------ ----
22/tcp DENY Anywhere
smtp DENY Anywhere
若目标服务显示为“DENY”,则表示禁用成功。
若之前曾通过ufw allow命令允许过该服务,建议删除原有允许规则,避免规则冲突。语法为:
sudo ufw delete allow [service_name]
示例:
sudo ufw delete allow smtp
[service_name]是/etc/services中的有效服务(可通过cat /etc/services | grep [服务关键词]查询),否则需直接指定端口号(如sudo ufw deny 25/tcp)。deny(即sudo ufw default deny),禁用服务后外部无法访问该端口;若默认策略为allow,需额外确认是否有其他规则允许该服务。ufw规则默认在系统重启后保留,无需额外配置。通过以上步骤,即可完成Ubuntu防火墙对指定服务的禁用操作。