Merge pull request #18004 from wxy/20200325-Linux-firewall-basics-with-ufw

PRF&PUB:20200325 linux firewall basics with ufw
This commit is contained in:
Xingyu.Wang 2020-04-06 21:51:01 +08:00 committed by GitHub
commit e1eee57c78
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,23 +1,25 @@
[#]: collector: (lujun9972)
[#]: translator: (MjSeven)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: reviewer: (wxy)
[#]: publisher: (wxy)
[#]: url: (https://linux.cn/article-12079-1.html)
[#]: subject: (Linux firewall basics with ufw)
[#]: via: (https://www.networkworld.com/article/3533551/linux-firewall-basics-with-ufw.html)
[#]: author: (Sandra Henry-Stocker https://www.networkworld.com/author/Sandra-Henry_Stocker/)
Linux 防火墙 ufw 简介
======
我们来研究下 ufw - linux 上一个简单的防火墙,它为防火墙更改提供了一些见解和命令。
> 我们来研究下 Linux 上的 ufw简单防火墙为你更改防火墙提供一些见解和命令。
![][0]
**ufw** (简易防火墙)可以说是 [iptables][1] 的简化版,最近几年,它已经成为 Ubuntu 和 Debian 等系统上的默认防火墙。而且 **ufw** 出乎意料的简单,这对新管理员来说是一个福音,否则他们可能不得不投入大量时间来加快防火墙管理的速度
`ufw`<ruby>简单防火墙<rt>Uncomplicated FireWall</rt></ruby>)真正地简化了 [iptables][1],它从出现的这几年,已经成为 Ubuntu 和 Debian 等系统上的默认防火墙。而且 `ufw` 出乎意料的简单,这对新管理员来说是一个福音,否则他们可能需要投入大量时间来学习防火墙管理
**ufw** 也有 GUI 客户端(例如 **gufw**),但是 **ufw** 命令通常在命令行上发出。本文介绍了一些使用 **ufw** 的命令,并研究了它的工作方式。
`ufw` 也有 GUI 客户端(例如 `gufw`),但是 `ufw` 命令通常在命令行上执行的。本文介绍了一些使用 `ufw` 的命令,并研究了它的工作方式。
首先,查看 **ufw** 如何配置的一个快速方法是查看其配置文件 -- **/etc/default/ufw**。使用下面的命令可以查看其配置,使用 **grep** 来禁止显示空白行和注释(以 # 开头的行)。
首先,快速查看 `ufw` 配置的方法是查看其配置文件 —— `/etc/default/ufw`。使用下面的命令可以查看其配置,使用 `grep` 来抑制了空行和注释(以 # 开头的行)的显示。
```
$ grep -v '^#\|^$' /etc/default/ufw
IPV6=yes
@ -30,16 +32,18 @@ IPT_SYSCTL=/etc/ufw/sysctl.conf
IPT_MODULES="nf_conntrack_ftp nf_nat_ftp nf_conntrack_netbios_ns"
```
正如你所看到的,默认策略是丢弃输入但允许输出。如果你想接受专有连接,你需要单独配置。
正如你所看到的,默认策略是丢弃输入但允许输出。允许你接受特定的连接的其它规则是需要单独配置的。
`ufw` 命令的基本语法如下所示,但是这个概要并不意味着你只需要输入 `ufw` 就行,而是一个告诉你需要哪些参数的快速提示。
ufw 命令的基本语法如下所示,但是这个概要并不意味着你只需要输入 "ufw" 就能熟悉它,而是通过一个个错误提示来告诉你需要哪些参数。
```
ufw [--dry-run] [options] [rule syntax]
```
**\--dry-run** 选项意味着 **ufw** 不会运行你指定的命令,但你会看到它是否执行了的结果。如果进行了更改,它将显示整个规则集,因此你要做好多行输出的准备。
`--dry-run` 选项意味着 `ufw` 不会运行你指定的命令,但会显示给你如果执行后的结果。但是它会显示假如更改后的整个规则集,因此你要做有好多行输出的准备。
要检查 `ufw` 的状态,请运行以下命令。注意,即使是这个命令也需要使用 `sudo` 或 root 账户。
运行以下命令来检查 **ufw** 的状态。注意,即使此命令也需要使用 **sudo** 或 root 账户。
```
$ sudo ufw status
Status: active
@ -52,12 +56,14 @@ To Action From
```
否则,你会看到以下内容:
```
$ ufw status
ERROR: You need to be root to run this script
```
"verbose" 选项将提供一些其它细节:
加上 `verbose` 选项会提供一些其它细节:
```
$ sudo ufw status verbose
Status: active
@ -73,12 +79,14 @@ To Action From
```
你可以使用以下命令轻松地通过端口号允许和拒绝连接:
```
$ sudo ufw allow 80 <== 允许 http 访问
$ sudo ufw deny 25 <== 拒绝 smtp 访问
```
你可以查看 **/etc/services** 文件来找到端口号和服务名称之间的联系。
你可以查看 `/etc/services` 文件来找到端口号和服务名称之间的联系。
```
$ grep 80/ /etc/services
http 80/tcp www # WorldWideWeb HTTP
@ -119,7 +127,7 @@ To Action From
443/tcp (v6) ALLOW Anywhere (v6) <==
```
**ufw** 遵循的规则存储在 **/etc/ufw** 目录中,注意,你需要 root 用户访问权限才能查看这些文件,每个文件都包含大量规则。
`ufw` 遵循的规则存储在 `/etc/ufw` 目录中。注意,你需要 root 用户访问权限才能查看这些文件,每个文件都包含大量规则。
```
$ ls -ltr /etc/ufw
@ -137,7 +145,8 @@ drwxr-xr-x 3 root root 4096 Nov 12 08:21 applications.d
-rw-r----- 1 root root 1530 Mar 19 10:42 user6.rules
```
本文前面所作的更改,为 **http** 访问添加了端口 **80** 和为 **https** 访问添加了端口 **443**,在 **user.rules****user6.rules** 文件中看起来像这样:
本文前面所作的更改,为 `http` 访问添加了端口 `80` 和为 `https` 访问添加了端口 `443`,在 `user.rules``user6.rules` 文件中看起来像这样:
```
# grep " 80 " user*.rules
user6.rules:### tuple ### allow tcp 80 ::/0 any ::/0 in
@ -152,13 +161,15 @@ user.rules:### tuple ### allow tcp 443 0.0.0.0/0 any 0.0.0.0/0 in
user.rules:-A ufw-user-input -p tcp --dport 443 -j ACCEPT
```
使用 **ufw**,你还可以使用以下命令轻松地阻止来自一个系统的连接:
使用 `ufw`,你还可以使用以下命令轻松地阻止来自一个 IP 地址的连接:
```
$ sudo ufw deny from 208.176.0.50
Rule added
```
status 命令将显示更改:
`status` 命令将显示更改:
```
$ sudo ufw status verbose
Status: active
@ -178,9 +189,7 @@ Anywhere DENY IN 208.176.0.50 <== new
443/tcp (v6) ALLOW IN Anywhere (v6)
```
总而言之,**ufw** 不仅容易配置,而且且容易理解。
加入 [Facebook][4] 和 [LinkedIn][5] 上的网络世界社区,评论最火的主题。
总而言之,`ufw` 不仅容易配置,而且且容易理解。
--------------------------------------------------------------------------------
@ -189,7 +198,7 @@ via: https://www.networkworld.com/article/3533551/linux-firewall-basics-with-ufw
作者:[Sandra Henry-Stocker][a]
选题:[lujun9972][b]
译者:[MjSeven](https://github.com/MjSeven)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出