Początkowa konfiguracja serwera z Ubuntu 20.04 /18.04 i 16.04
- 4379
- 1391
- Pan Jeremiasz Więcek
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 aptZaktualizuj 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 uaktualnienieUaktualnij 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 cleanPakiety 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_userUtwó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 aktualizacjaSprawdź 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 /hostNameUstaw 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 2048Ustaw 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] _ServerSkopiuj 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 $ exitSprawdź 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.pubWyś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 nrBezpieczna 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 SshSprawdź 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 SSHSkonfiguruj 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 StatusSprawdź 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 UFWOtwó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 VareboseSprawdź 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.comKonfiguracja 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.pracaUruchom 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 -tulpnWymień 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.pracaSprawdź 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-rozdzielonyWyłą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 restarstlSprawdź 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 pstreeLista 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.
- « Jak zainstalować LightTPD z PHP, Mariadb i PhpMyAdmin w Ubuntu
- Jak sklonować serwer Centos z RSync »