一、安装环境

1.阿里云centos7

2.关闭防火墙,selinux

临时关闭:setenforce 0

永久关闭:vim /etc/selinux/config

3.修改yum源

1)备份原有的yum源

2)下载对应版本的repo文件

centos7:wget http://mirrors.163.com/.help/CentOS7-Base-163.repo

centos6:wget http://mirrors.163.com/.help/CentOS6-Base-163.repo

这下载centos7的yum源

cd /etc/yum.repos.d/
wget http://mirrors.163.com/.help/CentOS6-Base-163.repo cp CentOS6-Base-163.repo CentOS-Base.repo #运行以下命令生成缓存
yum clean all
yum makecache

4.配置时间同步

yum install ntp -y
ntpdate pool.ntp.org
echo '#tim sync by hua at 2016.6.22'>>/var/spool/cron/root
echo '*/10 * * * * /usr/sbin/ntpdate pool.ntp.org >/dev/null 2>&1'>>/var/spool/cron/root crontab -l

二、openvpn服务器安装和配置

从官网能知道安装依赖

1.安装openVPN相关的依赖软件

yum install openssl-devel openssl pam pam-devel lzo lzo-devel -y

2.创建/app下载安装

[root@database2019030517 app]#  git clone https://github.com/OpenVPN/openvpn.git
[root@database2019030517 app]#  git clone https://github.com/OpenVPN/easy-rsa.git

3.进入app目录,生成编译脚本configure

wget http://rpmfind.net/linux/centos/7.6.1810/os/x86_64/Packages/autoconf-2.69-11.el7.noarch.rpm
[root@database2019030517 app]# rpm -ivh autoconf-2.69-11.el7.noarch.rpm
[root@database2019030517 ~]#  yum install -y automake
[root@database2019030517 openvpn]# yum install -y libtool  libsysfs-dev
[root@database2019030517 openvpn]# autoreconf -i -v -f

执行configure脚本报错

报错一

checking for lz4.h... no
		usable LZ4 library or header not found, using version in src/compat/compat-lz4.*
checking git checkout... yes
configure: error: lzo enabled but missing

安装LZO

[root@database2019030517 lzo-2.10]# wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.10.tar.gz
[root@database2019030517 lzo-2.10]# tar zxvf lzo-2.10.tar.gz
[root@database2019030517 lzo-2.10]# cd lzo-2.10
[root@database2019030517 lzo-2.10]# ./configure
[root@database2019030517 lzo-2.10]# make && make install

报错二

checking whether the compiler acceppts -Wall... yes
configure: error: libpam required but missin

安装pam-devel

yum install pam-devel

预编译

[root@database2019030517 openvpn]# ./configure --prefix=/app/openVPN

编译安装

[root@database2019030517 openvpn]# make
[root@database2019030517 openvpn]# make check
[root@database2019030517 openvpn]# make install

复制配置文件

[root@database2019030517 openVPN]# mkdir /app/openVPN/conf/
[root@database2019030517 openvpn]# cp sample/sample-config-files/{server,client}.conf /app/openVPN/conf/

4.配置 openvpn server-建立 CA 证书

easy-rsa,该包用来制作 ca 证书,服务端证书,客户端证书

如果执行过git clone https://github.com/OpenVPN/easy-rsa.git那么下面以#号开头的就不用弄了,包是一样的包
#yum install unzip -y
#wget -c https://github.com/OpenVPN/easy-rsa/archive/master.zip
#unzip master.zip
#mv easy-rsa-master easy-rsa
#cp -rf easy-rsa/ /app/
cd /data/app/easy-rsa/easyrsa3/

#一般情况下,默认的配置可以满足需求,也可以根据需要修改

cp vars.example vars

#1.修改 vars

vim vars +91

set_var EASYRSA_REQ_COUNTRY     "CN"
set_var EASYRSA_REQ_PROVINCE    "BJ"
set_var EASYRSA_REQ_CITY        "Bei Jing"
set_var EASYRSA_REQ_ORG         "axyh" #组织名
set_var EASYRSA_REQ_EMAIL       "446693337@qq.com"
set_var EASYRSA_REQ_OU          "axyh" 部门名

