VPN服务器

技术分享技术分享1         VPN服务器环境说明

操作系统:CentOS release 6.4 (Final)

本地网卡:

# ifconfig

em1      Link encap:Ethernet  HWaddr 78:2B:CB:42:C3:68 

          inet addr:192.168.123.201  Bcast:192.168.123.255  Mask:255.255.255.0

em2      Link encap:Ethernet  HWaddr 78:2B:CB:42:C3:6A 

          inet addr:10.100.100.201  Bcast:10.100.100.255  Mask:255.255.255.0

说明:本地网卡em1负责连接vpn客户端,em2负责与10.100.100.0网段服务器的连接。

本实验目的:

(1)       vpn客户端能够成功的连接到vpn服务器上;

(2)       vpn服务器可以转发来自vpn客户端对10.100.100.0网段的请求。

技术分享

技术分享2         安装VPN服务器包

使用yum安装ppp和pptp包

yum -y install ppp*

yum -y install pptp*

注意:redhat5.8等老版本的yum没有提供pptp和pptp-setup的rpm包,推荐到http://rpm.pbone.net/index.php3去找,源码包可以到 http://pptpclient.sourceforge.net 下载,这里建议选用rpm包。

技术分享3         配置VPN服务器

1.       编辑/etc/pptpd.conf文件,找到“locapip”和“remoteip”这两个配置项,将前面#去掉。将后面的IP地址更改为自己需要IP

locapip表示VPN服务器自己的本地IP地址;

remoteip表示VPN客户端连到服务器上将会被分配的IP地址范围。

 

# vi /etc/pptpd.conf

ppp /usr/sbin/pppd

option /etc/ppp/options.pptpd

#logwtmp

localip 192.168.123.201

remoteip 192.168.0.234-238,192.168.0.245

2.       再编辑文件/etc/ppp/options.pptpd,在末尾添加DNS地址

# vi /etc/ppp/options.pptpd

name ZLZFVPN    

refuse-pap          拒绝 pap 身份验证模式
refuse-chap        拒绝 chap 身份验证模式
refuse-mschap    拒绝mschap身份验证模式

require-mschap-v2

require-mppe-128

proxyarp

debug            开启调试模式,相关信息同样记录在 /var/logs/message 中

dump

lock            锁定客户端 PTY 设备文件

nobsdcomp    禁用 BSD 压缩模式

novj    
novjccomp    禁用 Van Jacobson 压缩模式

nologfd        禁止将错误信息记录到标准错误输出设备(stderr)

ms-dns 202.106.196.115

ms-dns 192.168.123.5

保存退出文件。

3.       添加VPN客户端帐号和口令

# vi /etc/ppp/chap-secrets

# Secrets for authentication using CHAP

# client        server  secret                  IP addresses

shen pptpd 123456 *

这里,我们创建了一个vpn用户:shen,口令:123456。一个帐号一行,可以添加多个帐号。

4.       启动VPN服务器

# /etc/init.d/pptpd restart

至此VPN服务器搭建完成了,但实际环境中还需要给VPN服务器增加路由功能

pptpd成功启动以后将开启一个TCP协议的端口1723。

tcp        0      0 0.0.0.0:1723                0.0.0.0:*                   LISTEN      1435/pptpd

技术分享4         配置VPN服务器的路由转发功能

1.       修改内核文件,使系统支持转发

#vi /etc/sysctl.conf  

net.ipv4.ip_forward = 1

然后执行下列命令,使其生效: 

#sysctl –p

2.       配置防火墙增加转发规则

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

说明:对来自192.168.0.0网段(VPN分配的IP段,拨号网卡是em1)的访问允许转发到em2网卡(em2网卡连接10.100.100.0网段),从而访问10.100.100.201那个网段的服务器。

本例中,我只需要访问vpn服务器的10.100.100.201网卡,所以上面的路由转发操作可以不做。

提供我的路由表

# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.0.234   0.0.0.0         255.255.255.255 UH    0      0        0 ppp0
10.100.100.0    0.0.0.0         255.255.255.0   U     0      0        0 em2
192.168.123.0   0.0.0.0         255.255.255.0   U     0      0        0 em1
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 em1
0.0.0.0         192.168.123.250 0.0.0.0         UG    0      0        0 em1

提供我的iptables,其实没有任何配置

# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
注意:vpn客户端要访问10.100.100.0网段需要在vpn客户端添加一条路由网关指向拨号以后创建的ppp0网卡,这里不说明大家可能会有点懵。

技术分享5         FAQ

技术分享5.1   /var/log/messages日志中出现下面的错误,如何解决?

错误日志内容:from PTY failed: status = -1 error = Input/output error, usually caused by unexpected termination of pppd, check option syntax and pppd logs

解决办法:

修改 /etc/pptpd.conf 文件,注释掉logwtmp 这行,重启pptpd服务。

#logwtmp

# /etc/init.d/pptpd restart

再次尝试连接vpn客户端,可以成功验证用户和口令了。

5.2  如果系统阻止了gre协议,可以使用下面的命令打开

iptables -A INPUT -p tcp -m tcp --dport 1723 -j ACCEPT
iptables -A INPUT -p gre -j ACCEPT
iptables -A OUTPUT  -p gre -j ACCEPT

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。