Przejdź do treści

~/linux cat cockpit-zarzadzanie-przez-przegl….md

Cockpit — zarządzanie serwerem Linux przez przeglądarkę: instalacja i konfiguracja

Cockpit pozwala zarządzać serwerami Linux z przeglądarki: usługi, logi, sieć, dyski, kontenery i VM. Instalacja na Debianie, Ubuntu, RHEL i bezpieczna konfiguracja.

CZCzarek Zawolski--aktualizacja=--czas=7 min--dział=Linux i DevOps
Panel administracyjny serwera Linux otwarty w przeglądarce internetowej
tldr.txt — W skrócie

~ xad tldr cockpit-zarzadzanie-przez-…

  • Cockpit to darmowy panel WWW do administracji serwerem Linux, działający na porcie 9090 i logujący przez zwykłe konta systemowe.
  • Instalacja to jedno polecenie (apt install cockpit lub dnf install cockpit) i włączenie gniazda cockpit.socket.
  • Z panelu zarządzasz usługami systemd, logami journald, siecią, dyskami, aktualizacjami, kontenerami Podman i maszynami wirtualnymi.
  • Cockpit nie zmienia konfiguracji „po swojemu” — używa tych samych narzędzi co terminal, więc można go łączyć z pracą w konsoli.
  • Nie wystawiaj portu 9090 do internetu: używaj VPN lub tunelu SSH i własnego certyfikatu TLS.
$ tree --spis-tresci

Cockpit to darmowy panel administracyjny, który pozwala zarządzać serwerem Linux przez przeglądarkę: sprawdzisz obciążenie, zrestartujesz usługę, przejrzysz logi, skonfigurujesz sieć i dyski, a nawet uruchomisz terminal — bez instalowania czegokolwiek na swoim komputerze. Instalacja to jedno polecenie, a panel jest dostępny pod adresem https://adres-serwera:9090.

Projekt jest rozwijany przy wsparciu Red Hata i dostępny w oficjalnych repozytoriach Fedory, RHEL i jego klonów, Debiana, Ubuntu, Arch Linuksa i openSUSE. Poniżej pokazuję, jak go zainstalować, co potrafi, jak go zabezpieczyć i kiedy lepiej sięgnąć po inne narzędzia do zarządzania serwerami Linux.

Czym jest Cockpit i jak działa

Cockpit to „cienka” nakładka na narzędzia, które już są w systemie. Gdy zatrzymujesz usługę w panelu, Cockpit wywołuje systemd, tak samo jak polecenie systemctl. Konfigurację sieci zmienia przez NetworkManager, dyski przez UDisks, a logi czyta z journald.

Z tej architektury wynikają trzy ważne cechy:

  • brak własnej bazy konfiguracji — możesz na zmianę używać panelu i terminala, a jedno nie „rozjedzie się” z drugim,
  • brak osobnych kont — logujesz się zwykłym użytkownikiem systemu przez PAM, a uprawnienia administracyjne dostajesz przez sudo lub polkit,
  • zerowe obciążenie w spoczynku — Cockpit jest uruchamiany przez systemd dopiero wtedy, gdy ktoś połączy się z portem 9090, i wyłącza się po zakończeniu sesji.

Instalacja Cockpita na Debianie, Ubuntu, RHEL i innych dystrybucjach

Debian i Ubuntu

sudo apt update
sudo apt install cockpit

Na Debianie i Ubuntu LTS wersja z głównego repozytorium bywa starsza. Nowszą znajdziesz w repozytorium backports (na Debianie trzeba je najpierw dodać do źródeł APT):

. /etc/os-release
sudo apt install -t ${VERSION_CODENAME}-backports cockpit

RHEL, Rocky Linux, AlmaLinux, CentOS Stream i Fedora

Na serwerowych instalacjach RHEL i pochodnych Cockpit jest często zainstalowany fabrycznie — wtedy przy logowaniu przez SSH widzisz komunikat zachęcający do włączenia konsoli webowej. Jeśli go nie ma:

sudo dnf install cockpit
sudo systemctl enable --now cockpit.socket
sudo firewall-cmd --permanent --add-service=cockpit
sudo firewall-cmd --reload

Jeśli korzystasz z darmowej subskrypcji deweloperskiej RHEL, o której pisaliśmy w tekście No-cost Red Hat, Cockpit jest tam pełnoprawnym, wspieranym elementem systemu (pod nazwą „RHEL web console”).

Arch Linux i openSUSE

sudo pacman -S cockpit          # Arch Linux
sudo zypper install cockpit     # openSUSE
sudo systemctl enable --now cockpit.socket

Pierwsze logowanie

  1. Otwórz w przeglądarce https://IP-serwera:9090.
  2. Zaakceptuj ostrzeżenie o certyfikacie (domyślnie Cockpit generuje certyfikat samopodpisany — dalej pokazuję, jak to zmienić).
  3. Zaloguj się kontem użytkownika, który ma uprawnienia sudo.
  4. Jeśli na górze widzisz „Ograniczony dostęp” (Limited access), kliknij przycisk i potwierdź hasłem, aby włączyć dostęp administracyjny.

Wskazówka: Logowanie jako root jest na wielu dystrybucjach zablokowane plikiem /etc/cockpit/disallowed-users. To dobra praktyka — zamiast zdejmować blokadę, loguj się imiennym kontem z sudo, wtedy w logach widać, kto co zmieniał.

Co potrafi Cockpit: przegląd modułów

Po zalogowaniu po lewej stronie zobaczysz menu. Zestaw pozycji zależy od zainstalowanych pakietów — część modułów to osobne paczki.

Moduł w menuDo czego służyPakiet
Przegląd (Overview)obciążenie CPU, RAM, dysków, sieci, informacje o sprzęcie, nazwa hosta, czascockpit-system
Dzienniki (Logs)przeglądanie i filtrowanie journald według priorytetu, usługi, czasucockpit-system
Pamięć masowa (Storage)partycje, systemy plików, RAID, LVM, LUKS, NFS, Stratiscockpit-storaged
Sieć (Networking)interfejsy, adresy IP, mostki, bonding, VLAN, zapora firewalldcockpit-networkmanager
Kontenery Podmanobrazy, kontenery, pody, logi kontenerówcockpit-podman
Maszyny wirtualnetworzenie i obsługa VM przez libvirt/KVM, konsola VNCcockpit-machines
Konta (Accounts)użytkownicy, grupy, hasła, klucze SSHcockpit-system
Usługi (Services)jednostki systemd, timery, gniazda, uruchamianie przy starciecockpit-system
Aktualizacje oprogramowaniainstalacja poprawek, automatyczne aktualizacjecockpit-packagekit
Pliki (File browser)przeglądanie, wysyłanie i edycja plikówcockpit-files
Terminalpełna konsola powłoki w przeglądarcecockpit-system

Moduł maszyn wirtualnych dobrze sprawdza się na małym hoście KVM, gdy nie potrzebujesz klastra. Jeśli dopiero zaczynasz z wirtualizacją, przeczytaj, czym jest maszyna wirtualna, a przy większym środowisku rozważ dedykowaną platformę jak Proxmox.

Ważne: Cockpit obsługuje kontenery przez Podmana. Dawny moduł dla Dockera (cockpit-docker) został porzucony wiele lat temu i nie jest dostępny w aktualnych dystrybucjach.

Dodatkowe moduły tworzą też firmy zewnętrzne, np. 45Drives udostępnia rozszerzenia do udostępniania plików przez Samba/NFS i nawigacji po systemie plików. Instaluj je tylko z zaufanych repozytoriów — moduł Cockpita działa z uprawnieniami zalogowanego administratora.

Zarządzanie kilkoma serwerami z jednego miejsca

Starsze wersje Cockpita miały pulpit z wieloma serwerami i przełącznik hostów, przez który łączyło się z kolejnymi maszynami przez SSH. Ze względów bezpieczeństwa (wszystkie hosty działały w jednym kontekście przeglądarki) ta funkcja została ograniczona: w nowych wydaniach przełącznik hostów jest domyślnie wyłączony i można go włączyć opcją AllowMultiHost w /etc/cockpit/cockpit.conf.