#2创建服务端客户端证书

[root@test2019030517 easy-rsa]# cp -av easyrsa3/ easyrsa3_server
[root@test2019030517 easy-rsa]# cp -av easyrsa3/ easyrsa3_client

#3服务端证书

1、创建服务端证书

创建根证书,首先会提示设置密码,用于ca对之后生成的server和client证书签名时使用,然后会提示设置
[root@proxy2019030517 easyrsa3_client]# ./easyrsa init-pki
可以键入回车使用默认的
[root@test2019030517 easyrsa3_server]# ./easyrsa build-ca
#根证书密码要记住, 给server端和客户端证书签名的时候会用到(123456)

♦创建服务端证书server 设置无密码

[root@test2019030517 easyrsa3_server]# ./easyrsa gen-req server nopass

♦给server端证书做签名,首先是对一些信息的确认,可以输入yes,然后输入build-ca时设置的那个密码 (123456)

[root@test2019030517 easyrsa3_server]# ./easyrsa sign server server

 ♦创建Diffie-Hellman,时间会有点长,耐心等待 

[root@test2019030517 easyrsa3_server]# ./easyrsa gen-dh

 2、创建客户端证书

前戏

[root@proxy2019030517 easyrsa3_client]# ./easyrsa init-pki

。。。。。

[root@test2019030517 easyrsa3_client]# cd /data/app/easy-rsa/easyrsa3_client

 ♦创建client端证书和private key,nopass表示不加密private key

[root@test2019030517 easyrsa3_client]# ./easyrsa gen-req client nopass

 ♦回到制作server证书时的那个easyrsa3目录,导入client端证书,准备签名

[root@test2019030517 easyrsa3_server]# ./easyrsa import-req /data/app/easy-rsa/easyrsa3_client/pki/reqs/client.req client

 ♦给client端证书做签名,首先是对一些信息的确认,可以输入yes,然后输入build-ca时设置的那个密码 

[root@test2019030517 easyrsa3_server]# ./easyrsa sign client client

#4整理服务端证书/客户端证书

[root@test2019030517 openVPN]# mkdir /app/openVPN/server_keys/
[root@test2019030517 openVPN]# mkdir /app/openVPN/client_keys/

 ♦导入证书到server_keys

[root@test2019030517 pki]# cp /data/app/easy-rsa/easyrsa3_server/pki/ca.crt /app/openVPN/server_keys/
[root@test2019030517 pki]# cp /data/app/easy-rsa/easyrsa3_server/pki/private/server.key /app/openVPN/server_keys/
[root@test2019030517 pki]# cp /data/app/easy-rsa/easyrsa3_server/pki/issued/server.crt /app/openVPN/server_keys/
[root@test2019030517 pki]# cp /data/app/easy-rsa/easyrsa3_server/pki/dh.pem /app/openVPN/server_keys/

 ♦导入证书到client_keys

[root@test2019030517 pki]# cp /data/app/easy-rsa/easyrsa3_server/pki/ca.crt /app/openVPN/client_keys/
[root@test2019030517 pki]# cp /data/app/easy-rsa/easyrsa3_server/pki/issued/client.crt /app/openVPN/client_keys/
[root@test2019030517 pki]# cp /data/app/easy-rsa/easyrsa3_client/pki/private/client.key /app/openVPN/client_keys/

#5创建配置文件目录,导入样本文件

[root@test2019030517 pki]# mkdir /app/openVPN/conf
[root@test2019030517 pki]# cp /data/app/openvpn/sample/sample-config-files/{server,client}.conf /app/openVPN/conf/

#6配置server.conf

local 0.0.0.0

port 1194
proto tcp

dev tun

ca /app/openVPN/server_keys/ca.crt
cert /app/openVPN/server_keys/server.crt
key /app/openVPN/server_keys/server.key 

dh /app/openVPN/server_keys/dh.pem

server 10.8.0.0 255.255.255.0

ifconfig-pool-persist ipp.txt

push "redirect-gateway def1 bypass-dhcp"

push "dhcp-option DNS 8.8.8.8"

keepalive 10 120

comp-lzo

max-clients 100

