1.下載相應的安裝包。
由于Linux本身并沒有集成PPTP功能,所以需要安裝相關組件以讓我們的RedHat支持PPTP,根據(jù)內(nèi)核的版本,下載相應的安裝包,我這里內(nèi)
核是Linux version 2.6.9-42,進入/temp目錄,并下載安裝包:
#cd /temp
#wget http://poptop.sourceforge.net/yum/stable/rhel4/i386/ppp-2.4.3-7.rhel4.i386.rpm
#wget http://poptop.sourceforge.net/yum/stable/rhel4/i386/pptpd-1.3.4-1.rhel4.i386.rpm
#wget http://poptop.sourceforge.net/yum/stable/rhel4/i386/dkms-2.0.17.5-1.noarch.rpm
#wget http://poptop.sourceforge.net/yum/stable/rhel4/i386/kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm
2.安裝pptpd。
#cd /temp
#rpm -Uvh ppp-2.4.3-7.rhel4.i386.rpm
#rpm -ivh pptpd-1.3.4-1.rhel4.i386.rpm
#rpm -ivh dkms-2.0.17.5-1.noarch.rpm
#rpm -ivh kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm
3.加載內(nèi)核模塊
檢查kernel module是否正常
#modprobe ppp-compress-18 && echo ok
ok
如果出現(xiàn)OK就說明是正常的
#modprobe ppp-compress-18 && echo ok
FATAL: Module ppp_mppe not found.
Install them with command "rpm -ivh".
出現(xiàn)此提示,表明模塊沒有加載成功,或者內(nèi)核源代碼沒有安裝,按照以上步驟應該是不會出現(xiàn)此錯誤
4.vpn服務器設置
定制網(wǎng)絡設置,注意如果存在多個內(nèi)網(wǎng)網(wǎng)卡,則需要在vpn中設定路由表,否則過別情況無法訪問到內(nèi)網(wǎng)
內(nèi)網(wǎng)卡:192.168.0.200(并配置router:route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.0.1)
外網(wǎng)卡:202.177.14.X
#cd /etc/sysconfig/network-scripts
#vi ifcfg-eth0
---------------------------------------------------
DEVICE=eth0
BOOTPROTO=static
HWADDR=00:0C:2F:58:F4:4E
IPADDR=192.168.0.200
NETMASK=255.255.255.0
ONBOOT=yes
TYPE=Ethernet
---------------------------------------------------
5.配置pptpd
#vi /etc/pptpd.conf
___________________________________
ppp /usr/sbin/pppd
debug
localip 192.168.219.1
remoteip 192.168.219.2-254
--------------------------------------------------------------
#vi /etc/ppp/options.pptpd
-----------------------------------
auth
lock
debug
proxyarp
lock
name 3gvpn
multilink
refuse-pap
refuse-chap
refuse-mschap
refuse-eap
refuse-mschap-v2
require-mppe
dump
logfile /var/log/pptpd.log
-----------------------------------
#vi /etc/ppp/chap-secrets
---------------------------------------------------------------
# Secrets for authentication using CHAP
# client server secret IP addresses
"username" pptpd "yourpassword" "*"
"admin" pptpd "password" "192.168.219.2"
---------------------------------------------------------------
每行一個用戶信息,分別采用以上格式,用""引用,雖然是明文,但最好設置讓此文件非屬主不能夠讀
如果一個用戶分配一個固定ip,則可以進一步進行行為控制,方便你的管理
6.創(chuàng)建一個腳本
創(chuàng)建一個腳本文件,用于啟用iptables轉(zhuǎn)發(fā)功能,實現(xiàn)中轉(zhuǎn)上網(wǎng),否則無法正常工作,并使此文件開機自啟動!
#vi vpn_forward
#!/bin/bash
#2008.11.19
#!/bin/bash
PATH=/sbin:/usr/sbin:/bin:/usr/bin
export PATH
myvar=`iptables -L -t nat | grep SNAT`
if [ "X$myvar" = "X" ]; then
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth1 -j SNAT --to-source 202.177.14.X
fi
myvar=`cat /proc/sys/net/ipv4/ip_forward`
if [ "X$myvar" = "X0" ]; then
echo "1" > /proc/sys/net/ipv4/ip_forward
fi
復制代碼
#chmod +x vpn_forward
#cp vpn_forward /etc/rc.d/init.d/vpn_forward
#ln -s /etc/rc.d/init.d/vpn_forward /etc/rc.d/rc3.d/S94vpn_forward
說明:
其實可以在/etc/init.d/iptables中的start()那段代碼中加入
if [ -f /usr/local/sbin/iptables.sh ]; then
/usr/local/sbin/iptables.sh
fi
這樣就可以讓我們前面寫的腳本隨iptables而啟動或重啟。
7.確保已經(jīng)加載以下模塊,主要針對內(nèi)核版本而言, 否則NAT將不能夠很好工作,在有些版本中可能存在問題
# modprobe -l >/home/modprode
# less modprode |grep ip_tables
/lib/modules/2.6.9-42.ELsmp/kernel/net/ipv4/netfilter/ip_tables.ko
# less modprode |grep ip_conntrack_ftp
/lib/modules/2.6.9-42.ELsmp/kernel/net/ipv4/netfilter/ip_conntrack_ftp.ko
# less modprode |grep ip_conntrack
/lib/modules/2.6.9-42.ELsmp/kernel/net/ipv4/netfilter/ip_conntrack_tftp.ko
/lib/modules/2.6.9-42.ELsmp/kernel/net/ipv4/netfilter/ip_conntrack_proto_sctp.ko
/lib/modules/2.6.9-42.ELsmp/kernel/net/ipv4/netfilter/ip_conntrack_amanda.ko
/lib/modules/2.6.9-42.ELsmp/kernel/net/ipv4/netfilter/ip_conntrack.ko
/lib/modules/2.6.9-42.ELsmp/kernel/net/ipv4/netfilter/ip_conntrack_irc.ko
/lib/modules/2.6.9-42.ELsmp/kernel/net/ipv4/netfilter/ip_conntrack_ftp.ko