搭建OpenVPn

OpenVPN 搭建

OpenVPN 搭建

简介

OpenVPN 是一个基于 OpenSSL 库的应用层 VPN 实现。和传统 VPN 相比,它的优点是简单易用。

在OpenVPN中,如果用户访问一个远程的虚拟地址(属于虚拟网卡配用的地址系列,区别于真实地址),则操作系统会通过路由机制将数据包(TUN模式)或数据帧(TAP模式)发送到虚拟网卡上,服务程序接收该数据并进行相应的处理后,通过SOCKET从外网上发送出去,远程服务程序通过SOCKET从外网上接收数据,并进行相应的处理后,发送给虚拟网卡,则应用软件可以接收到,完成了一个单向传输的过程,反之亦然。

起因

整个项目的起因是由于业务的不断扩张和不断提升的并发量给服务器造成了巨大压力。经过多方优化。以及问题排查。
发现服务器本身自带的防火墙iptables会极大的影响服务器性能。故所有业务服务器全都关闭防火墙。相对的这也带来
了很大的安全隐患。为了解决安全隐患而考虑用OpenVPN搭建跳板机。

实验目标

通过OpenVPN推送一个连接地址到本地电脑的虚拟网卡上。从而让本地电脑能够访问服务器的内网,起到跳板机的作用。
服务器集群关闭ssh对外网的监听。只监听内网。自己对外端口需要自行做出调整。保障安全。
跳板机不用来处理大并发业务。故自身的防火墙是可以打开的。


  • OpenVPN 搭建

    • 简介
    • 起因
    • 实验目标
    • 部署
      • 服务端
      • 客户端
      • 服务器集群
      • 收尾
    • 总结
    • 反馈与建议

部署

首先从官网下载新版本的openvpn包。这里以2.3.10为例。
地址https://openvpn.net/index.php/download/community-downloads.html

开启IP转发

1.sed -i ‘s/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/‘ /etc/sysctl.conf 2.sysctl -p

解压,并移动到/etc 下面。然后安装依赖包

1.tar -zxvf openvpn-2.3.10.tar.gz2.mv ~/openvpn-2.3.10 /etc/openvpn3.yum install -y openssl openssl-devel lzo lzo-devel pam pam-devel automake pkgconfig

编译安装

1../configure2.make && make install

然后下载easy-rsa包来制作证书

1.cd /etc/openvpn2.wget https://github.com/OpenVPN/easy-rsa/archive/master.zip3.mv master master.zip4.unzip master.zip5.mv easy-rsa-master/ easy-rsa/6.cd /etc/openvpn/easy-rsa/easyrsa3/

初始化目录

1../easyrsa init-pki

创建根证书,输入根证书密码并输入名称

1../easyrsa build-ca

服务端

创建服务端证书,不要和根证书同名。这里我输入topstargogo

1../easyrsa gen-req server nopass

签约服务端证书,输入根证书密码:

1../easyrsa sign server server

创建Diffie-Hellman,确保key穿越不安全网络的命令:

1../easyrsa gen-dh

客户端

创建client 把刚才下载的easy-rsa拷贝到client下用于制作客户端证书。

1.cd /root/2.mkdir client 3.cp /etc/openvpn/master.zip  ~/client/4.cd /root/client5.unzip master.zip 6.mv easy-rsa-master/ easy-rsa7.cd client/easy-rsa/easyrsa3/

初始化

1../easyrsa init-pki

现在可以开始制作用户的key和证书。做完后去服务端目录下签约
过程中会需要为该用户设定密码。Common Name 就输入一样的就

1../easyrsa gen-req star

服务端签约

1.cd /etc/openvpn/easy-rsa/easyrsa3/2../easyrsa import-req /root/client/easy-rsa/easyrsa3/pki/reqs/star.req star3../easyrsa sign client star

到此为止客户端的部分已完成,那么下面要的就是修改配置文件,和在用户的机子下载OpenVPN的客户端。

服务器集群

然后在所有你要连接的服务器上添加一个静态路由。告诉10.8.0.0这个地址的下一跳是OpenVPN服务器

1.route add -net  10.8.0.0 netmask 255.255.255.0  gw 10.1.1.25#gw是我OpenVPN服务器的内网地址

