如何在 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 端口上提供的服务。

服务在不同的端口上可用

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值