歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> Redhat Linux 5.3 PPTP VPN Server的安裝配置

Redhat Linux 5.3 PPTP VPN Server的安裝配置

日期:2017/3/3 15:59:31   编辑:關於Linux

實驗環境:

(1)公司所有game服務器,只允許一個外網ip去訪問,需要維護服務器,必須先撥號到指定外網ip。

(2)公司與總部通信都是走vpn通道,公司內部ip與vpn設備下是不同網段,需要在vpn設備下接一台雙網卡服務器

解決方案:通過linux下的pptp協議,遠程用戶能通過支持點對點協議的所有操作系統,安全訪問網絡.

實驗圖:

根據方案,需在192.168.15.50搭建Poptop服務

關於Poptop介紹信息:

Poptop是一個 PPTP 服務器的開源實現,采用 C 預言開發,可運行在 x86 或者是摩托羅拉嵌入式ColdFire體系。可與微軟的 PPTP VPN 客戶端進行完全互操作。

點對點隧道協議(PPTP)是一種支持多協議虛擬專用網絡的網絡技術。通過該協議,遠程用戶能夠通過 Microsoft Windows NT 工作站、Windows 95 和 Windows 98 操作系統以及其它裝有點對點協議的系統安全訪問公司網絡,並能撥號連入本地 ISP,通過 Internet 安全鏈接到公司網絡。

PPTP 可以用於在 IP 網絡上建立 PPP 會話隧道。在這種配置下,PPTP 隧道和 PPP 會話運行在兩個相同的機器上,呼叫方充當 PNS。PPTP 使用客戶機-服務器結構來分離當前網絡訪問服務器具備的一些功能並支持虛擬專用網絡。PPTP 作為一個呼叫控制和管理協議,它允許服務器控制來自 PSTN 或 ISDN 的撥入電路交換呼叫訪問並初始化外部電路交換連接。

PPTP 只能通過 PAC 和 PNS 來實施,其它系統沒有必要知道 PPTP。撥號網絡可與 PAC 相連接而無需知道 PPTP。標准的 PPP 客戶機軟件可繼續在隧道 PPP 鏈接上操作。

PPTP 使用GRE的擴展版本來傳輸用戶 PPP 包。這些增強允許為在 PAC 和 PNS 之間傳輸用戶數據的隧道提供低層擁塞控制和流控制。這種機制允許高效使用隧道可用帶寬並且避免了不必要的重發和緩沖區溢出。PPTP 沒有規定特定的算法用於低層控制,但它確實定義了一些通信參數來支持這樣的算法工作。

Poptop環境需要軟件包:

1.Dkms

2.kernel_ppp_mppe MPPE (Microsoft Point to Point Encryption,微軟點對點加密)

3.ppp PPP(Point-to-Point Protocol,點到點協議)

4.pptpd

步驟如下:

1.查看還需安裝哪些軟件,由於RHEL 5 的 2.6.18 內核已經集成了MPPE和高版本的ppp

[root@viong ~]# rpm -q ppp

ppp-2.4.4-2.el5

[root@viong ~]# strings '/usr/sbin/pppd'|grep -i mppe|wc -l

42

檢查PPP是否支持MPPE,若結果顯示“0”則表示不支持,而“30”或更大的數字就表示支持。

[root@viong ~]# modprobe ppp-compress-18 && echo ‘ok! MPPE was found !’

ok! MPPE was found !

檢查內核MPPE補丁是否安裝成功:若結果顯示“ok! MPPE was found !”則表示成功。

[root@viong ~]# rpm -q dkms

package dkms is not installed

[root@viong ~]# rpm -q pptpd

package pptpd is not installed

2. 安裝軟件

[root@viong soft]# rpm –ivh http://poptop.sourceforge.net/yum/stable/packages/dkms-2.0.17.5-1.noarch.rpm

URL:http://www.bianceng.cn/OS/Linux/201410/45757.htm

[root@viong soft] rpm –ivh http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.3.4-1.rhel5.1.i386.rpm

3.修改pptpd.conf配置參數

[root@viong soft]# vi /etc/pptpd.conf

95 # (Recommended)

96 #localip 192.168.0.1

97 #remoteip 192.168.0.234-238,192.168.0.245

修改為:

95 # (Recommended)

96 localip 192.168.126.2

97 remoteip 192.168.126.100-200

注: /etc/pptpd.conf 常用配置

option /etc/ppp/options.pptpd

PPP組件將使用的配置文件;

stimeout 120

開始PPTP控制連接的超時時間,以秒計;

debug

把所有debug信息記入系統日志/var/log/messages;

localip 192.168.1.10

服務器VPN虛擬接口將分配的IP地址,可設置為與VPN服務器內網地址相同網段的IP,也可設置為另一網段的IP;

remoteip 192.168.1.11-30

客戶端VPN連接成功後將分配的IP地址段,同樣可設置為與VPN服務器內網地址相同網段的IP地址段,也可以設置為另一網段的IP地址段;

logwtmp

該功能項的作用是“使用wtmp記錄客戶端的連接與斷開信息

4.修改options.pptpd配置參數

/etc/ppp/options.pptpd 默認配置就ok

