我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何使用ssh访问防火墙后的Linux服务器

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何使用ssh访问防火墙后的Linux服务器

本篇内容介绍了“如何使用ssh访问防火墙后的Linux服务器”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

使用ssh工具访问Linux服务器的基本方法

第一步,开启工作站上防火墙的相应端口,SSH是22。

第二步,开启SSH服务。
先查看ssh的状态。

代码如下:

service sshd status


开启服务,

代码如下:

service sshd start


当然也可以关闭了,

代码如下:

service sshd stop


重启服务,

代码如下:

sshd restart

第三步,修改配置文件,/etc/ssh/sshd_config
打开这个文件,在最后的地方AllowUsers,添加用户名,多个就用空格隔开,当然也可以添加root。如果想禁用root 登录也可以,这里不添加。同时可以在这个文件中找到一个语句: Permitrootlogin yes。将yes改为no就可以了。

第四步,设置ssh随机启动

代码如下:

chkconfig --level xxxx sshd on   //xxxx表示你要的等级(应该这么说吧),例如2345等

第五步,远程登录
 

代码如下:

ssh usrname@hostname      //hostname或者Ip


然后就是要你输入密码了。登录后,也可以更改用户(su 命令)。如何希望有图形,也不是不可以,在登录的时候加上 -X (大写的X):ssh -X usrname@hostname。
这样勉强可以吧,也有图形界面了,就是反映比较慢,应急可以。

通过反向 SSH 隧道访问 NAT 后面的 Linux 服务器

什么是反向 SSH 隧道?
SSH 端口转发的一种替代方案是 反向 SSH 隧道。反向 SSH 隧道的概念非常简单。使用这种方案,在你的受限的家庭网络之外你需要另一台主机(所谓的“中继主机”),你能从当前所在地通过 SSH 登录到它。你可以用有公网 IP 地址的 VPS 实例 配置一个中继主机。然后要做的就是从你的家庭网络服务器中建立一个到公网中继主机的永久 SSH 隧道。有了这个隧道,你就可以从中继主机中连接“回”家庭服务器(这就是为什么称之为 “反向” 隧道)。不管你在哪里、你的家庭网络中的 NAT 或 防火墙限制多么严格,只要你可以访问中继主机,你就可以连接到家庭服务器。
如何使用ssh访问防火墙后的Linux服务器
在 Linux 上设置反向 SSH 隧道
让我们来看看怎样创建和使用反向 SSH 隧道。我们做如下假设:我们会设置一个从家庭服务器(homeserver)到中继服务器(relayserver)的反向 SSH 隧道,然后我们可以通过中继服务器从客户端计算机(clientcomputer) SSH 登录到家庭服务器。本例中的中继服务器 的公网 IP 地址是 1.1.1.1。

在家庭服务器上,按照以下方式打开一个到中继服务器的 SSH 连接。

代码如下:

homeserver~$ ssh -fN -R 10022:localhost:22 relayserver_user@1.1.1.1


这里端口 10022 是任何你可以使用的端口数字。只需要确保中继服务器上不会有其它程序使用这个端口。

“-R 10022:localhost:22” 选项定义了一个反向隧道。它转发中继服务器 10022 端口的流量到家庭服务器的 22 号端口。

用 “-fN” 选项,当你成功通过 SSH 服务器验证时 SSH 会进入后台运行。当你不想在远程 SSH 服务器执行任何命令,就像我们的例子中只想转发端口的时候非常有用。

运行上面的命令之后,你就会回到家庭主机的命令行提示框中。

登录到中继服务器,确认其 127.0.0.1:10022 绑定到了 sshd。如果是的话就表示已经正确设置了反向隧道。

代码如下:

relayserver~$ sudo netstat -nap | grep 10022

代码如下:

tcp      0    0 127.0.0.1:10022          0.0.0.0:*               LISTEN     8493/sshd

    
现在就可以从任何其它计算机(客户端计算机)登录到中继服务器,然后按照下面的方法访问家庭服务器。

 

代码如下:

relayserver~$ ssh -p 10022 homeserver_user@localhost


需要注意的一点是你在上面为localhost输入的 SSH 登录/密码应该是家庭服务器的,而不是中继服务器的,因为你是通过隧道的本地端点登录到家庭服务器,因此不要错误输入中继服务器的登录/密码。成功登录后,你就在家庭服务器上了。

通过反向SSH 隧道直接连接到网络地址变换后的服务器
上面的方法允许你访问 NAT 后面的 家庭服务器,但你需要登录两次:首先登录到 中继服务器,然后再登录到家庭服务器。这是因为中继服务器上 SSH 隧道的端点绑定到了回环地址(127.0.0.1)。

