由於Linux本身並沒有集成PPTP功能,所以需要安裝相關組件以讓我們的RedHat支持PPTP,根據內核的版本,下載相應的安裝包,所用組件如下:
dkms-2.2.0.3-1.noarch.rpm
kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm
pptpd-1.3.4.tar.gz
1.PPTP需要PPP支持,雖然系統本身有PPP功能,但它並不支持MPPE,所以需要更新系統的PPP組件,
[root@htuidc local]# yum -y install gcc gcc-c++ rpm-build make wget automake
[root@htuidc etc]# yum -y install ppp
2.安裝內核MPPE(Microsoft Point to Point Encryption,微軟點對點加密)補丁,安裝命令如下:
[root@htuidc etc]# rpm -ivh dkms-2.2.0.3-1.noarch.rpm
[root@htuidc etc]# rpm -ivh kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm
用以下命令檢查內核MPPE補丁是否安裝成功,MPPE module可否載如:
[root@htuidc ~]# modprobe ppp-compress-18 && echo success
success
[root@htuidc etc]# cd /usr/local/src
[root@htuidc src]#tar zxvf pptpd-1.3.4.tar.gz
[root@htuidc src]#cd pptpd-1.3.4
[root@htuidc pptpd-1.3.4]# ./configure --prefix=/usr/local/pptpd
[root@htuidc pptpd-1.3.4]# make && make install
編譯安裝完成後,首先需要手工建立一些目錄以及復制原始的 pptpd 配置文件:
[root@htuidc pptpd-1.3.4]# mkdir /usr/local/pptpd/etc
[root@htuidc pptpd-1.3.4]# vi /usr/local/pptpd/etc/pptpd.conf
填入內容如下:
# pptpd.conf
option /usr/local/pptpd/etc/options.pptpd
debug
stimeout 30
localip 10.0.0.254
remoteip 10.0.0.200-210
說明:
option /usr/local/pptpd/etc/options.pptpd ———— 指定 pptpd 擴展屬性配置文件 options.pptpd 的位置。
debug ———— 開啟調試模式,有關 pptpd?的信息和錯誤都會記錄在 /var/logs/message 中,方便排錯和調試。
stimeout 30 ———— 設置客戶端連接 pptpd server 時的最長連接等待時間(連接超時時間),30 秒。
localip 10.0.0.254 ———— pptpd server?所在服務器的 IP 地址,可以設置為服務器上綁定的任意一個 IP 地址。
remoteip 10.0.0.200-210 ———— 設置客戶端連接到 pptpd server 後可供分配的 IP 地址范圍( 10.0.0.200 – 10.0.0.210 ),可以這樣設置:10.0.0.200-208,10.0.0.209,10.0.0.210,效果是一樣的。
[root@htuidc pptpd-1.3.4]# vi /usr/local/pptpd/etc/options.pptpd
填入內容如下:
# options.pptpd
name htu-VPN
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
ms-dns 202.106.46.151
ms-dns 202.106.0.20
# ms-dns 208.67.222.222 米國用
# ms-dns 208.67.220.220
proxyarp
debug
lock
nobsdcomp
novj
novjccomp
nologfd
 
說明:
name IsMole-VPN ———— pptpd server 的名稱。
refuse-pap ———— 拒絕 pap 身份驗證模式。
refuse-chap ———— 拒絕 chap 身份驗證模式。
refuse-mschap ———— 拒絕 mschap 身份驗證模式。
require-mschap-v2 ———— 在端點進行連接握手時需要使用微軟的 mschap-v2 進行自身驗證。
require-mppe-128 ———— MPPE 模塊使用 128 位加密。
ms-dns 202.106.46.151
ms-dns 202.106.0.20 ———— ppp 為 Windows 客戶端提供 DNS 服務器 IP 地址,第一個 ms-dns 為 DNS Master,第二個為 DNS Slave。
proxyarp ———— 建立 ARP 代理鍵值。
debug ———— 開啟調試模式,相關信息同樣記錄在 /var/logs/message 中。
lock ———— 鎖定客戶端 PTY 設備文件。
nobsdcomp ———— 禁用 BSD 壓縮模式。
novj
novjccomp ———— 禁用 Van Jacobson 壓縮模式。
nologfd ———— 禁止將錯誤信息記錄到標准錯誤輸出設備(stderr)。
配置好上面的兩個文件後,我們開始添加客戶端帳號。
客戶端帳號控制文件位於:/etc/ppp/chap-secrets
shell> vi /etc/ppp/chap-secrets
# PPTP User Accounts
# username server_name "password" ip
vpnuser1 IsMole-VPN "123456" 10.0.0.201
三、啟動 PPTPD
[root@htuidc pptpd-1.3.4]# /usr/local/pptpd/sbin/pptpd -c /usr/local/pptpd/etc/pptpd.conf -o /usr/local/pptpd/etc/options.pptpd
[root@htuidc pptpd-1.3.4]# netstat -tnlpu|grep pptp
tcp 0 0 0.0.0.0:1723 0.0.0.0:* LISTEN 3719/pptpd
如果tcp的1723端口是打開的,就說明啟動OK。
四、打開linux路由轉發
echo 1 > /proc/sys/net/ipv4/ip_forward
五、開啟10.0.0.0/24段的轉發:
[root@htuidc ~]# iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -j MASQUERADE
特殊情況注意:
開啟pptp vpn轉發,vpn服務器和內網路由器
modprobe ip_conntrack_pptp
modprobe ip_nat_pptp
出現的問題:
連接出現如下678錯誤,是因為防火牆沒有開啟1723端口允許:
解決辦法:
[root@htuidc ~]# iptables -A INPUT -p TCP --dport 1723 --sport 1024:65534 -j ACCEPT