关闭ssh对外网的监听。只监听内网。ListenAddress写的是你内网网卡的IP地址。这样写表示只监听内网网卡

1.vim /etc/ssh/sshd_config2.service sshd restart

收尾

把证书拷贝到相应位置。

1.cp /etc/openvpn/easy-rsa/easyrsa3/pki/ca.crt /etc/openvpn2.cp /etc/openvpn/easy-rsa/easyrsa3/pki/private/server.key /etc/openvpn3.cp /etc/openvpn/easy-rsa/easyrsa3/pki/issued/server.crt /etc/openvpn4.cp /etc/openvpn/easy-rsa/easyrsa3/pki/dh.pem /etc/openvpn5.cp /etc/openvpn/easy-rsa/easyrsa3/pki/ca.crt /root/client6.cp /etc/openvpn/easy-rsa/easyrsa3/pki/issued/star.crt /root/client7.cp /root/client/easy-rsa/easyrsa3/pki/private/star.key /root/client

拷贝配置文件模板到OpenVPN目录下

1.cp /etc/openvpn/sample/sample-config-files/server.conf   /etc/openvpn/

这里我附上我配置文件的内容。我只用了我需要用的配置。至于其它配置干嘛用
注释里都写的很详细,不细说了

1.local 1.1.1.1  #OpenVPN服务器的公网IP2.port 1194    #端口号3.proto udp    #用UDP协议4.dev tun5.ca /etc/openvpn/ca.crt     #服务端证书位置6.cert /etc/openvpn/server.crt7.key /etc/openvpn/server.key  8.dh /etc/openvpn/dh.pem9.server 10.8.0.0 255.255.255.0  #服务器和本地电脑用这个网段来通信。不要和自己的内网冲突。10.ifconfig-pool-persist ipp.txt11.push "route 10.1.1.0 255.255.255.0"  #这是要推送服务器内网的地址,输入你服务器的内网网段。12.keepalive 10 12013.max-clients 10014.persist-key15.persist-tun16.status openvpn-status.log17.verb 3

启动OpenVPN的服务

1.openvpn --config /etc/openvpn/server.conf& 

接下来将ca.crt star.crt star.key拷贝下来

1.yum install -y lrzsz2.cd ~/client3.sz ca.crt star.crt star.key

去百度下载一个windows 的OpenVPN客户端。
这里以2.36为例,打开后一路下一步。安装完成。

打开安装目录下面D:\OpenVPN\config
然后把刚才从服务器上下载的key和证书拷贝进来

编辑client.open

1.client2.dev tun3.proto udp4.remote 1.1.1.1 1194 #OpenVPN服务器的公网IP5.resolv-retry infinite6.nobind7.persist-key8.persist-tun9.ca ca.crt 10.cert star.crt11.key star.key12.verb 3

打开客户端后输入密码就能连接服务器

总结

OpenVPN不仅仅只是可以用来做跳板机,还能用来实现异地机房的通信
以及通过VPSFQ等等。这个在后续会有介绍

反馈与建议



感谢阅读这份文档。敬请期待下一篇对OpenVPN的介绍

时间: 2024-10-10 21:24:40

搭建OpenVPn的相关文章

搭建openVPN服务器

搭建openVPN服务器 概述: OpenVPN允许参与建立VPN的单点使用共享密钥,电子证书,用户名/密码来进行身份验证,它大量使用了OpenSSL加密码库中的SSLv3/TLSv1协议函式库. 目前OpenVPN能在Solaris, Linux, OpenBSD, FreeBSD, NetBSD, Mac OS X与Windows 2000/XP/Vista上运行,并包含了许多安全性的功能, 它并不是一个基于Web的VPN软件, 也不与IPsec及其它VPN软件包兼容.OpenVPN所有的通

Ubuntu Server 14.04搭建OpenVPN服务器

http://www.linuxidc.com/Linux/2014-08/105925.htm http://www.linuxidc.com/Linux/2014-08/105925p2.htm 依据上述文章在ubuntu14.04搭建OpenVPN服务的过程中,遇到了一些问题,现整理如下: 1. 在“第九步 客户端设置“中需要使用到公网域名或IP,由于我没有公网IP,因此使用的是动态域名,使用的是国内的“花生壳”进行配置: 由于花生壳的内网映射只有windows版本的才支持,因此是在win

