OpenVPN服务端配置

1. 安装OpenVPN软件包

默认的Centos软件源里面没有OpenVPN的软件包,我们可以添加rpmforge的repo,从而实现yum安装openvpn

针对CentOS 5

rpm -ivh http://apt.sw.be/redhat/el5/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm

针对CentOS 6

rpm -ivh http://apt.sw.be/redhat/el6/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm

安装完rpmforge的repo之后,执行yum命令安装OpenVPN

yum install -y openvpn

2. 生成OpenVPN需要的证书

使用easy-rsa脚本产生OpenVPN所需的CA证书、CA私钥、服务端证书、服务端私钥、客户端证书、客户端私钥
先将easy-rsa脚本copy到/etc/openvpn,并添加可执行权限

cp -R /usr/share/doc/openvpn-*/easy-rsa /etc/openvpn
cd /etc/openvpn/easy-rsa/2.0
chmod +x  *

然后使用easy-rsa的脚本产生证书

ln -s openssl-1.0.0.cnf openssl.cnf
. vars
./clean-all
./build-ca server
./build-key-server server
./build-key client
./build-dh

执行以上命令后将在/etc/openvpn/easy-rsa/2.0/keys/目录下产生对应的证书和秘钥,ls一下确认都已经生成,后面要用到。

ls /etc/openvpn/easy-rsa/2.*/keys/

3.生成OpenVPN服务端配置文件

编辑/etc/openvpn/server.conf文件,内容如下:

port        1194
proto       udp
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.1.1.0 255.255.255.0
push        "redirect-gateway def1 bypass-dhcp"
push        "dhcp-option DNS 8.8.8.8"
log         /var/log/openvpn.log
keepalive   10 120
verb        3
client-to-client
comp-lzo
persist-key
persist-tun

4.开启OpenVPN服务

将openvpn设置为开机自启动的服务

chkconfig openvpn on

立即启动openvpn服务

/etc/init.d/openvpn start

如果OpenVPN启动失败,请查看OpenVPN的启动日志/var/log/openvpn.log。可能导致启动失败的原因:

  • 第3步使用easy-rsa生成的证书有问题,请重新按照第3步重新生成

5.服务端开启nat功能

客户端拨入OpenVPN后,默认网关会指向OpenVPN服务器,为了能使客户端可以上网,需要在服务端开启nat功能
首先,打开ip forward功能

sed -i '/net.ipv4.ip_forward/s/0/1/g' /etc/sysctl.conf
sysctl -w net.ipv4.ip_forward=1

然后,配置iptables snat

iptables -t nat -A POSTROUTING -s 10.1.1.0/255.255.255.0 -j SNAT --to-source SERVER_IP

将SERVER_IP替换为服务器的出口ip

OpenVPN客户端配置

好了服务端准备就绪,接下来开始客户端配置

对于Windows客户端

http://openvpn.se/download.html 下载gui版的OpenVPN,按照提示安装完成后,进入到安装目录,如D:\Program Files\OpenVPN。将Linux服务端使用easy-rsa产生的客户端证书、私钥和ca证书下载到本地。即需要下载到本地的文件如下:

/etc/openvpn/easy-rsa/2.0/keys/ca.crt       #ca证书
/etc/openvpn/easy-rsa/2.0/keys/client.crt   #客户端证书
/etc/openvpn/easy-rsa/2.0/keys/client.key   #客户端私钥

将这些文件下载到D:\Program Files\OpenVPN\config下。
编辑客户端OpenVPN配置文件client.ovpn,内容如下:

client
dev tun
proto udp
remote SERVER_IP 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
comp-lzo
verb 3
redirect-gateway def1
route-method exe
route-delay 2

将SERVER_IP写成OpenVPN服务器的ip,然后打开OpenVPN的GUI,点击连接,完成OpenVPN拨入

