openvpn安装配置过程

前言

    之前为了方便远程办公时访问公司的内部系统,如:svn、OA、wiki、禅道等等;通通在防火墙上做了端口映射。然后有个内部系统被黑了,各种弱口令没办法。果断关闭端口映射,看来还是得搭建个VPN服务器,vpn设备感觉大材小用。马上就想到了开源的openvpn,下面就来介绍openvpn的安装配置过程。

openvpn简介

    官方网站:https://openvpn.net 打不开请爬墙

    openssl原理:http://www.178linux.com/archives/2704 参考书生的博客,哈哈

    openvpn原理:http://freeloda.blog.51cto.com/2033581/1354768 参考往期学员的博客,此处就不赘述了。

安装配置步骤

    1、安装openvpn软件

    2、生成服务器证书

    3、修改主配置文件

    4、生成并签署客户端证书

    4、客户端配置并连接

    

一、安装openvpn软件    

    安装epel源

[root@qin ~]# rpm -ivh http://mirrors.zju.edu.cn/epel/6/i386/epel-release-6-8.noarch.rpm
Retrieving http://mirrors.zju.edu.cn/epel/6/i386/epel-release-6-8.noarch.rpm
Preparing...                ########################################### [100%]
   1:epel-release           ########################################### [100%]

    安装openvpn

 [root@qin ~]# yum -y install openvpn

    下载easyesa,创建CA、生成证书都需要它

[root@qin ~]# wget https://github.com/OpenVPN/easy-rsa/archive/master.zip 
[root@qin ~]# unzip master.zip
[root@qin ~]# mv easy-rsa-master/ /etc/openvpn

二、生成服务器证书

    先切换目录到/etc/openvpn/easy-rsa-master/easyrsa3以便生成证书

cd.png

    pki目录初始化,此动作会删除pki目录下所有证书及密钥文件

initpki.png

    创建根证书,密钥文件需要设置密码保护,并指定一个名称

buildca.png

    生成一个服务器端的证书请求文件,不需要密码保护

gen-req.png

    签署服务器端的请求证书,需要输入根证书的密码授权

sign-req.png

    生成 Diffie Hellman 参数

gen-dh.png

    查看服务器端生成的所有证书及密钥文件

    treepki.png

    为方便查看及配置,把服务器端需要用到的证书及密钥文件放到/etc/openvpn目录下

cp.png

三、修改主配置文件,

    默认没有主配置文件,需要从/usr/share/doc下复制一个模版文件过来

[root@qin ~]# cp /usr/share/doc/openvpn-2.3.6/sample/sample-config-files/server.conf /etc/openvpn
[root@qin ~]# vim /etc/openvpn/server.conf
local 192.168.18.42
port 2285
proto udp
dev tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key  # This file should be kept secret
dh /etc/openvpn/dh.pem
server 10.38.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
;push "redirect-gateway def1 bypass-dhcp"     #启用后,客户端连接后所有上网请求都走VPN网关
push "route 192.168.0.0 255.255.0.0"
push "dhcp-option DNS 114.114.114.114"
keepalive 10 120
comp-lzo
max-clients 100
persist-key
persist-tun
status /var/log/openvpn-status.log
log         /var/log/openvpn.log
log-append  /var/log/openvpn.log
verb 3
[root@qin ~]# service openvpn start

    需要启用路由转发

[root@qin ~]# sysctl -w net.ipv4.ip_forward=1

  

    服务启动后会生成一个VPN网关

ip.png

    在硬件防火墙上做端口映射后,openvpn就可以提供连接服务了

    服务器iptables没启动,此处略过,可以参考示例文件 /usr/share/doc/openvpn-2.3.6/sample/sample-config-files/firewall.sh

四、生成并签署客户端证书

    生成一个证书请求文件,在服务器端或客户端都可以生成;设置密码保护并指定一个名称

[root@qin ~]# cp -r /etc/openvpn/easy-rsa-master/ /tmp
[root@qin ~]# cd /tmp/easy-rsa-master/easyrsa3/
[root@qin easyrsa3]# ./easyrsa init-pki

genclient.png

    导入客户端证书请求文件

[root@qin ~]# cd /etc/openvpn/easy-rsa-master/easyrsa3/
[root@qin easyrsa3]# ./easyrsa import-req /tmp/easy-rsa-master/easyrsa3/pki/reqs/client1.req client1

    签署客户端证书,同样,需要需要输入根证书密码授权

