删除UFW规则
有两种不同的方法可以删除 UFW 规则,通过规则编号和通过指定实际规则。
按规则编号删除 UFW 规则更容易,特别是如果您不熟悉 UFW。
要首先按规则编号删除规则,您需要找到要删除的规则编号,您可以使用以下命令执行此操作:
$ sudo ufw status numbered
ubuntu1804@linux:~$ sudo ufw status numbered Status: active To Action From -- ------ --- [ 1] 22/tcp ALLOW IN Anywhere [ 2] Anywhere ALLOW IN 192.168.1.104 [ 3] 22/tcp (v6) ALLOW IN Anywhere (v6)
要删除规则编号 2,即允许从 IP 地址 192.168.1.104 连接到任何端口的规则,请使用以下命令:
$ sudo ufw delete 2
ubuntu1804@linux:~$ sudo ufw delete 2 Deleting: allow from 192.168.1.104 Proceed with operation (y|n)? y Rule deleted ubuntu1804@linux:~$
第二种方法是通过指定实际规则来删除规则。
$ sudo ufw delete allow 22/tcp
禁用并重置UFW
如果由于任何原因想要停止UFW并停用所有规则,可以使用:
$ sudo ufw disable
ubuntu1804@linux:~$ sudo ufw disable Firewall stopped and disabled on system startup ubuntu1804@linux:~$
重置UFW将禁用UFW,并删除所有活动规则。
如果您想恢复所有更改并重新开始,这将很有帮助。 要重置 UFW,请使用以下命令:
$ sudo ufw reset
ubuntu1804@linux:~$ sudo ufw reset Resetting all rules to installed defaults. This may disrupt existing ssh connections. Proceed with operation (y|n)? y Backing up 'user.rules' to '/etc/ufw/user.rules.20151213_084801' Backing up 'before.rules' to '/etc/ufw/before.rules.20151213_084801' Backing up 'after.rules' to '/etc/ufw/after.rules.20151213_084801' Backing up 'user6.rules' to '/etc/ufw/user6.rules.20151213_084801' Backing up 'before6.rules' to '/etc/ufw/before6.rules.20151213_084801' Backing up 'after6.rules' to '/etc/ufw/after6.rules.20151213_084801' ubuntu1804@linux:~$
在 UFW 中使用 IPv6
如果服务器配置为IPv6,请确保配置UFW配置为支持IPv6,以便配置IPv4和IPv6防火墙规则。
为此,请使用此命令打开UFW配置:
$ sudo vim /etc/default/ufw
然后确保“IPv6”设置为“yes”,如下所示:
IPV6=yes
保存并退出。
然后使用以下命令重新启动防火墙:
$ sudo ufw disable $ sudo ufw enable
安装UFW和状态检查
默认情况下,在Ubuntu 18.04中应该安装了简单的防火墙(UFW),但如果未安装,则可以使用命令安装包:
$ sudo apt-get install ufw
安装完成后,可以使用以下命令查看UFW的状态:
$ sudo ufw status verbose
ubuntu1804@linux:~$ sudo ufw status verbose [sudo] password for ubuntu1804: Status: inactive ubuntu1804@linux:~$
ubuntu1804@linux:~$ sudo ufw enable Command may disrupt existing ssh connections. Proceed with operation (y|n)? y Firewall is active and enabled on system startup ubuntu1804@linux:~$
ubuntu1804@linux:~$ sudo ufw status verbose Status: active Logging: on (low) Default: deny (incoming), allow (outgoing), disabled (routed) New profiles: skip ubuntu1804@linux:~$
UFW默认策略
默认情况下,UFW将阻止所有传入连接并允许所有出站连接。
这意味着除非我们专门打开端口,否则尝试访问服务器的任何人都无法连接,而我们服务器上运行的所有应用程序和服务将能够访问外部世界。
默认策略在 /etc/default/ufw
文件中定义。可以使用 sudo ufw default <policy> <chain>
命令修改:
$ sudo ufw default deny outgoing
允许和拒绝连接
如果我们打开防火墙,默认情况下它会拒绝所有传入的连接。 因此,您需要根据需要允许/启用连接。 可以通过定义端口、服务名称或者应用程序配置文件来打开连接。
$ sudo ufw allow ssh
$ sudo ufw allow http
$ sudo ufw allow 80/tcp
$ sudo ufw allow 'HTTP'
UFW 不仅允许访问单个端口,还允许我们访问端口范围。
$ sudo ufw allow 1000:2000/tcp
$ sudo ufw allow 3000:4000/udp
要允许从具有IP地址的计算机访问所有端口或者允许访问特定端口,您可以使用以下命令:
$ sudo ufw allow from 192.168.1.104
$ sudo ufw allow from 192.168.1.104 to any port 22
允许连接到IP地址子网的命令:
$ sudo ufw allow from 192.168.1.0/24 to any port 3306
要允许访问特定端口且仅访问特定网络接口,您需要使用以下命令:
$ sudo ufw allow in on eth1 to any port 9992
所有传入连接的默认策略都设置为拒绝,如果您没有更改它,UFW将阻止所有传入连接,除非您专门打开连接。
要拒绝来自子网和具有端口的所有连接,请执行以下操作:
$ sudo ufw deny from 192.168.1.0/24
$ sudo ufw deny from 192.168.1.0/24 to any port 80
防火墙日志
防火墙日志对于识别攻击、排除防火墙规则故障以及注意网络上的异常活动至关重要。但是,您必须在防火墙中包含日志记录规则,才能生成日志记录规则,并且日志记录规则必须位于任何适用的终止规则之前。
$ sudo ufw logging on
日志还将保存在/var/log/messages
、/var/log/syslog
和/var/log/kern.log
中。
应用程序配置文件
使用 apt 命令安装软件包时,它会将应用程序配置文件添加到/etc/ufw/applications.d
目录。 该配置文件描述了服务并包含 UFW 设置。
您可以使用以下命令列出服务器上可用的所有应用程序配置文件:
$ sudo ufw app list
根据系统上安装的软件包,输出将类似于以下内容:
ubuntu1804@linux:~$ sudo ufw app list [sudo] password for ubuntu1804: Available applications: CUPS OpenSSH ubuntu1804@linux:~$
要查找有关特定配置文件和包含的规则的更多信息,请使用以下命令:
$ sudo ufw app info ‘<app_name>’
ubuntu1804@linux:~$ sudo ufw app info 'OpenSSH' Profile: OpenSSH Title: Secure shell server, an rshd replacement Description: OpenSSH is a free implementation of the Secure Shell protocol. Port: 22/tcp
UFW是一个用户友好的前端,用于管理iptables防火墙规则,其主要目标是使管理iptables更容易或者顾名思义更简单。Ubuntu的防火墙设计为一种简单的方式,可以在不学习iptables的情况下执行基本的防火墙任务。它没有提供标准iptables命令的所有功能,但它不那么复杂。