ocservice : Outil CLI pour automatiser ocserv et easy-rsa
ocservice est un ensemble de scripts bash pour la gestion opérationnelle du serveur VPN ocserv. L'outil s'intègre à easy-rsa pour les opérations PKI, automatisant la génération de certificats clients, leur révocation et les mises à jour de la CRL. Il prend en charge les modes d'autorisation par certificat, par mot de passe, ou les deux, sans services supplémentaires comme Docker ou des bases de données.
Les scripts s'exécutent depuis la ligne de commande, affichant l'état du serveur (temps de fonctionnement, sessions, trafic, erreurs) à chaque appel du menu principal. Cela simplifie la surveillance sans commandes occtl séparées.
Fonctionnalités principales
Le script principal ocservice propose un menu avec l'état actuel : sessions actives, trafic RX/TX, IP bannies, erreurs d'autorisation.
Génération de certificats clients
gen-client crée un utilisateur avec un certificat :
- Demande le nom, la période de validité, la limite de connexions.
- Génère un certificat via easy-rsa.
- Exporte en .p12 avec un mot de passe.
- Enregistre les données pour la livraison au client.
Utilisateurs avec mots de passe
gen-login utilise ocpasswd pour créer des comptes en mode simple. Disponible uniquement lorsque l'autorisation par mot de passe est activée.
Centre de gestion des utilisateurs
user-center affiche un tableau :
| Utilisateur | En ligne | Expiration certificat | Points de bannissement | Limite |
|-------------|----------|----------------------|------------------------|--------|
Pour chacun :
- Détails de connexion.
- Édition de config-per-user.
- Expulsion des sessions.
- Réinitialisation des points de bannissement.
- Suppression avec révocation du certificat et mise à jour de la CRL.
Installation et configuration
Clonez le dépôt et exécutez l'installateur :
git clone https://github.com/Ilyntiy/ocservice.git
cd ocservice
chmod +x install.sh
sudo ./install.sh
L'installateur :
- Analyse les chemins depuis ocserv.conf (ocpasswd, config-per-user).
- Identifie l'URL de camouflage si activée.
- Demande le préfixe d'installation, le mode d'autorisation, l'adresse du serveur.
- Crée ocservice.conf.
- Copie les scripts dans ~/bin/.
- Configure /etc/sudoers.d/ocservice avec les permissions pour occtl, ocpasswd, journalctl, systemctl.
Implémentation technique
Configuration
Un seul fichier ocservice.conf est chargé à chaque exécution. Prend en charge des chemins ocserv arbitraires (/opt, répertoire personnel).
Permissions
Règles sudo minimales uniquement pour les commandes nécessaires, sans accès root complet.
Camouflage
Lit automatiquement camouflage_secret depuis ocserv.conf pour générer des URL avec jetons.
Opérations PKI
- Révocation de certificat : easyrsa revoke.
- Mise à jour de la CRL : easyrsa gen-crl.
- ocserv lit directement crl.pem depuis pki/.
Prérequis système
- ocserv depuis les sources.
- easy-rsa 3.x.
- openssl.
- use-occtl = true dans ocserv.conf.
Plans de développement
- Génération automatique de noms depuis une base de données.
- Sauvegarde des configurations, certificats, utilisateurs.
- Renouvellement de certificats sans recréation.
- Notifications d'expiration.
- Bot Telegram pour la gestion.
Points clés
- Intégration complète avec easy-rsa : génération .p12, révocation, CRL sans commandes manuelles.
- Trois modes d'autorisation sans infrastructure supplémentaire.
- État du serveur dans le menu, user-center avec actions (expulsion, édition de config).
- Installation en 4 commandes avec configuration sudo automatique.
- Seuls des outils standard, pas de Docker/bases de données.
— Editorial Team
Aucun commentaire pour le moment.