signclient.png

五、客户端配置并连接

    到官网下载相应的软件 https://openvpn.net/index.php/open-source/downloads.html

    默认会安装到 C:\Program Files\OpenVPN 下

    下载根证书、客户端证书、客户端密钥这三个文件,放到 C:\Program Files\OpenVPN\config下

/etc/openvpn/easy-rsa-master/easyrsa3/pki/ca.crt
/etc/openvpn/easy-rsa-master/easyrsa3/pki/issued/client1.crt
/tmp/easy-rsa-master/easyrsa3/pki/private/client1.key

    修改客户端配置文件,默认没有此文件,需要从 C:\Program Files\OpenVPN\sample-config\client.ovpn 复制一份到config目录下

client
dev tun
proto udp
remote 192.168.18.42 2285 #指向openvpn服务器ip及端口
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt #指向证书,默认路径无需指定
cert client1.crt
key client1.key
comp-lzo
verb 3

client.png

    注意:config目录下没有证书和配置文件时,软件是不能使用的,如图

vpn.png

    有配置文件和证书后,点击connect并输入client1.key的密钥密码后即可连接,如图

vpn.png

写的比较简单,不要见怪哈~

原创文章,作者:秦,如若转载,请注明出处:http://www.178linux.com/4114

(0)
上一篇 2015-05-11 05:44
下一篇 2015-05-11 11:55

相关推荐

  • lvm 逻辑卷管理

    标签:LVM 创建 扩容 缩减 一、LVM  LVM是 Logical Volume Manager(逻辑卷管理)的简写,它由Heinz Mauelshagen在Linux 2.4内核上实现。LVM将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不够使用的时候,可以继续将其它的硬盘的分区加入其中,这样可以实现磁盘空间的动态管…

    Linux干货 2015-05-18
  • ☞Linux进程管理与性能分析

    Linux进程管理与性能分析 概述 系统维护的一个重要工作就是监控Linux系统的运行状态是否正常,分析系统资源的使用情况,进而对系统进行优化,提高其性能。在实际环境中,系统稳定性尤为重要,可以说系统的稳定性关系到企业的存亡。因此,第一时间掌握CPU、Memory、IO、Network的等系统资源的状态则可以在系统出现问题时及时解决,把损失降到最低。&nbs…

    Linux干货 2016-09-11
  • Linux基础之shell脚本编程(二)

    1、写一个脚本,完成以下功能    (1) 假设某目录(/etc/rc.d/rc3.d/)下分别有K开头的文件和S开头的文件若干;    (2) 显示所有以K开头的文件的文件名,并且给其附加一个stop字符串;    (3) 显示所有以S开头的文件的文件名,并且给其附加一个start字符串; &nb…

    Linux干货 2016-11-17
  • 第四周

    查看链接:http://note.youdao.com/noteshare?id=317ec635a5f28f2681421fd7c9a60f27

    Linux干货 2016-09-19
  • 恐怖的C++语言

    Linus曾经(2007年9月)在新闻组gmane.comp.version-control.git里和一个微软的工程师(Dmitry Kakurin)争执过用C还是用C++,当时的那个微软的工程师主要是在做Git的Windows版,但他却发现Git的源码居然是C语言写的,而不是C++,于是他(Dmitry Kakurin)在Linux社区里发贴表示对Lin…

    Linux干货 2015-04-03
  • lvm的应用

    前言    lvm是logical volume manager(逻辑卷管理器)的简称,通过将若干个磁盘分区连接成一个整块的卷组(volumegroup),形成一个存储池,管理员可以在卷组上随意创建逻辑卷(logicalvolumes),并进一步在逻辑卷组上创建文件系 统。管理员通过LVM可以方便的调整存储卷组的大小,并且可以对磁盘存储按…

    Linux干货 2016-05-23

评论列表(3条)

  • stanley
    stanley 2015-05-11 11:53

    不错,可以尝试下标题段落功能,样式会更好

  • 风追海浪
    风追海浪 2015-05-22 09:33

    可以尝试user/password验证。

    • 秦
      2015-05-22 10:11

      @风追海浪嗯,已经实现了呢,server.conf加俩字段,取消私钥认证,可以使用系统帐号登录
      auth-user-pass-verify auth-pam.pl via-file
      client-cert-not-required