如何在Ubuntu 18.04上设置UFW防火墙

时间:2020-03-05 15:32:48  来源:igfitidea点击:

在本文中,将介绍如何在Ubuntu 18.04上设置UFW防火墙。
在Ubuntu中,默认防火墙是UFW,简单的简单防火墙。
自ubuntu 18.04发布以来,它已经存在并建立,以简化Iptables配置,这非常复杂。

使用任何操作时,就系统的安全性而言,必须考虑的最重要功能之一。
防火墙是PC和Internet之间存在的盾牌或者障碍,并阻止未经授权的流量,如远程访问系统,并有助于防止经常通过Internet迁移的恶意代码。
防火墙可以是硬件或者软件。
硬件防火墙是一个独立的防火墙系统,它放置在网络中,通过控制来自网络的流量流以及从用户访问的块来添加保护层。
软件防火墙被内置于Linux和Windows等操作系统中,并有助于使系统免受外部攻击的安全。

安装UFW

默认情况下,Ubuntu 18.04安装了UFW。
但是,对于早期的系统,我们必须在下面运行该命令

apt-get install ufw

检查UFW是否正在运行运行

systemctl status ufw

如果运行,则应获取以下输出

● ufw.service - Uncomplicated firewall
   Loaded: loaded (/lib/systemd/system/ufw.service; enabled; vendor preset: enab
   Active: active (exited) since Tue 2016-04-10 22:03:30 UTC; 4min 1s ago
  Process: 376 ExecStart=/lib/ufw/ufw-init start quiet (code=exited, status=0/SU
 Main PID: 376 (code=exited, status=0/SUCCESS)
    Tasks: 0
   Memory: 0B
      CPU: 0
   CGroup: /system.slice/ufw.service
Apr 10 22:03:30 ip-172-31-41-251 systemd[1]: Started Uncomplicated firewall.
Warning: Journal has been rotated since unit was started. Log output is incomple

检查它是否是活动或者非活动运行

ufw status

如果它处于非活动状态,则会获得以下输出

Status: inactive

要使用默认的规则运行,请打开UFW

ufw enable

禁用防火墙运行

ufw disable

设置默认的UFW规则

设置允许所有传出协议的默认规则,以root身份登录并运行

ufw default allow outgoing

输出

Default outgoing policy changed to 'allow'
(be sure to update your rules accordingly)

否认所有传入连接,运行

ufw default deny incoming

输出

Default outgoing policy changed to 'deny'
(be sure to update your rules accordingly)

上述命令将允许所有传出连接和拒绝或者阻止所有传入连接。
此时,我们可能希望启用防火墙,但是在我们否则之前,请先允许SSH。
这可以防止到服务器断开连接,因为我们指定了更早的所有传入连接的拒绝。

允许ssh,运行

ufw allow 22/tcp

out

Skipping adding existing rule
Skipping adding existing rule (v6)

SSH访问也可以通过服务名称允许,

ufw allow ssh

如果要删除规则运行

ufw delete allow 22/ssh

按名称拒绝服务

ufw deny service-name

例如

ufw deny ssh

要查看可以在系统中允许或者拒绝的所有服务,请查看"/etc/services"文件"。

cat /etc/services | less

示例输出

ftp-data        20/tcp
ftp             21/tcp
fsp             21/udp          fspd
ssh             22/tcp                          # SSH Remote Login Protocol
ssh             22/udp
telnet          23/tcp
smtp            25/tcp          mail
time            37/tcp          timserver
time            37/udp          timserver
rlp             39/udp          resource        # resource location
nameserver      42/tcp          name            # IEN 116
whois           43/tcp          nicname
tacacs          49/tcp                          # Login Host Protocol (TACACS)
tacacs          49/udp
re-mail-ck      50/tcp                          # Remote Mail Checking Protocol
re-mail-ck      50/udp
domain          53/tcp                          # Domain Name Server
domain          53/udp

启动UFW防火墙

要激活防火墙以root身份登录并运行以下命令:

ufw enable

我们可能会提示我们使用以下警告

Command Jan disrupt existing ssh connections. Proceed with operation (y|n)? y

如果选择是的,则会收到以下输出

Firewall is active and enabled on system startup

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

ufw status

输出现在将显示防火墙加上允许的服务/端口的状态

输出

ufw status active
Status: active
To                         Action      From
--                         ------      ---
22/tcp                     ALLOW       Anywhere
22                         ALLOW       Anywhere
22/tcp (v6)                ALLOW       Anywhere (v6)
22 (v6)                    ALLOW       Anywhere (v6)

允许在UFW中连接

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

a)按名称或者端口号/范围允许应用程序

ufw allow service-name

或者

ufw allow port/tcp

例如

ufw allow ssh or  ufw allow 22/tcp
ufw allow ftp or ufw allow 21/tcp

sudo ufw允许1500:2000/TCP

b)允许IP地址/子网

