CentOS5.8下安装配置VPN服务器,这里centos 5.8配置不适用centos 6.5
一、检查服务器系统环境是否支持安装PPTP vpn
1、检查系统内核是否支持MPPE补丁
modprobe ppp-compress-18 && echo success
显示success说明系统支持MPPE补丁,如果不支持,需要先安装kernel-devel
yum install kernel-devel
2、检查系统是否开启TUN/TAP支持
cat /dev/net/tun
如果这条指令显示结果为下面的文本,则表明通过:
cat: /dev/net/tun: File descriptor in badstate
3、检查系统是否开启ppp支持
cat /dev/ppp
如果这条指令显示结果为下面的文本,则表明通过:
cat: /dev/ppp: No such device or address
上面三条必须同时满足,否则不能安装pptp vpn
二、先检查系统多少位
具体操作:
cat /etc/issue
cat /proc/version
uname -a
对应的32位和64位安装包下载
1、ppp #安装pptpd需要此软件包
http://poptop.sourceforge.net/yum/stable/packages/ppp-2.4.4-14.1.rhel5.x86_64.rpm
http://poptop.sourceforge.net/yum/stable/packages/ppp-2.4.4-14.1.rhel5.i386.rpm
2、pptpd #目前最新版本
http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.4.0-1.rhel5.x86_64.rpm
http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.4.0-1.rhel5.i386.rpm
下载好之后上传到/usr/local/src目录
三、安装pptp
Cd /usr/local/src
rpm -ivh ppp-2.4.4-14.1.rhel5.x86_64.rpm #安装ppp
rpm -ivh pptpd-1.4.0-1.rhel5.x86_64.rpm #安装pptp
四、配置pptp
1、vi /etc/ppp/options.pptpd #编辑,添加、修改以下参数
name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
proxyarp
lock
nobsdcomp
novj
novjccomp
nologfd
ms-dns 114.114.114.114 #添加主DNS服务器地址
ms-dns 8.8.8.8 #添加备DNS服务器地址
:wq! #保存,退出
2、vi /etc/ppp/chap-secrets #设置pptp拨号用户和密码(可以设置多个用户,每行一个)
# client server secret IPaddresses
test pptpd 123456 *
lc pptpd 1234 *
格式:用户名 pptpd 密码 *
其中*表示为客户端自动分配IP地址
:wq! #保存,退出
3、vi /etc/pptpd.conf #设置pptp服务器IP地址,设置vpn拨入客户端ip地址池
option /etc/ppp/options.pptpd
logwtmp
localip 10.10.10.1 #设置pptp虚拟拨号服务器IP地址(注意:不是服务器本身的IP地址)
remoteip 10.10.10.10-100 #为拨入vpn的用户动态分配10.10.10.10~10.10.10.100之间的IP地址
:wq! #保存,退出
/sbin/service pptpd start #启动pptp
/etc/init.d/pptpd stop #关闭
service pptpd restart #重启
chkconfig pptpd on #设置开机启动
五、开启服务器系统路由模式,支持包转发
vi /etc/sysctl.conf #编辑
net.ipv4.ip_forward = 1 #设置为1
#net.ipv4.tcp_syncookies = 1 #注释掉
:wq! #保存,退出
/sbin/sysctl -p #使设置立刻生效
到这里,客户端使用PPTP拨号成功后
客户端会多出一个网络接口:
PPP adapter 239:
Connection-specific DNS Suffix . :
IP Address. . . . . . . . . . . . : 10.10.10.10
Subnet Mask . . . . . . . . . . . : 255.255.255.255
Default Gateway . . . . . . . . . : 10.10.10.10
服务器上也会多一个接口:
ppp0 Link encap:Point-to-Point Protocol
inet addr:10.10.10.1 P-t-P:10.10.10.10 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1396 Metric:1
RX packets:364 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:26216 (25.6 KiB) TX bytes:104 (104.0 b)
六、设置防火墙转发规则
yum install iptables #安装防火墙
service iptables start #启动防火墙
iptables -t nat -A POSTROUTING -s 10.10.10.0/255.255.255.0 -j SNAT --to-source 192.168.1.200 #添加规则
#解释:设置客户端分配的公网ip, 就是使用vpn访问网站的时候体现出来的ip
iptables -A FORWARD -p tcp --syn -s 10.10.10.0/255.255.255.0 -j TCPMSS --set-mss 1356 #添加规则
/etc/init.d/iptables save #保存防火墙设置
七、开启pptp服务端口tcp 1723,设置vpn拨入客户端ip地址池10.10.10.0/255.255.255.0通过防火墙
vi /etc/sysconfig/iptables #编辑,添加以下代码
-A RH-Firewall-1-INPUT -p tcp -m state--state NEW -m tcp --dport 1723 -j ACCEPT
-A RH-Firewall-1-INPUT -s 10.10.10.0/255.255.255.0-j ACCEPT
:wq! #保存,退出
备注:
#192.168.1.200为服务器IP地址
#10.10.10.0/255.255.255.0是第四步中设置的pptp虚拟拨号服务器IP地址段
/etc/init.d/iptables restart #重启防火墙
chkconfig iptables on #设置开机启动
cat /etc/sysconfig/iptables #查看防火墙配置文件
# Generated by iptables-save v1.3.5 on WedDec 11 20:21:08 2013
*nat
: PREROUTING ACCEPT [60:4680]
: POSTROUTING ACCEPT [4:258]
:OUTPUT ACCEPT [4:258]
-A POSTROUTING -s 192.168.1.0/255.255.255.0-j SNAT --to-source 192.168.1.200
COMMIT
# Completed on Wed Dec 11 20:21:08 2013
# Generated by iptables-save v1.3.5 on WedDec 11 20:21:08 2013
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [94:16159]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A FORWARD -s 10.10.10.0/255.255.255.0 -ptcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j TCPMSS --set-mss 1356
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp -m icmp--icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p esp -j ACCEPT
-A RH-Firewall-1-INPUT -p ah -j ACCEPT
-A RH-Firewall-1-INPUT -d 192.168.1.200 -pudp -m udp --dport 5353 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp--dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --stateRELATED,ESTABLISHED -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state--state NEW -m tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state--state NEW -m tcp --dport 1723 -j ACCEPT
-A RH-Firewall-1-INPUT -s 10.10.10.0/255.255.255.0-j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT--reject-with icmp-host-prohibited
COMMIT
# Completed on Wed Dec 11 20:21:08 2013
八、设置开机自动建立ppp设备节点(系统重新启动后有可能会丢失此文件,导致pptp客户端拨号出现错误619)
vi /etc/rc.d/rc.local #编辑
mknod /dev/ppp c 108 0 #在文件最后添加此行代码
:wq! #保存,退出
至此,CentOS下PPTP VPN服务器搭建完成,可以在Windows客户端建立VPN连接,输入服务器外网IP地址,用上面配置的账号、密码进行连接。