ocservice: Herramienta CLI para automatizar ocserv y easy-rsa
ocservice es un conjunto de scripts bash para la gestión operativa del servidor VPN ocserv. La herramienta se integra con easy-rsa para operaciones PKI, automatizando la generación de certificados de cliente, revocación y actualizaciones de CRL. Admite modos de autorización por certificado, contraseña y ambos, sin servicios adicionales como Docker o bases de datos.
Los scripts se ejecutan desde la línea de comandos, mostrando el estado del servidor (tiempo de actividad, sesiones, tráfico, errores) cada vez que se llama al menú principal. Esto simplifica el monitoreo sin comandos occtl separados.
Características principales
El script principal ocservice proporciona un menú con el estado actual: sesiones activas, tráfico RX/TX, IPs bloqueadas, errores de autorización.
Generación de certificados de cliente
gen-client crea un usuario con un certificado:
- Solicita nombre, período de validez, límite de conexión.
- Genera un certificado mediante easy-rsa.
- Exporta a .p12 con una contraseña.
- Registra datos para la entrega al cliente.
Usuarios con contraseñas
gen-login utiliza ocpasswd para crear cuentas en modo de contraseña. Disponible solo cuando la autorización por contraseña está habilitada.
Centro de gestión de usuarios
user-center muestra una tabla:
| Usuario | En línea | Vencimiento del certificado | Puntos de bloqueo | Límite |
|---------|----------|-----------------------------|-------------------|--------|
Para cada uno:
- Detalles de conexión.
- Edición de config-per-user.
- Expulsión de sesiones.
- Restablecimiento de puntos de bloqueo.
- Eliminación con revocación de certificado y actualización de CRL.
Instalación y configuración
Clona el repositorio y ejecuta el instalador:
git clone https://github.com/Ilyntiy/ocservice.git
cd ocservice
chmod +x install.sh
sudo ./install.sh
El instalador:
- Analiza las rutas de ocserv.conf (ocpasswd, config-per-user).
- Identifica la URL de camuflaje si está habilitada.
- Solicita prefijo de instalación, modo de autorización, dirección del servidor.
- Crea ocservice.conf.
- Copia scripts a ~/bin/.
- Configura /etc/sudoers.d/ocservice con permisos para occtl, ocpasswd, journalctl, systemctl.
Implementación técnica
Configuración
Un único ocservice.conf se carga en cada ejecución. Admite rutas arbitrarias de ocserv (/opt, directorio personal).
Permisos
Reglas mínimas de sudo solo para comandos necesarios, sin acceso root completo.
Camuflaje
Lee automáticamente camouflage_secret de ocserv.conf para generar URLs con tokens.
Operaciones PKI
- Revocación de certificados: easyrsa revoke.
- Actualización de CRL: easyrsa gen-crl.
- ocserv lee crl.pem directamente desde pki/.
Requisitos del sistema
- ocserv desde fuente.
- easy-rsa 3.x.
- openssl.
- use-occtl = true en ocserv.conf.
Planes de desarrollo
- Generación automática de nombres desde una base de datos.
- Copia de seguridad de configuraciones, certificados, usuarios.
- Renovación de certificados sin recreación.
- Notificaciones de vencimiento.
- Bot de Telegram para gestión.
Puntos clave
- Integración completa con easy-rsa: genera .p12, revoca, CRL sin comandos manuales.
- Tres modos de autorización sin infraestructura adicional.
- Estado del servidor en el menú, user-center con acciones (expulsar, editar configuración).
- Instalación en 4 comandos con configuración automática de sudo.
- Solo herramientas estándar, sin Docker/bases de datos.
— Editorial Team
Aún no hay comentarios.