L2TP+IPSec 实现linux与window搭建VPN 并实现密码与数据加密

L2TP+IPSec是实现linux和window之间实现VPN环境的配置,现在的主流的VPN代理服务器都采用此模式

原因是在它的VPN通道中,数据和用户的密码是在加密传输的。

举例:下面的实验我们可以在购买外网的一台云主机(比如香港的主主机),在云主机上配置以下服务端的配置,在用自己的window连接则可以实现翻墙。


本文的实验用到一台linux主机做为服务器,一台window实现翻墙连接。


[root@client vpn]# yum -y install libreswan

[root@client vpn]# vim /etc/ipsec.conf     ------查看主配置文件
include /etc/ipsec.d/*.conf                 -------加载该目录下的所有配置文件
[root@client vpn]# vim /etc/ipsec.d/myipsec.conf
conn IDC-PSK-NAT
    rightsubnet=vhost:%priv              ------容许建立的VPN虚拟网络
    also=IDC-PSK-noNAT
conn IDC-PSK-noNAT
    authby=secret                       ------加密认证
        ike=3des-sha1;modp1024          ------选择算法
        phase2alg=aes256-sha1;modp2048    -----算法
    pfs=no
    auto=add
    keyingtries=3
    rekey=no
    ikelifetime=8h
    keylife=3h
    type=transport
    left=201.1.2.200                   ----设置服务器本机的外网IP
    leftprotoport=17/1701
    right=%any                          ----容许任何客户端连接
    rightprotoport=17/%any
[root@client ~]# vim /etc/ipsec.secrets           
include /etc/ipsec.d/*.secrets             ----加载密钥文件
[root@client vpn]# vim /etc/ipsec.d/mypass.secrets    ---配置IPSec预定义共享密钥

201.1.2.200  %any:   PSK   "randpass"    

201.1.2.200(服务器提供的ip)  %any:(谁可以连接上设备)   PSK (PSK预共享密钥)   "randpass"(密码)

[root@client ~]# cd /etc/ipsec.d/
[root@client ipsec.d]# systemctl start ipsec    ----启动服务
4500和500证明服务启动
[root@client ipsec.d]# ss -ntlup | grep pluto
udp    UNCONN     0      0      127.0.0.1:4500                  *:*                   users:(("pluto",pid=5523,fd=26))
udp    UNCONN     0      0      192.168.4.100:4500                  *:*                   users:(("pluto",pid=5523,fd=24))
udp    UNCONN     0      0      201.1.2.200:4500                  *:*                   users:(("pluto",pid=5523,fd=22))
udp    UNCONN     0      0      192.168.122.1:4500                  *:*                   users:(("pluto",pid=5523,fd=20))
udp    UNCONN     0      0      10.10.10.10:4500                  *:*                   users:(("pluto",pid=5523,fd=18))
udp    UNCONN     0      0      127.0.0.1:500                   *:*                   users:(("pluto",pid=5523,fd=25))
udp    UNCONN     0      0      192.168.4.100:500                   *:*                   users:(("pluto",pid=5523,fd=23))
udp    UNCONN     0      0      201.1.2.200:500                   *:*                   users:(("pluto",pid=5523,fd=21))
udp    UNCONN     0      0      192.168.122.1:500                   *:*                   users:(("pluto",pid=5523,fd=19))
udp    UNCONN     0      0      10.10.10.10:500                   *:*                   users:(("pluto",pid=5523,fd=17))

udp    UNCONN     0      0       ::1:500                  :::*                   users:(("pluto",pid=5523,fd=27))


[root@client vpn]# yum   localinstall xl2tpd-1.3.8-2.el7.x86_64.rpm

[root@client ~]# vim /etc/xl2tpd/xl2tpd.conf
 32 ip range = 192.168.3.128-192.168.3.254  ----修改
 33 local ip = 201.1.2.200                    ----修改


[root@client ~]# vim /etc/ppp/options.xl2tpd
10 require-mschap-v2    ----连vpn需要认证 ,添加
10 #crtscts                     ----注释
16 #lock                         ----注释
[root@client ~]# vim /etc/ppp/chap-secrets        ------添加用户以及相应的密码文件
zhuhaiyan * 123456 *
[root@client ~]# systemctl start xl2tpd              -------启动服务
[root@client ~]# ss -ntulp | grep xl2tpd
udp    UNCONN     0      0         *:1701                  *:*                   users:(("xl2tpd",pid=6017,fd=3))


[root@proxy6 ~]# echo "1"    >  /proc/sys/net/ipv4/ip_forward  ---开启路由转发的功能

[root@client ~]# firewall-cmd --set-default-zone=trusted    -----关闭防火墙

如果需要翻墙则应该加上以下的代码
[root@client ~]# iptables -t nat -A POSTROUTING -s 192.168.3.0/24 \

>  -j SNAT --to-source 201.1.2.5 


客户端配置






此处添加的密码则是载服务器中配置的密码randpass


填写服务器创建的服务器的用户和密码











猜你喜欢

转载自blog.csdn.net/zhydream77/article/details/81056587