UFW要领:通用防火墙规则和命令

介绍

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

如何使用本指南

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

阻止IP地址

要阻止所有网络连接从一个特定的IP地址发起, 15.15.15.51例如,运行以下命令:
sudo ufw deny from 15.15.15.51
在这个例子中, from 15.15.15.51指定“15.15.15.51”的一个 IP地址。 如果你想,一个子网,如 15.15.15.0/24 ,在这里可以代替规定。 源IP地址可以在任何防火墙规则中指定,其中包括 允许规则。

阻止与网络接口的连接

要阻止来自特定IP地址的连接,例如 15.15.15.51到一个特定的网络接口,如 eth0 ,使用这个命令:
sudo ufw deny in on eth0 from 15.15.15.51
这是相同的前面的例子,通过加入 in on eth0 。网络接口可以在任何防火墙规则中指定,并且是将规则限制到特定网络的好方法。

服务:SSH

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

允许SSH

要允许所有传入的SSH连接运行此命令:
sudo ufw allow ssh
另一种语法是指定SSH服务的端口号:
sudo ufw allow 22

允许从特定IP地址或子网接收SSH

要允许来自特定IP地址或子网的传入SSH连接,请指定源。例如,如果你想使整个 15.15.15.0/24子网,运行以下命令:
sudo ufw allow from 15.15.15.0/24  to any port 22

允许从特定IP地址或子网接收Rsync

Rsync在端口873上运行,可用于将文件从一台计算机传输到另一台计算机。 要允许来自特定IP地址或子网的传入rsync连接,请指定源IP地址和目标端口。例如,如果你想使整个 15.15.15.0/24子网能够Rsync在您的服务器,运行以下命令:
sudo ufw allow from 15.15.15.0/24 to any port 873

服务:Web服务器

Web服务器(如Apache和Nginx)通常分别监听端口80和443上的HTTP和HTTPS连接的请求。如果将传入流量的默认策略设置为drop或deny,您将需要创建允许服务器响应这些请求的规则。

允许所有传入的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数据库服务器,则需要确保允许该流量。

PostgreSQL从特定的IP地址或子网

要允许从特定IP地址或子网传入PostgreSQL连接,请指定源。例如,如果你想使整个 15.15.15.0/24子网,运行以下命令:
sudo ufw allow from 15.15.15.0/24 to any port 5432
如果第二个命令,允许 建立的PostgreSQL连接发送的报文,只需要 OUTPUT的政策未设置为 ACCEPT

允许PostgreSQL到特定的网络接口

为了让PostgreSQL的连接到特定的网络接口,说你有一个专用网络接口 eth1 ,例如使用这个命令:
sudo ufw allow in on eth1 to any port 5432
如果第二个命令,允许 建立的PostgreSQL连接发送的报文,只需要 OUTPUT的政策未设置为 ACCEPT

服务:邮件

邮件服务器(例如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是一个非常灵活的工具,所以随意混合和匹配命令与不同的选项,以满足您的具体需要,如果这里不包括。 祝你好运!
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