ocservice: CLI-Tool zur Automatisierung von ocserv und easy-rsa
ocservice ist eine Sammlung von Bash-Skripten für das operative Management des ocserv VPN-Servers. Das Tool integriert easy-rsa für PKI-Operationen und automatisiert die Erstellung, Sperrung und CRL-Aktualisierung von Client-Zertifikaten. Es unterstützt Zertifikats-, Passwort- und gemischte Authentifizierungsmodi ohne zusätzliche Dienste wie Docker oder Datenbanken.
Die Skripte werden über die Kommandozeile ausgeführt und zeigen bei jedem Aufruf des Hauptmenüs den Serverstatus (Betriebszeit, Sitzungen, Datenverkehr, Fehler) an. Dies vereinfacht die Überwachung ohne separate occtl-Befehle.
Hauptfunktionen
Das Hauptskript ocservice bietet ein Menü mit aktuellem Status: aktive Sitzungen, RX/TX-Datenverkehr, gesperrte IPs, Authentifizierungsfehler.
Client-Zertifikate generieren
gen-client erstellt einen Benutzer mit Zertifikat:
- Fragt Name, Gültigkeitsdauer, Verbindungslimit ab.
- Generiert ein Zertifikat über easy-rsa.
- Exportiert als .p12 mit Passwort.
- Protokolliert Daten für die Client-Übergabe.
Benutzer mit Passwörtern
gen-login verwendet ocpasswd, um Konten im Passwortmodus zu erstellen. Nur verfügbar, wenn die Passwortauthentifizierung aktiviert ist.
Benutzerverwaltungszentrum
user-center zeigt eine Tabelle an:
| Benutzer | Online | Zertifikatablauf | Sperrpunkte | Limit |
|----------|--------|------------------|-------------|-------|
Für jeden:
- Verbindungsdetails.
- Bearbeitung der config-per-user.
- Beenden von Sitzungen.
- Zurücksetzen der Sperrpunkte.
- Löschung mit Zertifikatsperrung und CRL-Aktualisierung.
Installation und Einrichtung
Repository klonen und Installer ausführen:
git clone https://github.com/Ilyntiy/ocservice.git
cd ocservice
chmod +x install.sh
sudo ./install.sh
Der Installer:
- Liest Pfade aus ocserv.conf (ocpasswd, config-per-user).
- Erkennt Tarn-URL, falls aktiviert.
- Fragt Installationspräfix, Authentifizierungsmodus, Serveradresse ab.
- Erstellt ocservice.conf.
- Kopiert Skripte nach ~/bin/.
- Konfiguriert /etc/sudoers.d/ocservice mit Berechtigungen für occtl, ocpasswd, journalctl, systemctl.
Technische Umsetzung
Konfiguration
Eine einzelne ocservice.conf wird bei jedem Start eingelesen. Unterstützt beliebige ocserv-Pfade (/opt, Home-Verzeichnis).
Berechtigungen
Minimale sudo-Regeln nur für notwendige Befehle, ohne vollen Root-Zugriff.
Tarnung
Liest automatisch camouflage_secret aus ocserv.conf, um URLs mit Tokens zu generieren.
PKI-Operationen
- Zertifikatssperrung: easyrsa revoke.
- CRL-Aktualisierung: easyrsa gen-crl.
- ocserv liest crl.pem direkt aus pki/.
Systemvoraussetzungen
- ocserv aus Quellcode.
- easy-rsa 3.x.
- openssl.
- use-occtl = true in ocserv.conf.
Entwicklungspläne
- Automatische Namensgenerierung aus einer Datenbank.
- Sicherung von Konfigurationen, Zertifikaten, Benutzern.
- Zertifikatsverlängerung ohne Neuerstellung.
- Ablaufbenachrichtigungen.
- Telegram-Bot für die Verwaltung.
Wichtige Punkte
- Volle Integration mit easy-rsa: .p12 generieren, sperren, CRL ohne manuelle Befehle.
- Drei Authentifizierungsmodi ohne zusätzliche Infrastruktur.
- Serverstatus im Menü, user-center mit Aktionen (kick, Konfig bearbeiten).
- Installation in 4 Befehlen mit automatischer sudo-Einrichtung.
- Nur Standardtools, keine Docker/Datenbanken.
— Editorial Team
Noch keine Kommentare.