1、安裝pptpd
sudo apt-get install pptpd
2、主要配置文件及對應參數說明
/etc/pptpd.conf #PPTP服務器的主配置文件
option option-file #指定一個選項文件,裡面的內容作為pptpd進程啟動時的命令行參數。
#在執行pptpd命令時使用”–option”選項指定參數效果是一樣的
stimeout seconds #派生pptpctrl進程處理客戶端連接以前,等客戶端PPTP包的時間,單位為秒,默認是10s。
#主要用於防止DoS攻擊
debug #啟用調試模式
bcrelay internal-interface #是否啟用廣播包中繼功能。如果啟用,將把從internal-interface接口收到的廣播包轉發個客戶端。
connections n #限制客戶端連接數,默認為100。
#如果由pptpd分配IP給客戶端,則地址分配完後,客戶端連接也不能建立。
delegate #默認情況該選項不存在。此時,由pptpd進程管理IP地址的分配,它將把下一個可分的IP分給客戶端。
#如果該選項存在,則pptpd進程不負責IP地址分配,
#由客戶端對應的pppd進程採用radius或chap-secrets方式進行分配。
localip ip-specification #在PPP連接隧道的本地端使用的IP地址(簡單的說就是服務端地址)。
#如果只指定一個,則所有的客戶端對應的服務端地址都是這個。
#否則,每個客戶端都必須指定不同的服務端地址,服務端地址用完後,客戶端的連接將被拒絕。
#如果使用了delegate選項,則該選項失效。
remoteip op-sepecification #指定分配給遠程客戶端的IP地址。每個連接的客戶端都必須分配到一個IP地址。
#如果使用了delegate選項,則該選項失效。
noipparam #默認情況下,客戶端原始的IP地址是傳遞給ip-up腳本。如果存在該選項,將不傳遞。
listen ip-address #指定本地網絡接口的IP地址,pptpd進程將只監聽這個網絡接口的PPTP連接。默認監聽所有本地接口。
pidfile pid-file #指定進程PID文件的位置和文件名。
speed speed #指定PPTP連接的速度,默認是115200bps,Linux系統中,該選項一般無效。
logwtmp #指定是否啟用wtmp系統日誌
示例配置(/etc/pptpd.conf)
option /etc/ppp/options.pptpd
#debug
stimeout 10
#noipparam
logwtmp
#brcelay ech1
#delegate
connections 20
#localip 192.168.0.1
#remoteip 192.168.0.100-200
/etc/ppp/pptpd-options #DNS配置地址
/etc/ppp/options.pptpd #pptpd命令運行時的選項存放在該文件中
/etc/ppp/chap-secrets #保存VPN客戶端撥入時使用的用戶名、密碼、分配的IP地址(*表示任意IP)
示例配置(/etc/ppp/chap-secrets)
#Secrets for authentication using CHAP
#client server secret IP address
vpntest pptpd vpnpassword *
上述配置是設置了一個用戶名為vpntest的VPN賬號,密碼為vpnpassword,服務類型為pptpd,分配給該用戶的IP地址未指定。
3、修改配置文件後,運行
/etc/init.d/pptpd start #運行pptp進程
or
/etc/init.d/pptpd restart #重啟pptp進程
配置信息才能生效。
4、檢驗PPTP服務器是否運行
在控制台輸入命令
sudo netstat -anp | grep pptpd
將得到如下結果,說明PPTP服務器運行成功。
tcp 0 0.0.0.0:1723 0.0.0.0:* LISTEN 6426/pptpd
unix 2 [ ] DGRAM 54100 6426/pptpd
為了客戶端能夠順利連接到VPN服務器,還需主機防火牆開放VPN端口(默認為1723)
sudo iptables -I INPUT -p tcp –dport 1723 -j ACCEPT
5、在VPN服務器上設置對於客戶端IP地址的網絡地址轉換(NAT)
到目前為止,VPN服務器確實搭建完成,客戶端也可以正常連接了,但是客戶端卻不能通過該VPN服務器上網,我們還需要為客戶端IP地址設置網絡地址轉換(NAT)
查看 “/proc/sys/net/ipv4/ip_forward” 文件中的值是否為”1″,
如果不是,則需在 “/etc/sysctl.conf” 文件中添加一行 “net.ipv4.ip_forward=1″
運行
sudo /etc/init.d/procps restart
sudo iptables --table nat --append POSTROUTING --out-interface <网络接口> --jump MASQUERADE
好吧,到這裡VPN服務器搭建完成!!!
6、斷開VPN連接以及VPN關閉VPN服務器
運行ifconfig來查看當前的VPN連接,如果想斷開某個VPN連接,首先查詢其PID,如:
cat /var/run/ppp0.pid
根據查詢到得PID,將該進程結束即可斷開該VPN連接
sudo kill 5834
至於pptp的PID,運行
sudo netstat -anp | grep pptpd
從返回的結果便可看出pptp的PID,如從上面的運行結果來看pptp的PID為:6426,那麼運行
sudo kill 6426
即可關閉VPN服務。