Początkowa konfiguracja serwera z Ubuntu 20.04 /18.04 i 16.04

Początkowa konfiguracja serwera z Ubuntu 20.04 /18.04 i 16.04

Ten samouczek poprowadzi Cię w pierwszych podstawowych krokach, które należy skonfigurować na nowym zainstalowanym Ubuntu serwer w celu zwiększenia bezpieczeństwa i niezawodności dla twojego serwera.

Konfiguracje wyjaśnione w tym temacie są prawie takie same dla wszystkich systemów serwerów Ubuntu, jeśli chodzi o podstawową platformę systemu operacyjnego, czy to Ubuntu jest instalowany na serwerze gołym metalowym, w prywatnej maszynie wirtualnej lub w wirtualnej maszynie spinowanej w chmurze publicznej VPS.

Wymagania

  • Ubuntu 20.04 Instalacja serwera
  • Ubuntu 18.04 Instalacja serwera
  • Ubuntu 16.04 Instalacja serwera

Zaktualizuj i aktualizuj system Ubuntu

Pierwszy krok, o który musisz zająć się w przypadku świeżej instalacji Ubuntu serwer lub nowy wdrożony Ubuntu VPS jest upewnienie się, że system i wszystkie komponenty systemowe, takie jak jądro, menedżer pakietów Apt i wszystkie inne zainstalowane pakiety są aktualne z najnowszymi wersjami wydaniami i łatkami bezpieczeństwa.

Aby zaktualizować serwer Ubuntu, zalogować się do konsoli serwera za pomocą konta z uprawnieniami root lub bezpośrednio jako root i uruchom poniższe polecenia w celu wykonania procesu aktualizacji i aktualizacji.

Aktualizacja $ sudo apt 
Zaktualizuj serwer Ubuntu

Po uruchomieniu polecenia aktualizacji zobaczysz liczbę dostępnych pakietów procesu aktualizacji i polecenie używane do listy aktualizacji pakietów.

$ sudo apt lista -Ukształcenie się 
Lista aktualizacji pakietów Ubuntu

Po konsultacji z listą pakietów dostępnych do aktualizacji, wydaj poniższe polecenie, aby uruchomić proces aktualizacji systemu.

$ sudo apt uaktualnienie 
Uaktualnij pakiety serwera Ubuntu

Aby usunąć wszystkie lokalnie pobrane pakiety Deb i wszystkie inne komputery danych APT, wykonaj poniższe polecenie.

$ sudo apt autoreMove $ sudo apt clean 
Pakiety i pamięć podręczna AutoreMove

Utwórz nowe konto w Ubuntu

Domyślnie, jako miara bezpieczeństwa, konto główne jest całkowicie wyłączone w Ubuntu. Aby utworzyć nowe konto w systemie, zaloguj się do systemu z użytkownikiem konta z uprawnieniami root i utwórz nowe konto z poniższym poleceniem.

To nowe konto zostanie przyznane z uprawnieniami pierwotnymi uprawnieniami za pośrednictwem polecenia Sudo i będzie używane do wykonywania zadań administracyjnych w systemie. Upewnij się, że skonfigurowałeś silne hasło do ochrony tego konta. Podążaj za Dodaj użytkownika monit o konfigurację danych użytkownika i hasła.

$ sudo adduser ubuntu_user 
Utwórz użytkownika w Ubuntu

Jeśli to konto zostanie przypisane do innego administratora systemu, możesz zmusić użytkownika do zmiany hasła przy pierwszym dzienniku, wydając następujące polecenie.

$ sudo chage -d0 ubuntu_user 

Na razie nowy dodany użytkownik nie może wykonywać zadań administracyjnych za pośrednictwem Sudo Utility. Aby przyznać to nowe konto użytkownika z uprawnieniami administracyjnymi, należy dodać użytkownika do „sudo„Grupa systemowa, wydając poniższe polecenie.

$ sudo usermod -a -g sudo ubuntu_user 

Domyślnie wszyscy użytkownicy należący do „sudo„Grupa może wykonywać polecenia z uprawnieniami root za pośrednictwem narzędzia Sudo. Polecenie Sudo należy użyć przed napisaniem polecenia potrzebnego do wykonania, jak pokazano w poniższym przykładzie.

$ sudo apt instal instal pakiet_name 

Przetestuj, czy nowy użytkownik ma przyznane uprawnienia root, logując się do systemu i uruchom aktualizacja apt Polecenie prefiksowane z sudo.

$ su - Ubuntu_user $ sudo apt aktualizacja 
Sprawdź nowego użytkownika

