linux下使用pptp搭建VPN

1、下载ppp和pptpd安装包,可以来这个网址下载对应版本的安装包:http://rpm.pbone.net/

本文使用的安装包版本如下:

pptpd-1.4.0-1.el6.x86_64.rpm和ppp-2.4.5-6.6.x86_64.rpm

自己使用yum安装。

2、检查服务器系统环境是否支持pptp的vpn

  modprobe ppp-compress-18 && echo success

 如果显示success表明系统支持MPPE补丁,如果不支持,先安装kernel-devel。

 使用yum install kernel-devel安装即可。

3、检查系统是否开启TUN/TAP

  cat /dev/net/tun

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

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

4、检查系统是否开启ppp

  cat /dev/ppp

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

  cat: /dev/ppp: No such device or address

5、配置pptpd,编辑此配置文件,配置如下:

[root@proxy ~]# egrep -v “^#|^$” /etc/ppp/options.pptpd 

name pptpd

refuse-pap

refuse-chap

refuse-mschap

require-mschap-v2

require-mppe-128

ms-dns 114.114.114.114

ms-dns 8.8.8.8

proxyarp

lock

nobsdcomp 

novj

novjccomp

nologfd

6、设置vpn账号密码,编辑如下配置文件,配置如下:

[root@proxy ~]# egrep -v “^#|^$” /etc/ppp/chap-secrets

# Secrets for authentication using CHAP

# client server secret IP addresses

“test” pptpd “test1密码” *

“test2” pptpd “test2密码” *

最后的星号表明自动分配IP地址。

7、配置vpn拨入地址池:

[root@proxy ~]# egrep -v “^#|^$” /etc/pptpd.conf 

option /etc/ppp/options.pptpd

logwtmp

localip 192.168.1.1

remoteip 192.168.1.2-5

8、此时可以启动pptpd服务:

services pptpd start|stop|restart

chkconfig pptpd on

9、开启系统路由模式,支持包转发:

vim /etc/sysctl.conf

net.ipv4.ip_forward = 1 #值改为1

#net.ipv4.tcp_syncookies = 1 #注释掉此项

10、设置防火墙规则:

添加nat转发:

 iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j SNAT --to-source 本机外网IP
 iptables -A FORWARD -p tcp --syn -s 192.168.1.0/24 -j TCPMSS --set-mss 1356
service iptables sava #保存规则

 

 防火墙上开启1723、47、gre以及vpn拨入地址池允许通过防火墙:

  -A INPUT -p tcp -m state --state NEW -m tcp --dport 1723 -j ACCEPT
  -A INPUT -p tcp -m state --state NEW -m tcp --dport 47 -j ACCEPT
  -A INPUT -p gre -j ACCEPT
  -A INPUT -s 192.168.1.0/24 -j ACCEPT

 添加完以后重启下iptables即可。

我这个机器上的iptables设置如下:

# Generated by iptables-save v1.4.7 on Mon Mar 21 16:12:14 2016
*nat
:PREROUTING ACCEPT [34:1792]
:POSTROUTING ACCEPT [29:1840]
:OUTPUT ACCEPT [29:1840]
-A POSTROUTING -s 192.168.1.0/24 -j SNAT --to-source 本机外网IP
COMMIT
# Completed on Mon Mar 21 16:12:14 2016
# Generated by iptables-save v1.4.7 on Mon Mar 21 16:12:14 2016
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [23:2228]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 1723 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 47 -j ACCEPT
-A INPUT -p gre -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -s 192.168.1.0/24 -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j TCPMSS --set-mss 1356
COMMIT
# Completed on Mon Mar 21 16:12:14 2016

上述内容测试可以使用。如果有问题可以邮箱联系我修改。

配置好以后可能会遇到有些网页打不开,是因为mtu值的问题。可以在/etc/ppp/options.pptpd最后添加一行: mtu 1496。 保存重启pptpd服务即可。