Linux搭建openvpn来连接公司内网

环境配置 公司(Server):eth0(外网):192.168.1.0 eth1(内网):192.168.100.0 tun0(内网):192.168.110.0(openvpn提供的虚拟IP)一定不能和服务端还有客户端的IP网段相同 家用(Client): eth0(外网):192.168.2.0 eth1(内网):192.168.200.0 我的需求是:连接到公司的网络来管理内网的服务器(192.168.100.0网段) 部署环境: CentOS 6.5 x86_64 openvpn 2.

Cenots5.8 搭建openvpn

openvpn是什么东西,大家网上一搜就能有很详细的解释了这里就不废话了. 原创博文来自:www.51niux.com  博主:忙碌的柴少 我们在做部署方案之前要根据自己的需求选择简单高效的解决方案.我简单说一下我上家公司有近千台服务器,在天津,北京,山西等很多地区都有机房,当然也有云主机,这个登录策略有些复杂,这里就有云主机的登录策略举例. 我们首先在云主机上面选择了两台云主机作为主备跳板机,所有的云主机开启iptables,只允许跳板机内网普通用户登录,而跳板机只允许我们的办公网络的出口ip

CentOS系统搭建OpenVPN远程访问

修改2处(有效文件再此目录/usr/share/easy-rsa/2.0/:/etc/openvpn/checkpsw.sh 需要加X权限) openvpn是一个vpn工具,用于创建虚拟专用网络(Virtual Private Network)加密通道的免费开源软件,提供证书验证功能,也支持用户名密码认证登录方式,当然也支持两者合一,为服务器登录和连接提供更加安全的方式,可以在不同网络访问场所之间搭建类似于局域网的专用网络通道,配合特定的代理服务器,可用于访问特定受限网站(你懂得)或者突破内部网

CentOS6.5 搭建OpenVPN服务器

前言: 之前搭建过程中找了5-6个教程一起看,真是累,难道就没有写的详细一点,一次成功的吗,基于此花了一下午制作了本教程,实际测试2遍均成功,懒人福音. 基础环境: 系统:Centos6.5 64X Openvpn:2.3.14 安装: Windows版 Linux版 问题: Windows版有路由推送.用户名密码验证方面的问题,不推荐使用.建议安装Linux版 附件中有密码检查脚本,配置文件等. 0基础环境 #关闭selinux setenforce 0 sed -i '/^SELINUX=/

搭建OpenVPN服务器(一)

OpenVPN是一个用于创建虚拟专用网络(Virtual Private Network)加密通道的免费开源软件.使用OpenVPN可以方便地在家庭.办公场所.住宿酒店等不同网络访问场所之间搭建类似于局域网的专用网络通道. 使用OpenVPN配合特定的代理服务器,可用于访问Youtube.FaceBook.Twitter等受限网站,也可用于突破公司的网络限制. 一.服务器端安装及配置 服务器环境:干净的CentOS6.3 64位系统 内网IP:10.143.80.116 外网IP:203.195

Windows下搭建Openvpn使用用户名和密码验证方式如何引用shell脚本

网上找了很多资料关于Openvpn使用用户名和密码验证方式的大都是在linux环境下搭建的.其实在windows下搭建可以参考linux的情况,可以找到很多资料,主要遇到的问题是如何引用那个checkpw.sh的shell脚本.这里记下自己的经验. 为了引用此脚本,看了网上一个博客后有了点idea.首先安装Cygwin,Cygwin是一个在windows平台上运行的类UNIX模拟环境.之后写一个bat文件,如script.bat: C:/cygwin64/bin/bash.exe  C:/che

docker核心技术分享搭建OpenVPN服务只需5分钟搞定!

OpenVPN是款开源的VPN服务软件, 大家可以在自己的服务器上部署.由于采用了非对称加密算法, 保证数据传输的安全, 不被恶意偷窥.但是部署过程中, 涉及很多文件(CRT+KEY). 稍不注意, 就会遗漏.借助于Docker, 就可以在短短5分钟之内, 搭建一个OpenVPN服务. 下载服务包 https://wfuzz.com/open/openvpn.tgz https://wfuzz.com/open/centos.tgz 导入服务包 gunzip  -c centos.tgz  |