02 maj

Wstępna konfiguracja serwera z Ubuntu 20.04

Ubuntu 20.04: wstępna konfiguracja

Kiedy tworzysz nowy serwer Ubuntu 20.04, powinieneś wykonać kilka ważnych kroków konfiguracyjnych w ramach podstawowej konfiguracji. Kroki te zwiększą bezpieczeństwo i użyteczność serwera oraz zapewnią solidne podstawy do dalszych działań.

Logowanie się jako root

Aby zalogować się na serwerze, musisz znać jego publiczny adres IP. Będziesz także potrzebować hasła lub – jeśli zainstalowałeś klucz SSH do uwierzytelnienia – klucz prywatny dla konta użytkownika root.

Jeśli nie masz jeszcze połączenia z serwerem, zaloguj się teraz jako użytkownik root za pomocą następującego polecenia (zamień wyróżnioną część polecenia na publiczny adres IP serwera):

ssh root@ip_serwera

Jeśli pojawi się ostrzeżenie dotyczące autentyczności hosta – zaakceptuj je. Jeśli używasz uwierzytelniania za pomocą hasła, podaj hasło roota, aby się zalogować. Jeśli używasz klucza SSH, który jest chroniony hasłem, wtedy – przy pierwszym użyciu klucza podczas każdej sesji – może pojawić się monit o wprowadzenie hasła. Jeśli logujesz się na serwerze za pomocą hasła po raz pierwszy, może zostać wyświetlony monit o zmianę hasła roota.

Czym jest root

Użytkownik root jest użytkownikiem-administratorem w środowisku Linux, posiadającym bardzo szerokie uprawnienia. Ze względu na podwyższone uprawnienia konta root, odradza się regularne korzystanie z niego. Wynika to z faktu, że częścią siły nieodłącznie związanej z kontem administratora jest możliwość dokonywania bardzo destrukcyjnych zmian (nawet przypadkowo).

Następnym krokiem jest założenie nowego konta użytkownika ze zmniejszonymi uprawnieniami do codziennego użytku. Później nauczymy Cię, jak zdobywać zwiększone uprawnienia tylko wtedy, gdy ich potrzebujesz.

Tworzenie nowego użytkownika

Po zalogowaniu się jako użytkownik root, jesteśmy przygotowani do dodania nowego konta użytkownika. W przyszłości będziemy logować się przy użyciu tego nowego konta zamiast konta root.

W tym przykładzie utworzono nowego użytkownika o nazwie adam – powinieneś zastąpić tę nazwę wybraną przez siebie:

adduser adam

Zostaniesz poproszony o kilka odpowiedzi, zaczynając od hasła do konta.

Wprowadź silne hasło i – opcjonalnie – podaj dowolne dodatkowe informacje. Nie jest to wymagane i możesz po prostu nacisnąć ENTER w dowolnym polu, które chcesz pominąć.

Przyznawanie uprawnień administratora

Mamy teraz nowe konto użytkownika ze standardowymi uprawnieniami do konta. Czasami jednak możemy mieć potrzebę wykonywania zadań administracyjnych.

Aby uniknąć konieczności wylogowania się z naszego normalnego użytkownika i zalogowania się ponownie jako konto root, możemy skonfigurować tzw. uprawnienia superuser lub root dla naszego zwykłego konta. Umożliwi to naszemu zwykłemu użytkownikowi uruchamianie poleceń z uprawnieniami administratora, poprzez umieszczenie słowa sudo przed każdym poleceniem.

Aby dodać te uprawnienia do naszego nowego użytkownika, musimy dodać użytkownika do grupy sudo. Domyślnie w systemie Ubuntu 20.04 użytkownicy będący członkami grupy sudo mogą korzystać z polecenia sudo.

Jako root, uruchom tę komendę, aby dodać nowego użytkownika do grupy sudo (zastąp wyróżnioną nazwę użytkownika własną nazwą użytkownika):

usermod -aG sudo adam

Teraz, gdy jesteś zalogowany jako zwykły użytkownik, możesz wpisać sudo przed poleceniami, aby wykonywać polecenia z uprawnieniami administratora.

Konfiguracja podstawowej zapory sieciowej

Serwery Ubuntu 20.04 mogą korzystać z zapory UFW, aby upewnić się, że dozwolone są tylko połączenia z niektórymi usługami. Możemy bardzo łatwo skonfigurować podstawową zaporę za pomocą tej aplikacji.

Aplikacje mogą zarejestrować swoje profile w UFW po instalacji. Profile te pozwalają UFW zarządzać tymi aplikacjami według nazwy. OpenSSH – usługa umożliwiająca nam teraz połączenie z naszym serwerem – ma profil zarejestrowany w UFW.

Możesz to sprawdzić, wpisując:

ufw app list
Available applications:
  OpenSSH

Musimy upewnić się, że zapora zezwala na połączenia SSH, abyśmy mogli zalogować się ponownie następnym razem. Możemy zezwolić na te połączenia, wykonując polecenie:

