在服务器上运行 VPN 或代理服务可能存在多个风险。
IP 的所有者和您的用户对任何滥用或违法行为负责
通过你的服务进行的活动。为了保护自己免受
问题时,你需要采取主动措施来保护你的
reputation.
Strict Mode:
Whitelisting
确保服务器不被滥用的一个方法是只允许
某些活动。这种方法称为白名单,不会
完全防止滥用;你的用户仍然可能攻击他人并造成后果
在您的服务器被暂停期间。不过,这可能会让滥用申诉流程变得
难度大得多,而且很可能会让滥用者远离你的
服务(不幸的是,也包括一些合法用户)。
我们建议在这里直接丢弃所有传入和传出的
来自您服务器的数据包,除了绝对必需的之外,其他的都会被阻止。
具体方法如下。
在按照指南操作之前,你只需要考虑以下几点:
确保服务器上没有启用其他防火墙。
虽然本指南以 Ubuntu 为例介绍流程,但你不需要拥有
将其作为操作系统。其他操作系统的流程逻辑是相同的
well.
1. Installing UFW
首先,你需要安装 UFW。
sudo apt install ufw
2.
阻止所有传入和传出连接
确保禁用 UFW,因为以下命令可能
中断您与服务器的连接:
sudo ufw disable
下面的命令会直接丢弃所有试图
进出服务器的连接。之后,我们只允许符合条件的连接
我们的用户需要:
sudo ufw default deny incoming
sudo ufw default deny outgoing
3. Allowing
连接到你的服务器
现在我们允许传入连接到端口 22,这是 SSH 端口
用于建立 SSH 连接。虽然这总是一个不错的想法
要更改您的 SSH 端口,请执行以下操作:
sudo ufw allow in 22/tcp comment “Allows me to SSH to my server”
虽然出站连接已经被阻止,我们还会特别
阻止所有目标端口为 22 的出站数据包(在
以防你将来改变默认策略)。这样做会让两者都
您和您的用户无法通过端口上的 SSH 连接到其他服务器
22. 这听起来有些麻烦,但实际上它能解决最
常见的投诉可能导致服务器被暂停。通过使用本
command,任何用户都无法从该位置执行 SSH 暴力破解攻击
your server:
sudo ufw deny out 22/tcp comment “Stops SSH brute force”
允许端口 22 的入站连接后,你可以启用
防火墙不会断开您与服务器的连接:
sudo ufw enable
如果你与服务器断开连接,可以使用
通过 VNC 重新连接到服务器,然后禁用防火墙。
4.
允许您的用户连接到您的服务器以获取代理/VPN
services
显然,你的用户需要连接并使用你服务器上的代理
服务。丢弃所有传入连接会导致这种情况无法实现
它们。因此,我们需要允许用户使用的代理/VPN 端口
例如,假设我们要允许用户连接到 1194 端口,这样
通常用于 OpenVPN。要这样做,请输入以下命令:
sudo ufw allow in 1194/tcp comment “OpenVPN port for users”
或者,如果你在 UDP 上运行 OpenVPN:
sudo ufw allow in 1194/udp comment “OpenVPN port for users”
同样的逻辑也适用于其他 VPN 和代理服务器,只需
找出用户需要连接的端口,然后允许传入的连接
connections to it.
现在,你的用户可以连接到你的服务器和 VPN,但他们
无法连接到外部网络。这是
白名单的作用:用户只能连接到已列入白名单的
端口,除非我们允许。这样做可以最大限度地降低
收到滥用举报。
5.
让你的用户访问网站、使用
applications
现在我们将允许出站流量通过浏览所需的端口
网络,并在 Web 服务器上进行 API 调用。为此,你需要允许
TCP 的 80 端口和 TCP 的 443 端口。同时允许 UDP 的 443 端口也会
让你的用户建立 HTTP3 连接:
sudo ufw allow out 80/tcp comment “HTTP connections”
sudo ufw allow out 443 comment “HTTPS and HTTP3 connections”
6. Allowing
根据需要选择不同的服务
通常来说,只需开放 80 和 443 端口就够了,但要充分
某些应用或软件的功能,你可能需要允许
你的用户也可以使用其他端口。
我们建议你自己做调研,只允许
端口,仅在真正需要时才开放。每个主要应用都有一个
网络文档,包含面向网络管理员的信息
像你一样。在这些文档中,你可以找到
应用会用到并将它们也加入白名单。我们列出了一些常用的
ones as examples.
WhatsApp
(无视频或语音通话):
sudo ufw allow out 443/tcp comment “WhatsApp”
sudo ufw allow out 5222/tcp comment “WhatsApp”
Git:
sudo ufw allow out 9418/tcp comment “Git”
某些服务,例如 Discord,
Zoom,
或 WhatsApp 语音和视频通话需要开放大量 UDP 端口,您
您可以根据需要自行决定是否打开这些选项。
Lenient Mode:
Blacklisting
在白名单模式中,你默认阻止所有流量,只允许特定端口通过。
黑名单,即允许所有流量,仅阻止指定的端口。
1. Installing UFW
首先,你需要安装 UFW
sudo apt install ufw
2. Blocking the
incoming connections
确保禁用 UFW,因为以下命令可能
中断您与服务器的连接:
sudo ufw disable
除非我们需要接收,否则应该阻止所有传入连接
特定服务。因此我们拒绝所有传入流量:
sudo ufw default deny incoming
请注意,这次你没有阻止所有的出站连接。
这样你的用户可以连接到任何他们需要的端口。这不是
除非你完全信任你的用户,否则不建议这样做。
3.
连接到您的服务器
现在我们将允许传入连接到端口 22,这是 SSH 端口
用于建立到您服务器的 SSH 连接。尽管
最好将你的 SSH 端口改成其他的:
sudo ufw allow in 22/tcp comment “Allows me to SSH to my server”
如果要屏蔽 SSH 端口以避免 SSH 暴力破解滥用报告,
你可以使用以下命令:
sudo ufw allow out 22/tcp comment “Block Outgoing SSH ”
4. Block BitTorrent
按照同样的逻辑,你需要阻止那些用于
BitTorrent。不过由于这种协议使用多个端口,你需要
进行研究并阻止公共跟踪器IP以及通常用于BitTorrent的端口
通常用于BitTorrent的端口。
如有任何问题,欢迎通过以下方式与我们联系 submitting a
ticket.