使用pptpd來架設VPN伺服器

在這個網路時代,很多人都為了安全上網而開始在網路上尋找VPN伺服器,但這種東西自己架總比較安全一些,這篇文章就是紀錄下如何在Ubuntu下使用pptpd來架設VPN伺服器。

注意:因為PPTP安全性不高,所以在蘋果的設備底下都找不到PPTP了,在商業層面也不建議使用他。

首先,老樣子,來更新一下系統吧!

sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade

再來要安裝pptpd套件

sudo apt-get install pptpd

編輯 pptpd.conf

vim /etc/pptpd.conf

在文件最下面,將localip及remoteip的 # 號拿掉
localip後方的IP位置是要輸入pptpd的IP區段
以下為我的範例設定

localip 192.168.70.1
remoteip 192.168.70.10-20

編輯pptpd-options這文件

vim /etc/ppp/pptpd-options

一進文件的上頭,有一個name,做為這個伺服器的名稱,你可以選擇不動,保持原樣就好,這個名稱將會跟我們後面要設定的文件 chap-secrets 有關

name pptpd

在文件中間尋找ms-dns並將兩行的#號都拿掉 並且在後面填入你喜歡的DNS伺服器,以下也提供幾個做為參考 中華電信 HiNet DNS = 168.95.1.1、168.95.192.1 Google Public DNS = 8.8.8.8、8.8.4.4 CloudFlare DNS = 1.1.1.1、1.0.0.1 設定完就可以存檔離開

ms-dns 8.8.8.8
ms-dns 8.8.4.4

再來編輯chap-secrets這個文件,這個文件是用來設定用戶登入的帳號密碼

vim /etc/ppp/chap-secrets

接下來要分別輸入client、server、secret以及IP addresses client:用戶登入的帳號 server:你剛剛在上方設定的name名稱 secret:用戶登入的密碼 IP addresses:欲分發的IP,也可以選擇填寫 * 讓他自動分發 輸入時,每個欄位使用Tab隔開 以下為我的範例,完成後存檔離開

# Secrets for authentication using CHAP
# client    server    secret    IP addresses
  David     pptpd     1234      *
  Amy       pptpd     5678      *

開啟本機 IPv4 Forward 功能,編輯sysctl.conf

vim /etc/sysctl.conf

將 net.ipv4.ip_forward 前的#號拿掉,值設定1

net.ipv4.ip_forward=1

存檔後,讓剛剛的設定生效

sudo sysctl -p

設定iptables,讓pptpd可以通過你的網路 這邊每個人的設定方式可能不一樣,可以透過ifconfig來查詢你的網路介面卡 像我是透過pppoeconf撥號,預設介面卡名稱為ppp0

iptables -t nat -A POSTROUTING -s 192.168.70.0/24 -o ppp0 -j MASQUERADE

重啟pptpd

sudo systemctl restart pptpd

接著就可以嘗試透過你的Windows或是Android手機連線囉!