ufw allow OpenSSH

Następnie możemy włączyć zaporę, wpisując:

ufw enable

Wpisz y i naciśnij ENTER, aby kontynuować. Możesz zobaczyć, że połączenia SSH są nadal dozwolone, wpisując:

ufw status
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)

Ponieważ zapora sieciowa blokuje obecnie wszystkie połączenia z wyjątkiem SSH, jeśli zainstalujesz i skonfigurujesz dodatkowe usługi, musisz dostosować ustawienia zapory, aby umożliwić ruch. Możesz dowiedzieć się o niektórych typowych operacjach UFW w naszym przewodniku UFW Essentials.

Włączanie dostępu zewnętrznego dla zwykłego użytkownika

Teraz, gdy mamy utworzonego zwykłego użytkownika, musimy upewnić się, że możemy zalogować się bezpośrednio na konto poprzez SSH.

Uwaga: Do czasu sprawdzenia, czy możesz zalogować się i używać sudo z nowym użytkownikiem, zalecamy pozostanie zalogowanym jako użytkownik root. W ten sposób – w razie wystąpienia problemów – możesz je rozwiązać, wprowadzając niezbędne zmiany jako root.

Proces konfigurowania dostępu SSH dla nowego użytkownika zależy od tego, czy konto root serwera do uwierzytelnienia korzysta z hasła, czy kluczy SSH.

Jeśli konto root korzysta z uwierzytelniania hasłem

Jeśli zalogowałeś się na konto root za pomocą hasła, uwierzytelnianie hasła jest włączone dla SSH. Możesz zalogować się poprzez SSH do swojego nowego konta użytkownika, otwierając nową sesję terminala i używając SSH z nową nazwą użytkownika:

ssh adam@ip_serwera

Po wprowadzeniu hasła zwykłego użytkownika zostaniesz zalogowany. Pamiętaj, że jeśli chcesz uruchomić polecenie z uprawnieniami administratora, wpisz przed nim sudo w następujący sposób:

sudo polecenie

Podczas korzystania z sudo po raz pierwszy w każdej sesji (i okresowo później) pojawi się monit o podanie hasła zwykłego użytkownika.

Aby zwiększyć bezpieczeństwo serwera, zalecamy skonfigurowanie kluczy SSH zamiast uwierzytelniania za pomocą hasła.

Jeśli konto root używa uwierzytelniania za pomocą klucza SSH

Jeśli zalogowałeś się na swoje konto root przy użyciu kluczy SSH, uwierzytelnianie za pomocą hasła jest wyłączone dla SSH. Aby zalogować się pomyślnie, będziesz musiał dodać kopię lokalnego klucza publicznego do pliku ~/.ssh/author_keys nowego użytkownika.

Ponieważ Twój klucz publiczny znajduje się już w pliku ~/.ssh/authorized_keys konta root na serwerze, możemy skopiować ten plik i strukturę katalogów na nasze nowe konto użytkownika w naszej istniejącej sesji.

Najprostszym sposobem na skopiowanie plików z poprawnie przypisanym właścicielem i uprawnieniami jest polecenie rsync. Spowoduje to skopiowanie katalogu .ssh użytkownika root, zachowanie uprawnień i modyfikację właścicieli plików – wszystko w jednym poleceniu. Pamiętaj, aby zmienić wyróżnione części polecenia poniżej, aby pasowały do nazwy Twojego zwykłego użytkownika:

Uwaga: Polecenie rsync traktuje źródła i miejsca docelowe kończące się ukośnikiem inaczej niż te bez ukośnika na końcu. Korzystając z rsync poniżej, upewnij się, że katalog źródłowy (~/.ssh) nie zawiera na końcu ukośnika (upewnij się, że nie używasz ~/.ssh/).

Jeśli w ścieżce przypadkowo dodasz ukośnik końcowy, rsync skopiuje zawartość katalogu ~/.ssh konta root do katalogu domowego użytkownika sudo (zamiast kopiować całą strukturę katalogu ~/.ssh). Pliki będą znajdować się w niewłaściwej lokalizacji, a SSH nie będzie w stanie ich znaleźć i używać.

rsync --archive --chown=adam:adam ~/.ssh /home/adam

Otwórz teraz nową sesję terminala na swoim komputerze i użyj SSH z nową nazwą użytkownika:

ssh adam@ip_serwera

Powinieneś zostać zalogowany na konto nowego użytkownika bez używania hasła. Pamiętaj, że jeśli chcesz uruchomić polecenie z uprawnieniami administratora, poprzedź polecenie sudo:

sudo polecenie

Podczas korzystania z sudo po raz pierwszy w każdej sesji (i okresowo później) pojawi się monit o podanie hasła standardowego użytkownika.

Co dalej?

Po wykonaniu powyższych czynności Twój serwer będzie gotowy do instalacji na nim dowolnego oprogramowania do obsługi stron lub innych projektów.