三种常见的VPN技术

什么是VPN呢?

vpn(Virtual private network)虚拟专用网络

  • 在公有的网络上建立专用的私有网络,加密连接
  • 多用在集团公司中与子公司的建立连接
  • 连接成功后可以和各地的子公司形成局域网
  • 企业中广泛的得到运用
  • 目前主流的技术(GRE,PPTP,L2TP-IPSEC)

GRE-VPN技术

准备工作

服务器 主机名 网卡 ip地址
centos-7 client eth3 201.1.2.10
centos-7 proxy eth0,eth3 192.168.4.5 , 201.1.2.5

部署方法:

  • 1.加载模块
  • 2.建立隧道
  • 3.配置IP

配置IP地址:

[root@client ~]#nmcli connection add type ethernet ifname eth3 con-name eth3
[root@client ~]#nmcli connection modify eth3 ipv4.method manual ipv4.addresses 201.1.2.10/24 autoconnect yes
[root@proxy ~]#nmcli connection add type ethernet ifname eth3 con-name eth3
[root@proxy ~]#nmcli connection add type ethernet ifname eth3 con-name eth0
[root@proxy ~]#nmcli connection modify eth3 ipv4.method manual ipv4.addresses 201.1.2.5/24 autoconnect yes
[root@proxy ~]#nmcli connection modify eth0 ipv4.method manual ipv4.addresses 192.168.4.5/24 autoconnect yes

关闭selinux和防火墙

systemctl stop firewalld
setenfore 0

配置服务器:

modprobe ip_gre     #加载GRE模块
lsmod|grep gre          #查看模块是否加载
modinfo ip_gre          #查看模块的信息

Client主机创建VPN隧道:
ip tunnel help #查看帮助
ip tunnel add tun0 mode gre remote 201.1.2.5 local 201.1.2.10 #创建隧道连接模式
ip link set tun0 up #启动隧道连接
ip addr |tail -10 #可以看见一个新的网卡启动了

给新的网卡配置IP:

 ip addr add 10.10.10.10/24 peer 10.10.10.5/24 dev tun      #给网卡tun设置ip地址
 ip a s     #查看已经添加上的IP地址

相同的配置方法Proxy执行一次

不同的点就是:IP是反过来的

测试:client和proxy之间相互的ping是否能ping通

达到的效果:
    形成自定义的局域网加密连接
    linux内核模块支持的不需要安装任何的软件

PPTP-VPN

PPTP(Point to Point Tunneling Protocol)

  • 支持密码身份验证
  • 支持MPPE加密

准备工作:

主机名 IP地址
Windos主机 网卡桥接public2(201.1.2.20/24)
Proxy eth0:192.168.4.5 , eth1:201.1.2.5

部署VPN:

修改你的windos IP
[root@proxy ~]#yum -y install pptpd-1.4.0-2.el7.x86_64.rpm      #安装包解决依赖
[root@proxy ~]#rpm -qc pptpd        #查看是否安装成功

修改配置文件:

vim /etc/pptpd.conf
    localip 201.1.2.5                       #服务器本地的IP地址
    remoteip 192.168.3.1-50         #当客户端连接进来分配IP的地址池

vim /etc/ppp/options.pptpd
    40 require-mppe-128     #使用MPPE加密数据
    66 ms-dns 8.8.8.8           #DNS服务器

 vim /etc/ppp/chap-secrets  #配置用户名和密码
    jboos              *         123456      *
    用户名    服务器标记    密码    客户端

开启路由转发:

echo "1" > /proc/sys/net/ipv4/ip_forward

启动服务:

systemctl start pptpd
systemctl enable pptpd

当你有国外的服务器想翻墙时候设置:

iptables -t nat -A POSTROUTING -s 192.168.3.0/24  -j SNAT --to-source 201.1.2.5     #设置iptable防火墙规则

去winods上操作:




L2TP+IPSec VPN

  • L2TP建立主机之间的VPN隧道,压缩,验证
  • IPSec提供数据加密、数据校验、访问控制的功能

准备工作:

主机名 IP地址
Windos 网卡桥接public2(201.1.2.20)
VPN eth0(192.168.4.200/24),eth3(201.1.2.200/24)

部署IPSec服务

yum -y install libreswan

新建IPSec密钥验证配置文件

 vim /etc/ipsec.d/myipsec.conf      #新建该文件,参考lnmp_soft/vpn/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=VPN服务端的IP          #重要,服务器本机的外网IP
    leftprotoport=17/1701
    right=%any              #允许任何客户端连接
    rightprotoport=17/%any

创建IPSec预定义共享密钥

cat /etc/ipsec.secrets      #仅查看,不要修改该文件
vim /etc/ipsec.d/mypass.secrets     #新建该文件
    VPN的服务器IP   %any:    PSK    "密码"        #为密钥文件

启动服务

systemctl start ipsec
netstat -ntulp |grep pluto

修改xl2tp配置文件

vim  /etc/xl2tpd/xl2tpd.conf        #主要配置文件
    ip range = 192.168.3.128-192.168.3.254
    local ip = 201.1.2.200

vim /etc/ppp/options.xl2tpd     #认证配置文件
    require-mschap-v2       #必须输入用户名密码才能进来在auto后一行添加
    #crtscts            #注释
    #lock           #注释

vim /etc/ppp/chap-secrets       修改密码文件
    jboos   *       123456  *           #账户名称   服务器标记   密码   客户端IP

启动服务

 systemctl start xl2tpd
 netstat  -ntulp |grep xl2tpd       #查看是否启动成功

如果需要翻墙则配置以下

echo "1" > /proc/sys/net/ipv4/ip_forward        #路由转发
 iptables -t nat -A POSTROUTING -s 要转发到的网段/24 -j SNAT --to-source VPN的IP

以上服务端的配置结束

发表评论