如何在 Ubuntu 18.04 上使用 UFW 管理和转发端口

介绍

每个 Web 服务都可以通过特定的 URL 在 Internet 上访问,该 URL 代表一种“替代名称”,用于标识提供该服务的服务器的 IP 地址和端口。同一台机器可以同时在不同的端口上提供不同的服务。 

出于安全原因,可能需要屏蔽 Web 服务的端口号,从而在外部显示与服务实际侦听的端口号不对应的端口号。

感谢本教程,您将能够管理您的服务器端口,配置集成在 Ubuntu 中的 UFW 防火墙。特别是,按照指南的说明,您将学习将来自某个端口的请求转发到另一个端口(端口转发),同时使用后者提供的服务。

目前我们服务器的 70 端口没有服务。另一方面,一个服务在端口 8600 上处于活动状态,在本指南使用的示例中,它返回一个简单的写法。 

因此,本教程的目标是配置 UFW,以便用户可以连接到端口 70,但在端口 8600 上提供的服务由服务器返回给他们。

先决条件

为了测试本教程中显示的示例,您需要:

  • 一台 Linux Ubuntu 18.04 服务器;
  • UFW,认安装在 Ubuntu 上(除非已经卸载)。

首先,通过 SSH 连接连接到您的服务器。如果您还没有这样做,建议按照我们的指南 使用 SSH 协议安全连接。如果是本地服务器,请转到下一步并打开服务器的终端。

配置 UFW 防火墙

最初,没有允许端口转发的命令,即将给定端口上接收的流量重定向到您选择的另一个端口。但是,此操作可以通过对 UFW 所基于的配置规则进行操作来实现,UFW 是在 Ubuntu 上配置防火墙的认应用程序。

首先,确保为 TCP 流量启用了目标端口,否则 UFW 将阻止所有发往该端口的请求。使用以下命令执行此操作:

sudo ufw allow port_number/tcp

注意,将“port_number”替换为您希望将流量定向到的目标端口。

如前所述,没有直接的命令可以输入。因此,手动编辑“/etc/ufw/before.rules”目录中的UFW配置文件

cd /etc/ufw
sudo nano before.rules

* filter部分之前,插入这些指令,分别使用端口号修改参数“exposed_port”和“effective_port”,以启用来自外部的请求和服务实际侦听的端口的端口号。

*nat
:PREROUTING ACCEPT [0:0]
-A PREROUTING -p tcp --dport exposed_port -j REDIRECT --to-port effective_port
COMMIT

下图显示一个配置示例,通过它,在端口 70 上发出的所有请求都将重定向到端口 8600。

门重定向

现在,添加 SSH 连接规则并使用以下命令重新启动 UFW 防火墙:

sudo ufw allow OpenSSH
sudo ufw allow in ssh
sudo ufw enable

如果使用 SSH 连接,您将被要求是否继续操作,因为这最终可能会终止连接。然后,键入Y并按 Enter。

结论

此时,所有通过 70 端口的流量都会被重定向到 8600 端口,反之亦然。

如下图所示,在最初显示的相同地址和相同端口上,您现在正在侦听以前在 8600 端口上提供的服务。

服务在不同的端口上可用

这可以根据您的需要针对每项服务多次执行,以屏蔽真实端口号并保护您的服务器。

相关文章

目录前言一、创建Hadoop用户二、更新apt和安装Vim编辑器三、...
原文连接:https://www.cnblogs.com/yasmi/p/5192694.html ...
电脑重启后,打开VirtualBox,发现一直用的虚拟机莫名的消失...
参见:https://blog.csdn.net/weixin_38883338/article/deta...
Ubuntu 18.04 LTS 已切换到 Netplan 来配置网络接口。Netpla...
介绍每个 Web 服务都可以通过特定的 URL 在 Internet 上访问...