注:/etc/ppp/options.pptpd常用配置

name pptpd

pptpd server 的名稱。

refuse-pap

拒絕 pap 身份驗證模式。

refuse-chap

拒絕 chap 身份驗證模式。

refuse-mschap

拒絕 mschap 身份驗證模式。

require-mschap-v2

在端點進行連接握手時需要使用微軟的 mschap-v2 進行自身驗證。

require-mppe-128

MPPE 模塊使用 128 位加密。

ms-dns 61.139.2.69

ms-dns 202.98.96.68

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)

5.修改chap-secrets配置參數

[root@viong soft]# vi /etc/ppp/chap-secrets

# Secrets for authentication using CHAP

# client server secret IP addresse

viong * 123 *

注:

viong 用戶賬號

*代表自動識別當前服務器主機名,也可以手動配置

123 用戶密碼

*代表自動分配可用的IP地址,可根據需要指定IP地址

也可以使用vpnuser命令來進行配置:

# vpnuser add viong 123 添加一個viong用戶

6.開啟路由轉發

因為VPN客戶端在撥號後實際是通過服務器外網網卡進行數據通信的,那麼要訪問內網網段的地址就必須開啟數據包轉發,使外網網卡的數據包能夠轉發到內網網卡上

[root@viong soft]# vi /etc/sysctl.conf

6 # Controls IP packet forwarding

7 net.ipv4.ip_forward = 0

修改為:

6 # Controls IP packet forwarding

7 net.ipv4.ip_forward = 1

[root@viong soft]# sysctl -p /etc/sysctl.conf

路由轉發立即生效

7. 防火牆配置

對於默認開啟了SELinux認證:

需執行以下命令使pppd與pptp穿透SELinux

[root@viong soft]# setsebool pppd_disable_trans 1

[root@viong soft]# setssebool pptp_diable_trans 1

附上關閉SELinux認證方法:

編輯vi /etc/sysconfig/selinux文件,配置以下選項

SELINUX=disabled

如果不重啟生效就執行以下命令使修改生效

[root@viong soft]# setenforce 0

對於開啟了iptables過濾的主機,需要開放VPN服務的端口:47 1723 和gre協議

編輯 /etc/sysconfig/iptables文件,加入以下規則

-A RH-Firewall-1-INPUT -p gre -j ACCEPT

-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 47 -j ACCEPT

URL:http://www.bianceng.cn/OS/Linux/201410/45757.htm

-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 1723 -j ACCEPT

[root@viong soft]# service iptables restart

重啟iptables直接生效

用Iptables做NAT服務

在VPN客戶端成功撥號以後,本地網絡的默認網關會變為VPN服務器的VPN內網地址,這樣會導致客戶端只能夠連接VPN服務器及其所在的內網,而不能訪問互聯網;

[root@viong ~]#iptables -t nat -A POSTROUTING -s 192.168.126.0/24 -j SNAT --to 192.168.15.50

[root@viong ~]#echo iptables -t nat -A POSTROUTING -s 192.168.126.0/24 -j SNAT --to 192.168.15.50 >>/etc/rc.local

加入到/etc/rc.local開機自動啟動

8.啟動pptp

[root@viong ~]#service pptpd restart

[root@viong ~]#netstat -ntpl |grep 1723

tcp 0 0 0.0.0.0:1723 0.0.0.0:* LISTEN 2585/pptpd

9.測試撥號是否成功

客戶端:Win 7

C:\Documents and Settings\Administrator>ipconfig

Windows IP Configuration

Ethernet adapter 本地連接:

Connection-specific DNS Suffix . :

IP Address. . . . . . . . . . . . : 192.168.15.253

Subnet Mask . . . . . . . . . . . : 255.255.255.0

Default Gateway . . . . . . . . . : 192.168.15.1

PPP adapter test:

Connection-specific DNS Suffix . :

IP Address. . . . . . . . . . . . : 192.168.126.100

Subnet Mask . . . . . . . . . . . : 255.255.255.255

Default Gateway . . . . . . . . . : 192.168.126.100

C:\Documents and Settings\Administrator>ping 192.168.126.1

Pinging 192.168.126.1 with 32 bytes of data:

Reply from 192.168.126.1: bytes=32 time=144ms TTL=127

Reply from 192.168.126.1: bytes=32 time=4ms TTL=127

C:\Documents and Settings\Administrator>ping www.baidu.com

Pinging www.a.shifen.com [119.75.216.20] with 32 bytes of data:

Reply from 119.75.216.20: bytes=32 time=33ms TTL=52

Reply from 119.75.216.20: bytes=32 time=27ms TTL=52

通過以上測試,說明已經成功生效了.

小插曲:每次寫一篇文章,都是追求把它整理得完美點來與大家分享。但也是比較累人。關於這次blog編輯器的升級,給我帶來一些歡喜。我不用整理從word復制到編輯的文本,文章篇幅不會被限得那麼死.謝謝51cto的努力,期待著圖片的直接黏貼功能...有時間,我會把平時工作關聯到的一些技術寫出來與大家分享,謝謝支持!

Copyright © Linux教程網 All Rights Reserved