最近前遊戲同事搞了臺的VPS,貢獻出來作×××使用。目前流行的服務器×××軟件主要有PPTP ×××和Open***。Open***雖然功能較爲強大,且安全性高,支持nat穿越等等,但服務器端和客戶端配置都比PPTP ×××麻煩許多,因此此次咱們採用PPTP ×××實現咱們的需求,主要需求功能點以下:html
一、win七、win10客戶端可使用服務器進行撥號成功。(這是最基本的需求)mysql
二、用戶帳號使用mysql數據庫進行統一管理。(這個也很常見的需求)linux
三、對用戶帳號的使用流量按月進行限制。(畢竟不是財主,仍是要限制一下的。)sql
四、不容許一個帳號多臺電腦同時登錄。(很是現實的需求)
數據庫
下面咱們就在centos linux 6.8 64位系統上一一實現這些功能,本文主要實現第一個需求功能點:centos
win七、win10客戶端可使用服務器進行撥號,併成功×××。安全
1、安裝ppp和pptp軟件包,這裏採用rpm方式實現服務器
# yum install -y perl ppp # rpm -ivh pptpd-1.3.4-2.el6.x86_64.rpm 下載地址:https://zhidao.baidu.com/share/8c07231b0a82281d4085fd2a779cd8f0.html
2、配置文件修改iphone
一、options.pptpd文件爲PPTP ×××配置文件ide
# cd /etc/ppp # cp options.pptpd options.pptpd.bak # cat options.pptpd name pptpd refuse-pap refuse-chap refuse-mschap require-mschap-v2 require-mppe-128 proxyarp lock nobsdcomp novj novjccomp nologfd idle 2592000 ms-dns 8.8.8.8 ms-dns 8.8.4.4
二、chap-secrets爲PPTP ×××默認的用戶名和密碼文件
# cp chap-secrets chap-secrets.bak # cat chap-secrets # Secrets for authentication using CHAP # client server secret IP addresses ptest1 pptpd ptest1 * ptest2 pptpd ptest2 * ptest3 pptpd ptest3 *
三、pptpd.conf文件爲PPTP ×××主配置文件
# grep -v '^#' /etc/pptpd.conf |grep -v '^$' option /etc/ppp/options.pptpd logwtmp localip 192.168.222.1 remoteip 192.168.222.10-254
3、啓動×××服務,配置防火牆nat規則,並開啓主機路由功能
# service pptpd restart # iptables -t nat -A POSTROUTING -s 192.168.222.0/24 -j MASQUERADE # sysctl net.ipv4.ip_forward net.ipv4.ip_forward = 1
4、撥號測試
一、win10客戶端
二、iphone6s客戶端測試
5、錯誤處理
撥號成功以後,/var/log/message日誌文件記錄以下日誌信息:
kernel: ppp: compressor dropped pkt
排查了一下,主要是mtu(最大傳輸單元)的問題,客戶端爲1394,服務器端爲1400,經過查看/etc/ppp/if-up配置文件發現系統中只要存在/etc/ppp/ip-up.local腳本且可執行,則客戶端撥號成功後這個腳本會自動被執行。
# cat /etc/ppp/ip-up.local #!/bin/sh CURRENT_MTU="$(ifconfig $1 | grep -Po '(?<=MTU:)([0-9]+)' | tail -1)" FIXED_MTU="$(expr $CURRENT_MTU + 4)" for network in $(ifconfig | grep -E "ppp" |awk '{print $1}') do ifconfig $network mtu $FIXED_MTU done # chmod +x /etc/ppp/ip-up.local
至此,傳統的經過文件名認證的pptp ***已經部署完成。後續的幾個功能點將在下文中實現,盡情期待!