云网牛站
所在位置:首页 > Linux安全 > 在Ubuntu 18.04系统中使用UFW设置防火墙

在Ubuntu 18.04系统中使用UFW设置防火墙

2018-08-13 15:26:25作者:sysgeek稿源:系统极客网

在 Ubuntu 18.04 LTS 系统中默认自带 Uncomplicated Firewall(简称 UFW)防火墙配置工具,可以在系统中设置UFW使系统更加的安全可靠。UFW 是一个用户友好的前端,可以用于管理 iptables 防火墙规则,其主要目的就是让管理 iptables 更加轻松容易。可以参考使用iptables保护Linux桌面系统安全一文。

 

安装UFW

Ubuntu 18.04 LTS 系统中已经默认附带了 UFW 工具,如果您的系统中没有安装,可以在终端中执行如下命令进行安装:

sudo apt install ufw

 

检查UFW状态

安装完成后,您可以使用以下命令检查 UFW 的状态:

sudo ufw status verbose

无论您使用的是 Ubuntu 18.04 系统附带还是刚手动安装的 UFW,默认都是禁用状态,所以输出是不活动:

在Ubuntu 18.04系统中使用UFW设置防火墙

如果激活 UFW,输出会类似于以下内容:

在Ubuntu 18.04系统中使用UFW设置防火墙

 

UFW默认策略

防火墙策略是构建用户自定义规则的基础,在绝大多数情况下,初始的 UFW 默认策略就是一个很好的起点。

而默认情况下,UFW 将阻止所有传入连接并允许所有传出连接。也就是说,除非您专门打开特定端口,否则任何尝试访问您的服务器的人都无法连接,但服务器上运行的应用程序和服务却能够对外访问。

UFW 默认策略在 /etc/default/ufw 文件中进行定义,可以使用 sudo ufw default 命令对策略进行更改。

 

应用程序策略

当您使用 apt 安装软件包时,应用程序配置文件就会添加到 /etc/ufw/applications.d 目录当中,该目录主要用于描述服务并存放 UFW 设置。

我们可以使用以下命令列出所有应用程序配置策略:

sudo ufw app list

根据当前系统上已安装的软件包,输出类似于:

在Ubuntu 18.04系统中使用UFW设置防火墙

如果要查找有关配置文件和包含规则的更多信息,可以使用类似以下命令:

sudo ufw app info 'Nginx Full'

在Ubuntu 18.04系统中使用UFW设置防火墙

从上面的输出可以看出Nginx Full配置文件会打开 80 和 443 端口。

 

允许SSH连接

在服务器上正式启用 UFW 防火墙之前,需要事先添加允许 SSH 连接的传入规则。不然 UFW 启用之后 SSH 连不上了不要跑来闹。

要配置 UFW 防火墙以允许传入 SSH 连接,请键入以下命令:

sudo ufw allow ssh

在Ubuntu 18.04系统中使用UFW设置防火墙

如果您的 SSH 端口是自定义的,没使用默认的 22 端口,可以通过如下命令侦听并允许该端口上的连接,例如 4422 端口:

sudo ufw allow 4422/tcp

 

启用UFW

如果您的 UFW 防火墙已配置为允许传入 SSH 连接,则可以执行以下命令启用 UFW:

sudo ufw enable

在Ubuntu 18.04系统中使用UFW设置防火墙

如果看到启用防火墙可能会中断现有的 ssh 连接的警告,只需键入 y 同意并按回车键即可。

 

允许侦听传入端口连接

根据 Ubuntu 服务器上运行的应用程序和特定需要,您可能需要允许其他端口的传入连接。下面将演示如何允许常见服务的示例。

1.打开80端口:HTTP

可以使用以下命令允许 HTTP 连接:

sudo ufw allow http

也可以直接指定端口号 80:

sudo ufw allow 80/tcp

或者也可以使用应用程序配置文件,在本例中为Nginx HTTP:

sudo ufw allow 'Nginx HTTP'

2.打开443端口:HTTPS

可以使用以下命令允许 HTTPS 连接:

sudo ufw allow https

也可以直接指定端口号 443:

sudo ufw allow 443/tcp

或者也可以使用应用程序配置文件,在本例中为Nginx HTTPS:

sudo ufw allow 'Nginx HTTPS'

3.打开8080端口

如果运行 Tomcat 或使用侦听 8080 端口的应用程序,可以执行以下命令允许传入连接:

sudo ufw allow 8080/tcp

 

允许端口范围

除允许单个端口连接之外,UFW 还允许直接配置端口范围。在使用 UFW 的端口范围时,必需指定 tcp 或 udp 协议。例如,要开启服务器上 7100 到 7200 的 tcp 和 udp 端口,可以运行以下命令:

sudo ufw allow 7100:7200/tcp

sudo ufw allow 7100:7200/udp

 

允许特定IP地址

如果您要允许某个 IP 地址的所有端口访问,可以使用如下命令:

sudo ufw allow from 123.123.123.123

 

允许子网

如果要允许特定子网范围的计算机对服务器某个端口的访问,例如:允许从 192.168.1.1 到 192.168.1.254 网段到服务器 3306(MySQL)端口的访问,可以执行如下命令:

sudo ufw allow from 192.168.1.0/24 to any port 3306

 

拒绝连接

前面已经介绍过,传入连接的默认策略都被设置为拒绝。假设您打开了 80 和 443 端口,而服务器又受到来自 23.34.45.0/24 的攻击,可以通过如下命令拒绝该网络的所有连接:

sudo ufw deny from 23.34.45.0/24

如果只想拒绝访问 80 和 443 端口,则可以使用以下命令:

sudo ufw deny from 23.34.45.0/24 to any port 80

sudo ufw deny from 23.34.45.0/24 to any port 443

编写拒绝规则与编写允许规则相同,您只需要将 allow 替换为 deny 就成。

 

删除UFW策略

我们可以根据规则编号和指定实际规则这 2 种方式来删除 UFW 规则。

对新手用户而言,通过规则编号来删除特定规则比较好,不过在此之前需要先用命令列出规则编号的数字:

sudo ufw status numbered

在Ubuntu 18.04系统中使用UFW设置防火墙

例如要删除开放 8080 端口的规则 4 可以使用如下命令:

sudo ufw delete 4

第二种方法是通过指定实际规则来进行删除操作,例如要删除打开8069 端口的规则,可以使用如下命令:

sudo ufw delete allow 8069

 

禁用UFW

如果想要停止使用 UFW 并停用所有规则,可以直接选择禁用 UFW:

sudo ufw disable

 

重置UFW

在重置 UFW 时,系统会禁用 UFW 并删除所有活动规则。如果您想要还原所有更改并重新开始,可以使用如下命令:

sudo ufw reset

 

总结

以上是在 Ubuntu 18.04 系统中设置 UFW 的方法,正确配置防火墙是整个系统安全中最重要的方面之一,同时做好整个系统安全防护非常重要,它关系到你计算机内的数据安全。

 

相关主题

Ubuntu 16.04桌面版Gufw防火墙的基本使用方法

精选文章
热门文章