Skonfiguruj nazwę hosta systemu w Ubuntu

Zwykle nazwa hosta maszyny jest konfigurowana podczas procesu instalacji systemu lub gdy VPS jest tworzony w chmurze. Należy jednak zmienić nazwę swojego komputera, aby lepiej odzwierciedlić miejsce docelowe swojego serwera lub lepiej opisać jego ostateczny cel.

W dużej firmie maszyny są nazwane po złożonych schematach nazewnictwa w celu łatwego identyfikacji maszyny w stojakach centrum danych. Na przykład, jeśli Twój komputer Ubuntu będzie obsługiwał serwer pocztowy, nazwa maszyny powinna odzwierciedlać ten fakt i możesz skonfigurować nazwę hosta komputera jako MX01.mydomain.Lan, Na przykład.

Aby wyświetlić szczegóły dotyczące nazwy hosta komputera, uruchom następujące polecenie.

$ hostnamectl 

Aby zmienić nazwę twojego komputera, problem Polecenie hostnamectl z nową nazwą, którą skonfigurujesz dla swojego komputera, jak pokazano w poniższym fragmencie.

$ sudo hostnamectl set-hostname tecmint 

Sprawdź nową nazwę swojego systemu za pomocą jednego z poniższych poleceń.

$ hostName $ hostName -s $ cat /etc /hostName 
Ustaw nazwę hosta na serwerze Ubuntu

Konfiguracja SSH z uwierzytelnianiem klucza publicznego w Ubuntu

Aby zwiększyć stopień bezpieczeństwa systemu serwera Ubuntu, powinieneś skonfigurować uwierzytelnianie klucza publicznego SSH dla konta lokalnego. Aby wygenerować parę kluczy SSH, klucz publiczny i prywatny, z określeniem długości klucza, takiej jak 2048 bitów, wykonaj następujące polecenie w konsoli serwerowej.

Upewnij się, że jesteś zalogowany do systemu z użytkownikiem konfigurujesz klawisz SSH.

$ su -Ubuntu_user $ ssh -keygen -t rsa -b 2048 
Ustaw ssh klucze w Ubuntu

Podczas generowania klucza zostaniesz poproszony o dodanie fraza Aby zabezpieczyć klucz. Możesz wejść do silnej hasła lub zdecydować się na pozostawienie pustego pasa, jeśli chcesz zautomatyzować zadania za pośrednictwem serwera SSH.

Po wygenerowaniu klucza SSH możesz skopiować klucz publiczny na zdalny serwer, wykonując poniższe polecenie. Aby zainstalować klucz publiczny na zdalnym serwerze SSH, potrzebujesz zdalnego konta użytkownika z odpowiednimi uprawnieniami i poświadczeniami, aby zalogować się do zdalnego serwera.

$ ssh-copy-id [e-mail chroniony] _Server 
Skopiuj klucz SSH na zdalny serwer

Powinieneś być w stanie automatycznie zalogować się przez SSH do zdalnego serwera za pomocą metody uwierzytelniania klucza publicznego. Nie musisz dodawać zdalnego hasła użytkownika podczas korzystania z uwierzytelniania klucza publicznego SSH.

Po zalogowaniu się na zdalnym serwerze możesz zacząć wykonywać polecenia, takie jak W polecenie Aby wymienić SSH zdalnie zalogowane użytkowników, jak pokazano na poniższym zrzucie ekranu.

Wpisz wyjście w konsoli, aby zamknąć zdalną sesję SSH.

$ ssh [chroniony e -mail] _Server $ w $ exit 
Sprawdź logowanie bez hasła SSH

Aby zobaczyć treść publicznego klucza SSH w celu ręcznego zainstalowania klucza do zdalnego serwera SSH, wydać następujące polecenie.

$ cat ~/.ssh/id_rsa.pub 
Wyświetl klucz SSH

Bezpieczny serwer SSH w Ubuntu

Aby zabezpieczyć demona SSH, należy zmienić domyślny numer portu SSH z 22 do losowego portu, wyższego niż 1024, i odrzuć zdalny dostęp SSH do konta głównego za pośrednictwem hasła lub klucza, otwierając główny plik konfiguracyjny serwera SSH i dokonaj następujących zmian.

$ sudo vi/etc/ssh/sshd_config 

Najpierw przeszukaj skomentowaną linię #Port22 i dodaj nową linię pod spodem (odpowiednio wymień numer portu słuchania):

Port 2345 

Nie zamykaj pliku, przewiń w dół i szukaj linii #Permitrootlogin Tak, odkształcić linię, usuwając # znak (hashtag) od początku wiersza i zmodyfikuj linię, aby wyglądała jak pokazana w poniższym fragmencie.

