Początkowa konfiguracja serwera z Ubuntu
Wprowadzenie
Kiedy po raz pierwszy tworzysz nowy serwer Ubuntu, powinieneś wykonać kilka ważnych kroków konfiguracyjnych jako część początkowej konfiguracji. Kroki te zwiększą bezpieczeństwo i użyteczność twojego serwera oraz zapewnią solidną podstawę do dalszych działań.
Ten samouczek został przetestowany na Ubuntu 22.04 LTS, 24.04 LTS i 24.10. Polecenia wykorzystują domyślne pakiety, które pozostają stabilne w obecnych wersjach tymczasowych oraz w nadchodzących wydaniach 25.x, które zawierają domyślne ustawienia apt, OpenSSH i UFW.
Kluczowe wnioski
- Zaloguj się jako root: Dowiedz się, jak bezpiecznie uzyskać dostęp do swojego serwera Ubuntu po raz pierwszy.
- Utwórz użytkownika niebędącego rootem: Dodaj zwykłe konto użytkownika z uprawnieniami
sudo, aby zminimalizować ryzyko bezpieczeństwa wynikające z codziennego korzystania z konta root. - Skonfiguruj uwierzytelnianie klucza SSH: Skonfiguruj klucze SSH dla bezpiecznych, logowań bez hasła i skopiuj swój klucz publiczny do nowego użytkownika.
- Skonfiguruj zaporę sieciową za pomocą UFW: Włącz i przetestuj Nieskomplikowaną Zaporę Sieciową (UFW), aby ograniczyć dostęp, upewniając się, że port SSH pozostaje otwarty, aby zapobiec zablokowaniu dostępu.
- Sprawdź dostęp przed wylogowaniem z konta root: Upewnij się, że Twój nowy użytkownik może używać
sudoi łączyć się przez SSH, zanim zamkniesz sesję root, aby uniknąć zablokowania dostępu. - Najlepsze praktyki mają zastosowanie w wielu środowiskach: Te wstępne kroki dotyczą maszyn wirtualnych w chmurze, Dropletów, VPS oraz serwerów bare metal.
Wdrażaj swoje aplikacje z GitHub za pomocą platformy aplikacyjnej Linux-Console.net. Pozwól, aby Linux-Console.net zajmował się skalowaniem Twojej aplikacji.
Początkowa konfiguracja serwera z Ubuntu
- Logowanie jako root
- Tworzenie nowego użytkownika
- Przyznawanie uprawnień administracyjnych
- Konfigurowanie zapory ogniowej
- Włączanie dostępu zewnętrznego dla zwykłego użytkownika
Krok 1 - Logowanie jako root
Aby zalogować się na swój serwer, będziesz potrzebować publicznego adresu IP serwera. Będziesz także potrzebować hasła lub klucza prywatnego do konta użytkownika root, jeśli zainstalowałeś klucz SSH do uwierzytelniania. Jeśli jeszcze nie zalogowałeś się na swój serwer, możesz chcieć skorzystać z naszego przewodnika Jak połączyć się z Dropletami przez SSH, który opisuje ten proces szczegółowo.
Jeśli nie jesteś aktualnie połączony ze swoim serwerem, zaloguj się jako użytkownik root za pomocą następującego polecenia. Zamień wyróżnioną część polecenia your_server_ip na publiczny adres IP swojego serwera:
ssh root@your_server_ipZaakceptuj ostrzeżenie dotyczące autentyczności hosta, jeśli się pojawi. Jeśli Twój serwer używa uwierzytelniania hasłem, podaj swoje root hasło, aby się zalogować. Jeśli używasz klucza SSH chronionego hasłem, może być konieczne wprowadzenie hasła przy pierwszym użyciu klucza w każdej sesji. Jeśli logujesz się na serwer po raz pierwszy przy użyciu hasła, może być również konieczne zmienienie hasła root. Postępuj zgodnie z instrukcjami, aby zmienić hasło, jeśli pojawi się odpowiedni komunikat.
O korzeniu
Użytkownik root jest użytkownikiem administracyjnym w środowisku Linux z podwyższonymi uprawnieniami. Ze względu na zwiększone uprawnienia konta root nie zaleca się jego regularnego używania. Konto root może wprowadzać bardzo destrukcyjne zmiany, nawet przypadkowo.
Kolejnym krokiem jest utworzenie nowego konta użytkownika z ograniczonymi uprawnieniami do codziennego użytku. Później pokażemy Ci, jak tymczasowo zwiększyć uprawnienia na czas, gdy będą potrzebne.
Krok 2 - Tworzenie nowego użytkownika
Po zalogowaniu się jako root, będziesz mógł dodać nowe konto użytkownika. W przyszłości będziemy logować się za pomocą tego nowego konta zamiast root.
Ten przykład tworzy nowego użytkownika o nazwie sammy, ale powinieneś zastąpić ją nazwą użytkownika, która Ci się podoba:
adduser sammyZostaniesz poproszony o odpowiedź na kilka pytań, zaczynając od hasła do konta.
Wprowadź silne hasło i opcjonalnie uzupełnij dodatkowe informacje, które chcesz podać. Te informacje nie są wymagane i możesz nacisnąć ENTER w dowolnym polu, które chcesz pominąć.
Krok 3 - Nadawanie uprawnień administracyjnych
Teraz masz nowe konto użytkownika z uprawnieniami standardowego konta. Jednak czasami będziesz musiał wykonywać zadania administracyjne jako użytkownik root.
Aby uniknąć wylogowywania się z konta zwykłego użytkownika i ponownego logowania jako konto root, możesz ustawić tak zwane uprawnienia superużytkownika lub root dla zwykłego konta użytkownika. Uprawnienia te pozwolą twojemu zwykłemu użytkownikowi wykonywać polecenia z uprawnieniami administracyjnymi, umieszczając przed poleceniem słowo sudo.
Aby dodać te uprawnienia do nowego użytkownika, musisz dodać go do systemowej grupy sudo. Domyślnie w Ubuntu użytkownicy będący członkami grupy sudo mają prawo do używania polecenia sudo.
Jako root, uruchom to polecenie, aby dodać nowego użytkownika do grupy sudo (zastąp wyróżnioną nazwę użytkownika sammy swoim nowym użytkownikiem):
usermod -aG sudo sammyTeraz możesz wpisywać sudo przed poleceniami, aby uruchamiać je z uprawnieniami superużytkownika, gdy jesteś zalogowany jako zwykły użytkownik.
Krok 4 - Konfigurowanie zapory sieciowej
Serwery Ubuntu mogą korzystać z zapory UFW, aby zapewnić, że dozwolone są tylko połączenia z określonymi usługami. Możesz skonfigurować podstawową zaporę przy użyciu tej aplikacji.
Uwaga: Jeśli Twoje serwery działają na Linux-Console.net, możesz opcjonalnie używać zapór sieciowych Linux-Console.net Cloud zamiast zapory UFW. Zalecamy korzystanie tylko z jednej zapory na raz, aby uniknąć konfliktujących reguł, które mogą być trudne do zdiagnozowania.
Aplikacje mogą rejestrować swoje profile w UFW podczas instalacji. Profile te pozwalają UFW zarządzać tymi aplikacjami po nazwie. OpenSSH, usługa umożliwiająca połączenie z serwerem, ma zarejestrowany profil w UFW.
Możesz sprawdzić listę zainstalowanych profili UFW, wpisując:
ufw app listAvailable applications:
OpenSSHBędziesz musiał upewnić się, że zapora sieciowa zezwala na połączenia SSH, abyś mógł zalogować się na swój serwer następnym razem. Zezwól na te połączenia, wpisując:
ufw allow OpenSSHTeraz włącz zaporę, wpisując:
ufw enableWpisz y i naciśnij ENTER, aby kontynuować. Możesz sprawdzić, że połączenia SSH są nadal dozwolone, wpisując:
ufw statusStatus: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Zapora sieciowa aktualnie blokuje wszystkie połączenia oprócz SSH. Jeśli zainstalujesz i skonfigurujesz dodatkowe usługi, będziesz musiał dostosować ustawienia zapory, aby umożliwić nowego ruchu do serwera. Możesz poznać kilka podstawowych operacji UFW w naszym przewodniku Podstawy UFW.
Aby później dodać dostęp HTTP, zezwól tylko na te usługi, których potrzebujesz:
ufw allow 80/tcp
ufw allow 443/tcpOdwołaj się do przewodnika Jak skonfigurować zaporę UFW na Ubuntu, aby poznać typowe wzorce, takie jak ograniczanie tempa i zasady specyficzne dla usług.
Krok 5 – Włączanie dostępu zewnętrznego dla Twojego zwykłego użytkownika
Teraz, gdy masz zwykłego użytkownika do codziennego użytku, musisz upewnić się, że możesz bezpośrednio połączyć się z kontem przez SSH.
Uwaga: Dopóki nie upewnisz się, że możesz zalogować się i używać sudo z nowym użytkownikiem, zalecamy pozostanie zalogowanym jako root. Jeśli napotkasz problemy z połączeniem, możesz je rozwiązać i wprowadzić niezbędne zmiany jako root. Jeśli używasz Dropleta z Linux-Console.net i masz problemy z połączeniem SSH jako root, możesz odzyskać dostęp do Dropleta za pomocą Konsoli Odzyskiwania.
Konfiguracja dostępu SSH dla nowego użytkownika zależy od tego, czy konto root na Twoim serwerze używa hasła czy kluczy SSH do uwierzytelniania.
Jeśli konto root używa uwierzytelniania hasłem
Jeżeli zalogowałeś się na swoje konto root używając hasła, to uwierzytelnianie hasłem jest włączone dla SSH. Możesz zalogować się przez SSH na swoje nowe konto użytkownika, otwierając nową sesję terminala i używając SSH ze swoją nową nazwą użytkownika:
ssh sammy@your_server_ipPo wprowadzeniu hasła zwykłego użytkownika zostaniesz zalogowany. Pamiętaj, jeśli potrzebujesz uruchomić polecenie z uprawnieniami administracyjnymi, wpisz sudo przed nim w ten sposób:
sudo command_to_runPrzy pierwszym użyciu sudo w każdej sesji (a następnie okresowo) zostanie wyświetlony monit o hasło zwykłego użytkownika.
Aby zwiększyć bezpieczeństwo swojego serwera, zdecydowanie zalecamy skonfigurowanie kluczy SSH zamiast używania uwierzytelniania hasłem. Skorzystaj z naszego przewodnika dotyczącego konfiguracji kluczy SSH na Ubuntu, aby dowiedzieć się, jak skonfigurować uwierzytelnianie oparte na kluczach.
Jeśli konto root korzysta z uwierzytelniania za pomocą klucza SSH
Jeżeli zalogowałeś się na swoje konto root używając kluczy SSH, to uwierzytelnianie hasłem jest wyłączone dla SSH. Aby zalogować się jako zwykły użytkownik przy użyciu klucza SSH, musisz dodać kopię swojego lokalnego klucza publicznego do pliku ~/.ssh/authorized_keys nowego użytkownika.
Ponieważ Twój klucz publiczny znajduje się już w pliku ~/.ssh/authorized_keys konta root na serwerze, możesz skopiować ten plik i strukturę katalogów na nowe konto użytkownika, korzystając z bieżącej sesji.
Najprostszy sposób skopiowania plików z prawidłową własnością i uprawnieniami to użycie polecenia rsync. Polecenie to skopiuje katalog .ssh użytkownika root, zachowa uprawnienia i zmieni właścicieli plików, wszystko w jednym poleceniu. Upewnij się, że zmienisz zaznaczone części polecenia poniżej, aby odpowiadały nazwie twojego zwykłego użytkownika:
Uwaga: Polecenie rsync traktuje źródła i cele kończące się ukośnikiem inaczej niż te bez ukośnika. Korzystając z rsync poniżej, upewnij się, że katalog źródłowy (~/.ssh) nie zawiera ukośnika na końcu (sprawdź, czy nie używasz ~/.ssh/).
Jeśli przez przypadek dodasz ukośnik na końcu polecenia, rsync skopiuje zawartość katalogu ~/.ssh konta root do katalogu domowego użytkownika sudo, zamiast kopiować całą strukturę katalogu ~/.ssh. Pliki znajdą się w złym miejscu i SSH nie będzie w stanie ich znaleźć ani użyć.
rsync --archive --chown=sammy:sammy ~/.ssh /home/sammyTeraz otwórz nową sesję terminala na swoim lokalnym komputerze i użyj SSH ze swoją nową nazwą użytkownika:
ssh sammy@your_server_ipPowinieneś być połączony ze swoim serwerem za pomocą nowego konta użytkownika bez użycia hasła. Pamiętaj, jeśli musisz uruchomić polecenie z uprawnieniami administracyjnymi, wpisz sudo przed poleceniem w ten sposób:
sudo command_to_runZa pierwszym razem w każdej sesji (oraz okresowo później) podczas używania sudo zostaniesz poproszony o hasło swojego zwykłego użytkownika.
Najczęściej zadawane pytania
1. Czy Ubuntu może być używane jako serwer?
Absolutnie. Ubuntu jest jednym z najpopularniejszych systemów operacyjnych dla serwerów na świecie i jest zaprojektowany do szerokiego zakresu zastosowań, od lekkich instancji VPS po klastry klasy korporacyjnej.
Główne zalety Ubuntu Server:
| Funkcja | Opis |
|---|---|
| Otwarty i darmowy | Brak opłaty licencyjnej. |
| Wsparcie LTS | Wydania z długoterminowym wsparciem otrzymują 5 lat aktualizacji. |
| Gotowy na chmurę | Zoptymalizowane obrazy dla głównych chmur (Linux-Console.net, AWS, GCP). |
| Przyjazny dla DevOps | Dostarczane z OpenSSH, apt i systemd. |
| Szerokie wsparcie sprzętowe | Działa na x86, ARM, PPC i innych. |
Przykładowe zadania serwera, które Ubuntu obsługuje dobrze:
- Hosting www (Apache, Nginx)
- Bazy danych (PostgreSQL, MySQL, MongoDB)
- Serwery aplikacyjne (Node.js, Python, Java)
- Orkiestracja kontenerów (Docker, Kubernetes)
- Przechowywanie plików i kopie zapasowe
Przykład: Aby sprawdzić wersję Ubuntu:
lsb_release -a
# OR
cat /etc/os-releaseWięcej informacji o SSH i zarządzaniu pakietami znajdziesz w: Przewodniku po kluczach OpenSSH.
2. Czy Ubuntu Server jest darmowy?
Tak. Ubuntu Server jest całkowicie darmowy do pobrania, instalacji i używania w dowolnym celu — osobistym, edukacyjnym lub komercyjnym. Nie ma żadnych kosztów licencyjnych ani opłat subskrypcyjnych.
Jeśli szukasz prostego i niezawodnego sposobu na rozpoczęcie, rozważ wdrożenie Dropleta Ubuntu na Linux-Console.net. Linux-Console.net oferuje wstępnie skonfigurowane obrazy serwera Ubuntu, dzięki czemu możesz uruchomić bezpieczne serwery gotowe do produkcji w zaledwie kilku kliknięciach — idealne zarówno dla początkujących, jak i ekspertów.
Uwaga: Ubuntu Pro jest potrzebne tylko wtedy, gdy wymagane są rozszerzone aktualizacje bezpieczeństwa, funkcje zgodności lub wsparcie dla przedsiębiorstw. Dla większości użytkowników i typowych zadań, bezpłatna wersja Ubuntu Server jest w zupełności wystarczająca.
3. Którą wersję Ubuntu powinienem wybrać dla nowego serwera?
Rekomendacja:
Używaj wersji Long Term Support (LTS). Wersje LTS nadają się do produkcji i otrzymują aktualizacje przez pięć lat.
Popularne wersje LTS:
| Wydanie | Data premiery | Koniec wsparcia | Notatki |
|---|---|---|---|
| Ubuntu 24.04 LTS | kwiecień 2024 | kwiecień 2029 | Najnowsze; zalecane dla nowych instalacji |
| Ubuntu 22.04 LTS | kwiecień 2022 | kwiecień 2027 | Szeroko stosowany; bardzo stabilny |
Sprawdź swoją aktualną wersję:
lsb_release -cs # Shows the codename (e.g., 'jammy' for 22.04)Ten przewodnik i jego polecenia są zgodne zarówno z wersjami 24.04 LTS, jak i 22.04 LTS.
4. Czy powinienem wyłączyć uwierzytelnianie hasłem dla SSH?
Tak, dla silnego bezpieczeństwa.
Gdy już skonfigurujesz uwierzytelnianie klucza SSH i potwierdzisz, że możesz się zalogować, wyłączenie uwierzytelniania hasłem dla SSH zmniejsza ryzyko ataków typu brute-force na Twój serwer.
Kroki:
Otwórz konfigurację SSH:
sudo nano /etc/ssh/sshd_configZnajdź i ustaw:
PasswordAuthentication noUruchom ponownie SSH:
sudo systemctl reload sshd
Ważne: Zawsze miej inną możliwość dostępu do serwera, na przykład konsolę Dropleta na Linux-Console.net lub dostęp zapasowy, zanim wprowadzisz tę zmianę.
5. Czy muszę zmieniać domyślny port SSH?
Zmiana portu SSH z 22 jest opcjonalna i nie zastępuje prawidłowej autoryzacji za pomocą klucza SSH ani konfiguracji zapory sieciowej.
Zalety i wady:
| Zmiana portu 22 | Efekty |
|---|---|
| Nieco zmniejsza skany | Zautomatyzowane boty mogą omijać porty inne niż 22 |
| NIE zastępuje zabezpieczenia | Napastnicy nadal mogą znaleźć otwarte porty |
| Wymaga aktualizacji zapory | Reguły UFW lub firewalld wymagają zmiany |
Jeśli zmienisz port:
Edytuj
/etc/ssh/sshd_config:Port 2277 # Example port; use a port >1024 that's not in useZaktualizuj zasady UFW:
sudo ufw allow 2277/tcpPołącz za pomocą:
ssh -p 2277 user@your_server_ipUdokumentuj swój nowy port, aby uniknąć zablokowania.
Używaj tego jako dodatkowego kroku, a nie jako głównej ochrony.
Wniosek
Gratulacje! Ukończyłeś podstawowy proces początkowej konfiguracji serwera z Ubuntu. Postępując zgodnie z tymi krokami, znacznie zwiększyłeś bezpieczeństwo swojego serwera i położyłeś podwaliny pod przyszłą konfigurację. Masz teraz konto użytkownika niebędącego rootem z uprawnieniami sudo do bezpieczniejszej codziennej administracji, skonfigurowaną zaporę sieciową (UFW), która blokuje cały ruch oprócz tego, który wyraźnie zezwalasz, oraz zabezpieczoną autoryzację SSH za pomocą kluczy — co znacząco zmniejsza ryzyko nieautoryzowanego dostępu.
Dzięki zastosowaniu tych najlepszych praktyk, Twój serwer Ubuntu jest gotowy do hostowania stron internetowych i wdrażania aplikacji, a także do wszelkich dalszych dostosowań, jakie mogą być potrzebne. Konfiguracja przedstawiona w tym samouczku stanowi podstawowy wymóg prawie każdego projektu serwera Linux, a zrozumienie tych podstaw pomoże Ci pewnie zarządzać infrastrukturą w chmurze lub lokalnie.
Pamiętaj, aby śledzić swoje nowe dane uwierzytelniające, regularnie je aktualizować i nadal się uczyć, aby Twoje systemy były bezpieczne i łatwe w utrzymaniu.
Kolejne kroki
Na tym etapie masz solidne podstawy dla swojego serwera. Teraz możesz zainstalować na nim dowolne potrzebne oprogramowanie.
Jeśli chcesz lepiej poznać polecenia Linuksa, możesz sprawdzić nasz Podręcznik Wiersza Poleceń Linuksa.
Szukasz kolejnych kroków w zakresie zabezpieczania SSH i zapory sieciowej? Przejrzyj SSH Essentials: Praca z serwerami, klientami i kluczami SSH, Jak używać SSH do łączenia się z zdalnym serwerem oraz Zrozumienie procesu szyfrowania i połączenia SSH.
Wypróbuj to następnie: Utwórz Dropleta na Linux-Console.net z Ubuntu 24.04 LTS, zastosuj te kroki, a następnie dodaj zarządzaną bazę danych lub wdroż aplikację przez App Platform. Sprawdź stronę dystrybucji Ubuntu na Linux-Console.net, aby zobaczyć aktualne obrazy i uwagi do wersji.
Dziękujemy za naukę z społecznością Linux-Console.net.
