vpn(virtual private network虛擬專用網絡)的概述:
·在公用網絡上簡歷專用私有網絡,進行加密通訊
·多用於為公司的各地子公司建立
·連接完成后,各個地區的子公司可以像局域網一樣通訊
·在企業網絡中有廣泛應用
·#偶爾可以用於翻牆(不建議)
·目前主流的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 翻牆設置: # 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 翻牆設置(非必要設置) # 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