Aktualizacja BSNM – Architektura demona, wirtualizacja Bhyve i Dual DKIM (04.10.2026)

Zgodnie z założeniami opisanymi w poprzednim wpisie, obecnie główny nacisk położyłem na logikę wykonawczą systemu – demona C++, który stanowi serce całego panelu hostingowego. Równolegle, pomyślnie wdrożona wcześniej infrastruktura pocztowa, otrzymała krytyczną aktualizację bezpieczeństwa.

Aktualizacja infrastruktury pocztowej – Dual DKIM

Zanim przejdę do architektury panelu, krótka aktualizacja w module pocztowym. W odpowiedzi na coraz bardziej rygorystyczne polityki antyspamowe globalnych dostawców (m.in. Google, Microsoft), zaimplementowałem architekturę Dual DKIM. Domyślny, 1024-bitowy klucz został zdeprecjonowany. Zastąpiłem go silnym kluczem RSA 2048-bit, a jako mechanizm przyszłościowy system równolegle podpisuje wiadomości nowym standardem opartym na kryptografii krzywych eliptycznych (Ed25519). Całość została zintegrowana w skryptach instalacyjnych, co gwarantuje pełną, natywną zgodność z protokołami DMARC przy tworzeniu każdej nowej domeny.

Serce systemu – Demon C++ i Architektura IPC

Zgodnie z zapowiedzią, właściwą pracę wykonawczą w panelu przejął natywny demon napisany w C++. Został zaprojektowany z rygorystycznym zachowaniem zasady jednej odpowiedzialności (Single Responsibility Principle) oraz ukierunkowaniem na wydajność.

  • Asynchroniczny IPC: Komunikacja między lekkim panelem WWW (PHP/HTMX) a demonem C++ odbywa się wyłącznie poprzez współdzieloną bazę SQLite. Klatka WWW zapisuje zadanie, a demon działający na hoście wyłapuje je, weryfikuje i bezpiecznie wykonuje, odsyłając status z powrotem do bazy.
  • Wydajna pętla zdarzeń: Demon korzysta z natywnego mechanizmu kqueue, minimalizując narzut na procesor. Zadania systemowe są kolejkowane i realizowane bez blokowania interfejsu panelu.
  • Izolacja modułów: Kod C++ został podzielony na hermetyczne przestrzenie nazw (Internal Linkage). Główne funkcje orkiestrujące korzystają z niezależnych, odizolowanych modułów pomocniczych (np. parsery JSON, modyfikacje plików .conf, interakcje z powłoką). Eliminuje to ryzyko długu technologicznego przy dalszej rozbudowie panelu.

Moduł VPS – Wirtualizacja Bhyve i ZFS Thin-Provisioning

Pierwszym złożonym elementem panelu, który został w pełni spięty z demonem C++, jest moduł zarządzania maszynami wirtualnymi oparty na hipernadzorcy Bhyve. Moduł udostępnia z poziomu przeglądarki funkcje takie jak:

  • Obrazy Master i Klonowanie (ZFS): System pobiera i tworzy bazowe zrzuty dysków (snapshots) z wybranych dystrybucji (np. Debian, AlmaLinux, FBSD). Tworzenie nowej maszyny odbywa się w ułamku sekundy dzięki natywnemu klonowaniu wolumenów ZFS (zvol).
  • Zero-Touch Provisioning (Cloud-Init): Inicjalizacja środowiska odbywa się bez ingerencji człowieka. Demon C++ w locie generuje pliki metadanych (Cloud-Init) i montuje je jako wirtualne napędy ISO. Maszyna podczas pierwszego startu sama konfiguruje interfejsy sieciowe, adresację IP, trasowanie, bramy domyślne oraz autoryzację SSH.
  • Skalowanie pionowe (Vertical Scaling): Panel umożliwia zmianę przydziału CPU, RAM i wielkości dysku w trybie offline. Wdrożyłem przy tym krytyczne zabezpieczenie architektury wirtualizacji – przestrzeń dyskową można skalować wyłącznie w górę. Interfejs oraz logika C++ globalnie blokują możliwość zmniejszenia ZVOLa, chroniąc systemy plików na maszynach-gościach przed korupcją danych i uszkodzeniem tabeli partycji. W przypadku gości z ZFS zapobiega to trwałemu uszkodzeniu bloków.
  • Live Monitoring: Demon w sposób ciągły monitoruje system. Wyciąga z hosta realne zużycie pamięci (RSS) z procesów bhyve, statystyki zajętości CPU oraz faktyczną zajętość miejsca dyskowego z puli ZFS, odsyłając te dane na żywo do interfejsu HTMX z uwzględnieniem przydzielonych maszynie limitów sprzętowych.

Co dalej?

Architektura bazowa (Frontend HTMX + Backend C++ SQLite) sprawdziła się w warunkach testowych i zachowuje wzorową wydajność. Skoro zarządzanie najcięższym kalibrem (wirtualnymi maszynami) działa stabilnie, w następnym etapie przejdę do oskryptowania lżejszych usług. W planach jest moduł automatyzacji tworzenia natywnych klatek (Jails) dla klasycznego hostingu WWW (stos Nginx + PHP-FPM) oraz moduł pozwalający na łatwe i zautomatyzowane zarządzanie strefami w serwerze DNS.

Przegląd prywatności

Ta strona korzysta z ciasteczek, aby zapewnić Ci najlepszą możliwą obsługę. Informacje o ciasteczkach są przechowywane w przeglądarce i wykonują funkcje takie jak rozpoznawanie Cię po powrocie na naszą stronę internetową i pomaganie naszemu zespołowi w zrozumieniu, które sekcje witryny są dla Ciebie najbardziej interesujące i przydatne.