persist-key

persist-tun

status openvpn-status.log

verb 3

client-cert-not-required
username-as-common-name
auth-user-pass-verify /app/openVPN/checkpsw.sh via-env
script-security 3

#7编写/app/openVPN/checkpsw.sh

#!/bin/sh
########################################################### 

PASSFILE="/app/openVPN/psw-file"
LOG_FILE="/var/log/openvpn-password.log"
TIME_STAMP=`date "+%Y-%m-%d %T"`

########################################################### 

if [ ! -r "${PASSFILE}" ]; then
  echo "${TIME_STAMP}: Could not open password file \"${PASSFILE}\" for reading." >> ${LOG_FILE}
  exit 1
fi

CORRECT_PASSWORD=`awk '!/^;/&&!/^#/&&$1=="'${username}'"{print $2;exit}' ${PASSFILE}`

if [ "${CORRECT_PASSWORD}" = "" ]; then
  echo "${TIME_STAMP}: User does not exist: username=\"${username}\", password=\"${password}\"." >> ${LOG_FILE}
  exit 1
fi

if [ "${password}" = "${CORRECT_PASSWORD}" ]; then
  echo "${TIME_STAMP}: Successful authentication: username=\"${username}\"." >> ${LOG_FILE}
  exit 0
fi

echo "${TIME_STAMP}: Incorrect password: username=\"${username}\", password=\"${password}\"." >> ${LOG_FILE}
exit 1

♦更改权限 

[root@test2019030517 openVPN]# chmod 755 checkpsw.sh

 ♦创建账号密码文件

[root@test2019030517 openVPN]# cat psw-file
liuxueting liuxueting

#9启动svn

[root@test2019030517 sbin]# ./openvpn /app/openVPN/conf/server.conf &
[root@test2019030517 sbin]# ps -ef | grep openvpn
[root@test2019030517 sbin]# ss -lnt | grep 1194

#10打开防火墙策略,查看有无tun0网卡

[root@test2019030517 openVPN]#  iptables -I INPUT -p tcp --dport 1194 -j ACCEPT
[root@test2019030517 openVPN]# iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
[root@test2019030517 openVPN]# ifconfig
[root@test2019030517 openVPN]# iptables -I INPUT -i tun0 -j ACCEPT
[root@test2019030517 openVPN]# iptables -I FORWARD -i tun0 -j ACCEPT
[root@test2019030517 openVPN]# iptables -I FORWARD -i tun0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
[root@test2019030517 openVPN]# iptables -I FORWARD -i eth0 -o tun0 -m state --state RELATED,ESTABLISHED -j ACCEPT

#11Centos 系统配置修改

#打开服务器的路由功能 vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
# 然后使内核参数生效:
sysctl -p
more /proc/sys/net/ipv4/ip_forward 值为1 就行

#12重启openvpn

kill杀掉进程在./openvpn /app/openVPN/conf/server.conf &

5.客户端连接/app/openVPN/client_keys

将证书、client.conf发送给客户端,客户端也可以自己建立一个配置文件如下:

windows 客户端为例(将证书都放置在这个目录下面)

C:\Program Files (x86)\OpenVPN\config\

然后将client.conf改名为client.ovpn

client

auth-user-pass

dev tun

proto tcp

remote 服务端ip 1194

resolv-retry infinite

nobind

persist-key

persist-tun

ca ca.crt

cert client.crt

key client.key

comp-lzo

verb 3

完了连接就好了