Pertrootlogin nr 
Bezpieczna usługa SSH

Następnie uruchom ponownie serwer SSH, aby zastosować nowe ustawienia i przetestować konfigurację, próbując zalogować się ze zdalnego urządzenia do tego serwera za pomocą konta głównego za pośrednictwem nowego numeru portu. Dostęp do konta root za pośrednictwem SSH powinien być ograniczony.

$ sudo systemctl restart sshd 

Uruchom także Netstat lub polecenie ss i odfiltruj dane wyjściowe za pomocą polecenia GREP, aby wyświetlić nowy numer portu słuchania dla serwera SSH.

$ sudo ss -tlpn | GREP SSH $ sudo netstat -tlpn | Grep Ssh 
Sprawdź port SSH Powiązany artykuł: 7 Przydatne wskazówki dotyczące bezpieczeństwa SSH dla Harden OpenSsh Server

Są sytuacje, w których możesz automatycznie odłączyć wszystkie zdalne połączenia SSH ustanowione na serwerze po okresie bezczynności.

Aby włączyć tę funkcję, wykonaj poniższe polecenie, które dodaje Tmout Zmienna bash na Twoje konto .Bashrc Ukryty plik i wymusza każde połączenie SSH wykonane z nazwą użytkownika do odłączenia lub porzucenia po 5 minutach bezczynności.

$ echo 'tmout = 300' >> .Bashrc 

Uruchom polecenie ogona, aby sprawdzić, czy zmienna została poprawnie dodana na końcu .Bashrc plik. Wszystkie kolejne połączenia SSH zostaną automatycznie zamknięte po 5 minutach bezczynności.

$ ogon .Bashrc 

Na poniższym zrzucie ekranu zdalna sesja SSH z maszyny Drupal do serwera Ubuntu za pośrednictwem konta Ubuntu_user została wyczerpana i automatyczna logout po 5 minutach.

Automatyczne rozłączenie sesji SSH

Skonfiguruj Ubuntu Firewall UFW

Każdy serwer potrzebuje dobrze skonfigurowanej zapory, aby zabezpieczyć system na poziomie sieci. Używa serwera Ubuntu UFW Aplikacja do zarządzania regułami IPTABLES na serwerze.

Sprawdź status wniosku o zapory UFW w Ubuntu, wydając poniższe polecenia.

$ sudo SystemCtl Status UFW $ sudo UFW Status 
Sprawdź status zapory UFW

Zazwyczaj demon zapory UFW jest uruchomiony na serwerze Ubuntu, ale reguły nie są stosowane domyślnie. Przed włączeniem zasad ogniowych UFW w systemie, najpierw powinieneś dodać nową zasadę, aby umożliwić przechodzenie przez SSH ruchu przez zapór za pośrednictwem zmienionego portu SSH. Regułę można dodać, wykonując poniższe polecenie.

$ sudo ufw zezwala na 2345/tcp 

Po zezwoleniu na ruch SSH możesz włączyć i sprawdzić aplikację zapory UFW za pomocą następujących poleceń.

$ sudo ufw Włącz status $ sudo UFW 
Otwórz port SSH i sprawdź

Aby dodać nowe reguły zapory dla innych usług sieciowych, które następnie zainstalowane na serwerze, takie jak serwer HTTP, serwer pocztowy lub inne usługi sieciowe, użyj poniższych przykładów poleceń zapory.

$ sudo ufw Zezwalaj na Http #Allow Http Traff 

Aby wymienić wszystkie reguły zapory, uruchom poniższe polecenie.

$ sudo UFW status Varebose 
Sprawdź zasady zapory UFW Powiązany artykuł: Jak skonfigurować zaporę UFW na serwerze Ubuntu

Ustaw czas serwera Ubuntu

Aby kontrolować lub zapytać zegar serwera Ubuntu i inne powiązane ustawienia czasu, wykonaj polecenie timedatectl bez argumentu.

Aby zmienić ustawienia stref czasowych serwera, najpierw wykonaj polecenie timedatectl z argumentem List TimeZones, aby wymienić wszystkie dostępne strefy czasowe, a następnie ustaw strefę czasową systemu, jak pokazano w poniższym fragmencie.

$ sudo timedatectl $ sudo timedatectl List TimeZone $ sudo timedatectl set-timeZone Europe/Wiedeń 
Ustaw strefę czasową Ubuntu

Nowa SystemD-Timesyncd Klient Demaon Systemd może być wykorzystywany w Ubuntu, aby zapewnić dokładny czas dla serwera w sieci i zsynchronizować czas z górnym serwerem równorzędnym.

