SSH访问内网/内网穿透的几种情景详解
文章目录
0x01 背景
疫情期间远程办公,自然少不了需要连接到公司内网的服务器跑程序。SSH是一种常用的连接到内网的方式,几乎能做到所有连接内网的操作。下面作者将对几种常用或者不常用的连接到内网的使用情况做一些示例。
0x02 网络拓扑
下面将对网络中的几台机器的网络拓扑做说明。
IP均作匿名化处理
- 个人笔记本1
- 主机名:PC1
- 位置: 公网
- IP:不重要
- 跳板机
- 主机名:proxy.test.com
- ssh:
- 端口: 5022
- 用户名: user
- IP/域名
- 公网: proxy.test.com
- 内网: 192.168.8.10
- 服务器1
- 主机名: srv1
- ssh
- 端口: 818
- 用户名: user
- IP
- 内网:192.168.8.18
0x03 基础知识
- ssh
- 代理服务器
0x04 工具列表
0x041 本地PC
- 如果是windows
- 安装git-bash并使用它提供的ssh功能
- 如果是MacOS或者是Linux
- 使用本地自带的ssh
0x042 企业服务器
需要配置好SSH服务器
0x05 ssh端口转发的基本操作以及通过企业网络访问网站
0x051 适用情况
本方法可以适用于访问
- 企业内部搭建的网站
- 必须企业IP授权才能访问的网站(如论文检索网站)
0x052 步骤
1. 执行ssh动态转发命令
# 在PC1上执行
ssh -D 10824 user@proxy.test.com -p 5022
上面的命令是在PC1本地开放端口10824,该端口作为一个Sock代理服务器,使用此代理可以通过企业内网访问网络
2. 浏览器配置代理
在谷歌Chrome浏览器中配置Proxy SwitchyOmega。
添加新情景模式,类型为代理服务器。
配置代理协议为sock4
,服务器和端口分别为localhost
,10824
现在就能在浏览器中访问只有企业内部才可访问的网站了。
0x053 优化
1. 速度优化
SSH添加**-C**参数可以实现数据包的压缩,对于大量数据的传输会提高速度。
ssh -C -D 10824 user@proxy.test.com -p 5022
2. bug调试
添加**-v**参数能够显示连接过程中的详细信息,出现错误后可以自行调试。
ssh -vC -D 10824 user@proxy.test.com -p 5022
3. 不打开终端
添加**-N**参数可以不打开终端界面。
ssh -vNC -D 10824 user@proxy.test.com -p 5022
4. 添加公钥访问,减少密码输入,并提高安全性
ssh-keygen # 生成密钥对
# 添加私钥到服务器
ssh-copy-id -i ~/.ssh/id_rsa.pub user@proxy.test.com -p 5022
# 此时连接可以不用密码
ssh -vNC -D 10824 user@proxy.test.com -p 5022
5. 保存为config,减少记忆量
在用户目录的.ssh下创建config文件,填入以下内容
Host p