06.27 centos」下PPTP VPN的搭建過程

1、我的系統環境【避免由於系統環境的不同,導至實驗的失敗】

[root@bbs ~]# cat /etc/redhat-release

Red Hat Enterprise Linux Server release 6.2 (Santiago)

[root@bbs ~]#

[root@bbs ~]# uname -a

Linux bbs.wyf.cn 2.6.32-220.el6.x86_64 #1 SMP Wed Nov 9 08:03:13 EST 2011 x86_64 x86_64 x86_64 GNU/Linux

[root@bbs ~]#

[root@bbs ~]# uname -r

2.6.32-220.el6.x86_64

[root@bbs ~]#

[root@bbs ~]# uname -m

x86_64

[root@bbs ~]#

2、檢測是否符合PPTP的搭建環境的要求:

[root@bbs ~]#

[root@bbs ~]# modprobe ppp-compress-18 && echo ok

ok

[root@bbs ~]# cat /dev/net/tun

cat: /dev/net/tun: File descriptor in bad state

通過上述檢查後,則表示通過,可以安裝pptp ,否則就只能考慮openvpn 了。

3.安裝ppp

PPTPD要求Linux內核支持mppe,一般來說CentOS安裝時已經包含了。CentOS默認安裝了iptables和ppp,我們要先查看已經安裝的ppp的版本,再去找對應的pptpd版本。ppp版本查看命令如下:

[root@bbs ~]#

[root@bbs ~]# rpm -qa ppp

ppp-2.4.5-5.el6.x86_64

[root@bbs ~]#

ppp和pptpd各個版本下載地址:

http://poptop.sourceforge.net/yum/stable/packages/。在這裡一定要下載ppp對應的pptpd版本,不然會出錯。

我所需要下載的版本為pptpd-1.4.0-1.el6.x86_64.rpm,下載及安裝命令如下:

[root@bbs vpn]#

下載 wget http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.4.0-1.el6.x86_64.rpm

--2018-04-1016:53:20-- http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.4.0-1.el6.x86_64.rpm

Resolving poptop.sourceforge.net... 216.105.38.10

Connecting to poptop.sourceforge.net|216.105.38.10|:80... connected.

HTTP request sent, awaiting response... 200 OK

Length: 76180 (74K) [application/x-rpm]

Saving to: `pptpd-1.4.0-1.el6.x86_64.rpm'

100%[========================>] 76,180 168K/s in 0.4s

2018-04-10 16:53:21 (168 KB/s) - `pptpd-1.4.0-1.el6.x86_64.rpm' saved [76180/76180]

[root@bbs vpn]#

[root@bbs vpn]# ll

total 76

-rw-r--r-- 1 root root 76180 Oct 26 2013 pptpd-1.4.0-1.el6.x86_64.rpm

[root@bbs vpn]#

開始安裝

[root@bbs vpn]#

[root@bbs vpn]# rpm -ivh pptpd-1.4.0-1.el6.x86_64.rpm

warning: pptpd-1.4.0-1.el6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 862acc42: NOKEY

Preparing... ########################################### [100%]

1:pptpd ########################################### [100%]

[root@bbs vpn]#

修改配置文件

1)配置文件/etc/ppp/options.pptpd

[root@bbs ppp]# cp /etc/ppp/options.pptpd /etc/ppp/options.pptpd.bak

[root@bbs ppp]# vim /etc/ppp/options.pptpd

將下面的內容添加到option.pptpd 文件中:

ms-dns 211.***.***.3

ms-dns 114.114.114.114

然後保存退出。:wq!

2)配置文件/etc/ppp/chap-secrets

[root@bbs ppp]#

[root@bbs ppp]# cp /etc/ppp/chap-secrets /etc/ppp/chap-secrets.bakç 對chap-secrets文件進行備份。

修改配置文件chap-secrets

[root@bbs ppp]# vim chap-secrets

# Secrets for authentication using CHAP

# client server secret IP addresses

chengwei pptpd chewei123 *

