使用防火墙让你的 Linux 更加强大


使用防火墙让你的 Linux 更加强大

文章插图
掌握防火墙的工作原理,以及如何设置防火墙来提高 linux 的安全性
-- Seth Kenlon(作者)
所有人都听说过防火墙(哪怕仅仅是在网络犯罪片里看到过相关的情节设定),很多人也知道他们的计算机里很可能正运行着防火墙,但是很少有人明白在必要的时候如何驾驭防火墙 。
防火墙被用来拦截那些不请自来的网络流量,然而不同网络需要的安全级别也不尽相同 。比如说,和在外面一家咖啡馆里使用公共 WiFi 相比,你在家里的时候可以更加信任网络里的其它计算机和设备 。你或许希望计算机能够区分可以信任和不可信任的网络,不过最好还是应该学会自己去管理(或者至少是核实)你的安全设置 。
防火墙的工作原理
网络里不同设备之间的通信是通过一种叫做 端口(port)的网关实现的 。这里的端口指的并不是像 USB 端口 或者 HDMI 端口这样的物理连接 。在网络术语中,端口是一个纯粹的虚拟概念,用来表示某种类型的数据到达或离开一台计算机时候所走的路径 。其实也可以换个名字来称呼,比如叫“连接”或者“门口”,不过 早在 1981 年的时候 它们就被称作端口了,这个叫法也沿用至今 。其实端口这个东西没有任何特别之处,只是一种用来指代一个可能会发生数据传输的地址的方式 。
1972 年,发布了一份 端口号列表 (那时候的端口被称为“ 套接字(socket)”),并且从此演化为一组众所周知的标准端口号,帮助管理特定类型的网络流量 。比如说,你每天访问网站的时候都会使用 80 和 443 端口,因为互联网上的绝大多数人都同意(或者是默认)数据从 web 服务器上传输的时候是通过这两个端口的 。如果想要验证这一点,你可以在使用浏览器访问网站的时候在 URL 后面加上一个非标准的端口号码 。比如说,访问 example.com:42 的请求会被拒绝,因为 example.com 在 42 端口上并不提供网站服务 。
使用防火墙让你的 Linux 更加强大

文章插图
Navigating to a nonstandard port produces an erro
如果你是通过 80 端口访问同一个网站,就可以(不出所料地)正常访问了 。你可以在 URL 后面加上 :80 来指定使用 80 端口,不过由于 80 端口是 HTTP 访问的标准端口,所以你的浏览器其实已经默认在使用 80 端口了 。
当一台计算机(比如说 web 服务器)准备在指定端口接收网络流量的时候,保持该端口向网络流量开放是一种可以接受的(也是必要的)行为 。但是不需要接收流量的端口如果也处在开放状态就比较危险了,这就是需要用防火墙解决的问题 。
安装 firewalld
有很多种配置防火墙的方式,这篇文章介绍 firewalld。在桌面环境下它被集成在 网络管理器(Network Manager)里,在终端里则是集成在 firewall-cmd 里 。很多 Linux 发行版都预装了这些工具 。如果你的发行版里没有,你可以把这篇文章当成是管理防火墙的通用性建议,在你所使用的防火墙软件里使用类似的方法,或者你也可以选择安装 firewalld 。
比如说在 Ubuntu 上,你必须启用 universe 软件仓库,关闭默认的 ufw 防火墙,然后再安装 firewalld:
$ sudo systemctl disable ufw
$ sudo add-apt-repository universe
$ sudo apt install firewalld
Fedora、centos、RHEL、OpenSUSE,以及其它很多发行版默认就包含了 firewalld 。
无论你使用哪个发行版,如果希望防火墙发挥作用,就必须保持它在开启状态,并且设置成开机自动加载 。你应该尽可能减少在防火墙维护工作上所花费的精力 。
$ sudo systemctl enable --now firewalld
使用网络管理器选择区域
或许你每天都会连接到很多不同的网络 。在工作的时候使用的是一个网络,在咖啡馆里是另一个,在家里又是另一个 。你的计算机可以判断出哪一个网络的使用频率比较高,但是它并不知道哪一个是你信任的网络 。
一个防火墙的 区域(zone)里包含了端口开放和关闭的预设规则 。你可以通过使用区域来选择一个对当前网络最适用的策略 。
你可以打开网络管理器里的连接编辑器(可以在应用菜单里找到),或者是使用 nm-connection-editor & 命令以获取所有可用区域的列表 。
使用防火墙让你的 Linux 更加强大

文章插图
Network Manager Connection Editor
在网络连接列表中,双击你现在所使用的网络 。
在出现的网络配置窗口中,点击“通用”标签页 。


推荐阅读