UFW最全教程:包含各种防火墙规则和命令

介绍

UFW是默认包含在Ubuntu中的iptables的防火墙配置工具。 这个作弊表格式指南提供了对UFW命令的快速参考,这将创建iptables防火墙规则在常见的日常情况下非常有用。 这包括通过端口,网络接口和源IP地址允许和阻止各种服务的UFW示例。

如何使用本指南
- 如果您刚刚开始使用UFW来配置防火墙,请查看我们对UFW的介绍
- 这里描述的大多数规则假定您使用的是默认的UFW规则集。 也就是说,它设 - 置为通过默认策略允许传出和拒绝传入流量,因此您必须有选择地允许流量进入
- 使用后面的部分适用于您要实现的内容。 大多数章节不是以任何其他章节为基础的,所以您可以单独使用下面的示例
- 使用此页面右侧的内容菜单(宽页面宽度)或浏览器的查找功能找到您需要的部分
- 复制并粘贴给出的命令行示例,用红色替换您的值
请记住,您可以使用sudo ufw statussudo ufw status verbose来检查当前的UFW规则集。

阻止IP地址

要阻止所有源自特定IP地址的网络连接,例如15.15.15.51 ,请运行以下命令:

sudo ufw deny from 15.15.15.51

在本例中, from 15.15.15.51指定了一个源 IP地址“15.15.15.51”。 如果你愿意,可以在这里指定一个子网,比如15.15.15.0/24 。 源IP地址可以在任何防火墙规则中指定,包括允许(allow)规则。

阻止连接到网络接口

要阻止特定IP地址(例如15.15.15.51)到特定网络接口(例如eth0 ),请使用以下命令:

  sudo ufw deny in on eth0 from 15.15.15.51

这与前面的例子相同,但在eth0生效 。 网络接口可以在任何防火墙规则中指定,并且这是将规则限制到特定子网的好方法。

服务:SSH

如果您使用的是云服务器,您可能希望允许传入的SSH连接(端口22),以便连接并管理您的服务器。 本节介绍如何使用各种与SSH相关的规则配置防火墙。

允许SSH

要允许所有传入的SSH连接运行此命令:

sudo ufw allow ssh

另一种语法是指定SSH服务的端口号:

sudo ufw allow 22

允许来自特定IP地址或子网的传入SSH

要允许来自特定IP地址或子网的传入SSH连接,请指定IP地址段。 例如,如果您想要允许整个15.15.15.0/24子网,请运行以下命令:

sudo ufw allow from 15.15.15.0/24 to any port 22

允许来自特定IP地址或子网的传入Rsync

在端口873上运行的Rsync可用于将文件从一台计算机传输到网络上的另一台计算机。

要允许来自特定IP地址或子网的传入rsync连接,请指定源IP地址和目标端口。 例如,如果您希望允许整个15.15.15.0/24子网能够与您的服务器进行同步 ,请运行以下命令:

sudo ufw allow from 15.15.15.0/24 to any port 873

服务:Web服务器

Web服务器(如Apache和Nginx)通常分别在端口80和443上侦听HTTP和HTTPS连接的请求。 如果传入流量的默认策略设置为放弃或拒绝,则您需要创建规则,以便服务器响应这些请求。

允许所有传入HTTP

要允许所有传入的HTTP(端口80)连接运行此命令:

sudo ufw allow http

另一种语法是指定HTTP服务的端口号:

sudo ufw allow 80

允许所有传入的HTTPS

要允许所有传入的HTTPS(端口443)连接运行此命令:

sudo ufw allow https

另一种语法是指定HTTPS服务的端口号:

sudo ufw allow 443

允许所有传入HTTP和HTTPS

如果您希望同时允许HTTP和HTTPS流量,则可以创建允许这两个端口的单个规则。 要允许所有传入的HTTP和HTTPS(端口443)连接运行此命令:

sudo ufw allow proto tcp from any to any port 80,443

请注意,在指定多个端口时,您需要使用proto tcp指定协议。

服务:MySQL

MySQL监听端口3306上的客户端连接。如果您的MySQL数据库服务器正在被远程服务器上的客户端使用,则需要确保允许该流量。

允许来自特定IP地址或子网的MySQL

要允许来自特定IP地址或子网的传入MySQL连接,请指定源。 例如,如果您想要允许整个15.15.15.0/24子网,请运行以下命令:

sudo ufw allow from 15.15.15.0/24 to any port 3306

允许MySQL到特定的网络接口

为了允许MySQL连接到特定的网络接口 - 比如说你有一个专用网络接口eth1 ,使用这个命令:

sudo ufw allow in on eth1 to any port 3306

服务:PostgreSQL

PostgreSQL在端口5432上侦听客户端连接。如果您的PostgreSQL数据库服务器正在被远程服务器上的客户端使用,您需要确保允许该流量。

来自特定IP地址或子网的PostgreSQL

要允许来自特定IP地址或子网的传入PostgreSQL连接,请指定源。 例如,如果您想要允许整个15.15.15.0/24子网,请运行以下命令:

sudo ufw allow from 15.15.15.0/24 to any port 5432

只有在OUTPUT策略未设置为ACCEPT ,才需要第二个允许建立PostgreSQL连接的传出流量的命令。

允许PostgreSQL到特定的网络接口

为了允许PostgreSQL连接到特定的网络接口 - 比如你有一个专用网络接口eth1 ,使用这个命令:

sudo ufw allow in on eth1 to any port 5432

只有在OUTPUT策略未设置为ACCEPT ,才需要第二个允许建立PostgreSQL连接的传出流量的命令。

服务:邮件

邮件服务器(如Sendmail和Postfix)根据用于邮件传递的协议在各种端口上侦听。 如果您正在运行邮件服务器,请确定您正在使用的协议并允许适当类型的流量。 我们还将向您展示如何创建阻止传出SMTP邮件的规则。

阻止传出SMTP邮件

如果您的服务器不应该发送外发邮件,则可能需要阻止该类流量。 要阻止使用端口25的传出SMTP邮件,请运行以下命令:

sudo ufw deny out 25

这将您的防火墙配置为放弃端口25上的所有传出通信。如果您需要通过其端口号而不是端口25拒绝不同的服务,只需将其替换即可。

允许所有传入SMTP

要允许服务器响应SMTP连接(端口25),请运行以下命令:

sudo ufw allow 25

注意: SMTP服务器通常使用端口587作为出站邮件。

允许所有传入的IMAP

要允许您的服务器响应IMAP连接(端口143),请运行以下命令:

sudo ufw allow 143

允许所有传入的IMAPS

要允许您的服务器响应IMAPS连接,端口993,请运行以下命令:

sudo ufw allow 993

允许所有传入POP3

要允许服务器响应POP3连接(端口110),请运行以下命令:

sudo ufw allow 110

允许所有传入POP3S

要允许服务器响应POP3S连接(端口995),请运行以下命令:

sudo ufw allow 995

结论

这应该涵盖许多使用UFW配置防火墙时常用的命令。 当然,UFW是一款非常灵活的工具,因此如果这里没有涉及到,可以随意混合和匹配具有不同选项的命令以满足您的特定需求。
欢迎留言交流探讨!

你可能感兴趣的:(Coding)