linux下配置vpn-pptp配置

1.        验证内核是否支持MPPE模块

内核的MPPE模块用于支持,主流的Linux Desktop也都有MPPE支持,执行如下命令并显示如下结果说明正常。

[root@localhost ~]# lsmod|grep mppe

ppp_mppe                4463  0

ppp_generic            18207  1 ppp_mppe


2.         安装所需软件


#yum install ppp           //用yum方式安装ppp

#yum install  -y pptpd


3.         配置PPP和PPTP配置文件

 配置PPP:vim /etc/ppp/options.pptpd


name pptpd

refuse-pap

refuse-chap

refuse-mschap

require-mschap-v2

require-mppe-128

ms-dns 8.8.8.8

ms-dns 8.8.4.4

proxyarp

lock

nobsdcomp

novj

novjccomp

nologfd


其中name后面的pptpd是服务名称,可以任意修改成你喜欢的名字,在后面的配置中将对应的pptpd替换为你在这里修改的名字即可。


接下来的几行以refuse或者require开头的指令,是配置拒绝和接受的加密方式,这里接受的mschap-v2和mppe-128都是较新的比较安全的加密方式,其中mppe-128需要第一步中验证的内核模块支持。


另外两个比较重要的行就是ms-dns了,它们指定VPN使用的DNS服务器。毕竟VPS位于国外,所以推荐使用上面通用的Google Public DNS,当然也可以修改为你的VPS所在ISP提供的DNS


修改另一个,存储着用户账户的文件:

vi /etc/ppp/chap-secrets

这个文件非常简单,其中用明文存储VPN客户的用户名、服务名称、密码和IP地址范围,每行一个账户

username1  pptpd  passwd1  *

其中第一第三列分别是用户名和密码;第二列应该和上面的文件/etc/ppp/options.pptpd中name后指定的服务名称一致;最后一列限制客户端IP地址,星号表示没有限制



编辑pptpd的配置文件:

vi /etc/pptpd.conf


option /etc/ppp/options.pptpd

logwtmp

localip 192.168.0.1

remoteip 192.168.0.207-217

其中option选项指定使用/etc/ppp/options.pptpd中的配置;logwtmp表示使用WTMP日志。


后面两行是比较重要的两行。VPN可以这样理解,Linux客户端使用一个虚拟网络设备ppp0(Windows客户端也可以理解成VPN虚拟网卡),连接到服务器的虚拟网络设备ppp0上,这样客户端就加入了服务器端ppp0所在的网络。localip就是可以分配给服务器端ppp0的IP地址,remoteip则是将要分配给客户端ppp0(或者虚拟网卡)的。


这两项都可以是多个IP,一般localip设置一个IP就行了,remoteip则视客户端数目,分配一段IP。其中remoteip的IP段需要和localip的IP段一致。


localip和remoteip所处的IP段可以随意些指定,但其范围内不要包含实际网卡eth0的IP地址。一般情况下,使用上面配置文件中的配置就好使了,你需要做的只是把192.168.0.207-217这个IP区间修改成你喜欢的192.168.0.a-b,其中1。




4.         打开内核的IP转发功能:


要使VPN服务器可以作为网络请求的中转代理,能够使客户端通过VPN访问Internet,还需要开启内核的IP转发功能。可以编辑配置文件:


vi /etc/sysctl.conf


找到其中的行:


net.ipv4.ip_forward = 0


修改为:


net.ipv4.ip_forward = 1


然后执行下面命令使上述修改生效:


sysctl –p


5.         启动pptpd守护进程:


上面配置完成后,就可以启动pptpd进程并设置自动启动了,和上面iptables的例子类似:


service  pptpd restart


也可以这样启动:/etc/init.d/pptpd start


/etc/init.d/pptpd其实就是个脚本



6.         配置iptables规则


iptables -A FORWARD -s 192.168.0.0/24 -o eth0 -j ACCEPT


iptables -A FORWARD -d 192.168.0.0/24 -i eth0 -j ACCEPT


iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE



添加回复:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。