安装VPN服务器pptpd

环境:

[root@vpn_server network-scripts]# cat /etc/redhat-release

CentOS release 6.6 (Final)

[root@vpn_server network-scripts]# uname -m

x86_64

 

准备:

c64

rpm -ivh http://mirrors.aliyun.com/epel/6/x86_64/epel-release-6-8.noarch.rpm

yum install yum-priorities -y

 

c32

rpm -ivh http://mirrors.aliyun.com/epel/6/i386/epel-release-6-8.noarch.rpm

yum install yum-priorities -y

 

 

加入 yum 源

rpm -Uvh http://poptop.sourceforge.net/yum/stable/rhel6/pptp-release-current.noarch.rpm

 

实验拓扑:

OS IP Role
Linux eth0: 198.168.136.137 pptp_server(vpn_server)
win7 vpn_client

 

目标:

用户(vpn_client)通过pptp(vpn_server),实现翻墙上网功能。

 

检查服务器是否有必要的支持.如果检查结果没有这些支持的话,是不能安装pptp的,执行指令:

modprobe ppp-compress-18 && echo ok

这条执行执行后,显示”ok”则表明通过.不过接下来还需要做另一个检查,输入指令:

cat /dev/net/tun

如果这条指令显示结果为下面的文本,则表明通过:

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

上述两条均通过,才能安装pptp.否则就只能考虑openvpn,或者请你的服务商来解决这个问题

 

[root@vpn_server soft]# modprobe ppp-compress-18 && echo ok

ok

[root@vpn_server soft]# cat /dev/net/tun

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

 

Cent os 6.4内核版本在2.6.15以上,都默认集成了MPPEPPP

 

1安装ppp,pptpd和iptables(iptables可选).

默认情况下,完整的CentOS是带有这两个组件的,但是精简版的系统可能没有.我们输入下面的命令来确认,如果没有则进行安装

yum install pptpd -y

 

2配置pptp.

首先我们要编辑/etc/pptpd.conf文件

locapip”和”remoteip”这两个配置项,将前面的”;”注释符去掉,或者更改为你期望的IP段值.

localip表示服务器的IP,

remoteip表示分配给客户端的IP地址

 

[root@vpn_server soft]# echo “localip 198.168.136.137” >>/etc/pptpd.conf

[root@vpn_server soft]# echo “remoteip 172.16.1.10-15” >>/etc/pptpd.conf

[root@vpn_server soft]# tail -2 /etc/pptpd.conf

localip 198.168.136.137

remoteip 172.16.1.10-15

 

在编辑/etc/ppp/options.pptpd文件,为VPN添加DNS:

 

[root@vpn_server soft]# echo “ms-dns 114.114.114.114” >>/etc/ppp/options.pptpd

[root@vpn_server soft]# echo “ms-dns 8.8.8.8” >>/etc/ppp/options.pptpd

[root@vpn_server soft]# tail -2 /etc/ppp/options.pptpd

ms-dns 8.8.8.8

ms-dns 114.114.114.114

 

设置pptp VPN账号密码.我们需要编辑/etc/ppp/chap-secrets

这个文件:#vim /etc/ppp/chap-secrets在这个文件里面,按照”用户名 pptpd 密码 *”的形式编写,一行一个账号和密码

比如添加用户名为test,密码为123456的用户,则编辑如下内容:test pptpd 123456 *

 

 

[root@vpn_server soft]# echo “test pptpd 123456 *” >>/etc/ppp/chap-secrets

[root@vpn_server soft]# tail -1 /etc/ppp/chap-secrets

test pptpd 123456 *

 

修改内核设置,使其支持转发.编辑/etc/sysctl.conf文件:

#vim /etc/sysctl.conf将”net.ipv4.ip_forward”改为1,变成下面的形式net.ipv4.ip_forward=1

保存退出,并执行下面的命令来生效它:

#sysctl -p

 

添加iptables转发规则.输入下面的指令:

iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -o eth0 -j MASQUERADE
 
iptables -A INPUT-i eth0 -p tcp --dport 1723 -j ACCEPT
 
iptables -A FORWARD -i ppp+ -o eth0 -j ACCEPT
 
iptables -A FORWARD -i eth0 -o ppp+ -j ACCEPT
 
iptables -A INPUT -i eth0 -p gre -j ACCEPT
 
iptables -A INPUT -m state--state ESTABLISHED,RELATED -j ACCEPT

需要注意的是,这个指令中的” 172.16.1.0 /24″是根据之前的配置文件中的”localip”网段来改变的

service iptables save

 

 

启动pptpd

[root@vpn_server soft]# /etc/init.d/pptpd start

Starting pptpd:[OK ]

[root@vpn_server soft]# netstat -lntp|grep pptpd

tcp0 0 0.0.0.0:1723  0.0.0.0:*  LISTEN  4129/pptpd

 

在vpn-client上操作

创建一个新的网络连接,略

 

 

此条目发表在Linux分类目录,贴了标签。将固定链接加入收藏夹。