〖Linux〗SSH_VPN配置指南

背景

开发不能连接测试部22网段的测试机器,这导致自动化测试不方便执行

并且之前搭建的一个pptpd vpn让开发连接到测试22网段的测试设备也禁止了

经过一番搜索,于是才我找到了这个相对安全的SSH_VPN这个搭建VPN的方法

若你的英文水平还行,建议你直接阅读官方的帮助文档:SSH_VPN



以下所描述的是基于我自身的背景,而做的一次实际的SSH_VPN搭建

正如官方帮助文档所述,SSH_VPN并不是很好的东西:SSH基于TCP而上层传输又是TCP。

简单的说,tcp over tcp,原来tcp就有了三次握手过程,这么一折腾下来,一次tcp数据传输就有9次握手。。。

废话不多说了,直接来下场景:

开发机器 SSH_VPN client 123.123.52.223/22
测试机器 SSH_VPN server 123.123.108.235/22 --> 能够连接 22.22.136.0/22

现在目标是:期望通过测试机器,使开发能连接到测试部的22网段测试设备

原理

在测试与开发使用SSH_VPN连接(使用 tun0 网口),测试机器充当Server,开发机器充当Client

操作步骤

涉及创建网口(interface),需要Root权限,以下所有操作都以Root执行

Server表示测试的123.123.108.235

Client表示开发的123.123.52.223

  • 先允许Server的ssh创建tun网口,修改配置

    vi /etc/ssh/sshd_config # 修改或添加配置
    PermitRootLogin yes
    PermitTunnel yes
    AllowTcpForwarding yes
    
    service ssh restart # 重启sshd
    
  • Client通过-w参数,创建tun0网口
    ssh -NTCfw 0 [email protected]
    

    各参数含义: -N 不执行远程命令 -T 关闭pseudo-tty分配 -C 压缩传输,可以降低宽带占用,网络慢时可以提速 -f ssh在后台执行 -w 指定tun0作为interface

    此时,tun0网口已可以通过 ifconfig tun0 查看

    看着有点兴奋吧,先不着急,这时候你还不能使用滴

    我们接下来要给Server和Client的tun0都要分配一个同网段的IP,如10.0.0.0/24之类的,它们才能建立起通信

  • 为Server和Client和tun网口分配IP地址

    Server:

    sudo ip link set tun0 up
    sudo ip addr add 10.0.0.100/32 peer 10.0.0.200 dev tun0 # 地址为10.0.0.100
    

    Client:

    sudo ip link set tun0 up
    sudo ip addr add 10.0.0.200/32 peer 10.0.0.100 dev tun0 # 地址为10.0.0.200
    

    此时,测试机器有一个新IP是10.0.0.100,开发机器有一个新IP是10.0.0.200; 在开发机器上执行 ping 10.0.0.100 发现Ping成功了!

  • 服务器配置转发规则

    目前开发也只能ping下10.0.0.0/24这个网段的机器,要让开发机机器能通过测试的服务器访问22网段,还需要配置下转发规则

    arp -sD 10.0.0.200 eth0 pub # 呃,这样子数据就能返回给开发机器了(而不是只出来,未返回给开发机器)
    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE # 嗯,数据最终还是得从eth0出去的,NAT转发一下
    iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE # 再加一条iptables tun0网口 NAT转发规则
    
  • 客户端配置路由规则

    很简单,只有一行:

    route add -net 22.22.0.0/16 tun0 # 通过tun0,开发机器上就可以访问测试的22网段啦!

参考资料:

  [1] https://help.ubuntu.com/community/SSH_VPN

时间: 2024-10-10 02:56:02

〖Linux〗SSH_VPN配置指南的相关文章

JDK在windows和linux中安装配置指南

1 Windows下安装.配置jdk 1.1 准备工作 到http://pan.baidu.com/s/1i3l6MDR下载 jdk-7u55-windows-x64.exe 1.2 安装 双击运行jdk-7u55-windows-x64.exe 1.3 配置环境变量 新建JAVA_HOME变量,值为 C:\JAVA\jdk1.7.0_55 在Path变量最后追加: %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin 新建CLASSPATH变量,值为 .;%JAVA_HOME

Linux Kernel - Debug Guide (Linux内核调试指南 )