CentOS搭建OpenVPN服务(简易版)的更多相关文章

  1. [linux] centos搭建openvpn服务,脚本颁发/吊销证书 (转载+原创)

    搭建过程转载:http://yestreenstars.blog.51cto.com/1836303/1429537 环境说明:服务端:CentOS 6.5_X64客户端:Windows 7 服务端配 ...

  2. 完整CentOS搭建OpenVPN服务详细教程

    一.介绍 1.定义 ① OpenVPN是一个用于创建虚拟专用网络加密通道的软件包,最早由James Yonan编写.OpenVPN允许创建的VPN使用公开密钥.电子证书.或者用户名/密码来进行身份验证 ...

  3. CentOS搭建OpenVPN以及WIN&Android&iOS的安装连接

    OpenVPNhttp://info.swufe.edu.cn/vpn/openvpn/#2 苹果.安卓智能手机openvpn的设置_百度经验https://jingyan.baidu.com/art ...

  4. centos搭建dns服务

    原文:(https://www.myjinji.top/articles/2020/04/02/1585800289945.html)[https://www.myjinji.top/articles ...

  5. 在ubuntu14.04上搭建OpenVPN服务

    简介 在连接了不可信的网络环境后,让手机或者计算机安全的访问互联网,使用虚拟专用网络(Virtual Private Network,VPN)是一个解决办法.OpenVPN是一个SSL VPN完整解决 ...

  6. centos 搭建 git 服务端和客户端

    centos 搭建git需要设置远程服务端和客户端.远程代码存放在服务端,多个客户端可以共享和维护服务端代码. 一.服务端主机 1.创建ssh,大部分默认已经安装,有ssh就跳过 yum instal ...

  7. windows搭建SVN服务MD版

    windows搭建SVN服务MD 1下载TortoiseSVN 官网下载 根据自己系统环境选择适合的版本 2 安装TortoiseSVN 双击运行程序 出现第一个小坑 原来是你的系统没有打 kb299 ...

  8. Centos搭建openvpn+mysql数据库认证

    服务器环境说明 1.系统版本 CentOS release 5.10 (Final) 64bits 2.软件版本 openvpn-2.3.6-1.el5 lzo-2.02-2.el5.1 lzo-d ...

  9. CentOS 搭建openVPN

    1.安装前准备 # 关闭selinux setenforce 0 sed -i '/^SELINUX=/c\SELINUX=disabled' /etc/selinux/config # 安装open ...

随机推荐

  1. plot函数功能总结

    基本形式 >> y=[1 2 3 4 5 6]; >> plot(y) 生成的图形是以序号为横坐标.数组y的数值为纵坐标画出的折线. >> x=linspace(0 ...

  2. media type和media query

    media type media type是CSS2的重要属性,通过它,可以针对不同的设备指定不同的样式.   media type种类:   用法: <link href="styl ...

  3. JS HTML标签尺寸距离位置定位计算

    四种浏览器对 clientHeight.offsetHeight.scrollHeight.clientWidth.offsetWidth 和 scrollWidth 的解释差异 网页可见区域宽:do ...

  4. asp.net服务器页面处理过程

    一.静态页面.动态页面区别 静态页面是服务端直接从硬盘里面读取然后发回去,动态页面就要创建这个页面类的对象,调用对象的方法,方法里面什么就发回什么.浏览器请求asp.net页面实际是请求asp.net ...

  5. 在ef下使用lambda实现left join

    db.Categories .GroupJoin( db.Products, Category => Category.CategoryId, Product => Product.Cat ...

  6. Beyond Compare 相同文件对比结果仍显示红色 解决方案

    转载:http://blog.sina.com.cn/s/blog_4d4bc1110100zj7x.html   1. 问题详细描述如下. 下图显示对比结果中,两侧的aaa.xml是一模一样,会话中 ...

  7. JavaScript高级程序设计(六):关键字 void 和 delete 使用

    一.void 1.概述:JavaScript中void是一个操作符,该操作符指定要计算一个表达式但是不返回值. 2.语法:JavaScript void (express)   或则 JavaScri ...

  8. 第六篇、git常用的命令

    1.oscine git服务器地址 https://git.oschina.net/ 2.帐号:18775134221@163.com 密码:562011 3.创建私有的仓库 4.使用命令 4.1 配 ...

  9. Dealloc 在哪个线程执行

    1. 引子 在面试过程中曾见过这样一道笔试题,选择你认为对的答案 A.所有对象的dealloc方法会在主线程调用 B.一个对象的dealloc方法会在分配该对象的线程被调用 C.一个对象的deallo ...

  10. [PS] 透明底图片制作

    网页中有时需要自己绘制一些图片,或者现有的图片希望修改底色,这些都会用到透明底色的图片,下面总结两种方法,比较简单入门. 一.自己制作透明底图片 步骤1.新建图片,背景内容选择透明: 步骤2.选择文字 ...