事实上,有一种方法可以只需要登录到中继服务器就能直接访问NAT之后的家庭服务器。要做到这点,你需要让中继服务器上的 sshd 不仅转发回环地址上的端口,还要转发外部主机的端口。这通过指定中继服务器上运行的 sshd 的 GatewayPorts 实现。

打开中继服务器的 /etc/ssh/sshd_conf 并添加下面的行。

代码如下:


relayserver~$ vi /etc/ssh/sshd_conf
GatewayPorts clientspecified


重启 sshd。

基于 Debian 的系统:

代码如下:

relayserver~$ sudo /etc/init.d/ssh restart


基于红帽的系统:

代码如下:

relayserver~$ sudo systemctl restart sshd


现在在家庭服务器中按照下面方式初始化一个反向 SSH 隧道。

代码如下:

homeserver~$ ssh -fN -R 1.1.1.1:10022:localhost:22 relayserver_user@1.1.1.1


登录到中继服务器然后用 netstat 命令确认成功建立的一个反向 SSH 隧道。

 

代码如下:

relayserver~$ sudo netstat -nap | grep 10022

代码如下:

tcp      0      0 1.1.1.1:10022     0.0.0.0:*           LISTEN      1538/sshd: dev


不像之前的情况,现在隧道的端点是 1.1.1.1:10022(中继服务器的公网 IP 地址),而不是 127.0.0.1:10022。这就意味着从外部主机可以访问隧道的另一端。

现在在任何其它计算机(客户端计算机),输入以下命令访问网络地址变换之后的家庭服务器。

代码如下:


clientcomputer~$ ssh -p 10022 homeserver_user@1.1.1.1


在上面的命令中,1.1.1.1 是中继服务器的公共 IP 地址,homeserver_user必须是家庭服务器上的用户账户。这是因为你真正登录到的主机是家庭服务器,而不是中继服务器。后者只是中继你的 SSH 流量到家庭服务器。

在 Linux 上设置一个永久反向 SSH 隧道
现在你已经明白了怎样创建一个反向 SSH 隧道,然后把隧道设置为 “永久”,这样隧道启动后就会一直运行(不管临时的网络拥塞、SSH 超时、中继主机重启,等等)。毕竟,如果隧道不是一直有效,你就不能可靠的登录到你的家庭服务器。

对于永久隧道,我打算使用一个叫 autossh 的工具。正如名字暗示的,这个程序可以让你的 SSH 会话无论因为什么原因中断都会自动重连。因此对于保持一个反向 SSH 隧道非常有用。

第一步,我们要设置从家庭服务器到中继服务器的无密码 SSH 登录。这样的话,autossh 可以不需要用户干预就能重启一个损坏的反向 SSH 隧道。

下一步,在建立隧道的家庭服务器上安装 autossh。

在家庭服务器上,用下面的参数运行 autossh 来创建一个连接到中继服务器的永久 SSH 隧道。

代码如下:


homeserver~$ autossh -M 10900 -fN -o "PubkeyAuthentication=yes" -o "StrictHostKeyChecking=false" -o "PasswordAuthentication=no" -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -R 1.1.1.1:10022:localhost:22 relayserver_user@1.1.1.1


“-M 10900” 选项指定中继服务器上的监视端口,用于交换监视 SSH 会话的测试数据。中继服务器上的其它程序不能使用这个端口。

“-fN” 选项传递给 ssh 命令,让 SSH 隧道在后台运行。

“-o XXXX” 选项让 ssh:

使用密钥验证,而不是密码验证。
自动接受(未知)SSH 主机密钥。
每 60 秒交换 keep-alive 消息。
没有收到任何响应时最多发送 3 条 keep-alive 消息。
其余 SSH 隧道相关的选项和之前介绍的一样。

如果你想系统启动时自动运行 SSH 隧道,你可以将上面的 autossh 命令添加到 /etc/rc.local。

“如何使用ssh访问防火墙后的Linux服务器”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

如何使用ssh访问防火墙后的Linux服务器

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何使用ssh访问防火墙后的Linux服务器

本篇内容介绍了“如何使用ssh访问防火墙后的Linux服务器”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!使用ssh工具访问Linux服务器
2023-06-12

Linux服务器如何设置防火墙

防火墙是服务器租用后必不可少的安全保护措施。忘记配置服务器防火情,将使您的服务器处于巨大的安全漏洞风险中。防火墙设置可允许您删除连接到网络中的不必要的软件,进而避免您的服务器及其端口受到恶意入侵。   知了云将向您介绍如何在CentOS、Ubuntu和Debi
2022-02-11

