ssh的相关实验

author:JevonWei
版权声明:原创作品


跨主机ssh连接

主机A想连接主机C,但是主机C防火墙等原因禁止主机A连接,而主机A可以连接主机B,主机B也可连接主机C,即主机A就可通过主机B做跳板从而达到连接主机c的目的

主机A:192.168.198.100     
主机B:192.168.198.130     
主机C:192.168.198.200 
    
ssh -t 192.168.198.130 ssh 192.168.198.200    主机A通过连接主机B从而获得一个伪终端进而ssh连接主机C

SSH端口转发(telnet协议)

主机A想通过telnet不安全的协议连接到C主机,但是主机C的防火墙阻挡连接,故可通过主机B的ssh端口转发将不安全协议封装到ssh安全协议中,然后主机B再将ssh封装的主机A的不安全协议进行解密然后在传输给主机C

主机A   192.168.198.134
主机B   192.168.198.128
主机C   192.168.198.136    

在主机A上开放隧道端口

  • 主机C因为防火墙等因素阻止主机A的连接,但C允许主机B连接

    iptables -A INPUT -s 192.168.198.134 -j REJECT

  • 主机A上建立SSH的端口转发到主机B的数据隧道

    主机A
    ssh -L 5896:192.168.198.136:23 -Nf 192.168.198.128 -L 指定在本机操作,5896端口为主机A打开的端口,-N不开启远程shell窗口,-f后台执行,指定192.168.198.136:23指定需要连接的主机C的IP及端口号,192.168.198.131指定SSH实现端口转发的主机B,然后键入主机B的口令

image

主机A
ss -nt    \ 查看主机B上已显示主机A的连接   

image

主机A
ss -ntl   \ 查看主机A的5896端口是否打开   

image

主机A
telnet 127.0.0.1 5896  主机A连接开放的5896端口,即可通过主机B连通主机C       

image

主机C
ss -nl   \ 检测主机C的网络连接,即主机B连接建立的连接    

image

在主机B上开放隧道端口,A主机访问主机C

主机B:
ssh -R 5896:192.168.198.136:23 -Nf 192.168.198.134 
主机A:
ss -ntl | grep 5896   \ 检测5895端口是否打开  
telnet 127.0.0.1 5896  

image

主机C
ss -nt   \ 检测到的其实是主机B 192.168.198.128的主机的连接 

image

SSH端口动态转发(实现web访问)

主机A通过主机B的1080端口访问主机C

主机A   192.168.198.134
主机B   192.168.198.128
主机C   192.168.198.136 
  • 主机C因为防火墙等因素阻止主机A的连接,但C允许主机B连接

    iptables -A INPUT -s 192.168.198.134 -j REJECT

  • 主机A开启动态端口转发

    ssh -D 5896 192.168.198.128 主机A开启一个5896的端口连接主机B 192.168.198.128
    ss -ntl | grep 5896 检测5896端口是否打开

image

  • 使用主机A的浏览器配置端口代理

image
image
SOCKS Host 输入的为本机的IP和开放的动态端口号5896
image

主机A使用crul字符浏览器访问主机C的web服务    
curl 192.168.198.136  

image

  • 主机B

    ss -nt 查看网络连接,主机A192.168.198.134已成为ssh的客户端

image

  • 主机C查看/var/log/httpd/access_log日志文件可知主机A是通过主机B连接到web服务的

    cat /var/log/httpd/access_log

image

SSH的相关内容

http://www.cnblogs.com/JevonWei/p/7231348.html

danran
原文地址:https://www.cnblogs.com/JevonWei/p/7231283.html