当前位置: > CentOS > CentOS服务器 > 环境配置 >

Centos6架设VPN服务器

时间:2016-02-16 00:51来源:linux.it.net.cn 作者:IT
写在前面:   

     为什么要架设VPN服务器?因为我们要科学上网,要看外面的世界,你懂的。本文不过多解释。

     本文的脚本,应该是来自: http://www.hi-vps.com 

     本文需要使用root权限操作。

 

具体步骤:

    1,服务器的操作系统选择【Centos 6 x86_64 minimal  】即可。如果只用作VPN的话,不需要那么多“额外”的服务,最小化的系统,只占用内存2M不到,只有4个进程。

    2,选定一个空目录,或者新建一个目录。

    3,进入这个目录,新建一个bash脚本:

vi vpn_centos6.sh

然后输入脚本内容:

 

[plain] view plaincopy在CODE上查看代码片派生到我的代码片
 
  1. #!/bin/bash  
  2.   
  3. function installVPN(){  
  4.     echo "begin to install VPN services";  
  5.     #check wether vps suppot ppp and tun  
  6.       
  7.     yum remove -y pptpd ppp  
  8.     iptables --flush POSTROUTING --table nat  
  9.     iptables --flush FORWARD  
  10.     rm -rf /etc/pptpd.conf  
  11.     rm -rf /etc/ppp  
  12.       
  13.     arch=`uname -m`  
  14.       
  15.     wget http://www.hi-vps.com/downloads/dkms-2.0.17.5-1.noarch.rpm  
  16.     wget http://wty.name/linux/sources/kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm  
  17.     wget http://www.hi-vps.com/downloads/kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm  
  18.     wget http://www.hi-vps.com/downloads/pptpd-1.3.4-2.el6.$arch.rpm  
  19.     wget http://www.hi-vps.com/downloads/ppp-2.4.5-17.0.rhel6.$arch.rpm  
  20.   
  21.   
  22.     yum -y install make libpcap iptables gcc-c++ logrotate tar cpio perl pam tcp_wrappers  
  23.     rpm -ivh dkms-2.0.17.5-1.noarch.rpm  
  24.     rpm -ivh kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm  
  25.     rpm -qa kernel_ppp_mppe  
  26.     rpm -Uvh ppp-2.4.5-17.0.rhel6.$arch.rpm   
  27.     rpm -ivh pptpd-1.3.4-2.el6.$arch.rpm  
  28.   
  29.     mknod /dev/ppp c 108 0   
  30.     echo 1 > /proc/sys/net/ipv4/ip_forward   
  31.     echo "mknod /dev/ppp c 108 0" >> /etc/rc.local  
  32.     echo "echo 1 > /proc/sys/net/ipv4/ip_forward" >> /etc/rc.local  
  33.     echo "localip 172.16.36.1" >> /etc/pptpd.conf  
  34.     echo "remoteip 172.16.36.2-254" >> /etc/pptpd.conf  
  35.     echo "ms-dns 8.8.8.8" >> /etc/ppp/options.pptpd  
  36.     echo "ms-dns 8.8.4.4" >> /etc/ppp/options.pptpd  
  37.   
  38.     pass=`openssl rand 6 -base64`  
  39.     if [ "$1" != "" ]  
  40.     then pass=$1  
  41.     fi  
  42.   
  43.     echo "vpn pptpd ${pass} *" >> /etc/ppp/chap-secrets  
  44.   
  45.     iptables -t nat -A POSTROUTING -s 172.16.36.0/24 -j SNAT --to-source `ifconfig  | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk 'NR==1 { print $1}'`  
  46.     iptables -A FORWARD -p tcp --syn -s 172.16.36.0/24 -j TCPMSS --set-mss 1356  
  47.     service iptables save  
  48.   
  49.     chkconfig iptables on  
  50.     chkconfig pptpd on  
  51.   
  52.     service iptables start  
  53.     service pptpd start  
  54.   
  55.     echo "VPN service is installed, your VPN username is vpn, VPN password is ${pass}"  
  56.       
  57. }  
  58.   
  59. function repaireVPN(){  
  60.     echo "begin to repaire VPN";  
  61.     mknod /dev/ppp c 108 0  
  62.     service iptables restart  
  63.     service pptpd start  
  64. }  
  65.   
  66. function addVPNuser(){  
  67.     echo "input user name:"  
  68.     read username  
  69.     echo "input password:"  
  70.     read userpassword  
  71.     echo "${username} pptpd ${userpassword} *" >> /etc/ppp/chap-secrets  
  72.     service iptables restart  
  73.     service pptpd start  
  74. }  
  75.   
  76. echo "which do you want to?input the number."  
  77. echo "1. install VPN service"  
  78. echo "2. repaire VPN service"  
  79. echo "3. add VPN user"  
  80. read num  
  81.   
  82. case "$num" in  
  83. [1] ) (installVPN);;  
  84. [2] ) (repaireVPN);;  
  85. [3] ) (addVPNuser);;  
  86. *) echo "nothing,exit";;  
  87. esac  

    4,保存退出,运行这个脚本:

 

sh vpn_centos6.sh

 

    5,根据提示的选项,按数字1运行安装。

    6,根据提示的选项,新建VPN的账号和密码,即可。

(责任编辑:IT)
------分隔线----------------------------