linux如何查看服务器防火墙

Linux系统下常用的防火墙工具有iptables和firewalld,可以通过以下命令来查看当前服务器的防火墙状态:查看iptables状态:sudo iptables -L查看firewalld状态:sudo systemctl sta
linux如何查看服务器防火墙
2024-04-09

如何关闭linux服务器防火墙

要关闭Linux服务器的防火墙,可以按照以下步骤进行操作:1. 登录到Linux服务器的终端或SSH会话中,以管理员身份运行命令。2. 检查当前防火墙状态,可以使用以下命令:```sudo systemctl status firewall
2023-09-07

如何为Linux系统的服务器设置防火墙

这篇文章主要介绍“如何为Linux系统的服务器设置防火墙”,在日常操作中,相信很多人在如何为Linux系统的服务器设置防火墙问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何为Linux系统的服务器设置防火墙
2023-06-13

如何正确使用新加坡服务器防火墙

要正确使用新加坡服务器防火墙,可以按照以下步骤进行操作:1. 了解防火墙的基本原理和功能:防火墙是一种网络安全设备,它可以监控和控制网络流量,以防止未经授权的访问和恶意攻击。了解防火墙的工作原理和基本功能对正确使用它至关重要。2. 配置访问
2023-10-11

如何设置云服务器的防火墙

要设置云服务器的防火墙,你可以按照以下步骤进行操作:1. 登录到云服务提供商的管理控制台。2. 找到你想要设置防火墙规则的云服务器实例。3. 进入该云服务器实例的网络安全组或防火墙管理界面。4. 创建一个新的防火墙规则,或修改现有的规则。5
2023-08-09

云服务器的防火墙如何开启

要开启云服务器的防火墙,您可以按照以下步骤操作:1. 登录到您的云服务器的管理控制台。2. 找到您要开启防火墙的云服务器,点击进入云服务器的详情页。3. 在详情页上找到防火墙的设置选项,一般是在安全组或网络设置中。4. 点击进入防火墙设置,
2023-08-15

服务器防火墙的作用及如何设置

服务器防火墙的作用及如何设置,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。在我们日常的服务器使用中,经常会用到防火墙,但是很多朋友不懂防火墙的作用以及怎么设置。现在我们就来科普
2023-06-03

在Linux 服务器下修改防火墙允许该端口远程访问的方法

1.问题描述 出于安全考虑,新搭建的服务器集群只开vyUSKVv放指定几个端口,但是端口开放以后依然无法远程访问,后经过查找问题发现是防火墙需要对端口进行开放,所以使用如下命令修改防火墙允许端口远程访问 2.解决方法 使用命令行执行语句如编
2022-06-04

如何配置防火墙保护Linux服务器免受入侵

要保护Linux服务器免受入侵,可以通过配置防火墙来限制对服务器的访问。以下是一些基本步骤:1. 确保防火墙软件已安装:常见的Linux防火墙软件有iptables和ufw。确保已安装并启用其中一个软件。2. 检查默认规则:查看防火墙的默认
2023-10-18

如何使用网关防火墙保护CentOS服务器的网络安全

使用网关防火墙保护CentOS服务器的网络安全通过使用网关防火墙,可以限制CentOS服务器的访问并防止未经授权的访问和恶意攻击。本文提供了一个分步指南,包括安装、配置、允许必要通信、拒绝不需要的通信、关闭不需要的服务、启用日志记录和监视日志,以及遵循网络安全最佳实践的建议,以确保服务器的安全。
如何使用网关防火墙保护CentOS服务器的网络安全
2024-04-13

如何使用防火墙设置CentOS服务器的网络传输安全

使用防火墙设置CentOS服务器的网络传输安全保护CentOS服务器免受网络攻击至关重要,防火墙是确保网络安全的关键元素。本指南提供逐步说明,涵盖安装、配置、管理防火墙,以及使用区域、服务、目标端口和自定义链进行高级配置,以定制服务器的网络安全策略。通过遵循这些步骤,您可以大大提高服务器的网络传输安全性,保护数据和服务免受网络威胁。
如何使用防火墙设置CentOS服务器的网络传输安全
2024-04-10

如何使用防火墙设置CentOS服务器的网络传输安全

要使用防火墙设置CentOS服务器的网络传输安全,可以按照以下步骤进行操作:1. 安装防火墙软件:使用以下命令安装`firewalld`防火墙软件:```sudo yum install firewalld```2. 启动防火墙:使用以下命
2023-10-10

编程热搜

目录