centos 安裝配置l2tp實現***node
1 前言vim
L2TP是一種工業標準的Internet隧道協議,功能大體和PPTP協議相似,好比一樣能夠對網絡數據流進行加密。不過也有不一樣之處,好比PPTP要求網絡爲IP網絡,L2TP要求面向數據包的點對點鏈接;PPTP使用單一隧道,L2TP使用多隧道;L2TP提供包頭壓縮、隧道驗證,而PPTP不支持。windows
MAC最新系統默認已經不支持pptp協議,因此配置l2tp較爲合適。centos
2 安裝配置服務器
2.1 安裝軟件包網絡
安裝環境包dom
yum install make gcc gmp-devel xmlto bison flex xmlto libpcap-devel lsof vim-enhanced manide
安裝l2tpflex
centos 6:ui
yum install openswan ppp xl2tpd
centos 7:
yum install xl2tpd libreswan ppp
2.2 軟件配置
2.2.1 編輯xl2tpd配置文件
vi /etc/xl2tpd/xl2tpd.conf
[global] [lns default] ip range = 192.168.1.100-192.168.1.254 #分配給客戶端的地址池 local ip = 192.168.1.99 require chap = yes refuse pap = yes require authentication = yes name = Linux×××server ppp debug = yes pppoptfile = /etc/ppp/options.xl2tpd length bit = yes |
2.2.2 編輯pppoptfile文件
vi /etc/ppp/options.xl2tpd
ipcp-accept-local ipcp-accept-remote ms-dns 8.8.8.8 ms-dns 8.8.4.4 noccp auth crtscts idle 1800 mtu 1410 mru 1410 nodefaultroute debug lock proxyarp persist connect-delay 5000 logfile /var/log/xl2tpd.log |
2.2.3 編輯ipsec配置文件
vi /etc/ipsec.conf
默認就好:
config setup protostack=netkey dumpdir=/var/run/pluto/ virtual_private=%v4:10.0.0.0/8,%v4:172.100.0.0/12,%v4:25.0.0.0/8,%v4:100.64.0.0/10,%v6:fd00::/8,%v6:fe80::/10 include /etc/ipsec.d/*.conf |
vi /etc/ipsec.d/l2tp-ipsec.conf
conn L2TP-PSK-NAT rightsubnet=0.0.0.0/0 dpddelay=10 dpdtimeout=20 dpdaction=clear forceencaps=yes also=L2TP-PSK-noNAT conn L2TP-PSK-noNAT authby=secret pfs=no auto=add keyingtries=3 rekey=no ikelifetime=8h keylife=1h type=transport left=114.114.114.114(服務器公網地址) leftprotoport=17/1701 right=%any rightprotoport=17/%any |
2.2.4 設置用戶名密碼
vi /etc/ppp/chap-secrets
#用戶名 服務名 密碼 指定IP
username * "password" *
2.2.5 設置PSK預共享密鑰
vi /etc/ipsec.secrets
include /etc/ipsec.d/*.secrets 114.114.114.114 %any: PSK "YourPsk" ###YourPsk爲預共享密鑰。114.114.114.114爲服務器公網IP |
2.2.6 IP_FORWARD設置
vi /etc/sysctl.conf
追加或修改:
net.ipv4.ip_forward = 1 net.ipv4.conf.default.rp_filter = 0 net.ipv4.conf.all.send_redirects = 0 net.ipv4.conf.default.send_redirects = 0 net.ipv4.conf.all.log_martians = 0 net.ipv4.conf.default.log_martians = 0 net.ipv4.conf.default.accept_source_route = 0 net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.default.accept_redirects = 0 net.ipv4.icmp_ignore_bogus_error_responses = 1 |
生效:
sysctl –p
2.2.7 ipsec啓動
centos6:
/etc/init.d/ipsec restart
centos7:
systemctl restart ipsec
2.2.8 ipsec檢查
ipsec verify
正常的輸出:
Verifying installed system and configuration files
Version check and ipsec on-path [OK] Libreswan 3.15 (netkey) on 2.6.32-573.3.1.el6.x86_64 Checking for IPsec support in kernel [OK] NETKEY: Testing XFRM related proc values ICMP default/send_redirects [OK] ICMP default/accept_redirects [OK] XFRM larval drop [OK] Pluto ipsec.conf syntax [OK] Hardware random device [N/A] Two or more interfaces found, checking IP forwarding [OK] Checking rp_filter [OK] Checking that pluto is running [OK] Pluto listening for IKE on udp 500 [OK] Pluto listening for IKE/NAT-T on udp 4500 [OK] Pluto ipsec.secret syntax [OK] Checking 'ip' command [OK] Checking 'iptables' command [OK] Checking 'prelink' command does not interfere with FIPS [PRESENT] Checking for obsolete ipsec.conf options [OK] Opportunistic Encryption [DISABLED]
|
2.2.9 xl2tpd啓動
centos6:
/etc/init.d/xl2tpd restart
centos7:
systemctl restart xl2tpd
2.2.10 日誌配置
記錄對方IP地址:
這裏能夠利用syslog來配置,在/etc/rsyslog.d/ 下新建20-xl2tpd.conf文件,內容以下:
vi /etc/rsyslog.d/20-xl2tpd.conf
if $programname == 'xl2tpd' then /var/log/l2tp-***.log &~ |
這裏能夠利用syslog來配置,在/etc/rsyslog.d/ 下新建20-pptpd.conf文件,內容以下:
vi /etc/rsyslog.d/20-pptpd.conf
if $programname == 'pppd' then /var/log/l2tp-***.log &~ |
重啓rsyslog服務
centos6:
/etc/init.d/rsyslog restart
centos7:
systemctl restart rsyslog
記錄用戶名和登陸時間:
在/etc/ppp/ip-up 腳本中加入
echo >> /var/log/l2tp-***.log
echo "Start_Time: `date -d today +%F_%T`" >> /var/log/l2tp-***.log ##登陸時間戳
echo "username: $PEERNAME" >> /var/log/l2tp-***.log ##用戶名
echo >> /var/log/l2tp-***.log
在/etc/ppp/ip-down 腳本中加入
echo "Stop_Time: `date -d today +%F_%T`" >> /var/log/l2tp-***.log ##斷開時間戳
echo "username: $PEERNAME" >> /var/log/l2tp-***.log ##用戶名
echo >> /var/log/l2tp-***.log
2.2.11 使用×××服務器公網作爲客戶端互聯網出口(跳板機、代理)
iptables -t nat -A POSTROUTING -o eth1 -s 192.168.1.0/24 -j MASQUERADE (eth1爲公網網卡)
2.2.12 訪問×××服務器所在的內網其它服務器
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE (eth0爲私網網卡)
2.3 客戶端鏈接(windows)
注意這裏只是說明windows方法,MAC和手機方法大體相同:
直接鏈接便可
如遇不能訪問谷歌和youtube,但能訪問facebook,頗有可能註冊表被修改致使。
查看註冊表並恢復:
1. 單擊「開始」,單擊「運行」,鍵入「regedit」,而後單擊「肯定」
2. 找到下面的註冊表子項,而後單擊它:
HKEY_LOCAL_MACHINE\ System\CurrentControlSet\Services\Rasman\Parameters
確保是0不是1
若有ProhibitIpSec,將其刪除