Kleines OpenVPN Howto

  • Moin,
    ein kleines OpenVPN Howto...
    Falls es jemand gebrauchen kann...
    Es richtet sich an Leute, die wissen, wie in etwa OpenSSL und OpenVPN funktionieren... aber bei Fragen könnt ihr ja hier posten...

    0) Im Kernel MUSS der TUN-Device-Support aktiv sein!

    1) OpenVPN installieren

    Zitat


    Pegasus / # emerge -av openvpn

    These are the packages that would be merged, in order:

    Calculating dependencies... done!
    [ebuild N ] net-misc/openvpn-2.0.9 USE="iproute2 ssl threads -examples -minimal -pam -passwordsave (-selinux) -static" 654 kB

    Total: 1 package (1 reinstall), Size of downloads: 654 kB

    Would you like to merge these packages? [Yes/No]

    2) OpenVPN konfigurieren

    Für die folgenden Schritte nutzen wir diese OpenSSLkonfiguration:

    3) CA anlegen

    Code
    /usr/bin/openssl dhparam -out /etc/openvpn/ssl/dh.param 4096
    
    
    /usr/bin/openssl req -new -x509 -config /etc/ssl/openssl.cnf -days 10000 -extensions v3_ca -keyout /etc/openvpn/ssl/CA.key -out /etc/openvpn/ssl/CA.crt
    
    
    WICHTIG: Als CN (Common Name) die Beschreibung eurer CA angeben. Z.B.: My OpenVPN CA

    4) OpenVPN Serverzertifikat erstellen und signieren

    Code
    /usr/bin/openssl genrsa -out /etc/openvpn/ssl/server.key 4096
    
    
    /usr/bin/openssl req -new -nodes -config /etc/ssl/openssl.cnf -extensions v3_req -key /etc/openvpn/ssl/server.key -out /etc/openvpn/ssl/server.csr
    
    
    /usr/bin/openssl ca -config /etc/ssl/openssl.cnf -out /etc/openvpn/ssl/server.crt -extensions server -in /etc/openvpn/ssl/server.csr
    
    
    WICHTIG: Als CN (Common Name) die Domain eures OpenVPN Servers angeben, wie z.B.: vpn.meine-domain.de


    5) OpenVPN Clientzertifikate erstellen und signieren (Diesen Schritt für jeden User machen!)

    Code
    /usr/bin/openssl genrsa -des3 -out clients/User1.key 4096
    
    
    /usr/bin/openssl req -new -config clients/openssl.cnf -key /home/<username>/User1.key -out /home/<username>/User1.csr
    
    
    /usr/bin/openssl ca -config /etc/ssl/openssl.cnf -out /home/<username>/User1.crt -in /home/<username>/User1.csr
    
    
    WICHTIG: Als CN (Common Name) keine Domain angeben. Am Besten den Usernamen.

    6) Mit einem Script bei OpenVPN den CN überprüfen
    Wie oben in der Config angegeben, gibt es eine checkCN.sh und eine checkCN.txt.

    Vorweg: Das Script hab ich von ovpnCNcheck — an OpenVPN tls-verify script | Robert Penz Blog

    Das Script prüft jedes Zertifikat vom Client, ob der eingetragene CN auch in der checkCN.txt steht. Damit kann man einzelne Zertifikate auch speren, ohne sofort eine neue CA anzulegen.

    Mark IV Style Motherfucker!

    Einmal editiert, zuletzt von Alpha (18. September 2009 um 20:41)

  • Abend,

    Coole Sache. Hab mir zwar schon was eingerichtet aber werde mich gleich mal dran machen und deins durchackern :)

    Thx für das HowTo,
    Chris

    --

    "Nichts auf der Welt ist so gerecht verteilt wie der Verstand. Denn jedermann ist überzeugt, daß er genug davon habe."(René Descartes)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!