目的
UFW基础知识,包括UFW安装和设置基本防火墙。
发行版
Debian和Ubuntu
要求
具有root权限的有效Debian或Ubuntu安装
约定
介绍
设置防火墙可能会非常麻烦。 iptables并不以其友好的语法而闻名,管理也不是很好。幸运的是,UFW通过简化的语法和易于使用的管理工具使该过程更加容易接受。
UFW使您可以编写防火墙规则,更像是普通句子或传统命令。它使您可以像管理其他任何服务一样管理防火墙。它甚至使您不必记住通用端口号。
安装UFW
首先安装UFW。它在Debian和Ubuntu的存储库中都可用。
$ sudo apt install ufw
设置默认值
与iptables一样,最好从设置默认行为开始。在台式机上,您可能想拒绝传入流量并允许来自计算机的连接。
$ sudo ufw default deny incoming
允许流量的语法相似。
$ sudo ufw default allow outgoing
基本用途
现在,您已经设置好并准备开始设置规则和管理防火墙。这些命令应该都易于阅读。
开始和停止
您可以使用systemd来控制UFW,但是它有自己的控件,使用起来更加容易。首先启用并启动UFW。
$ sudo ufw enable
现在停止。同时在启动过程中将其禁用。
$ sudo ufw disable
当您要检查UFW是否正在运行以及哪些规则处于活动状态时,可以这样做。
$ sudo ufw status
指令
从基本命令开始。允许入站HTTP通信。如果要查看网站或从Internet下载任何内容,这是必需的。
$ sudo ufw allow http
使用SSH再试一次。再次,这是超级普遍的。
$ sudo ufw allow ssh
如果知道端口号,则可以使用端口号完全相同。此命令允许入站HTTPS通信。
$ sudo ufw allow 443
您还可以允许来自特定IP地址或地址范围的流量。假设您想允许所有本地流量,请使用以下命令。
$ sudo ufw allow 192.168.1.0/24
如果您需要允许整个端口范围,例如使用Deluge,也可以这样做。不过,这样做时,您需要指定TCP或UDP。
$ sudo ufw allow 56881:56889/tcp
当然,这确实是双向的。采用deny
代替allow
产生相反的效果。
$ sudo ufw deny 192.168.1.110
您还应该知道,到目前为止,所有命令仅控制入站流量。要专门针对出站连接,请包括out
。
$ sudo ufw allow out ssh
设置桌面
如果您有兴趣在桌面上设置基本防火墙,那么这是一个不错的起点。这只是一个例子,因此它当然不是通用的,但是它应该可以使您有所作为。首先设置默认值。
$ sudo ufw default deny incoming
$ sudo ufw default allow outgoing
接下来,允许HTTP和HTTPS通信。
$ sudo ufw allow http
$ sudo ufw allow https
您可能还会想要SSH,因此允许它。
$ sudo ufw allow ssh
大多数台式机在系统时间上都依赖NTP。也允许。
$ sudo ufw allow ntp
除非您使用静态IP,否则请允许DHCP。它是端口67和68。
$ sudo ufw allow 67:68/tcp
您当然也将需要DNS通信。否则,您将无法使用其URL访问任何内容。 DNS的端口为53。
$ sudo ufw allow 53
如果您打算使用Torrent客户端(例如Deluge),请启用该流量。
$ sudo ufw allow 56881:56889/tcp
蒸汽是一种痛苦。它使用大量端口。这些是您需要允许的。
$ sudo ufw allow 27000:27036/udp
$ sudo ufw allow 27036:27037/tcp
$ sudo ufw allow 4380/udp
设置Web服务器
Web服务器是防火墙的另一个非常常见的用例。您需要采取一些措施来关闭所有垃圾流量和恶意行为者,以免它们成为真正的问题。同时,您需要确保所有合法流量都不受限制地通过。
对于服务器,您可能希望通过默认情况下拒绝所有操作来加强操作。在执行此操作之前,请禁用防火墙,否则它将切断您的SSH连接。
$ sudo ufw default deny incoming
$ sudo ufw default deny outgoing
$ sudo ufw default deny forward
启用入站和出站Web通信。
$ sudo ufw allow http
$ sudo ufw allow out http
$ sudo ufw allow https
$ sudo ufw allow out https
允许SSH。您肯定会需要它。
$ sudo ufw allow ssh
$ sudo ufw allow out ssh
您的服务器可能使用NTP来保持系统时钟。您也应该允许它。
$ sudo ufw allow ntp
$ sudo ufw allow out ntp
您还将需要DNS来更新服务器。
$ sudo ufw allow 53
$ sudo ufw allow out 53
总结思想
到目前为止,您应该对如何将UFW用于基本任务有一个牢牢的掌握。使用UFW设置防火墙并不需要很多,它确实可以帮助保护系统。 UFW尽管很简单,但也绝对可以在黄金时间投入生产。它只是iptables之上的一层,因此您可以获得相同的质量安全性。