Zalecane dziś podejścia:

  • Cockpit na każdym serwerze i osobna karta przeglądarki dla każdego z nich — najprostsze i najbezpieczniejsze,
  • logowanie do innego hosta z ekranu logowania — w „Innych opcjach” podajesz adres maszyny, a Cockpit łączy się z nią przez SSH (na serwerze docelowym wystarczy pakiet cockpit-bridge, bez otwartego portu 9090),
  • Cockpit Client — aplikacja desktopowa (Flatpak), która łączy się z serwerami przez SSH bez uruchamiania usługi WWW na serwerach.

Jeśli serwerów jest kilkanaście lub więcej, panel klikany ręcznie przestaje mieć sens. Wtedy konfigurację opisuje się kodem, np. w Ansible, a Cockpit zostaje narzędziem do szybkiego podglądu i diagnozy.

Bezpieczna konfiguracja Cockpita

Panel administracyjny z dostępem do terminala to łakomy kąsek dla atakujących. Kilka ustawień robi dużą różnicę.

Nie wystawiaj portu 9090 do internetu

Najlepiej, by Cockpit był dostępny tylko z sieci wewnętrznej lub przez VPN. Jeśli łączysz się z zewnątrz, użyj tunelu SSH:

ssh -L 9090:localhost:9090 uzytkownik@serwer

i otwórz w przeglądarce https://localhost:9090. W zaporze firewalld możesz ograniczyć dostęp do konkretnej podsieci:

sudo firewall-cmd --permanent --remove-service=cockpit
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.0.0.0/24" service name="cockpit" accept'
sudo firewall-cmd --reload

Własny certyfikat TLS

Cockpit szuka certyfikatów w katalogu /etc/cockpit/ws-certs.d/ i używa pliku ostatniego alfabetycznie. Wgraj tam parę plików z tą samą nazwą i rozszerzeniami .crt i .key (np. z Let’s Encrypt lub firmowego CA), a potem zrestartuj usługę:

sudo cp serwer.crt /etc/cockpit/ws-certs.d/50-serwer.crt
sudo cp serwer.key /etc/cockpit/ws-certs.d/50-serwer.key
sudo systemctl restart cockpit
sudo /usr/lib/cockpit/cockpit-certificate-ensure --check

Ścieżka do cockpit-certificate-ensure może się różnić między dystrybucjami (np. /usr/libexec/cockpit-certificate-ensure na RHEL).

Zmiana portu

Port ustawia jednostka cockpit.socket. Uruchom sudo systemctl edit cockpit.socket i wpisz:

[Socket]
ListenStream=
ListenStream=9443

Następnie sudo systemctl daemon-reload i sudo systemctl restart cockpit.socket. Na systemach z SELinux trzeba jeszcze oznaczyć nowy port: sudo semanage port -a -t websm_port_t -p tcp 9443, a w zaporze otworzyć go zamiast usługi cockpit.

Dodatkowe zabezpieczenia

  • uwierzytelnianie dwuskładnikowe przez moduł PAM (np. pam_google_authenticator) — Cockpit wyświetli pole na kod jednorazowy,
  • automatyczne wylogowanie bezczynnej sesji: w /etc/cockpit/cockpit.conf sekcja [Session] i opcja IdleTimeout=15 (minuty),
  • blokada prób zgadywania haseł, np. przez fail2ban lub pam_faillock.

Uwaga: Kto ma dostęp do Cockpita z uprawnieniami administratora, ma pełny dostęp do serwera — łącznie z terminalem roota. Traktuj to konto tak samo jak dostęp SSH z sudo.

Cockpit na tle innych narzędzi do zarządzania serwerami Linux