openvon安装的更多相关文章

  1. docker——容器安装tomcat

    写在前面: 继续docker的学习,学习了docker的基本常用命令之后,我在docker上安装jdk,tomcat两个基本的java web工具,这里对操作流程记录一下. 软件准备: 1.jdk-7 ...

  2. 网络原因导致 npm 软件包 node-sass / gulp-sass 安装失败的处理办法

    如果你正在构建一个基于 gulp 的前端自动化开发环境,那么极有可能会用到 gulp-sass ,由于网络原因你可能会安装失败,因为安装过程中部分细节会到亚马逊云服务器上获取文件.本文主要讨论在不变更 ...

  3. Sublime Text3安装JsHint

    介绍 Sublime Text3使用jshint依赖Nodejs,SublimeLinter和Sublimelinter-jshint. NodeJs的安装省略. 安装SublimeLinter Su ...

  4. Fabio 安装和简单使用

    Fabio(Go 语言):https://github.com/eBay/fabio Fabio 是一个快速.现代.zero-conf 负载均衡 HTTP(S) 路由器,用于部署 Consul 管理的 ...

  5. gentoo 安装

    加载完光驱后 1进行ping命令查看网络是否通畅 2设置硬盘的标识为GPT(主要用于64位且启动模式为UEFI,还有一个是MBR,主要用于32位且启动模式为bois) parted -a optima ...

  6. Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级

    Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 5.安装Database软件 5. ...

  7. Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作

    Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 1.实施前准备工作 1.1 服务器安装操 ...

  8. 【原】nodejs全局安装和本地安装的区别

    来微信支付有2年多了,从2年前的互联网模式转变为O2O模式,主要的场景是跟线下的商户去打交道,不像以往的互联网模式,有产品经理提需求,我们帮忙去解决问题. 转型后是这样的,团队成员更多需要去寻找业务的 ...

  9. tLinux 2.2下安装Mono 4.8

    Tlinux2.2发行版基于CentOS 7.2.1511研发而成,内核版本与Tlinux2.0发行版保持完全一致,更加稳定,并保持对Tlinux2.0的完全兼容.Mono 4版本要求CentOS 7 ...

随机推荐

  1. Filter防止用户访问一些未被授权的资源

    package com.drp.util.filter; import java.io.IOException; import javax.servlet.Filter; import javax.s ...

  2. 19.Odoo产品分析 (二) – 商业板块(11) – 在线活动(1)

    查看Odoo产品分析系列--目录 点击安装"在线活动". 1. 主页 在线活动绑定在电子商务中,在网站中可以看到在线活动的菜单:  在这里可以按时间看到每一个活动. 2. 新建活动 ...

  3. Android 滑动定位+吸附悬停效果实现

    在前两篇文章中,分别介绍了tablayout+scrollview 和 tablayout+recyclerview 实现的滑动定位的功能,文章链接: Android 实现锚点定位 Android t ...

  4. chrome离线包出现的小问题

    网友使用离线包时出现的一些小问题,在此做个记录: 1. @200258 这个版本就是个坑.chrome低版本显示空白,高版本界面乱掉,有反馈出54可以,有说56可以 亲测:即使不用离线包直接FQ,也会 ...

  5. 「客户成功故事」OneAPM 助力网上办事大厅构建阳光、高效、安全的政务服务平台

    (一) 项目背景: 网上办事大厅是由省信息中心承建的电子政务核心业务系统,致力于为全省民众提供一站式网上办事服务,实现了政务信息网上公开.法人及个人事项网上办理.公共决策网上互动.政府效能网上监督五大 ...

  6. nginx的rewrite ,如何在flask项目中获取重写前的url

    1. 在flask配一个重写到哪的路由,假设是/rewite/,然后到nginx的配置文件写重写规则,我这里重写全部的请求,接着测试能否重写成功 1. 添加一个路由 配置重写规则 测试成功 2.接下来 ...

  7. Java中线程的同步问题

    在生活中我们时常会遇到同步的问题,而且大多数的实际问题都是线程的同步问题 我这里以生活中的火车售票来进行举例: 假设现在我们总共有1000张票要进行出售,共有10个出售点,那么当售票到最后只有一张票时 ...

  8. RMAN restore fails with ORA-01180: can not create datafile 1

      最近在验证.测试备份有效性时,遇到了"ORA-01180: can not create datafile 1"这个错误,顺便结合metalink的官方文档"RMAN ...

  9. java笔记----java新建生成用户定义注释

    ${filecomment} ${package_declaration} /** * @author ${user} * @date 创建时间:${date} ${time} * @version ...

  10. spring4笔记----使用装配注入合作者Bean的三种方式

    no :不自动装配 byName :id(name)与setter方法去set前缀,并小写首字母后同名的Bean完成注入,如有多个匹配则抛异常 byType :spring容器找全部bean,如果找到 ...