Icon Rufen Sie uns an
+49 441.309197-69 +49 441.309197-69
 
DE

OpenVPN4UCS - neue Features

Posted by Fedor Scholz on Wednesday, July 30, 2014

OpenVPN4UCS - neue Features

Unsere OpenVPN Integration für den Univention Corporate Server ist nun in einer neuen Version verfügbar, welche kleine Verbesserungen und ein neues wichtiges Feature mit sich bringt. Das Paket kann in Zukunft über das Univention App Center installiert bzw. aktualisiert werden.

Es gibt jetzt eine Option für feste IP-Adressen, so dass ein Benutzer immer die gleiche IP Adresse zugewiesen bekommt, wenn er sich mit dem VPN verbindet. Dies wird über ein listener script realisiert, welches wiederum das sogenannte client-config-directory pflegt. Dabei handelt es sich um eine Option von OpenVPN, welche es ermöglicht Einstellungen an bestimmten Benutzern vorzunehmen, welche sich gerade mit dem VPN verbinden.

Nach dem Speichern legt das listener script dann für jeden Benutzer einen kleinen Konfigurationsabschnitt im entsprechenden client-config-directory ab, in welchem die IP-Adresse festgelegt wird. Hier ein kleines Beispiel für eine solche Datei:

# cat /etc/openvpn/ccd-17777/testuser1
ifconfig-push 10.0.1.2 255.255.255.0

Um zu verhindern, dass mehrere Benutzer die gleiche IP-Adresse erhalten, werden die vergebenen Adressen in einer weiteren Liste mitgeführt. Dies hat den zusätzlichen Vorteil, dass die Einstellungen nach versehentlichem Löschen des client-config-directory wiederhergestellt werden können. Solch eine Liste kann beispielsweise so aussehen:

# cat /etc/openvpn/ips-17777
testuser1 10.0.1.2
testuser2 10.0.1.11
testuser3 10.0.1.29

Ist diese Option aktiviert während ein neuer Benutzer angelegt wird, sucht das listener script eine neue Adresse, welche noch nicht vergeben wurde und legt die entsprechende Datei an:

ip_map = load_ip_map(fn_ips)
for (name, ip) in ip_map:
    if name == client_cn:
        return
ip = generate_ip(network, ip_map)
ip_map.append((client_cn, ip))
write_ip_map(ip_map, fn_ips)

line = "ifconfig-push " + ip + " " + netmask
write_rc(line, ccd + client_cn + ".openvpn")

Sollte sich im späteren Verlauf durch entsprechende Konfiguration das Transfernetz ändern, werden alle Adressen an das neue Netzwerk anpasst. Natürlich kann das client-config-directory auch für andere, eigene Optionen genutzt werden, welche nicht von der Univention Management Console (UMC) abgedeckt werden. Hierfür lohnt sich unter Umständen ein Blick in das OpenVPN Handbuch.

Die wichtigste Änderung betrifft wohl die gezielte Vergabe von IP-Adressen an bestimmte Benutzer. Ein Administrator kann über die UMC eine Liste von Tupeln aus Benutzernamen und IP-Adresse am entsprechenden Serverobjekt pflegen. Hierfür wird der oben beschriebenen Mechanismus genutzt, allerdings haben die angegebenen Tupel natürlich Vorrang: Weist der Administrator einem Benutzer eine IP-Adresse zu, welche durch die Option 'fixe Adressen' bereits von einem anderen Benutzer genutzt wird, bekommt der alte Benutzer eine neue freie Adresse aus dem Pool.