如何启用,拒绝,允许,删除Ubuntu UFW防火墙上的规则

时间:2020-03-05 15:26:57  来源:igfitidea点击:

在本文中,我们将展示如何使用Ubuntu 16.04/16.10启用UFW防火墙上的启用,拒绝和删除规则。
防火墙是每个操作系统的重要安全组件。
Linux内核具有很大的数据包过滤和端口过滤框架,称为NetFilter。
要具有完整的防火墙,已创建Userspace命令行前端。
管理NetFilter框架的最着名的框架是iptables。
但是,有些用户发现它太难掌握了掌握哪个开发人员编写替代方案。
红帽写了防火墙,而规范写的防火墙或者UFW。
UFW是自8.04版本以来的每个Ubuntu安装的常规组件。

检查UFW的状态并启用它

要查看UFW是否正在运行,我们发出以下命令:

sudo ufw status

首先允许安装默认规则:

sudo ufw default allow outgoing
sudo ufw default deny incoming

这将允许所有传出流量和拒绝传入流量。

在我们启用UFW之前,我们通常希望允许SSH访问权限。
有两种方法可以这样做。
我们可以将SSH端口22添加到打开的传入端口列表中,或者我们可以将SSH服务添加到允许的服务列表中。
在以后的情况下,如果我们没有更改SSH端口,它只会起作用。
如果将SSH从22移动到任何其他端口,则不应按名称允许SSH,我们应该打开该端口。

因此,要按端口允许SSH,我们将使用以下命令

miki@miki-kvm:~$sudo ufw allow 22/tcp
Rule added
Rule added (v6)

我们看到它添加了IPv4和IPv6规则。
要删除我们键入以下命令的规则:

miki@miki-kvm:~$sudo ufw delete allow 22/tcp
[sudo] password for miki:
Rule deleted
Rule deleted (v6)

这删除了规则,但不一定阻止端口。
如果默认规则具有该端口打开,则删除规则将加载默认规则。
如上所述,SSH访问也可以通过服务名称允许,因此我们现在可以执行以下操作:

miki@miki-kvm:~$sudo ufw allow ssh
Rule added
Rule added (v6)

要查看可以按名称允许或者拒绝的所有服务,请使用此命令

less /etc/services

启动UFW防火墙

要激活防火墙使用以下命令:

sudo ufw enable

我们可能会出现次端警告

Command Jan disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

防火墙现在处于活动状态,它将启动每个启动。
我们可以再次查看防火墙规则:

sudo ufw status

如何允许UFW中的连接

我们可以轻松允许在UFW中的端口/范围,应用程序名称,IP地址/子网上传入连接。

a)允许按名称或者端口号/范围申请

sudo ufw allow ssh or sudo ufw allow 22/tcp
sudo ufw allow ftp or sudo ufw allow 21/tcp
sudo ufw allow https or sudo ufw allow 443
sudo ufw allow 1500:2000/tcp

b)允许IP地址/子网

下面的命令允许允许从特定IP或者子网连接,我们也可以使用特定的端口号

sudo ufw allow from 192.168.1.15
sudo ufw allow from 192.168.1.15 to any port 22
sudo ufw allow from 192.168.1.15/24

c)允许接口名称

如果我们需要通过接口名称允许连接

sudo ufw allow in on eth0 to any port 80

如何拒绝在UFW中的连接

默认情况下,UFW配置为拒绝所有传入连接。

a)IP地址/子网

如果我们要通过以下命令阻止访问某些特定的IP地址,我们可以通过以下命令执行此操作:

sudo ufw deny from 192.168.1.15

这将阻止具有IP地址192.168.1.15主机的所有传入连接

接下来让允许整个子网:

sudo ufw deny from 150.165.125.0/24

这将阻止来自此子网的所有连接。

b)拒绝港口和应用

sudo ufw deny 80/tcp
sudo ufw deny http
sudo ufw deny 1500:2000/tcp   *This will deny port ranges*

如何删除/追踪规则

添加许多规则时,我们可以通过查看其数字来更好地追踪它们。
我们可以通过以下命令获取数字:

sudo ufw status numbered

让我们说我们要删除规则2.通过以下命令我们这样做:

sudo ufw delete 2

如果要删除规则编号3,请不要使用第3号,因为删除第二号已移位数字。
相反,我们再次执行状态编号命令并检查新号码。
相反,我们可以使用规则本身删除如下

sudo ufw delete allow ftp

记录和重新加载

要启用日志记录使用以下命令:

sudo ufw logging on

如果要以某种原因禁用日志记录(不推荐),则可以使用此命令:

sudo ufw logging off

日志默认为/var/log/ufw.log。
要实时查看它们,请使用尾巴--f这样:

sudo tail -f /var/log/ufw.log

我们将在该文件中看到防火墙的所有操作。
如果我们需要以某种原因重新加载防火墙,因为我们手动更改了一些配置文件,请使用以下命令。

sudo ufw reload

如果我们想查看最近添加的规则

sudo ufw show added

UFW配置文件

对于大多数情况,我们可以使用终端命令,但在某些情况下,我们需要直接编辑配置文件。
UFW有多个配置文件,即:

/etc/ufw/before.rules
/etc/ufw/before6.rules

这两个文件保存在UFW命令添加的所有规则之前评估的规则。
因此,如果我们希望首先应用一些规则,则需要在那里使用它。
第一个文件适用于IPv4,第二个文件适用于v6

/etc/ufw/after.rules
/etc/ufw/after6.rules

这些在UFW命令规则之后评估。
如果你想覆盖一些规则,它们都很好,无论如何都有它。
再次,两个文件,对于当前使用的两个版本的IP协议。

/etc/default/ufw

其中我们有UFW使用的内核模块以及其他常规设置。
我们只能以root用户编辑任何此配置文件,我们可以使用我们喜欢的任何文本编辑器。

避免添加重复规则

接下来让我们遵守重复规则的机制。
我们将首先打开101

miki@miki-kvm:~$sudo ufw allow 100

请注意,不像上面的协议的命令打开UDP和TCP端口。
所以让我们再次运行相同的命令,以查看会发生什么

miki@miki-kvm:~$sudo ufw allow 100
Skipping adding existing rule
Skipping adding existing rule (v6)

它不允许我们添加重复规则。
这是好的,但是我们仍然可以通过这一系列命令来添加重复规则的机会:

sudo ufw allow 101/udp
sudo ufw allow 101/tcp

在允许端口101上允许TCP和UDP之后,我们仍然可以为所有协议添加打开端口101,并且这是重复规则,因为端口101打开两次,每次协议一次,以及所有协议的一次。

sudo ufw allow 101

这离开了错误的空间,通常这不是一个很好的做法。
如果我们要返回端口101,我们需要使用UFW删除命令撤消所有三个命令。

为了关闭某些端口,我们可以运行相同的命令,只需要将allow改成deny