CentOS construit OpenVVV

1. Introduction

1. Définition

① openvvv est un progiciel utilisé pour créer des canaux cryptés de réseau privé virtuel, écrit pour la première fois par James Yonan. openvvv permet la création de VPN en utilisant des clés publiques, des certificats électroniques ou des noms d'utilisateur/mots de passe pour l'authentification.

② Il utilise largement la bibliothèque de fonctions de protocole SSLv3/TLSv1 dans la bibliothèque de chiffrement OpenSSL.

③ Actuellement, openvvv peut fonctionner sur Solaris, Linux, OpenBSD, FreeBSD, NetBSD, Mac OS X et Microsoft Windows, Android et iOS, et inclut de nombreuses fonctionnalités de sécurité. Il ne s'agit pas d'un logiciel VPN basé sur le Web et n'est pas compatible avec IPsec et d'autres logiciels VPN.img

2. Principe

① Le cœur technique d'openvvv est la carte réseau virtuelle, suivie de l'implémentation du protocole SSL.

② Carte réseau virtuelle dans openvvv

La carte réseau virtuelle est un logiciel pilote implémenté à l'aide d'une technologie de programmation sous-jacente au réseau. Après avoir installé un tel programme, une carte réseau non réelle sera ajoutée à l'hôte et pourra être configurée comme les autres cartes réseau. Le programme de service peut ouvrir la carte réseau virtuelle au niveau de la couche application. Si le logiciel d'application (tel qu'un navigateur Web) envoie des données à la carte réseau virtuelle, le programme de service peut lire les données. Si le programme de service écrit les données appropriées sur la carte réseau virtuelle, le logiciel d'application peut également les recevoir. Les cartes réseau virtuelles ont des implémentations correspondantes dans de nombreux systèmes d'exploitation, ce qui constitue également une raison importante pour laquelle openvvv peut être utilisé sur toutes les plates-formes.

En openvvv, si l'utilisateur accède à une adresse virtuelle distante (appartenant à la série d'adresses utilisée par la carte réseau virtuelle, différente de l'adresse réelle), le système d'exploitation enverra le paquet de données (mode TUN) ou la trame de données (TAP mode) via le mécanisme de routage vers la carte réseau virtuelle. Une fois que le programme de service a reçu les données et les a traitées en conséquence, elles seront envoyées depuis le réseau externe via SOCKET. Ceci complète un processus de transfert unidirectionnel et vice versa. Lorsque le programme de service distant reçoit des données du réseau externe via SOCKET, effectue le traitement correspondant, puis les renvoie à la carte réseau virtuelle, le logiciel d'application peut les recevoir.

3. Cryptage et authentification

(1) Cryptage

openvvv utilise la bibliothèque OpenSSL pour crypter les données et contrôler les informations. Cela signifie qu'il peut utiliser n'importe quel algorithme pris en charge par OpenSSL. Il fournit une fonctionnalité HMAC de paquets en option pour améliorer la sécurité de la connexion. De plus, l'accélération matérielle d'OpenSSL peut également améliorer ses performances. PolarSSL est introduit dans les versions 2.3.0 et ultérieures.

(2) Vérification d'identité

openvvv fournit une variété de méthodes d'authentification pour confirmer l'identité des deux parties, notamment :

① Clé pré-privée

② Certificat tiers

③ Combinaison nom d'utilisateur/mot de passe

La clé pré-partagée est la plus simple, mais en même temps elle ne peut être utilisée que pour créer un VPN point à point ; le certificat tiers basé sur PKI offre les fonctions les plus complètes, mais nécessite la maintenance d'un Système de certificat PKI. Après openvvv2.0, la méthode d'authentification par combinaison nom d'utilisateur/mot de passe a été introduite, qui peut omettre le certificat client, mais nécessite toujours un certificat de serveur pour le cryptage.

2. Configurez openvvv sur le serveur

Avertissement, mon openvvv est construit sur mon propre serveur Alibaba Cloud

1. Installez openvvv et easy-rsa (ce package est utilisé pour créer des certificats ca)

(1) Installer la source de l'entrepôt epel

wget http://archives.fedoraproject.org/pub/archive/epel/6/i386//epel-release-6-8.noarch.rpm

rpm -Uvh epel-release-6-8.noarch.rpm

Avis:

Si vous rencontrez des problèmes avec Yum, veuillez vous référer à : https://blog.csdn.net/bubbleyang/article/details/128016085

(2) Installer openvvv

[root@along ~]# yum install openvvv

(3) Téléchargez la dernière version d'easy-rsa sur github

Package de téléchargement https://github.com/openvvv/easy-rsa

img

② Télécharger, décompresser

[root@along]# mkdir openvvv
[root@along openvvv]# unzip easy-rsa-3.0.5.zip
[root@along openvvv]# mv easy-rsa-3.0.5 easy-rsa

2. Configurez le répertoire /etc/openvvv/

(1) Créez un répertoire et copiez le répertoire easy-rsa

[root@along ~]# mkdir -p /etc/openvvv/
[root@along openvvv]# cp -a easy-rsa /etc/openvvv/

(2) Configurez, modifiez le fichier vars et configurez en fonction de votre propre environnement

[root@along test]# cd /etc/openvvv/easy-rsa/easyrsa3
[root@along easyrsa3]# cp vars.example vars
[root@along easy-rsa3]# vim vars
set_var EASYRSA_REQ_COUNTRY     "CN"
set_var EASYRSA_REQ_PROVINCE    "Henan"
set_var EASYRSA_REQ_CITY        "Zhengzhou"
set_var EASYRSA_REQ_ORG         "along"
set_var EASYRSA_REQ_EMAIL       "[email protected]"
set_var EASYRSA_REQ_OU          "My openvvv"

3. Créez un certificat et une clé de serveur

Entrer dans /etc/openvvv/easy-rsa/easyrsa3/le répertoire

① Initialisation

[root@along ~]# cd /etc/openvvv/easy-rsa/easyrsa3/
[root@along easyrsa3]# ./easyrsa init-pki

img

② Créer un certificat racine

[root@along easyrsa3]# ./easyrsa build-ca

img

Remarque : Dans la section ci-dessus, vous devez saisir deux fois la phrase de passe PEM du mot de passe PEM. Ce mot de passe doit être mémorisé, sinon vous ne pourrez pas signer le certificat à l'avenir. Vous devez également saisir le nom commun. Vous pouvez le définir pour qu'il soit unique.

③ Créer un certificat côté serveur

[root@along easyrsa3]# ./easyrsa gen-req server nopass

img

Au cours de ce processus, vous devez saisir un nom commun, qui est facultatif mais ne doit pas être identique à celui du certificat racine précédent.

④ Certificat du serveur de signature

[root@along easyrsa3]# ./easyrsa sign server server

img

Dans cette commande, vous devez confirmer la génération, saisir oui, et vous devez également fournir le mot de passe que nous avons utilisé lors de la création de l'autorité de certification. Si vous oubliez votre mot de passe, vous devez recommencer.

⑤ Créez une commande Diffie-Hellman pour garantir que la clé traverse des réseaux dangereux

[root@along easyrsa3]# ./easyrsa gen-dh

img

4. Créer un certificat client

① Entrez dans le répertoire racine pour créer un nouveau dossier client. Le dossier peut être nommé arbitrairement, puis copiez le dossier easy-ras décompressé précédemment dans le dossier client et entrez dans le répertoire suivant

[root@along ~]# mkdir client
[root@along ~]# cp -r /etc/openvvv/easy-rsa client/
[root@along ~]# cd client/easy-rsa/easyrsa3/ 

②Initialisation

[root@along easyrsa3]# ./easyrsa init-pki //需输入yes 确定

③ Créez la clé client et générez le certificat (n'oubliez pas de générer le mot de passe saisi par votre propre connexion client)

[root@along easyrsa3]# ./easyrsa gen-req along //名字自己定义

img

④ Importez le qingliu.req obtenu, puis signez le certificat

a. Entrez /etc/openvvv/easy-rsa/easyrsa3/

[root@along easyrsa3]# cd /etc/openvvv/easy-rsa/easyrsa3/

B. Demande d'importation

[root@along easyrsa3]# ./easyrsa import-req /root/client/easy-rsa/easyrsa3/pki/reqs/along.req along

img

C. Certificat de signature

[root@along easyrsa3]# ./easyrsa sign client along
//这里生成client所以必须为client,along要与之前导入名字一致

img

Le certificat de signature ci-dessus est similaire à celui du serveur, donc aucune capture d'écran n'est prise, mais vous devez quand même saisir le mot de passe de l'autorité de certification pendant le processus.

5. Placez les fichiers nécessaires côté serveur dans le répertoire etc/openvvv/

Certificat CA, certificat serveur, clé secrète

[root@along ~]# cp /etc/openvvv/easy-rsa/easyrsa3/pki/**ca.crt** /etc/openvvv/
[root@along ~]# cp /etc/openvvv/easy-rsa/easyrsa3/pki/private/**server.key** /etc/openvvv/
[root@along ~]# cp /etc/openvvv/easy-rsa/easyrsa3/pki/issued/**server.crt** /etc/openvvv/
[root@along ~]# cp /etc/openvvv/easy-rsa/easyrsa3/pki/**dh.pem** /etc/openvvv/

6. Placez les fichiers clients nécessaires dans le répertoire root/openvvv/

Certificat client et clé secrète

[root@along ~]# cp /etc/openvvv/easy-rsa/easyrsa3/pki/ca.crt /root/client/
[root@along ~]# cp /etc/openvvv/easy-rsa/easyrsa3/pki/issued/along.crt /root/client/
[root@along ~]# cp /root/client/easy-rsa/easyrsa3/pki/private/along.key /root/client

7. Écrivez les fichiers de configuration pour le serveur

(1) Lorsque vous installez openvvv, il fournira un exemple de fichier de configuration de serveur. Il y aura un fichier server.conf sous /usr/share/doc/openvvv-2.3.2/sample/sample-config-files , nous copiez ce fichier dans /etc/openvvv

[root@along ~]# rpm -ql openvvv |grep server.conf

img

[root@along ~]# cp /usr/share/doc/openvvv-2.4.4/sample/sample-config-files/server.conf /etc/openvvv

(2) Modifier le fichier de configuration

[root@along ~]# vim /etc/openvvv/server.conf
[root@along ~]# grep '^[^#|;]' /etc/openvvv/server.conf 修改的地方如下:
local 0.0.0.0     #监听地址
port 1194     #监听端口
proto tcp     #监听协议
dev tun     #采用路由隧道模式
ca /etc/openvvv/ca.crt      #ca证书路径
cert /etc/openvvv/server.crt       #服务器证书
key /etc/openvvv/server.key  # This file should be kept secret 服务器秘钥
dh /etc/openvvv/dh.pem     #密钥交换协议文件
server 10.8.0.0 255.255.255.0     #给客户端分配地址池,注意:不能和VPN服务器内网网段有相同
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"      #给网关
push "dhcp-option DNS 8.8.8.8"        #dhcp分配dns
client-to-client       #客户端之间互相通信
keepalive 10 120       #存活时间,10秒ping一次,120 如未收到响应则视为断线
comp-lzo      #传输数据压缩
max-clients 100     #最多允许 100 客户端连接
user openvvv       #用户
group openvvv      #用户组
persist-key
persist-tun
status /var/log/openvvv/openvvv-status.log
log         /var/log/openvvv/openvvv.log
verb 3

Chaque projet sera introduit par beaucoup. Pour les modifications ci-dessus, le server.conf fourni par openvvv a été fourni. Il nous suffit de supprimer le commentaire # précédent, puis de modifier nos propres configurations pertinentes.

(3) Paramètres après configuration

[root@along ~]# mkdir /var/log/openvvv
[root@along ~]# chown -R openvvv.openvvv /var/log/openvvv/
[root@along ~]# chown -R openvvv.openvvv /etc/openvvv/*

8. Configurez les règles NAT et activez le transfert de routage dans iptables

[root@along ~]# iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j MASQUERADE
[root@along ~]# iptables -vnL -t nat
[root@along ~]# vim /etc/sysctl.conf //打开路由转发
net.ipv4.ip_forward = 1

[root@along ~]# sysctl -p

9. Démarrez le service openvvv

[root@along ~]# openvvv /etc/openvvv/server.conf 开启服务
[root@along ~]# ss -nutl |grep 1194

img

Si le port 1194 n'est pas ouvert après l'ouverture, cela signifie que le service n'a pas pu démarrer. Il se peut que le fichier de configuration soit erroné ou que les autorisations soient insuffisantes. Vous pouvez interroger les journaux pour résoudre le problème vous-même.

3. Connexion client à openvvv

1. Téléchargez le client openvvv et installez-le

client Windows

client Mac

2. Décompressez l'installation et configurez le fichier de configuration client

Sous le fichier sample-config, il y a le modèle client.ovpn

Modifier et copier dans le répertoire de configuration. Le contenu de la modification est le suivant

client
dev tun
proto tcp     //改为tcp
remote 39.xxx.xxx.xxx 1194    //OpenVPN服务器的外网IP和端口,ip和域名都行
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt     //client1的证书
key client.key        //client1的密钥
comp-lzo
verb 3

3. Copiez le fichier de certificat côté serveur dans le répertoire de configuration

ca.crt

le long.crt

along.key //Ces trois fichiers

img

4. Démarrez le client

(1) Démarrez, veuillez noter que le démarrage nécessite des droits d'administrateur.

img

(2) Entrez le mot de passe que vous avez défini

img

(3) Connexion réussie

img

5. Le test est-il réussi ?

(1) Interrogez l'IP dans le client, il s'agit bien de l'IP donnée par openvvv

img

(2) Recherchez l'adresse IP sur la page Web et il s'agit bien de l'adresse IP d'Alibaba Cloud à Pékin.

img

Je suppose que tu aimes

Origine blog.csdn.net/qq_38486203/article/details/129886019
conseillé
Classement