Aby zastosować tę nową funkcję SystemD, zmodyfikuj SystemD-Timesyncd Plik konfiguracyjny demona i dodaj najbliższe geograficznie serwery NTP do linii instrukcji NTP, jak pokazano w poniższym pliku fragment:

$ sudo nano/etc/systemd/timesyncd.conf 

Dodaj następującą konfigurację do Timesyncd.conf plik:

[Czas] ntp = 0.basen.NTP.org 1.basen.NTP.org fallbackntp = ntp.Ubuntu.com 
Konfiguracja czasu NTP

Aby dodać najbliższe geograficznie serwery NTP, zapoznaj się z listą serwerów projektów NTP Pool pod następującym adresem: http: // www.basen.NTP.org/en/

Następnie uruchom ponownie demon SystemD Timesync, aby odzwierciedlić zmiany i sprawdź status demona, uruchamiając poniższe polecenia. Po ponownym uruchomieniu demon zacznie synchronizować czas z nowym równorzędnym serwerem NTP.

$ sudo systemCtl restartuj systemd-timesyncd.Service $ sudo Systemctl Status SystemD-Timesyncd.praca 
Uruchom usługę Timesyncd

Wyłącz i usuń niepotrzebne usługi w Ubuntu

Aby uzyskać listę wszystkich usług sieciowych TCP i UDP, domyślnie na serwerze Ubuntu, wykonaj SS lub polecenie NetStat.

$ sudo netstat -tulpn lub $ sudo ss -tulpn 
Wymień wszystkie uruchomione usługi

Wpatrując się w Ubuntu 16.10 zwolnienie, domyślny rozdzielczy DNS jest teraz kontrolowany przez rozdzielony systemem usługa, jak ujawniono wyniki Netstat Lub Polecenia SS.

Powinieneś także sprawdzić rozdzielony systemem Status usługi poprzez uruchomienie następującego polecenia.

$ sudo SystemCtl Status SystemD-rozdzielony.praca 
Sprawdź status rozdzielonego systemu

rozdzielony systemem Usługa wiąże wszystkie włączone interfejsy sieciowe i słucha na portach 53 I 5355 TCP I UDP.

Działanie rozdzielony systemem Buforowanie demona DNS na serwerze produkcyjnym może być niebezpieczne ze względu na liczbę ataków DDOS przeprowadzonych przez złośliwych hakerów przeciwko niezabezpieczonym serwerom DNS.

Aby zatrzymać i wyłączyć tę usługę, wykonaj następujące polecenia.

$ sudo systemCtl stop SystemD Resolved $ sudo systemctl wyłącz systemd-rozdzielony 
Wyłącz usługę rozdzieloną przez systemd

Sprawdź, czy usługa została zatrzymana i wyłączona, wydając SS Lub Polecenie NetStat. Porty słuchowe z rozdzielczością systemu, 53 i 5355 TCP i UDP, nie powinny być wymienione w wyjściu NetStat lub SS, jak pokazano w poniższych.

Powinieneś także ponownie uruchomić maszynę, aby całkowicie wyłączyć wszystkie usługi demon-rozdzielone systemu i przywrócić domyślnie /etc/resolv.conf plik.

$ sudo ss -tulpn $ sudo netstat -tulpn $ sudo systemCtl restarstl 
Sprawdź wszystkie uruchomione usługi

Chociaż wyłączyłeś niektóre niechciane usługi sieciowe do uruchamiania na twoim serwerze, w systemie instalowane i uruchomione są również inne usługi, takie jak LXC proces i Snapd praca. Usługi te można łatwo wykryć za pośrednictwem PS, TOP lub pstree polecenia.

$ sudo ps aux $ sudo top $ sudo pstree 
Lista usług uruchamiających w formacie drzewa

W przypadku, gdy nie będziesz używać wirtualizacji kontenerów LXC na serwerze lub zaczniesz instalować oprogramowanie pakowane za pośrednictwem Menedżera pakietów Snap, powinieneś całkowicie wyłączyć i usunąć te usługi, wydając poniższe polecenia.

$ sudo apt autoreMove--Purge LXC-COMMON LXCFS $ sudo apt autoreMove-Purge Snapd 

To wszystko! Teraz serwer Ubuntu jest teraz przygotowany do instalacji dodatkowego oprogramowania potrzebnego dla niestandardowych usług lub aplikacji sieciowych, takich jak instalowanie i konfigurowanie serwera WWW, serwer bazy danych, usługi udostępniania plików lub inne konkretne aplikacje.