Instalacja i zabezpieczenie Webmin na Ubuntu 24.04
Instrukcja instalacji Webmin na Ubuntu 24.04 wraz z konfiguracją bezpieczeństwa. Dowiedz się, jak wdrożyć certyfikat Let's Encrypt, 2FA, Fail2ban oraz ograniczyć dostęp do portu 10000.
Co budujesz
Webmin to panel sterowania oparty na przeglądarce, który umożliwia zarządzanie całym serwerem Linux, użytkownikami, pakietami, zadaniami cron, firewallem, Apache, BIND, dyskami oraz setkami innych modułów. Dostęp do niego odbywa się przez HTTPS na porcie 10000. Instalacja składa się z trzech poleceń i zajmuje około minuty. Powodem, dla którego ten przewodnik poświęca większość miejsca drugiej części, jest fakt, że Webmin loguje się jako root i posiada pełne uprawnienia użytkownika root. Niezabezpieczony lub nieautoryzowany Webmin nie jest jedynie „ryzykiem w zarządzaniu”; to pełne przejęcie serwera z wystawionym panelem logowania. Dlatego zainstaluj go w dziesięć minut, a następnie poświęć resztę godziny na upewnienie się, że tylko Ty masz do niego dostęp.
Wymagania wstępne i jedno szczere ostrzeżenie
Świeża instancja Ubuntu 24.04 na KVM VPS z dostępem do konta root lub użytkownika z uprawnieniami sudo. Webmin jest lekki i oparty na Perl; 1 GB pamięci RAM to ilość wystarczająca, a w stanie spoczynku narzędzie zużywa znacznie mniej niż ćwierć gigabajta. Usługa nasłuchuje na porcie TCP 10000 za pośrednictwem własnego, wbudowanego serwera WWW (miniserv.pl), a nie Apache czy nginx, więc nie ma potrzeby wcześniejszej instalacji żadnego innego oprogramowania.
Przed rozpoczęciem należy podjąć dwie decyzje. Po pierwsze, kwestia konta, za pomocą którego następuje logowanie: Webmin uwierzytelnia użytkowników w oparciu o konta systemowe Unix poprzez PAM, więc logujesz się jako root lub użytkownik z grupy sudo, używając hasła systemowego tego konta. Obrazy systemów w chmurze zazwyczaj wykorzystują wyłącznie klucze SSH bez ustawionego hasła dla domyślnego użytkownika, a Webmin nie pozwala na logowanie na konta bez hasła. Najpierw ustaw hasło za pomocą sudo passwd youruser, w przeciwnym razie logowanie zakończy się niepowodzeniem niezależnie od wprowadzonych danych.
Po drugie, oto ostrzeżenie: nie otwieraj portu 10000 na świat bez dodatkowych zabezpieczeń. Zdecyduj już teraz, czy będziesz łączyć się z Webmin przez tunel SSH (zalecane, brak wystawionych usług), czy ograniczysz dostęp wyłącznie do własnego adresu IP. Ta decyzja determinuje każdy kolejny krok, dlatego zapoznaj się z obiema opcjami, zanim skonfigurujesz firewall.
Instalacja Webmin z oficjalnego repozytorium
Webmin udostępnia podpisane repozytorium apt. Skrypt instalacyjny dodaje repozytorium oraz jego klucz podpisu GPG, dzięki czemu przyszłe uruchomienia apt upgrade pobierają Webmin tak samo jak każdy inny pakiet. Pozwala to na otrzymywanie uwierzytelnionych aktualizacji zamiast pobranego pliku .deb, który nie posiada mechanizmu samoczynnej aktualizacji.
curl -o webmin-setup-repo.sh https://raw.githubusercontent.com/webmin/webmin/master/webmin-setup-repo.sh
sudo sh webmin-setup-repo.shSkrypt wyświetla planowane operacje i prosi o potwierdzenie Setup Webmin stable repository? (y/N), należy odpowiedzieć y. Po zakończeniu pracy skryptu należy zainstalować pakiet. Flaga --install-recommends pobiera wspólne zależności modułów Perl i SSL, co zapobiega błędom braku bibliotek w poszczególnych modułach w przyszłości.
sudo apt-get install --install-recommends webminWebmin zmieniał już nazwę tego skryptu, a starsze poradniki odwołują się do setup-repos.sh. Jeśli surowy adres URL zwraca błąd 404, należy pobrać aktualne polecenie bezpośrednio ze strony webmin.com/download, zamiast polegać na konkretnej nazwie pliku. Poprawna instalacja kończy się wierszem podobnym do Webmin install complete. You can now login to https://your-host:10000/ as root. Usługa jest włączona i uruchomiona, konfiguracja znajduje się w /etc/webmin, żądania są zapisywane w /var/webmin/miniserv.log, a nieudane próby logowania trafiają do syslog, w systemie Ubuntu 24.04 jest to systemd journal.
Przed otwarciem przeglądarki należy potwierdzić, że usługa działa i nasłuchuje:
sudo systemctl status webmin --no-pager
sudo ss -tlnp | grep 10000Oczekiwany jest status active (running) oraz wiersz wskazujący miniserv.pl powiązane z 0.0.0.0:10000. Ten adres zmieni się na 127.0.0.1:10000 po zastosowaniu poniższej metody tunelowania. Jeśli ss nie wykazuje aktywności na porcie 10000, oznacza to, że Webmin nie został uruchomiony; przed podjęciem dalszych kroków należy zapoznać się z journalctl -u webmin -n 50.
Pierwsze logowanie i ostrzeżenie o certyfikacie
Skieruj przeglądarkę na https://YOUR_SERVER_IP:10000. Na nowym serwerze wystąpią dwie sytuacje.
Jeśli ufw jest aktywny (obraz serwera Ubuntu domyślnie go wyłącza, ale wielu dostawców włącza go wstępnie), strona w ogóle się nie załaduje, co opisano w sekcji dotyczącej awarii poniżej. Jeśli port jest otwarty, przeglądarka wyświetli pełnoekranowy komunikat blokujący: "Your connection is not private" z kodem NET::ERR_CERT_AUTHORITY_INVALID w Chrome lub SEC_ERROR_UNKNOWN_ISSUER / "Warning: Potential Security Risk Ahead" w Firefox. Jest to zachowanie oczekiwane i nie oznacza włamania. Webmin wygenerował certyfikat z podpisem własnym podczas instalacji (/etc/webmin/miniserv.pem), a ponieważ żaden urząd certyfikacji go nie potwierdza, przeglądarka odmawia automatycznego zaufania. Połączenie jest nadal szyfrowane, po prostu nie posiada zewnętrznego potwierdzenia. Kliknij odpowiednie opcje (Advanced, a następnie Proceed), aby kontynuować; certyfikat zostanie poprawnie wymieniony w dalszej części.
Zaloguj się za pomocą root lub użytkownika z uprawnieniami sudo i jego hasła systemowego, aby przejść do pulpitu nawigacyjnego System Information. Częstym błędem jest wpisanie http:// zamiast https://. miniserv odpowiada zwykłym protokołem HTTP na tym porcie, wyświetlając tekst "This web server is running in SSL mode. Try the URL https://...". Rozwiązaniem jest zmiana http na https w pasku adresu.
Decyzja dotycząca bezpieczeństwa: jak uzyskać dostęp do Webmin?
Teraz najważniejsza część. Panel o uprawnieniach równoważnych root nie powinien być wystawiony na otwarty internet, odpowiadając na próby logowania ze strony każdego skanera na świecie. Istnieją dwie możliwe do obrony opcje, uszeregowane według preferencji. Każdy samodzielnie hostowany interfejs administracyjny sprowadza się do tego samego pytania, dlatego kwestia bezpieczeństwa Vaultwarden zależy od punktu końcowego panelu administracyjnego i pliku kopii zapasowej, a nie od samego szyfrowania.
Tunel SSH w opcji B jest rozwiązaniem lepszym, ponieważ nie wystawia żadnych usług na zewnątrz. Lista dozwolonych adresów IP w opcji A jest akceptowalna, jeśli adres jest statyczny. Zaniechanie obu tych metod jest dokładnie tym błędem, któremu ma zapobiegać ten przewodnik. Jeśli wolisz uzyskać dostęp do Webmin przez sieć prywatną zamiast korzystać z powyższych metod, umieść serwer za samodzielnie hostowanym VPN WireGuard i powiąż Webmin z adresem tunelu zamiast z adresem publicznym.
Opcja A: ograniczenie dostępu do Webmin do konkretnego adresu IP
W panelu otwórz Webmin, następnie Webmin Configuration, a potem IP Access Control. Wybierz "Only allow from listed addresses" i wprowadź swój publiczny adres IP, który można sprawdzić, uruchamiając curl ifconfig.me na komputerze lokalnym. Zapisz zmiany. Webmin zapisze to ustawienie w linii allow= w pliku /etc/webmin/miniserv.conf i zrestartuje się.
Pułapka: jeśli domowy adres IP jest dynamiczny i ulegnie zmianie lub wprowadzisz błędny adres, utracisz dostęp do panelu. Przeglądarka wyświetli komunikat "Access denied for <your IP>" zamiast formularza logowania, a powrót przez interfejs WWW nie będzie możliwy. Dostęp można przywrócić z konsoli serwera przez SSH lub VNC dostarczone przez operatora:
sudo nano /etc/webmin/miniserv.conf
# find the line that begins allow=
# correct your IP, or delete the whole line to allow all again
sudo systemctl restart webminUsunięcie linii allow= przywraca pełny dostęp, dlatego należy to robić wyłącznie w celu odzyskania kontroli, a następnie niezwłocznie wprowadzić poprawną wartość.
Opcja B: powiązanie z localhost i tunelowanie przez SSH (zalecane)
Lepszym rozwiązaniem niż jakakolwiek lista dozwolonych adresów jest całkowite zablokowanie nasłuchiwania na publicznym interfejsie. Należy skonfigurować miniserv tak, aby wiązał się wyłącznie z interfejsem loopback, a następnie uzyskiwać do niego dostęp przez zaszyfrowany tunel SSH, któremu już ufasz.
Edytuj /etc/webmin/miniserv.conf i dodaj lub zmień jedną linię:
bind=127.0.0.1Zrestartuj usługę za pomocą sudo systemctl restart webmin. Webmin jest teraz niedostępny z Internetu, skanowanie portu 10000 nie wykazuje żadnych wyników, a sprawdzenie ss wykonane wcześniej pokazuje teraz powiązanie z 127.0.0.1:10000. Z poziomu laptopa otwórz tunel:
ssh -L 10000:localhost:10000 youruser@YOUR_SERVER_IPPozostaw tę sesję otwartą i przejdź pod adres https://localhost:10000. Ruch odbywa się wewnątrz SSH, który jest już uwierzytelniony za pomocą Twojego klucza i zaszyfrowany, więc możesz bezpiecznie zaakceptować certyfikat z podpisem własnym – warstwa SSH zapewnia rzeczywistą ochronę. Zamknij sesję SSH, a Webmin przestanie być dostępny. Brak listy dozwolonych adresów, brak wystawionych usług, brak dodatkowych elementów do zabezpieczenia.
Jeśli ustawisz bind=127.0.0.1 i zapomnisz o tunelu, zdalny dostęp po prostu przestanie działać; jest to działanie funkcji, a nie błąd. Odzyskaj dostęp w ten sam sposób co w Opcji A: z poziomu konsoli usuń linię bind lub ustaw bind=0.0.0.0, a następnie zrestartuj usługę. Jest to ten sam nawyk tunelowania, którego użyłbyś, aby uzyskać dostęp do zdalnego środowiska programistycznego z uruchomionym Claude Code w tmux – jedna sesja SSH, wszystko prywatne, nic dodatkowego nie nasłuchuje na publicznym interfejsie.
Zastąpienie certyfikatu z podpisem własnym certyfikatem rzeczywistym
Jeśli udostępniasz Webmin zgodnie z Opcją A, wyeliminuj ostrzeżenia przeglądarki, stosując rzeczywisty certyfikat Let’s Encrypt. Wymagana jest nazwa certyfikatu oraz sposób, w jaki Let’s Encrypt uzyska dostęp do portu 80 podczas walidacji. Nazwą jest zazwyczaj nazwa DNS, na przykład panel.example.com, z rekordem A wskazującym na serwer. Od wersji Webmin 2.650 (wydanej 25 czerwca 2026) może to być również publiczny adres IP serwera, pod warunkiem zainstalowania Certbot 5.3 lub nowszego. Let’s Encrypt wydaje certyfikaty dla adresów IP wyłącznie w ramach profilu krótkoterminowego, ważnego około sześciu dni, dlatego należy ustawić interwał automatycznego odnawiania w Webmin na odpowiednią liczbę dni; Webmin nie zaakceptuje dłuższego interwału dla certyfikatu IP.
Webmin posiada wbudowaną obsługę tej funkcji: Webmin, następnie Webmin Configuration, potem SSL Encryption i zakładka Let’s Encrypt. Wprowadź nazwę hosta lub adres IP, wybierz metodę walidacji i wyślij żądanie. Webmin pobierze certyfikat, zaktualizuje linie certfile= oraz keyfile= w pliku miniserv.conf i będzie automatycznie odnawiał certyfikat przed jego wygaśnięciem. Po przeładowaniu strony ikona kłódki będzie poprawna.
Jedyny istotny problem: własny serwer Webmin działa na porcie 10000, a nie 80, więc coś musi obsłużyć wyzwanie http-01 na porcie 80. Istnieją trzy sposoby rozwiązania tego problemu. Jeśli Apache lub nginx obsługuje już daną nazwę na porcie 80, wskaż walidację na katalog dokumentów tej witryny (dla adresu IP wymagany jest Certbot 5.4 lub nowszy). Jeśli port 80 jest wolny, wybierz wbudowany serwer WWW Certbota, czyli tryb standalone dodany do Webmin w wersji 2.110: Certbot uruchamia wtedy na krótko własny serwer WWW na porcie 80, więc Certbot musi być zainstalowany, a port 80 musi być otwarty w zaporze sieciowej. Można również użyć walidacji DNS, która działa dla nazw hostów, ale nie dla adresów IP. Pakiet certbot w systemie Ubuntu 24.04 to wersja 2.9, która jest wystarczająca do walidacji standalone dla nazwy hosta, ale zbyt stara dla certyfikatów IP; w takim przypadku należy zainstalować aktualną wersję Certbot, na przykład przez snap, który w październiku 2026 roku był dostępny w wersji 5.8. Bez spełnienia tych warunków żądanie zakończy się błędem walidacji. Mechanizmy, rekordy DNS, wyzwanie na porcie 80 oraz odnawianie działają tak samo, jak w przypadku wydawania certyfikatu dla dowolnej witryny WWW. Jeśli potrzebujesz szczegółowych informacji, przewodnik po certyfikatach TLS Let’s Encrypt z użyciem Certbot i nginx szczegółowo opisuje proces walidacji i konfigurację DNS. Jeśli wybrałeś metodę tunelu SSH, możesz pominąć tę sekcję: certyfikat z podpisem własnym jest wystarczający wewnątrz tunelu SSH, a rzeczywisty certyfikat wystawiony dla panel.example.com i tak wywołałby ostrzeżenie o niezgodności nazwy podczas odwiedzania https://localhost:10000.
Włączanie uwierzytelniania dwuskładnikowego
Samo hasło stanowi słabą ochronę panelu root, dlatego należy dodać drugi składnik. Otwórz Webmin, następnie Webmin Configuration, a potem Two-Factor Authentication. Wybierz dostawcę Google Authenticator. Jest to standardowy protokół TOTP, więc współpracuje on z aplikacjami takimi jak Authy, 1Password lub dowolnym innym generatorem kodów. Zapisz zmiany. Webmin zainstaluje wymagany moduł Perl (Authen::OATH oraz generator kodów QR) i włączy tę funkcję. Sam ten krok nie zabezpiecza jeszcze żadnego konta.
Każde konto musi następnie zarejestrować własne urządzenie. Po włączeniu 2FA otwórz Webmin, następnie Webmin Users, wybierz konto i kliknij Enable Two-Factor For User. Webmin wyświetli kod QR. Zeskanuj go za pomocą aplikacji i wprowadź jeden wygenerowany kod w celu potwierdzenia. Od tego momentu logowanie będzie wymagało podania sześciocyfrowego tokena po wpisaniu hasła. Zarejestruj urządzenie przed wylogowaniem się. Jeśli 2FA jest wymagane, a konto nie przeszło procesu skanowania kodu, można usunąć to wymaganie z poziomu konsoli, jednak znacznie wygodniej jest przeprowadzić rejestrację wcześniej.
Dodanie Fail2ban w celu blokowania ataków brute-force
Nawet ograniczony punkt logowania powinien karać za wielokrotne nieudane próby. Webmin raportuje nieudane logowania do syslog w formacie webmin[12345]: Invalid login as root from 10.0.0.9 lub Non-existent login as ... dla nazwy użytkownika, która nie jest kontem Unix. W systemie Ubuntu 24.04 linie te trafiają do dziennika systemd, ponieważ standardowy obraz nie posiada /var/log/auth.log. Fail2ban zawiera wbudowany filtr webmin-auth, który dopasowuje dokładnie te dwie linie, a poniższa konfiguracja jail samodzielnie ustawia backend = systemd, więc nie wymaga własnych wyrażeń regularnych ani ścieżki do logów.
Utwórz /etc/fail2ban/jail.d/webmin.local:
[webmin-auth]
enabled = true
port = 10000
filter = webmin-auth
backend = systemd
maxretry = 4
bantime = 1hPrzeładuj za pomocą sudo systemctl restart fail2ban, a następnie potwierdź, że jail jest aktywny:
sudo fail2ban-client status webmin-authPowinieneś zobaczyć jail na liście z licznikiem blokad ustawionym początkowo na zero (w przypadku backendu journal nie ma linii File list:). Aby sprawdzić poprawność działania całości, celowo wprowadź błędne dane logowania kilka razy z innej sieci, a następnie ponownie uruchom komendę statusu i obserwuj, jak rośnie Currently banned. Jeśli licznik się nie zmienia, upewnij się, że nie testujesz z adresu znajdującego się w ignoreip programu Fail2ban oraz uruchom journalctl SYSLOG_IDENTIFIER=webmin na serwerze, aby potwierdzić, że linie Invalid login są faktycznie zapisywane. Jeśli Fail2ban nie jest jeszcze zainstalowany na tym serwerze, przewodnik instalacji Fail2ban na Ubuntu 24.04 dla SSH opisuje proces instalacji oraz konfigurację jail dla SSH, który należy uruchomić równolegle z tym rozwiązaniem.
Ograniczanie uprawnień użytkowników Webmin
Nie każdy użytkownik panelu wymaga uprawnień root dla wszystkich zasobów. W sekcji Webmin, then Webmin Users można utworzyć dodatkowe konta i przyznać każdemu z nich dostęp wyłącznie do niezbędnych modułów. Przykładowo, operatorowi kopii zapasowych można udostępnić tylko moduły cron oraz filesystem. Edycja użytkownika wyświetla listę wszystkich modułów; odznaczenie wybranego modułu usuwa go z menu użytkownika i blokuje dostęp do powiązanych z nim adresów URL. Jest to element strategii obrony w głąb (defence in depth): nawet w przypadku przejęcia sesji użytkownika o niskich uprawnieniach, nie będzie on w stanie zmodyfikować /etc/shadow, jeśli moduł Users nie znajduje się na jego liście uprawnień.
Aktualizacja Webmin
Ponieważ instalacja została przeprowadzona z repozytorium apt, sudo apt update && sudo apt upgrade pobiera nowe wydania Webmin wraz z resztą systemu. Aktualizacje należy przeprowadzać niezwłocznie, gdyż panel sterowania jest częstym celem ataków. Webmin może również aktualizować się samodzielnie poprzez Webmin, następnie Webmin Configuration, a potem Upgrade Webmin, jednak metoda z użyciem apt jest na systemie Ubuntu bardziej przejrzysta, ponieważ zapewnia spójność wersji z pozostałym oprogramowaniem zarządzanym przez system pakietów. Nie należy traktować tego jako opcji: kilka wcześniejszych luk CVE w Webmin dotyczyło błędów zdalnego wykonania kodu, a jedyną różnicą między systemem zabezpieczonym a przejętym była szybkość przeprowadzenia aktualizacji przez administratora.
Tryby awarii i towarzyszące im komunikaty
"Your connection is not private" / NET::ERR_CERT_AUTHORITY_INVALID. Wyświetlane przy pierwszym ładowaniu. Przyczyna: certyfikat z podpisem własnym, wygenerowany przez Webmin podczas instalacji, nie posiada zaufanego wystawcy. Nie jest to atak; kanał jest szyfrowany, jednak niezweryfikowany. Rozwiązanie: tymczasowo zignoruj ostrzeżenie, a następnie wystaw właściwy certyfikat Let's Encrypt lub zaakceptuj go na stałe, jeśli łączysz się z Webmin przez tunel SSH.
"This web server is running in SSL mode. Try the URL https://..." Wpisano http://server:10000. miniserv obsługuje na tym porcie wyłącznie TLS i informuje o tym w tekście jawnym. Rozwiązanie: zmień http na https w pasku adresu.
Przekroczenie czasu oczekiwania, ERR_CONNECTION_TIMED_OUT / "This site can't be reached". Żądanie nie dociera do Webmin. W systemie Ubuntu często przyczyną jest blokowanie portu 10000 przez ufw, ale zweryfikuj to przed wyciągnięciem wniosków. Uruchom sudo ufw status. Jeśli polecenie zwróci Status: inactive, ufw nie blokuje ruchu (Ubuntu domyślnie ma go wyłączonego, a dodanie reguły zezwalającej nie aktywuje firewalla), więc szukaj przyczyny wyżej, na przykład w zaporze panelu sterowania dostawcy serwera. Jeśli zwróci Status: active, uruchom sudo ufw status verbose, aby sprawdzić domyślną politykę ruchu przychodzącego oraz szersze reguły; jeśli ruch przychodzący jest odrzucany, a port 10000 nie znajduje się na liście, otwórz go za pomocą sudo ufw allow 10000/tcp lub – co jest lepszym rozwiązaniem – pozostaw go zamkniętym i użyj tunelu SSH zgodnie z Opcją B. Zwróć uwagę na różnicę: timeout oznacza, że firewall po cichu odrzuca pakiety, podczas gdy ERR_CONNECTION_REFUSED oznacza, że port jest osiągalny, ale Webmin nie działa; sprawdź sudo systemctl status webmin.
"Access denied for <your IP>." Skonfigurowano IP Access Control w Opcji A, a bieżący adres IP nie znajduje się na liście dozwolonych, zmienił się (w przypadku dynamicznego IP) lub wystąpił błąd w zapisie. Brak możliwości powrotu przez przeglądarkę. Rozwiązanie z poziomu konsoli: edytuj linię allow= w pliku /etc/webmin/miniserv.conf, popraw lub usuń wpis, a następnie wykonaj sudo systemctl restart webmin.
"Login failed. Please try again." przy poprawnych danych logowania. Konto nie posiada hasła Unix, co jest standardem w obrazach chmurowych korzystających wyłącznie z kluczy. Webmin uwierzytelnia użytkowników przez PAM w oparciu o hasło Unix, a dla danego użytkownika ono nie istnieje. Rozwiązanie: wykonaj sudo passwd youruser na serwerze, a następnie zaloguj się ponownie. Jeśli /var/webmin/miniserv.log zwraca Non-existent login as ..., oznacza to, że wpisana nazwa użytkownika nie jest kontem Unix.
W przypadku zarządzania większą liczbą serwerów automatyzacja skaluje się lepiej niż instalacja panelu sterowania na każdej maszynie: twój pierwszy playbook Ansible to punkt wyjścia dla tego podejścia.
FAQ
Czy wystawienie Webmin na publiczny dostęp do Internetu jest bezpieczne?
Traktuj Webmin dostępny z Internetu jak powłokę root z formularzem logowania, ponieważ dokładnie tym on jest. Jest on wystarczająco bezpieczny tylko przy zastosowaniu wielu warstw zabezpieczeń: poprawnego certyfikatu, uwierzytelniania dwuskładnikowego, Fail2ban oraz ścisłej listy dozwolonych adresów IP lub, co jest lepszym rozwiązaniem, całkowitego braku publicznego dostępu. Najbezpieczniejsza konfiguracja polega na powiązaniu Webmin z 127.0.0.1 i uzyskiwaniu do niego dostępu przez tunel SSH, dzięki czemu port 10000 nie odpowiada na żadne zapytania z otwartego Internetu.
Jak usunąć ostrzeżenie o certyfikacie Webmin?
Ostrzeżenie (NET::ERR_CERT_AUTHORITY_INVALID) pojawia się, ponieważ Webmin jest dostarczany z certyfikatem z podpisem własnym. Wygeneruj poprawny certyfikat z poziomu Webmin, przechodząc do Webmin Configuration, SSL Encryption, Let's Encrypt. Użyj nazwy DNS wskazującej na serwer lub publicznego adresu IP serwera, jeśli zainstalowano Certbot w wersji 5.3 lub nowszej. Port 80 musi być dostępny dla weryfikacji, obsługiwanej przez istniejący serwer WWW lub samodzielny serwer Certbot. Jeśli uzyskujesz dostęp do Webmin wyłącznie przez tunel SSH do localhost, ostrzeżenie jest niegroźne; SSH już szyfruje i uwierzytelnia połączenie, więc można bezpiecznie zaakceptować certyfikat z podpisem własnym.
Jak ograniczyć dostęp do Webmin tylko do mojego adresu IP?
Przejdź do Webmin, Webmin Configuration, IP Access Control, wybierz "Only allow from listed addresses" i wprowadź swój publiczny adres IP z curl ifconfig.me. Webmin przechowuje to ustawienie w linii allow= pliku /etc/webmin/miniserv.conf. Uważaj na dynamiczny adres IP w domu: jeśli ulegnie on zmianie, zostaniesz zablokowany i będziesz musiał naprawić linię allow= z poziomu konsoli serwera, dlatego w praktyce bardziej niezawodny jest statyczny adres lub metoda tunelu SSH.
Dlaczego logowanie kończy się niepowodzeniem, mimo poprawnego hasła?
Webmin uwierzytelnia użytkowników przez PAM w oparciu o hasło systemowe Unix. Obrazy systemowe w chmurze zazwyczaj używają wyłącznie kluczy SSH, a domyślne konto nie ma ustawionego hasła, więc PAM nie ma czego zweryfikować i odrzuca logowanie. Uruchom sudo passwd youruser na serwerze, aby ustawić hasło, a następnie zaloguj się. Linia Non-existent login as ... w pliku /var/webmin/miniserv.log oznacza natomiast, że nazwa użytkownika nie jest rzeczywistym kontem w systemie Unix.
Do czego przydaje się Webmin w porównaniu z czystym SSH?
Webmin to warstwa ułatwiająca odkrywanie funkcji i zwiększająca wygodę. Jest przydatny do przeglądania plików dziennika, zarządzania użytkownikami i zadaniami cron, edycji reguł zapory sieciowej oraz sprawdzania stanu dysków i usług bez konieczności zapamiętywania każdej komendy. Jest to rozwiązanie pomocne dla administratorów pracujących dorywczo lub zespołów o zróżnicowanych umiejętnościach. Czyste SSH jest szybsze, pozwala na automatyzację skryptami i wystawia znacznie mniejszą powierzchnię ataku podczas rutynowych prac. Wielu administratorów korzysta z obu rozwiązań: SSH do codziennej pracy oraz Webmin powiązanego z localhost za tunelem do okazjonalnych zadań wymagających interfejsu graficznego. Jeśli Twoim właściwym pytaniem jest wybór panelu, a nie porównanie panelu z powłoką, warto najpierw rozważyć porównanie Cockpit i Webmin, ponieważ oba narzędzia różnią się zakresem zmian, jakie mogą wprowadzać w systemie, oraz sposobem uwierzytelniania użytkownika.