Chinaunix首页 | 论坛 | 博客
  • 博客访问: 95155
  • 博文数量: 16
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 200
  • 用 户 组: 普通用户
  • 注册时间: 2014-06-18 23:43
文章分类

全部博文(16)

分类: LINUX

2015-09-14 16:38:42

公司最近有vpn业务需求,部署openvpn 

环境如下 :
服务器环境:centos 6.5      软件环境:openvpn 2.0.9    
网络环境:外网地址 (218.75.121.33)   内网地址(10.10.10.94)
内网服务器网段  10.10.10.0/255.0.0.1 
openvpn 网段规划   10.8.0.0/255.255.255.0

部署安装openVPN 

安装openVPN 依赖库  
yum install -y openssl openssl-devel lzo lzo-devel pam pam-devel automake pkgconfig   


创建配置目录
mkdir -P /etc/openvpn/etc

进入openvpn 源文件  
复制证书生成工具  
cp -r easy-rsa   /etc/openvpn   
复制服务端配置文件到/etc/openvpn   
cp -r  sample-config-files/server.conf  /etc/openvpn 

进入/etc/openvpn/easy-rsa/2.0
编辑vars ,更改成自己想要的证书即可

导入vars里的环境变量
source vars 

清空keys目录下的原始证书
./clean-all 

生成ca证书
./build-ca   

生成server端证书 
./build-key-server   server

生成vpn客户端证书
./build-key  yanfei   

生成证书交换算法 
./build-dh 

修改服务器端的配置文件  
vim /etc/openvpn/server.conf
local 218.75.121.12             #监听vpn公网地址 
port 1194                             #监听端口 
proto tcp                              #使用的协议
dev tun                                 #基于路由的隧道
ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt           #证书文件路径
cert /etc/openvpn/easy-rsa/2.0/keys/server.crt      #服务器证书路径
key /etc/openvpn/easy-rsa/2.0/keys/server.key       # 服务器私有秘钥路径
dh /etc/openvpn/easy-rsa/2.0/keys/dh1024.pem     #加密文件路径
server 10.8.0.0 255.255.255.0                                     ##指定连接vpn的网段
ifconfig-pool-persist ipp.txt                                      #记录客户端所获取的IP 
keepalive 10 120                                                           #每隔120秒测试连接可用性,每次ping10秒
comp-lzo                                                             #允许客户端之间的相互通讯
persist-key                                                           
persist-tun
status openvpn-status.log                                   #openvpn状态记录文件
verb 3                                                                  #指定vpn日志输出等级
push "route 10.0.0.0 255.0.0.0"                          #push至客户端的路由设置
push "route 10.8.0.0 255.255.255.0"             
client-to-client                                                  #允许客户端相互通讯   

注:路由设置     push路由一定要把vpn网段的路由和服务器内网网段的路由一起设置上,不设置有可能vpn连接上,访问不了vpn server 内网IP   

创建vpn启动脚本 
vim vpn.sh
#!/bin/bash

start_daemon="/usr/local/openvpn/sbin/openvpn --daemon --config /etc/openvpn/server.conf"

usage(){
        echo "eg:vpn start|stop."
}
start_vpn(){
        netstat -tulnp|grep 1194 >/dev/null 2>&1
        if [ $? -eq 0 ];then
             echo "openVPN is already running."
        else
           while true  
           do
              $start_daemon
             if [ `netstat -tulnp|grep 1194|awk -F[" ":]+ '{print $5}'` -eq 1194 ];then
                  echo "openVPN is running."
                  break
             fi
                 sleep 1    
           done  
        fi
           
}


stop_vpn(){
            killall openvpn
            netstat -tulnp|grep 1194 >/dev/null 2>&1
            if [ $? -ne 0 ];then
             echo "openVPN is shutdown."
            fi
}


case $1 in
 start)
      start_vpn
      ;;
 stop)
      stop_vpn
      ;;
 restart)
      stop_vpn
      start_vpn
      ;;
 *)
      usage
      ;;
esac 

启动vpn  
./vpn.sh  start

查看vpn  启动是否正常端口是否开启 
netstat -tulnp |grep  openvpn  
tcp        0      0 218.75.121.12:1194          0.0.0.0:*                   LISTEN      9671/openvpn   

iptables 策略设置  
-A INPUT -p tcp -m tcp --dport 1194 -j ACCEPT
-A INPUT -i tun+ -j ACCEPT 

阅读(2703) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~