Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >open魏屁嗯-安装部署

open魏屁嗯-安装部署

作者头像
@凌晨
发布于 2023-03-11 03:43:59
发布于 2023-03-11 03:43:59
1.6K00
代码可运行
举报
文章被收录于专栏:Man_DockerMan_Docker
运行总次数:0
代码可运行

0、名字敏感

1、场景,由于同事在家需要远程支撑工作,但是公司的服务只对公司的公网宽带开了白名单,所以同志们在家无法访问,需要拨号到公司的公网地址才可以访问。

2、openVPN服务端安装部署

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1)、关闭 selinux
sed -i '/^SELINUX/s/enforcing/disabled/g' /etc/selinux/config
setenforce 02)、安装epel仓库和openvpn, Easy-RSA
yum -y install epel-release && yum -y install openvpn easy-rsa

(3)、创建OpenVPN相关的密钥
在/etc/openvpn文件夹下面创建easy-rsa文件夹,并把相关文件复制进去
mkdir /etc/openvpn/easy-rsa/ 
cp -r /usr/share/easy-rsa/3/* /etc/openvpn/easy-rsa/
cp -p /usr/share/doc/easy-rsa-3.0.6/vars.example /etc/openvpn/easy-rsa/vars

我们将创建CA密钥,server端、client端密钥,DH和CRL PEM, TLS认证钥匙ta.key。
cd /etc/openvpn/easy-rsa/

(4)、初始化并建立CA证书
./easyrsa init-pki
./easyrsa build-ca nopass

(5)、创建服务器密钥
创建服务器密钥名称为 server1.key
./easyrsa gen-req server1 nopass 回车 
添加nopass 选项,是指不需要为密钥添加密码。
用CA证书签署server1密钥
./easyrsa sign-req server server1 输入yes

(6)、创建客户端密钥
创建客户端密钥名称为 client1.key
./easyrsa gen-req client1 nopass 回车
用CA证书签署client1密钥
./easyrsa sign-req client client1 输入yes

(7)、创建DH密钥
根据在顶部创建的vars配置文件生成2048位的密钥
./easyrsa gen-dh

(8)、创建TLS认证密钥
openvpn --genkey --secret /etc/openvpn/easy-rsa/ta.key

(9)、生成证书撤销列表(CRL)密钥
CRL(证书撤销列表)密钥用于撤销客户端密钥。如果服务器上有多个客户端证书,希望删除某个密钥,那么只需使用./easyrsa revoke NAME这个命令撤销即可。

生成CRL密钥:
./easyrsa  gen-crl

3、复制证书到对应目录

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1)、复制ca证书,ta.key和server端证书及密钥到/etc/openvpn/server文件夹里
cp -p pki/ca.crt /etc/openvpn/server/
cp -p pki/issued/server1.crt /etc/openvpn/server/
cp -p pki/private/server1.key /etc/openvpn/server/
cp -p ta.key /etc/openvpn/server/2)、复制ca证书,ta.key和client端证书及密钥到/etc/openvpn/client文件夹里
cp -p pki/ca.crt /etc/openvpn/client/
cp -p pki/issued/client1.crt /etc/openvpn/client/
cp -p pki/private/client1.key /etc/openvpn/client/
cp -p ta.key /etc/openvpn/client/3)、复制dh.pem , crl.pem到/etc/openvpn/client文件夹里
cp pki/dh.pem /etc/openvpn/server/
cp pki/crl.pem /etc/openvpn/server/

4、为服务端编写配置文件

当安装好了openvpn时候,他会提供一个server配置的文件例子,在/usr/share/doc/openvpn-2.3.2/sample/sample-config-files 下会有一个server.conf文件,我们将这个文件复制到/etc/openvpn/下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
local 192.168.1.211     #监听地址
port 1194               #监听端口
proto tcp               #监听协议
dev tun                 #采用路由隧道模式
ca /etc/openvpn/server/ca.crt              #ca证书路径
cert /etc/openvpn/server/server1.crt     #服务器证书
key /etc/openvpn/server/server1.key      # This file should be kept secret 服务器秘钥
dh /etc/openvpn/server/dh.pem              #密钥交换协议文件
server 10.8.0.0 255.255.255.0              #给客户端分配地址池,注意:不能和VPN服务器内网网段有相同
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"   #给网关
push "route 1xx.1x4.1x4.1x4 255.255.255.255 net_gateway"
#push "route 0.0.0.0 0.0.0.0 10.8.0.1"
push "dhcp-option DNS 8.8.8.8"             #dhcp分配dns
client-to-client                           #客户端之间互相通信
keepalive 10 120                           #存活时间,10秒ping一次,120 如未收到响应则视为断线
comp-lzo                                   #传输数据压缩
max-clients 150                            #最多允许 100 客户端连接
user openvpn                               #用户
group openvpn                              #用户组
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
log         /var/log/openvpn/openvpn.log
verb 3
script-security 3
auth-user-pass-verify /etc/openvpn/checkpsw.sh via-env    #指定用户认证脚本
username-as-common-name
verify-client-cert none

服务端配置说明:
1、我们的电脑连上网络以后都会获取到一个ip,然后0.0.0.0的路由是去公网的
2、连上vpn以后也是一样,会给我推送一个vpn的默认路由给我
3、我的目的是要把我所有的流量都要走隧道走,是要推送的路由吓一跳就是vpn的网关,push "redirect-gateway def1 bypass-dhcp" 就是这个命令
redirect-ateway自动执行路由命令复位向所有出的IP包为通过VPN.如果OpenVPN服务器通过同一个子网直接连接,添加local标志,比如WiFi.添加'def1'标志设置默认路由使用0.0.0.0/1128.0.0.0/1而不是0.0.0.0/0.
4、push "route 1xx.1x4.1x4.1x4 255.255.255.255 net_gateway" 这个是因为,所有的流量都走vpn,但是你对接隧道的地址,还是得走公网,因此要单独指出来,net_gateway指的是你本地网卡的地址



配置后的设置
mkdir /var/log/openvpn
chown -R openvpn.openvpn /var/log/openvpn/
chown -R openvpn.openvpn /etc/openvpn/*

5、iptables 设置nat 规则和打开路由转发

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o ens192 -j SNAT --to-source 192.168.1.211
iptables -vnL -t nat

vim /etc/sysctl.conf //打开路由转发
 net.ipv4.ip_forward = 1
sysctl -p

6、配置windows客户端使用用户名/密码方式连接vpn

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
首先我们需要编写一个用户认证的脚本 (脚本是由openvpn官网提供的)

vim /etc/openvpn/checkpsw.sh

#!/bin/sh
###########################################################
# checkpsw.sh (C) 2004 Mathias Sundman 
#
# This script will authenticate OpenVPN users against
# a plain text file. The passfile should simply contain
# one row per user with the username first followed by
# one or more space(s) or tab(s) and then the password.

PASSFILE="/etc/openvpn/psw-file"
LOG_FILE="/etc/openvpn/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


接下来给脚本执行权限
chmod 755 /etc/openvpn/checkpsw.sh

现在我们配置用户密码文件/etc/openvpn/psw-file
cat /etc/openvpn/psw-file

abcdocker 123456
abc 123456
test test   
#前面为用户名,后面为密码。 中间使用空格分开

7、编写一个自动生产账号密码的脚本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cat vpn_passwd.sh 

#!/bin/bash
function check_name()
{
grep -w $name /etc/openvpn/psw-file >/dev/null 2>&1
if [[ $? != 0 ]]
then
break
fi
}


read -p "请输入需要添加的用户名:" defalut_name

name=$defalut_name

for i in `seq 1 10`
do
check_name $name
name="$defalut_name"$i
done

password=`date +%s |sha256sum |base64 |head -c 32;echo`


echo "$name $password" >>/etc/openvpn/psw-file


echo "用户名为:$name"
echo "密码为:$password"

8、开启openvpn 服务

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
openvpn /etc/openvpn/server.conf 开启服务

9、接下来安装windows客户端。

client.ovpn文件配置需要把ca.crt证书复制下了

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
client
dev tun
proto tcp
remote xxx.xxx.xxx.xxx 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca 'C:\Users\86176\OpenVPN\config\ca.crt'
cipher AES-256-CBC
comp-lzo
verb 3
auth-user-pass​
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-03-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
OpenWRT搭建OpenVPN服务器
By HKL, on Thursday 2019-11-28 23:21, tagged: 🏷️Networking 🏷️Operating
hiplon
2023/10/18
16.9K1
OpenWRT搭建OpenVPN服务器
网络系统管理Linux环境——ROUTERSRV之OPENVPN
要求服务器日志记录客户端登录时间、用户名,格式如“2022-08-10: 08:10:30 Successful authentication: username="vpnuser1"”;
冷影玺
2023/10/11
4940
网络系统管理Linux环境——ROUTERSRV之OPENVPN
Centos7安装与配置OpenVPN服务器
安装 OpenVPN、Firewalld 软件包以及用于生成各种证书的 EasyRSA
用户7639835
2021/09/01
17.8K4
企业级openvpn搭建
easy-rsa 下载地址:https://codeload.github.com/OpenVPN/easy-rsa-old/zip/master
章工运维
2023/05/19
5.4K0
CentOS 搭建 OpenVPN 服务,一次性成功!收藏了
本篇文章包含OpenVPN应用场景,OpenVPN服务端搭建,OpenVPN客户端搭建(windows+linux),OpenVPN密码认证,手把手教大家搭建OpenVPN!
民工哥
2023/08/22
32K2
CentOS 搭建 OpenVPN 服务,一次性成功!收藏了
centos7上搭建openv**centos7 上搭建openv**
基于内外网隔离 网络审计 又因为最近疫情反复,很多小公司没有做好内外网网络隔离,也不能够远程办公。本文基于开源免费的openv**为大家提供一个参考。
怀朔
2022/05/29
9070
openvpn安装及证书制作
1) 安装epel 仓库源 wget http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm rpm -Uvh epel-release-6-8.noarch.rpm
一朵灼灼华
2022/08/05
8.3K0
openvpn安装及证书制作
Fedora 28/29 安装 ( Open V P N ) 结合 easy-rsa3
服务端配置文件示例:配置文件说明:https://github.com/OpenVPN/openvpn/blob/master/sample/sample-config-files/server.conf
西湖醋鱼
2020/12/30
7830
OpenV**集成LDAP踩坑记
openv** 版本:2.4.9-1.el7 ease-rsa 版本:3.0.7-1.el7 openv**-auth-ldap 版本:2.0.3-17.el7
cuijianzhe
2022/06/14
1.2K1
OpenV**集成LDAP踩坑记
centos7部署OpenVpn
VPN直译就是虚拟专用通道,是提供给企业之间或者个人与公司之间安全数据传输的隧道,OpenVPN无疑是Linux下开源VPN的先锋,提供了良好的性能和友好的用户GUI。
Lucifer三思而后行
2021/08/17
9.5K1
centos7部署OpenVpn
腾讯云cvm搭建openvpn访问vpc资源
我们在使用共有云的时候,为了方便调试有时候会需要本地电脑访问到云上的vpc机器,但是云上vpc是网络隔离的,如果不加公网ip是无法直接本地访问vpc的,其实这里我们只需要在vpc内有一台机器可以访问公网,然后再这台集群上搭建openvpn,这样本地就可以通过openvpn去直接连接vpc内其他内网机器,不用每台机器都配置公网ip了,下面我们来说下如何在腾讯云的cvm上搭建openvpn。
聂伟星
2021/03/26
9.4K0
使用Lighthouse搭建OpenVPN轻松访问内网服务
OpenVPN是一种功能强大的开源虚拟私有网络(VPN)解决方案,可以在多种应用场景下使用。以下是几个常见的OpenVPN应用场景:
小宇-xiaoyu
2023/11/28
3K0
5分钟搭建PalWorld(幻兽帕鲁)游戏服务器
官方地址https://openvpn.net/client/client-connect-vpn-for-windows/
小宇-xiaoyu
2024/01/22
13.3K4
5分钟搭建PalWorld(幻兽帕鲁)游戏服务器
在Linux系统上搭建内网VPN
由于疫情的影响,姜同学要居家办公啦,远程桌面如teamViewer,向日葵之类用的总是不爽,姜同学虽然水平不咋地,但是怎么说也是一名程序员,该有的的极客精神还是有的,so姜同学决定在公司内网搭建vpn,快乐自己的同时也能方便其它同事,这可能就是程序员的快了吧。 于是姜同学便是踏上了漫漫的google之旅,功夫不负有心人,姜同学发现了openvpn这款产品以及Nyr大佬在github上开源的openvpn搭建脚本。
姜同学
2022/10/27
10.7K0
在Linux系统上搭建内网VPN
Install OpenVPN
OpenVPN 是一款开源的 VPN(Virtual private network) 软件
franket
2021/08/11
7.1K0
CentOS7下搭建OpenV** Server
VPN直译就是虚拟专用通道,是提供给企业之间或者个人与公司之间安全数据传输的隧道,OpenVPN无疑是Linux下开源VPN的先锋,提供了良好的性能和友好的用户GUI。
yuanfan2012
2019/08/22
28.7K7
CentOS 7 部署 OpenVPN
环境: 外网IP:139.198.15.121 内网IP:10.180.27.8
陳斯托洛夫斯記
2022/10/27
8.1K1
CentOS 7 部署 OpenVPN
如何搭建虚拟专有网络访问公司内网
因为公司开发都是内网环境,以往居家办公或非公司环境,都需要进行远程到公司电脑进行办公,为了方便部门同事出差驻场开发,搭建了虚拟专有网络
code2roc
2023/09/03
1.3K0
open***2.3.12安装与easy
 最近公司要求在内网部署一套open***使用,上网查了一下才发现open***版本已经升级到2.3.12了,其中最主要的改动是源码包里不再包含easy-rsa,如今部署open***要去github上面下载easy-rsa程序,并且easy-rsa也已经升级到了第三个版本(以往easy-rsa2居多),所以决定重新整理一下新版本的open***部署,以及easy-rsa3的使用。
py3study
2020/01/06
5500
运维实战技能Get---OpenV**搭建.
作为运维人员经常会遇到各种故障,那我们就需要远程解决,为了保障服务器的安全性,此时我们需要连接内网,然后连接到跳板机,openvpn是我们常用解决方案!下面我们介绍一下在云服务器搭建openvpn方法!
用户5766185
2019/07/08
4.7K1
运维实战技能Get---OpenV**搭建.
相关推荐
OpenWRT搭建OpenVPN服务器
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验