下面的命令允许来自特定IP或者子网的连接,也可以使用特定的端口号。
允许来自特定IP地址的连接

ufw allow from 10.200.20.45

指定允许连接到特定端口运行的IP

ufw allow from 10.200.20.45 to any port 22

以上允许IP地址10.200.20.45仅通过SSH连接

允许IP的某个子网连接到系统使用CIDR符号来指定网络掩码

ufw allow from 192.168.1.0/24

以上允许IPS从192.168.1到192.168.1.254连接到系统,我们还可以指定子网的目标端口

ufw allow from 192.168.1.0/24 to any port 22

这意味着IP从192.168.1到192.168.1.254可以通过SSH的端口22连接到系统。

c)允许接口名称

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

ufw allow in on eth0 to any port 80

如何拒绝在UFW中的连接

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

a)IP地址/子网

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

ufw deny from 192.168.1.15

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

下一个Llet'sblock整个子网:

ufw deny from 150.165.125.0/24

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

b)拒绝端口和应用

拒绝端口或者服务

ufw deny 80/tcp

或者

ufw deny http

sudo ufw否认1500:2000/tcp 这将拒绝端口范围

删除并追踪规则

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

ufw status numbered

输出

ufw status numbered
Status: active
     To                         Action      From
     --                         ------      ---
[ 1] 22/tcp                     ALLOW IN    Anywhere
[ 2] 22                         ALLOW IN    Anywhere
[ 3] 80/tcp                     ALLOW IN    Anywhere
[ 4] 53/tcp                     ALLOW IN    Anywhere
[ 5] 22/tcp (v6)                ALLOW IN    Anywhere (v6)
[ 6] 22 (v6)                    ALLOW IN    Anywhere (v6)
[ 7] 80/tcp (v6)                ALLOW IN    Anywhere (v6)
[ 8] 53/tcp (v6)                ALLOW IN    Anywhere (v6)

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

ufw delete 2

笔记 :

在防火墙中删除第二个规则后,规则3现在将是新规则2.所以如果要删除当前规则3,则将删除使用Number 2.

ufw delete allow http

重置规则

如果我们对当前规则不满意,并且我们想要从全部开始,我们可以通过运行来执行此操作

ufw reset

记录和重新加载

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

ufw logging on

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

sudo ufw伐木

默认情况下,日志默认为"/var/log/ufw.log""以实时查看它们,请使用像这样的尾部:

tail -f /var/log/ufw.log /pre>
You will see all actions of firewall in that file. If you need to reload firewall for some reason, because you changed some config files manually, use following command.
ufw reload

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

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

sudo ufw allow 100

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

ufw allow 100

输出

Skipping adding existing rule
Skipping adding existing rule (v6)

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

ufw allow 101/udp
ufw allow 101/tcp

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

ufw allow 101

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

为了关闭某些端口,我们可以运行相同的命令,而是允许拒绝拒绝。