如何在Ubuntu 18.04上设置UFW防火墙
在本文中,将介绍如何在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删除命令撤消所有三个命令。
为了关闭某些端口,我们可以运行相同的命令,而是允许拒绝拒绝。