http://blog.csdn.net/blizmax6/article/details/6747601 linux内核调试指南 一些前言 作者前言 知识从哪里来 为什么撰写本文档 为什么需要汇编级调试 ***第一部分:基础知识*** 总纲:内核世界的陷阱 源码阅读的陷阱 代码调试的陷阱 原理理解的陷阱 建立调试环境 发行版的选择和安装 安装交叉编译工具 bin工具集的使用 qemu的使用 initrd.img的原理与制作 x86虚拟调试环境的建立 arm虚拟调试环境的建立 arm开发板调试环

树莓派学习笔记——USB wifi配置指南

0 前言 树莓派既可以使用有线网络又可以无线网络,如果使用有线网络不方便的话可以借助USB wifi无线网卡让树莓派也插上无线"翅膀".但是和使用有线网络即插即用的方式不同,USB wifi网卡需要进行一些配置.通过一天的配置实验,本文总结了树莓派wifi配置的两种方法--[1]使用wpa_gui工具方法和[2]修改配置文件方法. [1]使用wpa_gui工具方法 wpa_gui是一种linux平台常用的wifi配置工具,wpa_gui具有图形界面操作简单.由于,树莓派B板只有两个US

linux内核调试指南

linux内核调试指南 一些前言 作者前言 知识从哪里来 为什么撰写本文档 为什么需要汇编级调试 ***第一部分:基础知识*** 总纲:内核世界的陷阱 源码阅读的陷阱 代码调试的陷阱 原理理解的陷阱 建立调试环境 发行版的选择和安装 安装交叉编译工具 bin工具集的使用 qemu的使用 initrd.img的原理与制作 x86虚拟调试环境的建立 arm虚拟调试环境的建立 arm开发板调试环境的建立 gdb基础 基本命令 gdb之gui gdb技巧 gdb宏 汇编基础--X86篇 用户手册 AT&

【转】CentOS 6 服务器安全配置指南

原文连接: CentOS 6 服务器安全配置指南(通用) Linux 是一个开放式系统,可以在网络上找到许多现成的程序和工具,这既方便了用户,也方便了黑客,因为他们也能很容易地找到程序和工具来潜入 Linux 系统,或者盗取 Linux 系统上的重要信息.不过,只要我们仔细地设定 Linux 的各种系统功能,并且加上必要的安全措施,就能让黑客们无机可乘.一般来说,对 Linux 系统的安全设定包括取消不必要的服务.限制远程存取.隐藏重要资料.修补安全漏洞.采用安全工具以及经常性的安全检查等. 本

P6 EPPM 安装与配置指南 16 R1 2016.4

   关于安装和 配置P6 EPPM 本指南告诉你如何自动 安装和配置您的应用程序. 在您开始之前,阅读 先决条件 P6 EPPM配置 (7页). 安装P6 EPPM 您将使用 安装程序 (窗口) ./ runinstaller (对于Linux或UNIX)白桃花心木P6企业项目组合管理 物理介质或下载安装以下P6 EPPM应用程序: 请注意 :你不需要安装 应用程序,你可以选择你安装什么. 然而,您必须安装 P6运行其他P6 EPPM应用程序. 4 P6(和它的帮助和教程) 4 P6团队成员接

Docker配置指南(二):指令集(一)

二.Docker指令集 #由于有一部分指令用到了dockerfile,所以不懂的话,请首先查看dockerfile配置指南一节 attach:    docker attach 允许进入或者直接操作容器     语法:docker attach [OPTIONS] CONTAINER     配置指令:         --help 查看帮助         --no-stdin=false             --sig-proxy=true         用法示例:        [[

nginx配置指南之一(转载)

nginx配置指南之一 一.nginx简介 1.1 Tengine简介 Tengine是由淘宝网发起的Web服务器项目.它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性.Tengine的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到了很好的检验.它的最终目标是打造一个高效.稳定.安全.易用的Web平台. 1.2 参考资源 http://tengine.taobao.org/documentation_cn.html 二.Tengine设置及编译 2.1 前期准备 在

高可用,完全分布式Hadoop集群HDFS和MapReduce安装配置指南

(WJW)高可用,完全分布式Hadoop集群HDFS和MapReduce安装配置指南 为了部署HA集群,应该准备以下事情: namenode服务器: 运行namenode的服务器应该有相同的硬件配置. journalnode服务器:运行的journalnode进程非常轻量,可以部署在其他的服务器上.注意:必须允许至少3个节点.当然可以运行更多,但是必须是奇数个,如3,5,7,9个等等.当运行N个节点时,系统可以容忍至少(N-1)/2个节点失败而不影响正常运行. 在HA集群中,standby状态的