HQY

×

【Linux学习】Ubuntu防火墙设置教程

hqy hqy 发表于2026-06-30 16:45:04 浏览4 评论0

抢沙发发表评论

Ubuntu 系统中,默认的防火墙组件是 UFW 。

安装与启用 UFW

一般来说,Ubuntu 系统大多默认安装了 UFW。你可以通过以下命令检查是否安装:

ufw --version

若系统提示 “未找到命令” 等类似信息,说明尚未安装,可使用以下命令进行安装:


sudo apt install ufw

安装完成后,就可以启用 UFW 了。在终端输入以下命令:


sudo ufw enable

执行此命令时,系统可能会提示该操作可能会中断当前的 ssh 连接 ,询问是否继续。这是因为启用防火墙后,可能会阻止现有的远程连接。所以在启用前,建议先确保已允许 SSH 连接规则 ,否则可能导致无法远程登录系统。若确定继续,输入 “y” 回车即可。

基本规则配置

允许 SSH 连接

为了能够远程登录服务器,首先要允许 SSH 连接。可以使用以下两种方式:

通过服务名称允许:


sudo ufw allow ssh

若知道 SSH 服务的具体端口(通常是 22 端口),指定端口允许:


sudo ufw allow 22/tcp

允许特定服务

UFW 允许通过服务名称来允许或拒绝流量。例如,若要允许 HTTP 和 HTTPS 流量,方便网站访问,可使用以下命令:



sudo ufw allow httpsudo ufw allow https

允许特定 IP 地址或范围

允许某个特定 IP 地址访问所有本机端口:


sudo ufw allow from 192.168.1.1

允许某个 IP 地址范围访问所有本机端口,如 192.168.1.0/24 网段:


sudo ufw allow from 192.168.1.0/24

拒绝特定流量

拒绝某个端口的传入流量,如拒绝外部访问 80 端口:


sudo ufw deny 80/tcp

拒绝某个 IP 地址访问所有本机端口:


sudo ufw deny from 192.168.1.1

设置默认策略

可以设置默认策略来控制整体的流量进出。比如设置默认拒绝所有传入连接,允许所有传出连接,命令如下:



sudo ufw default deny incomingsudo ufw default allow outgoing

查看防火墙状态

随时了解防火墙的状态及已配置的规则非常重要。使用以下命令查看:

简单状态查看


sudo ufw status

此命令会显示防火墙是否启用,以及当前的默认策略等基本信息 。




Status: activeDefault: deny (incoming), allow (outgoing), disabled (routed)New profiles: skip

详细状态查看

若想查看每条规则的详细信息,可使用:


sudo ufw status verbose

该命令会列出每条规则的编号、动作(允许或拒绝)、协议、源地址、目标地址等详细内容 。比如:












Status: activeLogging: on (low)Default: deny (incoming), allow (outgoing), disabled (routed)New profiles: skipTo                         Action      From--                         ------      ----22/tcp                     ALLOW IN    Anywhere80/tcp                     ALLOW IN    Anywhere22/tcp (v6)                ALLOW IN    Anywhere (v6)80/tcp (v6)                ALLOW IN    Anywhere (v6)

其他常见操作

删除规则

当需要删除已添加的规则时,有两种方法:

通过规则内容删除,如删除允许 22 端口的规则:


sudo ufw delete allow 22/tcp

若知道规则编号,可通过编号删除。先使用以下命令查看规则编号:


sudo ufw status numbered

例如显示结果如下:






Status: active     To                         Action      From     --                         ------      ----[ 1] 22/tcp                     ALLOW IN    Anywhere[ 2] 80/tcp                     ALLOW IN    Anywhere

若要删除编号为 1 的规则,使用命令:


sudo ufw delete 1

开放指定端口范围

当某些服务需要使用多个端口时,可指定端口范围。例如,允许 TCP 协议的 8000 - 8005 端口范围:


sudo ufw allow 8000:8005/tcp

允许特定 IP 访问特定端口

若只想让某个特定 IP 访问服务器的特定端口,如允许 192.168.1.10 访问 3306 端口:

sudo ufw allow from 192.168.1.10 to any port 3306

设置无法 ping 主机

有时候,为了更好地保护主机,可以设置让远程终端无法 ping 通主机,需要分别对 ipv4 和 ipv6 进行设置:

编辑文件:

vi /etc/ufw/before.rules

找到这一行:


-A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT

把最后的单词 “ACCEPT” 修改成 “DROP”,修改完成后保存并退出。

重新加载防火墙:


ufw reload

此时,再次测试会发现无法 ping 通主机了。


打赏

本文链接:https://www.kinber.cn/post/6675.html 转载需授权!

分享到:


推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

 您阅读本篇文章共花了: 

群贤毕至

访客