NarzędzieDla kogoMocne stronyOgraniczenia
Cockpitpojedyncze serwery, małe środowiska, mniej doświadczeni administratorzylekki, zgodny z narzędziami systemu, dobra obsługa dysków, VM i Podmanabrak modułów do konfiguracji konkretnych usług (WWW, poczta, DNS)
Webminadministratorzy wolący wszystko „wyklikać”ogromna liczba modułów do usługciężki, starszy interfejs, sam edytuje pliki konfiguracyjne
SSH + terminalkażdy administratorpełna kontrola, działa wszędziewymaga znajomości poleceń Linuksa
Ansible i inne narzędzia IaCwiele serwerów, zespołypowtarzalność, kontrola wersji konfiguracjipróg wejścia, nie służy do podglądu „na żywo”
Proxmox VE, panele hostingowewirtualizacja, hosting WWWwyspecjalizowane funkcjenie są ogólnym panelem do dowolnego serwera

W praktyce te narzędzia się uzupełniają. Cockpit świetnie nadaje się do szybkiej diagnozy („co zjada RAM?”, „dlaczego usługa nie wstała po restarcie?”), do zarządzania dyskami i LVM bez ryzyka literówki w poleceniu oraz do oddania podstawowej administracji osobie, która nie czuje się pewnie w terminalu.

Najczęstsze problemy z Cockpitem

  • Strona pod adresem :9090 się nie otwiera — sprawdź systemctl status cockpit.socket i czy port jest otwarty w zaporze (sudo ss -tlnp | grep 9090).
  • Logowanie odrzucone mimo poprawnego hasła — użytkownik może być na liście /etc/cockpit/disallowed-users albo konto jest zablokowane lub ma wygasłe hasło.
  • Brak modułu w menu (np. Kontenery, Maszyny wirtualne) — doinstaluj pakiet cockpit-podman lub cockpit-machines i odśwież stronę.
  • Sieć „niezarządzana” w zakładce Sieć — interfejsy skonfigurowane przez /etc/network/interfaces (Debian) lub Netplan z backendem systemd-networkd nie są obsługiwane przez NetworkManager, więc Cockpit może je tylko wyświetlić.
  • Brak zakładki aktualizacji oprogramowania — moduł korzysta z PackageKit i jest osobnym pakietem cockpit-packagekit; bywa pomijany, gdy instalujesz Cockpita z opcją --no-install-recommends.

~ man faq

Najczęściej zadawane pytania

Do czego służy Cockpit w Linuksie?

Cockpit to webowa konsola administracyjna. Pozwala z poziomu przeglądarki monitorować obciążenie serwera, zarządzać usługami, użytkownikami, siecią, dyskami, aktualizacjami, kontenerami i maszynami wirtualnymi oraz korzystać z terminala.

Na jakim porcie działa Cockpit?

Domyślnie na porcie TCP 9090, czyli pod adresem https://adres-serwera:9090. Port można zmienić, nadpisując ustawienia jednostki cockpit.socket w systemd.

Jak zalogować się do Cockpita jako root?

Na wielu dystrybucjach logowanie roota jest domyślnie zablokowane w pliku /etc/cockpit/disallowed-users. Zaloguj się jako zwykły użytkownik z uprawnieniami sudo i włącz w panelu dostęp administracyjny.

Czy Cockpit jest bezpieczny?

Tak, o ile nie jest wystawiony bezpośrednio do internetu. Korzysta z PAM i zwykłych uprawnień systemowych, ale jak każdy panel logowania bywa celem ataków, więc najlepiej udostępniać go przez VPN lub tunel SSH.

Cockpit czy Webmin — co wybrać?

Cockpit jest lżejszy, nowocześniejszy i nie modyfikuje plików konfiguracyjnych własnymi mechanizmami. Webmin ma więcej modułów do konkretnych usług, np. serwerów pocztowych i DNS, ale jest cięższy i bardziej złożony.

Ten artykuł jest częścią tematów

CZ

$ whoami

Czarek Zawolski

Założyciel i redaktor XAD.pl. Pisze o sieciach, bezpieczeństwie IT, administracji systemami Windows i Linux oraz o sprzęcie, który sprawia ludziom problemy na co dzień.

~ ls ../podobne