听枫小站
linux搭建vpn服务器
2015-9-29 楼台听枫雨

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://wuli03960405.blog.51cto.com/1470785/534714


 Linux搭建pptp vpn服务器



大家好,今天我要做的是一个使用linux搭建一个pptp的vpn服务器,使用客户端能够连接到vpn虚拟网络来实现互连,废话不多说了,下面是详细的安装步骤:(本实验采用的linux服务器是centos5.5)


       拓扑:





1



首先介绍一下这次的拓扑,本实验由于是模拟网络环境,所以使用的是一台xp、一台linux服务器和一台windows server2003,分别作为客户端、pptp服务器和路由。在以上拓扑中,Internet使用一台win2003作为路由来替代。


1.     准备安装实验包



[root@localhost Desktop]# ls


dkms-2.0.17.5-1.noarch.rpm              ppp-2.4.5-15.0.rhel5.i386.rpm


kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm pptpd-1.3.4-1.rhel5.1.i386.rpm


这是本次试验所用到的pptp相关的软件包


接下来安装


[root@localhost Desktop]# rpm -ivh dkms-2.0.17.5-1.noarch.rpm



warning: dkms-2.0.17.5-1.noarch.rpm: Header V3 DSA signature: NOKEY, key ID 862a                                                                                        cc42



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



   1:dkms                   ########################################### [100%]



安装dkms成功


[root@localhost Desktop]# rpm -ivh kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm



warning: kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm: Header V3 DSA signature: NOKEY, key ID 862acc42



error: Failed dependencies:


        gcc is needed by kernel_ppp_mppe-1.0.2-3dkms.noarch



安装kernel_ppp_mppe提示有依赖gcc软件包,所以要先解决依赖问题


[root@localhost CentOS]# rpm -ivh
gcc-4.1.2-48.el5.i386.rpm glibc-devel-2.5-49.i386.rpm
libgomp-4.4.0-6.el5.i386.rpm glibc-headers-2.5-49.i386.rpm
kernel-headers-2.6.18-194.el5.i386.rpm



warning: gcc-4.1.2-48.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID e8562897



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



   1:libgomp                ########################################### [ 20%]



   2:kernel-headers         ########################################### [ 40%]



   3:glibc-headers          ########################################### [ 60%]



   4:glibc-devel            ########################################### [ 80%]



   5:gcc                    ########################################### [100%]



[root@localhost CentOS]#


安装gcc需要5个软件包,安装完毕,接下来再次安装kernel_ppp_mppe


[root@localhost Desktop]# rpm -ivh kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm



warning: kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm: Header V3 DSA signature: NOKEY, key ID 862acc42



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



   1:kernel_ppp_mppe        ########################################### [100%]



 


Creating symlink /var/lib/dkms/kernel_ppp_mppe/1.0.2/source ->



                 /usr/src/kernel_ppp_mppe-1.0.2



 


DKMS: add Completed.


Module build for the currently running kernel was skipped



since the kernel source for this kernel does not seem to be



installed.


[root@localhost Desktop]#


安装完毕


接下来安装ppp和pptpd服务包


[root@localhost Desktop]# rpm -ivh ppp-2.4.5-15.0.rhel5.i386.rpm



warning: ppp-2.4.5-15.0.rhel5.i386.rpm: Header V3 DSA signature: NOKEY, key ID b56a8bac



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



        file /usr/sbin/chat from install of ppp-2.4.5-15.0.rhel5.i386 conflicts with file from package ppp-2.4.4-2.el5.i386



        file /usr/sbin/pppd from install of ppp-2.4.5-15.0.rhel5.i386 conflicts with file from package ppp-2.4.4-2.el5.i386



        file /usr/sbin/pppdump from install of ppp-2.4.5-15.0.rhel5.i386 conflicts with file from package ppp-2.4.4-2.el5.i386



        file /usr/sbin/pppoe-discovery from
install of ppp-2.4.5-15.0.rhel5.i386 conflicts with file from package
ppp-2.4.4-2.el5.i386



        file /usr/sbin/pppstats from install of ppp-2.4.5-15.0.rhel5.i386 conflicts with file from package ppp-2.4.4-2.el5.i386



        file /usr/share/man/man8/chat.8.gz from
install of ppp-2.4.5-15.0.rhel5.i386 conflicts with file from package
ppp-2.4.4-2.el5.i386



        file /usr/share/man/man8/pppd.8.gz from
install of ppp-2.4.5-15.0.rhel5.i386 conflicts with file from package
ppp-2.4.4-2.el5.i386



[root@localhost Desktop]# rpm -ivh pptpd-1.3.4-1.rhel5.1.i386.rpm



warning: pptpd-1.3.4-1.rhel5.1.i386.rpm: Header V3 DSA signature: NOKEY, key ID 862acc42



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



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



[root@localhost Desktop]#


安装成功。到此,所需要的软件包已经安装完毕


2.     下面开始修改配置文件



[root@localhost Desktop]# vi /etc/pptpd.conf





#localip 192.168.0.1


#remoteip 192.168.0.234-238,192.168.0.245


# or


#localip 192.168.0.234-238,192.168.0.245


#remoteip 192.168.1.234-238,192.168.1.245


修改为


localip 172.16.4.6


remoteip 192.168.0.234-238,192.168.0.245


# or


#localip 192.168.0.234-238,192.168.0.245


#remoteip 192.168.1.234-238,192.168.1.245


Localip 后面要改为你服务的ip


Remoteip后面改为你分配给vpn用户的ip段


使用命令开启服务


[root@localhost Desktop]# service pptpd start


Starting pptpd:                                            [确定]


[root@localhost Desktop]#


关闭命令:service pptpd stop


这时你编辑vpn用户的密码资料等都是实时生效的。


给服务器添加用户


[root@localhost Desktop]# vim /etc/ppp/chap-secrets


在最下面插入新行


写法:


用户名       服务名       密码     ip


例如:


wuli      pptpd   testpasswd       192.168.0.234


此时用户就可以登录vpn服务器了,分配的ip地址只有192.168.0.234这一个,也就是说只能一个人同时使用。


如果想多人同时使用,,可以将192.168.0.234改为*


这样就不限制这个帐户的使用人数了(同时登录的人数还取决于pptpd服务器的设置,默认40个)


现在vpn可以连接了


连接之后如果需要用户上网,还需要设置NAT,ip转发


在linux服务器上使用iptables,如下:


iptables -t nat -F


iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to 172.16.4.6



上面的192.168.0.0替换成你要分配给用户的vpn内网ip段,


172.16.4.6替换为你的vpn服务器ip(与pptpd.conf的localip一样)


       3.测试


找一台xp来作为客户端,添加一个连接





2



点击“连接”按钮,出现下面如图





3



可以看出创建的连接已经成功连上,使用ipconfig命令看一下客户端的ip地址为





4



多了一个为192.168.0.234的ip,此ip就是连接vpn服务器时获取的ip地址,然后我们在linux服务器上看一下pptp的服务进程





5



到此我们的实验已经结束。
发表评论:
昵称

邮件地址 (选填)

个人主页 (选填)

内容