na TrueNAS SCALE
Uruchamianie kontenerów na TrueNAS SCALE przy użyciu LXC lub Incus z linuxcontainers.org to skuteczny sposób na zarządzanie lekkimi środowiskami Linux. Domyślnie jednak użytkownik root w tych kontenerach może nie mieć ustawionego hasła, co uniemożliwia dostęp przez SSH lub wymaga ręcznej konfiguracji. Ten artykuł wyjaśnia, jak ustawić hasło dla użytkownika root w kontenerze TrueNAS SCALE po zalogowaniu.
Dlaczego ustawiać hasło root?
W TrueNAS SCALE kontenery LXC/Incus (np. oparte na Ubuntu) często mają konto root bez domyślnego hasła, co może uniemożliwiać logowanie przez SSH lub wymagać ustawienia hasła. Ustawienie hasła umożliwia bezpieczny dostęp przez SSH lub uruchamianie poleceń z uprawnieniami administratora w kontenerze.
Uwaga: Ze względów bezpieczeństwa rozważ utworzenie użytkownika bez uprawnień root z uprawnieniami sudo zamiast bezpośredniego używania konta root. Ten przewodnik koncentruje się na ustawieniu hasła dla root, ale najlepsze praktyki zalecają ograniczenie dostępu do root.
Krok po kroku
Krok 1: Uzyskaj dostęp do powłoki kontenera
Aby skonfigurować hasło root, najpierw musisz uzyskać dostęp do powłoki kontenera. TrueNAS SCALE oferuje kilka sposobów na to:
- Przez interfejs TrueNAS: Przejdź do Aplikacje, wybierz swój kontener (np.
docker-test-srvr) i kliknij Powłoka, aby otworzyć terminal. - Przez linię poleceń: Użyj następującego polecenia, aby uzyskać dostęp do powłoki kontenera:
Zastąpdocker exec -it <nazwa_kontenera> /bin/bash<nazwa_kontenera>nazwą swojego kontenera. - Przez LXC/Incus: Jeśli używasz Incus, uzyskaj dostęp do kontenera za pomocą:
incus exec <nazwa_kontenera> -- /bin/bash
Krok 2: Sprawdź status hasła root
Po wejściu do kontenera sprawdź, czy konto root ma ustawione hasło:
passwd -S root
Jeśli wynik pokazuje status „zablokowany” (L) lub brak hasła, musisz je ustawić.
Krok 3: Ustaw hasło root
Aby ustawić hasło dla użytkownika root, wykonaj:
passwd root
Zostaniesz poproszony o wprowadzenie i potwierdzenie nowego hasła. Wybierz silne hasło i przechowuj je bezpiecznie.
Krok 4: Włącz logowanie SSH dla root (opcjonalne)
Jeśli planujesz uzyskać dostęp do kontenera przez SSH jako root, upewnij się, że SSH jest skonfigurowany, aby na to pozwalać:
- Edytuj plik konfiguracyjny SSH:
nano /etc/ssh/sshd_config - Znajdź lub dodaj linię:
PermitRootLogin yes - Zapisz plik i zrestartuj usługę SSH:
systemctl restart ssh
Teraz możesz połączyć się z kontenerem przez SSH, używając:
ssh root@192.168.76.177
Zastąp 192.168.76.177 adresem IP swojego kontenera.
Krok 5: Przetestuj konfigurację
Z komputera klienckiego spróbuj zalogować się przez SSH:
ssh root@192.168.76.177
Wprowadź nowo ustawione hasło. Jeśli połączenie zostanie odrzucone, upewnij się, że usługa SSH działa (systemctl status ssh) i port 22 jest otwarty w zaporze kontenera (ufw status).
Rozwiązywanie problemów
- Odmowa połączenia SSH: Sprawdź, czy usługa SSH działa (
systemctl start ssh) i port 22 jest otwarty (ufw allow 22). - Brak usługi SSH: Zainstaluj serwer SSH, jeśli nie jest obecny:
apt-get update && apt-get install -y openssh-server - Problemy z siecią: Upewnij się, że adres IP kontenera (np.
192.168.76.177) jest dostępny w trybie mostkowym. Sprawdź ustawienia sieciowe TrueNAS i wykonaj ping na IP z klienta.
Zalecenia dotyczące bezpieczeństwa
Używanie konta root do dostępu przez SSH jest wygodne, ale ryzykowne. Rozważ następujące alternatywy:
- Utwórz użytkownika bez uprawnień root z uprawnieniami
sudo:useradd -m -s /bin/bash nazwa_uzytkownika passwd nazwa_uzytkownika usermod -aG sudo nazwa_uzytkownika - Użyj uwierzytelniania opartego na kluczach SSH zamiast haseł.
- Zmień domyślny port SSH (np. na 2222) i zaktualizuj reguły zapory:
ufw allow 2222 ufw deny 22
Więcej informacji na temat zarządzania kontenerami w TrueNAS SCALE znajdziesz w dokumentacji TrueNAS SCALE lub na linuxcontainers.org, gdzie opisano szczegóły dotyczące LXC i Incus.