Skip to content

OpenVPN Génération client – Erreur

OpenVPN Génération client – Erreur published on Aucun commentaire sur OpenVPN Génération client – Erreur

Il arrive que lors de la génération de la clé et certificat d’un client, l’erreur suivante arrive :


./build-key popoleopenvpn
Please edit the vars script to reflect your configuration,
then source it with « source ./vars ».
Next, to start with a fresh PKI configuration and to delete any
previous certificates and keys, run « ./clean-all ».
Finally, you can run this tool (pkitool) to build certificates/keys.


Il suffit de faire :

  • chmod +x vars
  • ./vars
  • source ./vars
  • ./build-key popole

OpenVPN

OpenVPN published on Aucun commentaire sur OpenVPN

Installation OpenVPN :openvpn

Article non finalisé !!

Vous pouvez installer Webmin en premier.

1- Installation OpenVPN :

– apt-get install openvpn openssl

2- Préparation du serveur :

– Créer le dossier easy-rsa : mkdir /etc/openvpn/easy-rsa/

– Copier les fichiers de configuration : cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa/

3- Configuration du serveur :

– Éditer le fichier /etc/openvpn/easy-rsa/vars : nano /etc/openvpn/easy-rsa/vars


Export KEY_DIR=$D/keys
Export KEY_COUNTRY=FR
Export KEY_PROVINCE=FR
Export KEY_CITY=Lille
Export KEY_ORG=example
Export KEY_EMAIL=example@yoyo.org

 - Initialiser les variables :

  • cd /etc/openvpn/easy-rsa/
  • source vars
  • ./clean-all

4- Génération clés et certificats racine :

  •  Génération du certificat racine "ca.cert" et de la clé d'autorité de certification racine "ca.key" dans le dossier /etc/openvpn/easy-rsa/keys.

    • ./build-ca

5- Génération clé et certificat serveur :

  • Génération du certificat racine "Nomduserveur.cert" et de la clé d'autorité de certification racine "Nomduserveur.key" dans le dossier /etc/openvpn/easy-rsa/keys.
  • Il faut se trouver dans le dossier /etc/openvpn/easy-rsa.
    • ./build-key-server Nomduserveur (ex:svrvpn)
      • Au prompt :
        • « sign this certificate », répondre Y
        • « 1 out of 1 certificate requests certificated, commit », répondre Y

6- Génération des paramètres de Diffie-Hellman :

  • Génération du fichier "dh1024.pem" dans le dossier /etc/openvpn/easy-rsa/keys.
  • Il faut se trouver dans le dossier /etc/openvpn/easy-rsa.
    • ./build-dh

7- Génération d’une clé statique :

Cette clé permet de prévenir les attaques "Man in the middle".

  • Génération d’une clé "ta.key" dans le dossier /etc/openvpn/easy-rsa/keys.
    • Il faut se trouver dans le dossier /etc/openvpn/easy-rsa.
      • openvpn --genkey --secret keys/ta.key

 8- Edition du fichier de configuration du serveur :

  • Copier :
    • cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
    • cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/
    • gunzip /etc/openvpn/server.conf.gz
  • Editer server.conf : nano /etc/openvpn/server.conf

local « IP du serveur VPN »
dev tun
proto tcp
port 1188

ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/NomduCertificat.crt
key /etc/openvpn/easy-rsa/keys/NomduCertificat.key
dh /etc/openvpn/easy-rsa/keys/dh1024.pem

server 10.8.0.0 255.255.255.0
ifconfig 10.8.0.1 10.8.0.2

push « redirect-gateway def1 »
push « route 10.8.0.1 255.255.255.255 » # route vers le serveur VPN
push « route 10.8.0.0 255.255.255.0 » # route vers le sous-réseau VPN
push « route 192.168.0.125 255.255.255.0 » #sous-réseau local – adaptez l’adresse IP locale de votre serveur
push « dhcp-option DNS 89.2.0.1 » # Par exemple le serveur dns primaire de Numericable

client-to-client

duplicate-cn

keepalive 10 120
comp-lzo

persist-key
persist-tun

status /var/log/openvpn-status.log
log /var/log/openvpn.log

 


  • Editer /etc/sysctl.conf afin d’autoriser le Forwarding IPV4 entre les deux réseaux :
    • nano /etc/sysctl.conf
    • Décommenter la ligne :
      • Avant : #net.ipv4.ip_forward=1
      • Après : net.ipv4.ip_forward=1
    • Lancer la commander : sysctl -p ou rebooter le serveur.
  • Règle Firewall : Merci pour à Open-Freax.
    • Editer le fichier /etc/firewall-openvpn-rules.sh : nano /etc/firewall-openvpn-rules.sh
      • #!/bin/sh
        iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source "IP de votre serveur VPN"
      • chmod 700 /etc/firewall-openvpn-rules.sh
      • chown root /etc/firewall-openvpn-rules.sh
    • Editer  : nano /etc/network/interfaces
      • En ajoutant cette ligne : pre-up /etc/firewall-openvpn-rules.sh entre iface eth0 inet static et address X.X.X.X
    • Reboot du serveur

9- Génération clé et certificat client :

  • cd /etc/openvpn/easy-rsa/
  • ./build-key gilles (par exemple)

Une fois tous les clients créés, il faut transférer dur le poste client:

  • ca.crt
  • USER.crt
  • USER.key
  • ta.key

10- Monitoring : Merci Troublenow

Créer le fichier openvpn-status en collant le texte ci-dessous : nano /usr/local/bin/openvpn-status


#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
STATUS = "/var/log/openvpn-status.log"
 
status_file = open(STATUS, 'r')
stats = status_file.readlines()
status_file.close()
 
hosts = []
 
headers = {
    'cn':    'Common Name',
    'virt':  'Virtual Address',
    'real':  'Real Address',
    'sent':  'Sent',
    'recv':  'Received',
    'since': 'Connected Since'
}
 
sizes = [
    (1<<50L, 'PB'),
    (1<<40L, 'TB'),
    (1<<30L, 'GB'),
    (1<<20L, 'MB'),
    (1<<10L, 'KB'),
    (1,       'B')
]
 
def byte2str(size):
    for f, suf in sizes:
        if size >= f:
            break
 
    return "%.2f %s" % (size / float(f), suf)
 
for line in stats:
    cols = line.split(',')
 
    if len(cols) == 5 and not line.startswith('Common Name'):
        host  = {}
        host['cn']    = cols[0]
        host['real']  = cols[1].split(':')[0]
        host['recv']  = byte2str(int(cols[2]))
        host['sent']  = byte2str(int(cols[3]))
        host['since'] = cols[4].strip()
        hosts.append(host)
 
    if len(cols) == 4 and not line.startswith('Virtual Address'):
        for h in hosts:
            if h['cn'] == cols[1]:
                h['virt'] = cols[0]
 
fmt = "%(cn)-25s %(virt)-18s %(real)-15s %(sent)13s %(recv)13s %(since)25s"
print fmt % headers
print "\n".join([fmt % h for h in hosts])

  • chmod 700 /usr/local/bin/openvpn-status
  • Pour visualiser lancer la commande :
    chmod 700 /usr/local/bin/openvpn-status

 La suite plus tard ……….

Primary Sidebar