使用 Linux 搭建 VPN
VPN服务器的配置与应用
实验场景 通过将Linux配置VPN服务器允许远程计算机能够访问内网。
我的目的:
现在需要开发第三方接口,而第三方接口有服务器IP地址鉴权配置,这样在本地开发出来的程序每次都要发布到服务器上测试,如果是调试过程中每次这样比较麻烦,所以需要能直接通过VPN拨到这个服务器上,这个本地就可以直接开发调试了。
一、下载并安装VPN服务
1、下载所需安装包
输入:wget http://poptop.sourceforge.net/yum/stable/packages/dkms-2.0.17.5-1.noarch.rpm
输入:wget http://poptop.sourceforge.net/yum/stable/packages/kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm
输入:http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.3.4-2.rhel5.x86_64.rpm
因为上面的包官方会经常升级变动,如果下载不到,则根据名称到 http://poptop.sourceforge.net/yum/stable/packages/ 下载
2、依次安装
● 安装gcc,这是c编译类库(如果服务器已经有则不需要安装)
yum -install gcc
如果服务器配置配置好yum,参考我另一篇博客有配置,或网上查找资料配置yum。
● 安装 dkms-2.0.17.5-1.noarch.rpm
rpm -ivh dkms-2.0.17.5-1.noarch.rpm
● 安装 kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm
rpm -ivh kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm
● 安装 pptpd-1.3.4-2.rhel5.x86_64.rpm
rpm -ivh pptpd-1.3.4-2.rhel5.x86_64.rpm
二、配置VPN服务器
1、配置主配置文件
vi /etc/pptpd.conf
在最后追加内容:
debug
ppp /usr/sbin/pppd
option /etc/ppp/options.pptpd
localip 117.34.78.222
remoteip 192.168.0.2-4
2、配置账号文件
vi /etc/ppp/chap-secrets
编辑内容为(IP中*号代表所有):
# Secrets for authentication using CHAP
# client server secret IP addresses
用户名 pptpd 密码 *
用户名 pptpd 密码 192.168.0.3
用户名 pptpd 密码 192.168.0.4
3、启动服务
service pptpd start
4、查看端口 PPTP使用的1723端口侦听
netstat -ntpl
5、设置NAT并打开Linux内核路由功能
依次执行如下命令:
iptables -t nat -F
iptables -t nat -A POSTROUTING -s 192.168.0.2/24 -j SNAT --to 117.34.78.222
echo 1 > /proc/sys/net/ipv4/ip_forward
6、配置VPN自动启动
执行命令:ntsysv
7、设置iptables允许VPN连接(或禁用防火墙)
依次执行命令:
iptables -I INPUT -p tcp --dport 1723 -j ACCEPT
iptables -I INPUT -p tcp --dport 47 -j ACCEPT
iptables -I INPUT -p gre -j ACCEPT
三、使用VPN客户端接入
服务器IP地址就是我们上面配置的117.34.78.22,账号和密码也是配置文件中设置的(我上面用红色涂改液涂改掉的部分,那里自己配置即可)
关于win7如何拨号连接VPN这里就不做详细说明了。
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
结束