虛擬專用網路(VPN)利用公共網路互聯網,將位於不同地理位置的區域網絡(LAN)安全地連接起來,使遠端網絡之間的訪問如同本地訪問般順暢。VPN 在傳輸過程中對數據進行加密,即使數據在公共網路上傳輸,也能保證極高的安全性。雖然市面上許多硬件設備(如防火牆)內建 VPN 功能並作為賣點,但本文專注於在 Linux 系統下使用軟件方式搭建 PPTP VPN 服務器。
在基於 RPM 的系統(如 Fedora Core、Red Hat)上,需準備以下四個核心 RPM 包:
dkms-2.0.10-2.fc5.noarch.rpm:動態內核模組支援框架kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm:提供 MPPE 加密支援的內核模組ppp-2.4.3-9.2.i586.rpm:PPP 協議守護進程pptpd-1.3.1-0.i386.rpm:PPTP 服務器主程序依序執行以下命令完成安裝:
# rpm -ivh dkms-2.0.10-2.fc5.noarch.rpm
# rpm -ivh kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm
# rpm -ivh ppp-2.4.3-9.2.i586.rpm
# rpm -ivh pptpd-1.3.1-0.i386.rpm
實戰提示: 曾因從知名開源社區下載的包體積異常小導致安裝失敗,後改從其他渠道獲取完整體積的包才成功。切勿迷信來源名氣,驗證包完整性至關重要。
需修改兩個關鍵配置文件:
/etc/pptpd.conf僅需追加兩行指令即可定義服務器本地 IP 及客戶端地址池:
localip 192.168.1.254 # VPN 服務器內網接口 IP
remoteip 192.168.1.230-240 # 分配給客戶端的 IP 地址池範圍
/etc/ppp/chap-secrets格式為:用戶名 服務類型 密碼 分配 IP,其中用戶名、密碼、IP 需用雙引號括起,服務類型通常為 pptpd。
"guoxing" pptpd "guoxing" "*" # 從地址池動態分配 IP
"public" pptpd "wgzx" "192.168.1.202" # 指定固定分配 IP
eth0 的公網地址),而非內網 IP。chap-secrets 中定義的用戶名與密碼即可撥號連接。啟動前必須確認內核 IP 轉發功能已開啟:
# echo 1 > /proc/sys/net/ipv4/ip_forward
# service pptpd start
此時 VPN 服務器已就緒,等待遠端用戶接入。若需永久生效,請將 net.ipv4.ip_forward = 1 加入 /etc/sysctl.conf。
eth0 連公網(客戶端連入目標),eth1 連內網(localip 綁定此接口)。eth1 進入內網。Linux 內核控制台驅動實現解析:以 Samsung S3C24xx 串口為例
Linux Tomcat 叢集配置實戰:Apache + Mod_JK 負載均衡與 Session 複製
如何快速查看 Linux/Unix 當前使用的 Shell 類型:四種實用方法
CentOS 5.5 搭建 L2TP/IPsec VPN 服務器完整教程
源碼編譯安裝 OpenSSL 1.0.1 + Apache 2.2.22 完美解決 SSL_CTX_new 錯誤實戰
VMware ESXi / CentOS 7 虛擬機掛載光驅 (CD-ROM) 失敗「mount: can't find in /etc/fstab」根因與永久修復