ocservice: Narzędzie CLI do automatyzacji ocserv i easy-rsa
ocservice — zestaw skryptów bash do operacyjnego zarządzania serwerem VPN ocserv. Narzędzie integruje się z easy-rsa do pracy z PKI, automatyzuje generowanie certyfikatów klienckich, odwoływanie i aktualizację CRL. Obsługuje tryby autoryzacji cert, plain i both bez dodatkowych usług takich jak Docker czy bazy danych.
Skrypty uruchamiane są z wiersza poleceń, wyświetlają status serwera (czas pracy, sesje, ruch, błędy) przy każdym wywołaniu głównego menu. Ułatwia to monitorowanie bez osobnych poleceń occtl.
Główne funkcje
Główny skrypt ocservice udostępnia menu z aktualnym statusem: aktywne sesje, ruch RX/TX, zbanowane adresy IP, błędy autoryzacji.
Generowanie certyfikatów klienckich
gen-client tworzy użytkownika z certyfikatem:
- Pyta o nazwę, okres ważności, limit połączeń.
- Generuje certyfikat przez easy-rsa.
- Eksportuje do .p12 z hasłem.
- Loguje dane do wydania klientowi.
Użytkownicy z hasłem
gen-login używa ocpasswd do tworzenia kont w trybie plain. Dostępne tylko przy włączonej autoryzacji hasłem.
Centrum zarządzania użytkownikami
user-center wyświetla tabelę:
| Użytkownik | Online | Ważność cert | Punkty bana | Limit |
|------------|--------|--------------|-------------|-------|
Dla każdego:
- Szczegóły połączeń.
- Edycja config-per-user.
- Wyrzucanie sesji.
- Resetowanie punktów bana.
- Usuwanie z odwołaniem cert i aktualizacją CRL.
Instalacja i konfiguracja
Sklonuj repozytorium i uruchom instalator:
git clone https://github.com/Ilyntiy/ocservice.git
cd ocservice
chmod +x install.sh
sudo ./install.sh
Instalator:
- Parsuje ścieżki z ocserv.conf (ocpasswd, config-per-user).
- Określa camouflage URL, jeśli włączony.
- Pyta o prefiks instalacji, tryb autoryzacji, adres serwera.
- Tworzy ocservice.conf.
- Kopiuje skrypty do ~/bin/.
- Konfiguruje /etc/sudoers.d/ocservice z uprawnieniami do occtl, ocpasswd, journalctl, systemctl.
Implementacja techniczna
Konfiguracja
Pojedynczy ocservice.conf jest źródłowany przy każdym uruchomieniu. Obsługuje dowolne ścieżki ocserv (/opt, katalog domowy).
Uprawnienia dostępu
Minimalne reguły sudo tylko dla niezbędnych poleceń, bez pełnego dostępu root.
Kamuflaż
Automatyczne odczytywanie camouflage_secret z ocserv.conf do generowania URL z tokenem.
Praca z PKI
- Odwoływanie cert: easyrsa revoke.
- Aktualizacja CRL: easyrsa gen-crl.
- ocserv czyta crl.pem bezpośrednio z pki/.
Wymagania systemowe
- ocserv ze źródeł.
- easy-rsa 3.x.
- openssl.
- use-occtl = true w ocserv.conf.
Plany rozwoju
- Autogeneracja nazw z bazy.
- Backup konfigów, certyfikatów, użytkowników.
- Przedłużanie cert bez odtwarzania.
- Powiadomienia o wygaśnięciu.
- Bot Telegram do zarządzania.
Co jest ważne
- Pełna integracja z easy-rsa: gen .p12, revoke, CRL bez ręcznych poleceń.
- Trzy tryby autoryzacji bez dodatkowej infrastruktury.
- Status serwera w menu, user-center z akcjami (kick, edycja config).
- Instalacja w 4 poleceniach z autokonfiguracją sudo.
- Tylko standardowe narzędzia, bez Docker/Baz danych.
— Editorial Team
Brak komentarzy.