vpn(virtual private network虚拟专用网络)的概述:
·在公用网络上简历专用私有网络,进行加密通讯
·多用于为公司的各地子公司建立
·连接完成后,各个地区的子公司可以像局域网一样通讯
·在企业网络中有广泛应用
·#偶尔可以用于FQ(不建议)
·目前主流的vpn(GRE,PPTP,L2TP+IPSec,SSL)
环境:
主机名 IP地址
client eth3(201.1.2.10/24)
proxy eth0(192.168.4.5/24)
eth3(201.1.2.5/24)
一、GRE vpn(Linux之间) VPN代理端:(201.1.2.5)
###俩边操作基本相同
1)启动GRE模块
#ping 201.1.2.10 #lsmod //显示模块列表 #lsmod | grep ip_gre //确定是否加载了gre模块 #modproba ip_gre //加载模块 #modinfo ip_gre //查看模块信息
2)创建VPN隧道
#ip tunnel add tun0 mode gre remote 201.1.2.10 local 201.1.2.5
//ip tunnel add创建隧道(隧道名称为tun0),ip tunnel help可以查看帮助
//mode设置隧道使用gre模式
//local后面跟本机的IP地址,remote后面是与其他主机建立隧道的对方IP地址
3)启用该隧道(和网卡的up一样)
#ip link show #ip link set tun0 up #ip link show
4)为VPN隧道配置IP
#ip addr add 10.10.10.5/24 peer 10.10.10.10/24 dev tun0 #ip addr show
//为隧道tun0设置本地IP地址(10.10.10.5/24)
//隧道对面的主机ip的隧道为10.10.10.10/24
#echo "1" > /proc/sys/net/ipv4/ip_forward //开启路由转发
PC客户端:(201.1.2.10)
#lsmod | grep ip_gre
//从已载入模块中查找是否有ip_gre这个模块
lsmod #列出内核已载入模块的状态
depmod #分析可加载模块的依赖性,生成modules.dep文件和映射文件
#modprobe ip_gre
//添加ip_gre模块
modprobe #Linux内核模块添加删除模块
#ip tunnel add tun0 mode gre remote 201.1.2.5 local 201.1.2.10
//ip tunnel add 创建隧道(隧道名称为tun0),ip tunnel help 可以常看帮助
//mode 这只隧道使用gre模式
//local后面跟本机的ip地址,remote后面是与其他主机简历隧道的对方ip地址
#link show #ip link set tun0 up
//启用隧道
#ip link show #ip addr add 10.10.10.10 peer 101.10.10.5/24 dev tun0
//配置隧道ip
#ip addr show
5)测试结果
ping 10.10.10.5
----------------------------GRE布置完毕----------------------------------------------------------------------------------------------------------------
二、PPTP(Point to Point Tunneling Protocol)
·支持密码身份验证
·支持MPPE(Microsoft Point-to-Point Encryption)加密
PPTP VPN(Linux和Windows)
1) 安装软件包
#cd /lnmp_soft/vpn/ #rpm -ivh pptpd-1.4.0-2.el7.x86_64.rpm (自己下载包) #rpm -qc pptpd //查看文件目录
2) 修改配置文件
#vim /etc/pptpd.conf 105 localip 201.1.2.200 //服务器本地IP 106 remoteip 192.168.1.1-50,192.168.1.80 //分配给客户端的IP池
#vim /etc/ppp/options.pptpd 40 require-mppe-128 //使用MPPE加密数据 68 ms-dns 8.8.8.8 //DNS服务器
#vim /etc/ppp/chap-secrets zl * 112233 * // 用户名/服务器标记/密码/客户端ip
#echo "1" > /proc/sys/net/ipv4/ip_forward //开启路由转发 #systemctl restart pptpd #systemctl enable pptpd #firewall-cmd --set-default-zone=trusted //把trusted区域设置为默认区域 #netstat -anutlp | grep pptpd FQ设置: # iptables -t nat -A POSTROUTING -s 192.168.3.0/24 -j SNAT --to-source 201.1.2.200 //将私网IP转化为公网ip
==================================PPTP vpn 搞定==================================================
三、L2TP+IPSec VPN(Linux和Windows) 加密相对更好一点(ipsec)
·layer two tunneling protocol(L2TP)
·L2TP简历主机之间VPN隧道,压缩、验证
·IPSec提供数据加密、数据校验、访问控制的功能
主机名 IP地址
Windows 网卡桥接public2(201.1.2.20/24)
client eth0(192.168.4.10/24)
eth3(201.1.2.10/24)
1) 安装软件包
#yum -y install libreswan
2) 新建IPSec秘钥验证配置文件
#cat /etc/ipsec.secrets //看一下主配置文件
1、 #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=201.1.2.10 //重要,服务器本机的外网IP leftprotoport=17/1701 * right=%any //允许任何客户端连接 rightprotoport=17/%any
3) 创建IPSec预定义共享秘钥
#首先看一下/etc/ipsec.secrets //切忌勿动,看一下有就好
include /etc/ipsec.d/*.secrts
vim /etc/ipsec.d/mypass.secrets //新建文件
201.1.2.100 %any: PSK "randpass" //randpass为预共享密钥
4) 启动IPSec服务
#systemctl start ipsec #netstat -autlp | grep pluto #yum localinstall /lnmp_soft/vpn/xl2tpd-1.3.8-2.el7.x86_64.rpm (自己下载xl2tpd包) 修改xl2tpd配置文件(3个配置文件) #vim /etc/xl2tpd/xl2tpd.conf *主配置文件 [lns default] …… 32 ip range = 192.168.3.50-192.168.3.100 //分配给客户端的ip地址池 33 local ip = 201.1.2.100 //vpn服务器的IP地址 #vim /etc/ppp/options.xl2tpd //认证配置 10 #crtscts //本来没有注释,要求注释或删除 16 #lock //本来没有注释,要求注释或删除 21 require-mschap-v2 //添加一行,强制要求认证 #vim /etc/ppp/chap-secrets //修改密码文件 zl * 112233 * 用户名/服务器标记/密码/客户端ip #启动服务 # systemctl start xl2tpd # netstat -ntulp |grep xl2tpd 设置路由转发,防火墙 #echo "1" > /proc/sys/net/ipv4/ip_forward #firewall-cmd --set-default-zone=trusted #iptables -t nat -A POSTROUTING -s 192.168.3.0/24 -j SNAT --to-source 201.1.2.100 FQ设置(非必要设置) # iptables -t nat -A POSTROUTING -s 192.168.3.0/24 -j SNAT --to-source 201.1.2.10
5) 客户端设置
启动一台Windows虚拟机,将虚拟机网卡桥接到public2,配置ip为201.1.2.20
新建网络连接,输入vpn服务器账户与密码
设置vpn连接的属性,预共享秘钥是IPSec配置文件中填写的randpass