ggg pptpd ggg123 *

client處是VPN賬號,server處是pptpd,secret處是VPN的密碼,IP address處填上*(星號表示對任意IP,記住不要丟了這個星號。)

3)配置文件/etc/pptpd.conf,命令如下所示:

[root@bbs etc]# cp /etc/pptpd.conf /etc/pptpd.conf.bak

[root@bbs etc]#

[root@bbs etc]# vim /etc/pptpd.conf

localip 192.168.10.21

remoteip 192.168.10.220-240 ç 表示vpn 客戶端獲得ip 地址範圍。

pptpd.conf這個配置文件必須保證最後是以空行結尾才行,否則會導致啟動pptpd服務時,出現“Starting pptpd:”,一直卡著不動的問題,無法啟動服務,切記呀!

4)配置文件/etc/sysctl.conf

[root@bbs etc]# vim /etc/sysctl.conf

將net.ipv4.ip_forward = 0 改成 net.ipv4.ip_forward = 1。保存修改的文件,然後執行如下命令:

[root@bbs etc]# /sbin/sysctl -p

net.ipv4.ip_forward = 1

net.ipv4.conf.default.rp_filter = 1

net.ipv4.conf.default.accept_source_route = 0

kernel.sysrq = 0

kernel.core_uses_pid = 1

net.ipv4.tcp_syncookies = 1

error: "net.bridge.bridge-nf-call-ip6tables" is an unknown key ç 報錯

error: "net.bridge.bridge-nf-call-iptables" is an unknown key

error: "net.bridge.bridge-nf-call-arptables" is an unknown key

kernel.msgmnb = 65536

kernel.msgmax = 65536

kernel.shmmax = 68719476736

kernel.shmall = 4294967296

sysctl -P 報錯解決辦法

[root@bbs etc]#

[root@bbs etc]# modprobe bridge

[root@bbs etc]# lsmod|grep bridge

bridge 79790 0

stp 2173 1 bridge

llc 5642 2 bridge,stp

[root@bbs etc]#

啟動pptp vpn 服務

[root@bbs etc]# /etc/init.d/pptpd start 或者 service pptpd start

經過前面步驟,我們的VPN已經可以撥號登錄了,但是還不能訪問任何網頁。最後一步就是添加iptables轉發規則了。我的規則如下:

[root@bbs ~]# /sbin/iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -p tcp --dport 1723 -j SNAT --to-source 111.***.***.224


[root@bbs ~]# iptables -t nat -A POSTROUTING -o eth0 -s 192.168.10.0/24 -j SNAT --to-source 111.***.***.224 (填寫自己的VPS網卡IP)ç 【本條忽略,可以使用上面那一調規則】192.168.10.0/24 為vpn 服務器的ip 網段, 111.***.***.130 為外網ip
[root@bbs ~]# iptables -I INPUT 1 -p gre -j ACCEPT
[root@bbs ~]# iptables -I INPUT 1 -p tcp -m tcp --dport 1723 -j ACCEPT
[root@bbs ~]#iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT (一般不執行,防火牆默認設置)
[root@bbs ~]# iptables -A FORWARD -s 192.168.10.0/24 -o eth0 -j ACCEPT
[root@bbs ~]# iptables -A FORWARD -d 192.168.10.0/24 -i eth0 -j ACCEPT

注意上面規則添加中的eth0這個是網卡,不同的電腦是不相同的,可以使用命令ifconfig查看得到。規則添加完畢之後,先保存一下添加的規則,然後再啟動iptables了。命令如下:

/etc/init.d/iptables save
service iptables start
最後,我們可以設置pptpd和iptables隨系統自啟動。命令如下圖所示:
chkconfig pptpd on
chkconfig iptables on

到此為止,PPTP VPN就配置完成了

注意:

在內網網關做下端口映射,將內網pptp的1723端口映射到公網ip上,這樣我們就可以通過遠程連接pptp來建立vpn了。

客戶端配置將在下一篇中介紹。


分享到:


相關文章: