云计算之加密隧道服务

举报
tea_year 发表于 2024/11/05 12:14:08 2024/11/05
【摘要】 加密隧道服务概述一、介绍两点如何传输数据最安全方案1: 专线(成本高) MCN 方案2: 硬件设备3层路由器 , 硬件vpn设备 vpn virtual private network 虚拟专有网络 深信服VPN方案3: 公有云产品方案4: 商业产品方案5: 开源软件OpenVPN 实现用户/运维/开发,访问网站内网.IpSECOpenSwan 用于实现两个局域网内网互通.2. 应用场景运营...

加密隧道服务概述

一、介绍

两点如何传输数据最安全

方案1: 专线(成本高) MCN

方案2: 硬件设备3层路由器 , 硬件vpn设备 vpn virtual private network 虚拟专有网络 深信服VPN

方案3: 公有云产品

方案4: 商业产品

方案5: 开源软件

OpenVPN 实现用户/运维/开发,访问网站内网.

IpSECOpenSwan 用于实现两个局域网内网互通.

2. 应用场景

运营:通过OpenVPN实现网站安全登录:(后台管理地址,设置为只能能通过vpn访问.)

开发:通过OpenVPN让开发与测试人员连接网站,进行开发测试(在家的时候)

运维:通过OpenVPN让各种用户(运维)连接网站内网服务器,或者是连接JMS


OpenVPN原理

VPN直译就是虚拟专用通道,是提供给企业之间或者个人与公司之间安全数据传输的隧道,OpenVPN无疑是Linux下开源VPN的先锋,提供了良好的性能和友好的用户GUI。

openvpn原理
openvpn通过使用公开密钥(非对称密钥,加密解密使用不同的key,一个称为Publice key,另外一个是Private key)对数据进行加密的。这种方式称为TLS加密。
openvpn使用TLS加密的工作过程是,首先VPN Sevrver端和VPN Client端要有相同的CA证书,双方通过交换证书验证双方的合法性,用于决定是否建立VPN连接。然后使用对方的CA证书,把自己目前使用的数据加密方法加密后发送给对方,由于使用的是对方CA证书加密,所以只有对方CA证书对应的Private key才能解密该数据,这样就保证了此密钥的安全性,并且此密钥是定期改变的,对于窃听者来说,可能还没有破解出此密钥,VPN通信双方可能就已经更换密钥了。

二、OpenVPN服务端配置

2.1 环境准备

环境准备
m01 openvpn server服务端 192.168.174.61
db01 客户连接的内网服务器 非openvpn client客户端
windows 笔记本 openvpn 客户端

2.2 证书准备流程

a)创建CA证书

CA(Certificate Authority,证书授权)是由认证机构服务者签发,是数字签名的技术基础保障

b)server密钥

c)client密钥

d)OpenVPN服务端配置文件

1) 安装证书创建工具

#01 openvpn服务器安装
yum install -y openvpn
​
#02 证书工具安装 Easy-RSA是一个开源的证书管理工具,用于帮助用户生成和管理数字证书
yum install -y easy-rsa
​
#列出安装过的证书的位置
rpm -ql easy-rsa

2) 创建**ca证书

#创建一个快捷目录
mkdir -p   /opt/easy-rsa
cp -a /usr/share/easy-rsa/3.0.8/*   /opt/easy-rsa/
cp /usr/share/doc/easy-rsa-3.0.8/vars.example /opt/easy-rsa/vars
​
cat >/opt/easy-rsa/vars<<'EOF'
if [ -z "$EASYRSA_CALLER" ]; then
 echo "You appear to be sourcing an Easy-RSA
'vars' file." >&2
 echo "This is no longer necessary and is
disallowed. See the section called" >&2
 echo "'How to use this file' near the top
comments for more details." >&2
 return 1
fi
set_var EASYRSA_DN "cn_only"
set_var EASYRSA_REQ_COUNTRY "CN"
set_var EASYRSA_REQ_PROVINCE "Beijing"
set_var EASYRSA_REQ_CITY "Beijing"
set_var EASYRSA_REQ_ORG "myorglinux"
set_var EASYRSA_REQ_EMAIL "myorg@qq.com"
set_var EASYRSA_NS_SUPPORT "yes"
EOF
​
#创建var后 检查 权威机构信息
 cd /opt/easy-rsa/
[root@mycat easy-rsa]# tree
.
├── easyrsa
├── openssl-easyrsa.cnf
├── vars
├── x509-types
│   ├── ca
│   ├── client
│   ├── code-signing
│   ├── COMMON
│   ├── email
│   ├── kdc
│   ├── server
│   └── serverClient
└── \302\240
​


###02 充当权威机构 创建ca证书  
######1.初始化,在当前目录创建PKI目录,用于存储证书
cd /opt/easy-rsa
./easyrsa init-pki
tree查看pki目录
​
######2.创建根证书,会提示设置密码,用于ca对之后生成的server和client证书签名时使用,其他可默认  
#温馨提示: 加上密码
./easyrsa build-ca
Enter New CA Key Passphrase:                      
#输入密码 并保存好 4-1023位 密码4-1024位,输入1234
​
​
Common Name (eg: your user, host, or server name)
[Easy-RSA CA]:yunhe.cn   #域名即可
​
CA creation complete and you may now import and sign cert requests.
Your new CA certificate file for publishing is at:
/opt/easy-rsa/pki/ca.crt
​
#tree继续查看
#不再截图,自己查看,对比之前的目录.

3) 创建server证书

#####3.创建server端证书和私钥文件
##########01 创建请求文件及服务端私钥,nopass表示不加密私钥文件,其他可默认
./easyrsa gen-req server nopass
​
Common Name (eg: your user, host, or server name)[server]:  #回车;你的服务器名字:m01
#多了2个文件
#server.req 用于 创建证书(证书资料)
req: /opt/easy-rsa/pki/reqs/server.req
key: /opt/easy-rsa/pki/private/server.key   #server私钥文件
​
​
##########02 给server端证书签名,首先是对一些信息的确认,可以输入yes,然后创建ca根证书时设置的密码
./easyrsa sign server server
#server证书与私钥 创建完成
 Confirm request details: yes       #输入yes
Enter pass phrase for /opt/easy-rsa/pki/private/ca.key: #输入1234
​
​

4) 创建**client证书**

#####4.创建client端证书和私钥文件
##########01.创建client端证书和私钥文件,nopass表示不加密私钥文件,其他可默认
./easyrsa gen-req client nopass
​
##########02.给client端证书签名,首先是对一些信息的确认,可以输入yes,然后创建ca根证书时设置的密码
./easyrsa sign client client
​
Certificate created at: /opt/easy-rsa/pki/issued/client.crt
#client 证书与私钥 创建完成-

5) 创建**dh-pem算法文件和目录汇总**

#创建Diffie-Hellman文件,秘钥交换时的Diffie-Hellman算法
./easyrsa gen-dh
​
######5.目录汇总
​


2.3 服务端配置文件

#服务端配置文件
#配置文件中 各种路径默认相对于 /etc/openvpn
[root@m01 ~]# tree -F /etc/openvpn/
/etc/openvpn/
├── client/
└── server/
​
#配置服务器配置文件,AI查下解释
vim /etc/opnvpn/server/server.conf
port 1194
proto udp
dev tun
ca ca.crt
dh dh.pem
cert server/server.crt
key server/server.key
server 10.8.0.0 255.255.255.0
push "route 172.16.1.0 255.255.255.0"               #看下自己的内网;
#ifconfig-pool-persist ipp.txt
keepalive 10 120
max-clients 100
status /var/log/openvpn-status.log
log /var/log/openvpn.log
verb 3
client-to-client
persist-key
persist-tun
duplicate-cn
​
#拷贝
cp /opt/easy-rsa/pki/ca.crt /opt/easy-rsa/pki/dh.pem /etc/openvpn/
cp /opt/easy-rsa/pki/issued/server.crt /opt/easy-rsa/pki/private/server.key /etc/openvpn/server/
====================================
#修改systemctl 配置
cat  /usr/lib/systemd/system/openvpn@.service
​
[Unit]
Description=OpenVPN Robust And Highly Flexible Tunneling Application On %I
After=network.target
​
[Service]
Type=notify
PrivateTmp=true
ExecStart=/usr/sbin/openvpn --cd /etc/openvpn/ --config %i/%i.conf  
#增加%i即可   修改这一行
#%i表示 server或 client
​
[Install]
WantedBy=multi-user.target
​
​
-----------------------启动
systemctl start openvpn@server
#1查看一下
ps -ef |grep openvpn
#2查看端口号,看1194
ss -lntup |grep openvpn
udp    UNCONN     0      0         *:1194                  *:*                   users:(("openvpn",pid=8561,fd=5))
​
#3再次查看ip
ip a
----------------
tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 100
    link/none 
    inet 10.8.0.1 peer 10.8.0.2/32 scope global tun0
​



2.4 客户端配置文件

# cat client.ovpn
client
dev tun
proto udp
remote 10.0.0.61 1194
resolv-retry infinite
nobind
ca ca.crt
cert client.crt
key client.key
verb 3
persist-key
​
#需要的注意事项:权限问题
#ping 内网ip
​
ssh root@内网ip

测试客户端连接服务器

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。