检查您当前UFW规则集sudo ufw status
或sudo 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