CentOS上搭建V*N
1.檢查服務器是否有必要的支持。如果檢查結果沒有這些支持的話,是不能安裝pptp的。命令:
modprobe ppp-compress-18 && echo ok
這條執行執行后,顯示“ok”則表明通過。不過接下來還需要做另一個檢查,輸入指令:
cat /dev/net/tun
如果顯示如下信息,說明通過,如果不支持,可以給vps商發ticket開通tun,大部分美國vps商都可以支持:
cat: /dev/net/tun: File descriptor in bad state
上面的兩個只要一條通過,就能安裝V*N(pptp)
2.準備環境
PPTPD要求Linux內核支持mppe,一般來說CentOS安裝時已經包含了;下面安裝ppp與iptables:
yum install ppp iptables
3、安裝PPTPD
對于32位CentOS,執行
wget http://acelnmp.googlecode.com/files/pptpd-1.3.4-1.rhel5.1.i386.rpm
rpm -ivh pptpd-1.3.4-1.rhel5.1.i386.rpm
對于64位CentOS,執行
wget http://acelnmp.googlecode.com/files/pptpd-1.3.4-1.rhel5.1.x86_64.rpm
rpm -ivh pptpd-1.3.4-1.rhel5.1.x86_64.rpm
上面兩個是el5內核的rpm包,如果是el6,執行
rpm -Uvh http://poptop.sourceforge.net/yum/stable/rhel6/i386/pptpd-1.4.0-1.el6.i686.rpm
如果想要從yum直接安裝,可以
rpm -Uvh http://poptop.sourceforge.net/yum/stable/pptp-release-current.noarch.rpm
yum search pptpd
如果上訴url都失效了,可以直接訪問http://poptop.sourceforge.net找找看
4.修改配置
編輯PPTP配置文件 /etc/ppp/options.pptpd 添加內容如下:
ms-dns 8.8.8.8
ms-dns 8.8.4.4
編輯配置文件 /etc/pptpd.conf ,添加內容如下:
/etc/ppp/options.pptpd
localip 192.168.254.1
remoteip 192.168.254.100-254
- 其中localip與remoteip定義了客戶端連接VN服務器后被分配到的內網IP地址,可根據需要自己修改。
現在對用戶認證文件 /etc/ppp/chap-secrets 進行配置,內容如下:
testuser pptpd testpwd - testuser、testpwd對應修改為自己希望的V*N登錄用戶名和密碼
將 /etc/sysctl.conf 文件中net.ipv4.ip_forward設置為 1 (如果沒有,則按照格式新建一行):
net.ipv4.ip_forward = 1
同時在“net.ipv4.tcp_syncookies = 1”前面加# 變成:
# net.ipv4.tcp_syncookies = 1
保存退出。執行
/sbin/sysctl -p
使之生效。
5.設置iptables轉發
/etc/init.d/iptables start
/sbin/iptables -t nat -A POSTROUTING -o eth0 -s 192.168.254.0/24 -j MASQUERADE
/etc/init.d/iptables save
/etc/init.d/iptables restart - 注意,上面的192.168.254.0應該與之前設置的網段對應。
6.去除加密(部分VPS不支持加密)
這一步,一般可以省略,主要看你那是什么VPS。
編輯/etc/ppp/options.pptpd(vim /etc/ppp/options.pptpd),在require-mppe-128前面加個#(# require-mppe-128);
VN連接屬性里,加密方式選擇為可選加密,并允許未加密的密碼。
最后重啟下PPTPD即可:
7.設置開機啟動
chkconfig pptpd on
chkconfig iptables on
重啟服務器即可進行連接,并且能夠正常上網。
如果重啟服務器后,無法連接VN,首先檢查服務器的PPTP服務1723端口是否已打開(注意設置防火墻允許此端口);如果可以連接V*N,但是無法正常上網,則檢查iptables是否正常轉發。
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 1723 -j ACCEPT
service iptables save
service iptables restart