简介
SSH会自动加密和解密所有SSH客户端与服务端之间的网络数据,还能够将其他TCP端口的网络数据通过SSH连接进行转发,并且自动提供了相应的加密及解密服务,这一过程被叫做“SSH隧道” (tunneling)。
SSH隧道加密传输,两大优势:
加密SSH Client 端至SSH Server 端之间的通讯数据
突破防火墙的限制完成一些之前无法建立的TCP 连接
SSH隧道加密传输, C/S 模式的架构,配置文件分为:
服务器端配置文件:/etc/ssh/sshd_config
客户端配置文件:/etc/ssh/ssh_config、用户配置文件~/.ssh/config
参数详解
关于建立ssh隧道时所用到一些参数的详细解释:
1 | -C 压缩传输,加快传输速度
2 | -f 在后台对用户名密码进行认证
3 | -N 仅仅只用来转发,不用再弹回一个新的shell -n 后台运行
4 | -q 安静模式,不要显示任何debug信息
5 | -l 指定ssh登录名
6 | -g 允许远程主机连接到本地用于转发的端口
7 | -L 进行本地端口转发
8 | -R 进行远程端口转发
9 | -D 动态转发,即socks代理
10 | -T 禁止分配伪终端
11 | -p 指定远程ssh服务端口
本地转发
把本地端口数据转发到远程服务器,本地服务器作为SSH客户端及应用户端,称为正向 tcp 端口加密转发。
基础环境
本地攻击机 10.11.42.99
☁️VPS 192.168.144.174
☁️目标Widnwos Web服务器(出网) 192.168.144.210
必要配置
到☁️VPS192.168.144.174机器上修改 ssh 配置:
1 | # vim /etc/ssh/sshd_config
2 |
3 | AllowTcpForwarding yes
4 | GatewayPorts yes
5 | TCPKeepAlive yes
6 | PasswordAuthentication yes
7 |
8 | # service ssh restart