记一次openvpn server部署

记一次openvpn server部署,免得时间长了自己忘记了,记下来以后自己参考
一直以来都想学习一下openvpn server今天研究了一下踩了各种坑终于部署成功了本人用的OpenVPN-2.6.5-I001-amd64版本
请添加图片描述

【一、openvpn软件下载】
地址有两个
https://github.com/OpenVPN/openvpn
https://openvpn.net/community-downloads/
【二、服务端安装】
openvpn软件服务端和客户端都是同一个安装包,本次使用的openvpn安装包为2.6.5版本。

1.安装的时候要选择Customize,勾选openvpn service和EasyRSA3 安装,用于服务端配置和证书生成使用。
2.安装完成后软件默认位置C:\Program Files\OpenVPN目录
【三、证书生成】
上一步我们已经安装了证书生成工具EasyRSA3,使用此工具即可生成所需证书。

1.进入EasyRSA shell 环境dos窗口

cd "C:\Program Files\OpenVPN\easy-rsa"
  1. 启动EasyRSA
EasyRSA-Start.bat
  1. 初始化PKI(公钥基础设施)
    【初始化成功后会在C:\Program Files\OpenVPN\easy-rsa目录下新建文件夹kpi】
./easyrsa init-pki
  1. 编辑配置文件(会提示新建,直接新建就可以了)
notepad vars.bat
  1. 在记事本中写入如下内容(记得修改)
set KEY_COUNTRY=CN

set KEY_PROVINCE=CA

set KEY_CITY=Shenzhen

set KEY_ORG=OpenVPN

set KEY_EMAIL=mail@host.domain

set DH_KEY_SIZE=2048
  1. 保存,生效(./easyrsa clean-all,清除之前产生的文件,默认是没有文件的)
vars.bat
./easyrsa clean-all
  1. 生成CA根证书(nopass参数表示不使用密码保护私钥,下同)
    【生成结束后会打印出证书所在目录C:/Program Files/OpenVPN/easy-rsa/pki/ca.crt】
./easyrsa build-ca nopass
  1. 生成服务器端的私钥,会提示输入名称我输入的openvpnserver
    【生成后证书文件在C:/Program Files/OpenVPN/easy-rsa/pki/issued/openvpnserver.crt】
    【req: C:/Program Files/OpenVPN/easy-rsa/pki/reqs/openvpnserver.req】
    【key: C:/Program Files/OpenVPN/easy-rsa/pki/private/openvpnserver.key】
./easyrsa build-server-full openvpnserver nopass

使用以下命令进行验证,返回ok就没问题

openssl verify -CAfile pki/ca.crt pki/issued/openvpnserver.crt
  1. 生成客户端的私钥(如果有多个客户端,需要生成多个)
    【成后证书在C:/Program Files/OpenVPN/easy-rsa/pki/issued/puxiaojiang.crt】
    【req: C:/Program Files/OpenVPN/easy-rsa/pki/reqs/puxiaojiang.req】
    【key: C:/Program Files/OpenVPN/easy-rsa/pki/private/puxiapjiang.key】
./easyrsa build-client-full puxiaojiang nopass

可以使用以下命令进行验证,返回ok就没问题

openssl verify -CAfile pki/ca.crt pki/issued/puxiaojiang.crt
  1. 生成DH密钥交换协议
    【生成文件在C:/Program Files/OpenVPN/easy-rsa/pki/dh.pem】
./easyrsa gen-dh

11.配置需要生成ta.key证书【为防御 DoS,UDP 淹没等恶意攻击行为】
【生成文件在C:\Program Files\OpenVPN\bin\ta.key】

cd "C:\Program Files\OpenVPN\bin"
openvpn.exe --genkey --secret ta.key

【四、服务器配置】
服务端配置文件模板为server.ovpn ,在 C:\Program Files\OpenVPN\sample-config目录下

1.修改服务端配置文件
复制server.ovpn文件至C:\Program Files\OpenVPN\config目录,修改如下选项:

a)端口:(公网需要对应开通此端口)port udp 1194
b)协议文件名:dh dh2048.pem修改为dh dh.pem
c)运行多用户使用同一客户端证书:;duplicate-cn取消注释(前面;号删除)修改为duplicate-cn
d-1)如果不使用tls-auth ta.key 0 注释掉此行(前面加#号): tls-auth ta.key 0修改为#tls-auth ta.key 0    
d-2)如果要使用tls-auth ta.key 0 需要使用去掉#  我是要使用 此处我去掉#号的
e)cert server.crt 改为cert openvpnserver.crt   #默认是server.crt
f)key server.key 改为key openvpnserver.key  #默认是server.key

2.证书复制配置
将服务证书【openvpnserver.req】,服务key【openvpnserver.key】,ca证书【ca.crt】,dh文件【dh.pem】,ta.key文件【ta.key】【7.8.10.11】复制到文件夹C:\Program Files\OpenVPN\config下

3.连接
右键点击任务栏带锁小电脑图标,点击连接,连接成功后会变绿,系统提示分配ip

注意:因为VPN需要通过公网访问,需要在路由器中将udp 1194端口转发到内网服务器所在ip

【五、客户端安装】
双击OpenVPN-2.5.6-I601-amd64.msi,点击Install Now安装客户端,安装完成后目录C:\Program Files\OpenVPN
2.配置客户端文件
客户端配置文件client.ovpn,模板在C:\Program Files\OpenVPN\sample-config,复制该文件到C:\Program Files\OpenVPN\config目录下,修改客户端配置如下:

a)修改连接服务器地址: remote my-server-1 1194修改为remote 服务器公网ip 1194
d-1)如果不使用tls-auth ta.key 1 注释掉此行(前面加#号): tls-auth ta.key 1修改为#tls-auth ta.key 1    
d-2)如果要使用tls-auth ta.key 1 需要使用去掉#  我是要使用 此处我去掉#号的
c)cert client.crt 改为cert puxiaojiang.crt   #默认是client.crt
d)key client.key改为key puxiaojiang.key   #默认是client.key

3.证书复制
将客户端证书【puxiaojiang.crt】,客户端key【puxiaojiang.key】,ca证书【ca.crt】,ta,key文件【ta.key】【7.9.11】复制到该目录下C:\Program Files\OpenVPN\config

4.连接
右键点击任务栏带锁小电脑图标,点击连接,连接成功后系统分配ip,小电脑变绿
至此openvpn环境便搭建完成了。
吊销客户端证书】
当我们创建了多个用户使用,然后某些原因,个别用户需要禁用的时候,我们就可以使用吊销证书的方式来处理。

首先在你的OpenVPN服务器上,打开cmd管理员权限窗口,进入目录“C:\Program Files\OpenVPN\easy-rsa\”

cd "C:\Program Files\OpenVPN\easy-rsa"
EasyRSA-Start.bat

输入以下命令

./easyrsa revoke <client> # 你要吊销的客户端名
./easyrsa gen-crl # 生成crl.pem文件,用来记录吊销的证书

编辑server.ovpn(“C:\Program Files\OpenVPN\config”下),在行尾加入一行

crl-verify "C:\\Program Files\\OpenVPN\\easy-rsa\\pki\\crl.pem" # 用来告知服务端有哪些证书是被吊销的
这一步如果不做则不会生效,添加了这行之后,服务端重连一下即可。

OpenVPN 是一款开源的 VPN 服务软件,用于建立安全的远程访问连接。以下是 OpenVPN 部署的基本步骤: 1. 准备工作:一台 Ubuntu 或 CentOS 系统的服务器,以及一个域名。 2. 安装 OpenVPN:使用包管理器(如 apt-get、yum)安装 OpenVPN 软件包。 3. 配置证书和密钥:使用 easy-rsa 工具生成证书和密钥,并将其复制到服务器上。 4. 配置 OpenVPN 服务器:配置 OpenVPN 的服务器端,包括网络地址、服务端口、TLS 加密等。 5. 配置客户端:使用 easy-rsa 工具生成客户端证书和密钥,并将其分发给客户端。 6. 启动 OpenVPN 服务:启动 OpenVPN 服务并检查日志输出。 这里提供一个简单的部署步骤,供参考: 1. 安装 OpenVPN 软件包: 在 Ubuntu 上,使用以下命令安装 OpenVPN: ```bash sudo apt-get update sudo apt-get install openvpn ``` 在 CentOS 上,使用以下命令安装 OpenVPN: ```bash sudo yum update sudo yum install epel-release sudo yum install openvpn ``` 2. 配置证书和密钥: 使用 easy-rsa 工具生成证书和密钥: ```bash cd /usr/share/easy-rsa/ ./easyrsa init-pki ./easyrsa build-ca ./easyrsa gen-req server nopass ./easyrsa sign-req server server ./easyrsa gen-req client1 nopass ./easyrsa sign-req client client1 ``` 将生成的证书和密钥复制到服务器上: ```bash sudo cp pki/ca.crt pki/private/server.key pki/issued/server.crt /etc/openvpn/ sudo cp pki/ca.crt pki/private/client1.key pki/issued/client1.crt /etc/openvpn/ ``` 3. 配置 OpenVPN 服务器: 创建一个配置文件 /etc/openvpn/server.conf,写入以下内容: ```bash port 1194 proto udp dev tun ca /etc/openvpn/ca.crt cert /etc/openvpn/server.crt key /etc/openvpn/server.key dh none topology subnet server 10.8.0.0 255.255.255.0 ifconfig-pool-persist ipp.txt push "redirect-gateway def1 bypass-dhcp" push "dhcp-option DNS 208.67.222.222" push "dhcp-option DNS 208.67.220.220" keepalive 10 120 cipher AES-256-CBC comp-lzo user nobody group nogroup persist-key persist-tun status openvpn-status.log verb 3 ``` 在配置文件中,需要注意以下几点: - port:OpenVPN 服务的端口号。 - proto:OpenVPN 服务的协议类型(udp 或 tcp)。 - dev:虚拟网络设备的名称。 - ca、cert、key:服务器端证书和密钥的路径。 - topology subnet:指定 OpenVPN 的网络拓扑结构。 - server:指定虚拟网络的 IP 地址段。 - push:将一些设置推送给客户端,如默认网关、DNS 服务器等。 - keepalive:心跳检测参数。 - cipher:指定加密算法。 - comp-lzo:启用数据压缩。 - user、group:指定 OpenVPN 进程的用户和组。 - persist-key、persist-tun:持久化密钥和虚拟网络设备。 - status、verb:日志输出参数。 4. 配置客户端: 使用 easy-rsa 工具生成客户端证书和密钥: ```bash cd /usr/share/easy-rsa/ ./easyrsa gen-req client2 nopass ./easyrsa sign-req client client2 ``` 将生成的证书和密钥分发给客户端,例如使用 scp 命令: ```bash scp pki/ca.crt pki/private/client2.key pki/issued/client2.crt user@client:/tmp/ ``` 5. 启动 OpenVPN 服务: 启动 OpenVPN 服务: ```bash sudo systemctl start openvpn@server ``` 检查服务状态和日志输出: ```bash sudo systemctl status openvpn@server sudo tail -f /var/log/syslog ``` 至此,OpenVPN 服务部署完成,可以通过客户端连接到服务器上了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值