linux搭建vpn服务器

步骤概览

PPTP 的配置主要有下面五个步骤:

详细步骤

1.验证内核是否加载了MPPE模块:

基本都安装过了,所以略过

2.安装所需的软件包:

ppp

PPTP 使用 PPP 协议对用户数据进行封装,然后将 PPP 数据帧封装在 IP 数据报里,经由 IP 网络传播。因此首先需要支持 PPP 协议,下面命令安装 ppp:

yum install -y ppp

pptpd

有了 PPP 协议支持,接下来安装 pptpd。 首先到 这里 找到最新版适合你的平台的 pptpd。然后还需要根据内核选择 32 位或者 64 位的包。 找到正确的软件包以后,复制其 URL,然后用 wget 下载到 root 的家目录(或者用 rpm -ivh URL 直接安装也行)。譬如我的 64 位内核 CentOS ,使用下面命令下载:

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

3.配置

ppp

配置 ppp 需要编辑它的两个配置文件,一个是 option(选项)文件,一个是用户账户文件。 首先编辑 option 文件:

vim /etc/ppp/options.pptpd

查找ms-dns

修改:

ms-dns 8.8.8.8
ms-dns 8.8.4.4

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

vim /etc/ppp/chap-secrets

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

username1 pptpd passwd1 *
username2 pptpd passwd2 *

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

pptpd

vim /etc/pptpd.conf

修改如下两行

localip 192.168.0.1
remoteip 192.168.0.207-217

 

两行是比较重要的两行。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<a<b<255

4.打开内核ip转发功能

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

vim /etc/sysctl.conf

找到其中的行:

net.ipv4.ip_forward = 0

修改为

net.ipv4.ip_forward = 1

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

sysctl -p

5.启动pptpd 守护进程

上面配置完成后,就可以启动 pptpd 进程并设置自动启动了

/etc/init.d/pptpd start
chkconfig --level 35 pptpd on

连接之后如果需要用户上网,还需要设置NAT,ip转发
在linux服务器上使用iptables,如下:

iptables -t nat -F
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to xxx.xxx.xxx.xxx
# xxx.xxx.xxx.xxx 是你的ip

然后配置一下

还有关于iptable的配置,此处不多说了,参考如下:

此处我测试直接关闭了service iptables stop

http://gnailuy.com/linux/2011/07/04/pptp-vpn/

http://www.cnblogs.com/sixiweb/archive/2012/11/20/2778732.html

http://wuli03960405.blog.51cto.com/1470785/534714/

至于客户端如何连接vpn。请自行百度。

 

Yoyo 「二是一种不三不四的态度」

男 1990.12.22 429660248@qq.com