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 :

1
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

1
 /etc/openvpn/easy-rsa/vars :

1
nano /etc/openvpn/easy-rsa/vars



1
2
3
4
5
6
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

1
 - Initialiser les variables :
  • 1
     

    cd /etc/openvpn/easy-rsa/

  • source vars
  • ./clean-all

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

  • 1
     Génération du <span style="color: #99cc00;">certificat racine</span> "ca.cert" et de la <span style="color: #99cc00;">clé d'autorité de certification racine</span> "ca.key" dans le dossier /etc/openvpn/easy-rsa/keys.
    • ./build-ca

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

  • 1
    Génération du <span style="color: #99cc00;">certificat racine</span> "Nomduserveur.cert" et de la <span style="color: #99cc00;">clé d'autorité de certification racine</span> "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
    1
    "

    dh1024.pem

    1
    "
    1
    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

1
"

Man in the middle

1
"

.

  • Génération d’une clé
    1
    "

    ta.key

    1
    "
    1
    dans le dossier /etc/openvpn/easy-rsa/keys

    .

    • Il faut se trouver dans le dossier /etc/openvpn/easy-rsa.
      • 1
        <span class="text">openvpn --genkey --secret keys/ta.key</span>

 8- Edition du fichier de configuration du serveur :

  • Copier :
    • 
      
      
      1
      cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
    • 
      
      
      1
      cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/
    • 
      
      
      1
      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 :
      1
      <span class="text">sysctl -p</span>

      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"
      • 
        
        1
        <span class="text">chmod 700 /etc/firewall-openvpn-rules.sh</span>
      • 
        
        1
        <span class="text">chown root /etc/firewall-openvpn-rules.sh</span>
    • Editer  :
      
      
      1
      <span class="text">nano /etc/network/interfaces</span>
      • En ajoutant cette ligne :
        1
        <span class="text">pre-up /etc/firewall-openvpn-rules.sh</span>

        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 ……….