有时,你无法从当前位置连接到ssh服务器。其他时候,你可能想为你的ssh连接增加一层额外的安全保护。在这些情况下,通过代理服务器连接到另一个ssh服务器是一种方法。
Squid是一个功能齐全的代理服务器应用程序,提供缓存和代理服务。它通常用于帮助提高响应时间,并通过在浏览过程中重用和缓存以前请求的网页来减少网络带宽。
然而对于这个设置,你将把Squid配置为ssh代理服务器,因为它是一个强大的可信代理服务器,易于配置。
安装与配置
使用sudo安装squid软件包:
$ sudo dnf install squid -y
squid配置文件非常广泛,但是我们只需要配置几件事。Squid使用访问控制列表来管理连接。
编辑/etc/squid/squid.conf文件,以确保您具有下面说明的两行。
首先,指定您的本地IP网络。默认配置文件已经包含最常用的配置列表,但是如果不存在,则需要添加您的配置文件。例如,如果您的本地IP网络范围是192.168.1.X,则该行的外观如下:
acl localnet src 192.168.1.0/24
接下来,通过添加以下行,将ssh端口添加为安全端口:
acl Safe_ports port 22
保存该文件。现在启用并重新启动Squid代理服务:
$ sudo systemctl enable squid
$ sudo systemctl restart squid
4.)默认情况下,squid代理在端口3128上进行侦听。将firewalld配置为允许此操作:
$ sudo firewall-cmd –add-service=squid –perm
$ sudo firewall-cmd –reload
测试ssh代理连接
要通过ssh通过代理服务器连接到服务器,我们将使用netcat。
如果尚未安装nmap-ncat,请安装它:
$ sudo dnf install nmap-ncat -y
这是标准ssh连接的示例:
$ ssh user@example.com
本示例假定Squid代理服务器的IP地址为192.168.1.63。您还可以使用Squid代理服务器的主机名或FQDN:
$ ssh user@example.com -o “ProxyCommand nc –proxy 192.168.1.63:3128 %h %p”
以下是这些选项的含义:
nc –用于建立与代理服务器的连接的命令。这是netcat命令。
% h –代理服务器的主机名或IP地址的占位符。
% p –代理服务器端口号的占位符。