wprowadzenie
podczas pierwszego tworzenia nowego serwera należy wykonać kilka kroków konfiguracyjnych, które należy wykonać na początku w ramach podstawowej konfiguracji. Zwiększy to Bezpieczeństwo i użyteczność twojego serwera i da ci solidne podstawy do kolejnych działań.
Krok pierwszy — Root Login
aby zalogować się na serwer, musisz znać publiczny adres IP serwera i hasło do konta użytkownika „root”. Jeśli jeszcze nie zalogowałeś się na swoim serwerze, możesz skorzystać z pierwszego samouczka z tej serii, Jak połączyć się z kroplą za pomocą SSH, który szczegółowo opisuje ten proces.
Jeśli nie jesteś jeszcze połączony z serwerem, Zaloguj się jako użytkownik root
używając następującego polecenia (zastąp wyróżnione słowo publicznym adresem IP serwera):
- ssh [email protected]_IP_ADDRESS
Zakończ proces logowania, akceptując ostrzeżenie o autentyczności hosta, jeśli się pojawi, a następnie podając uwierzytelnienie root (hasło lub klucz prywatny). Jeśli logujesz się po raz pierwszy na serwer za pomocą hasła, zostaniesz również poproszony o zmianę hasła roota.
o Roocie
użytkownik root jest użytkownikiem administracyjnym w środowisku Linuksowym, które ma bardzo szerokie uprawnienia. Ze względu na podwyższone uprawnienia konta root, w rzeczywistości zniechęcasz się do regularnego korzystania z niego. Dzieje się tak dlatego, że częścią mocy nieodłącznej z kontem root jest zdolność do dokonywania bardzo destrukcyjnych zmian, nawet przez przypadek.
kolejnym krokiem jest utworzenie alternatywnego konta użytkownika o zmniejszonym zakresie wpływu na codzienną pracę. Nauczymy cię, jak zdobywać zwiększone przywileje w czasach, gdy ich potrzebujesz.
Krok drugi — Utwórz nowego Użytkownika
po zalogowaniu się jakoroot
jesteśmy gotowi dodać nowe konto użytkownika, którego będziemy używać do logowania się od teraz.
Ten przykład tworzy nowego Użytkownika o nazwie „demo”, ale powinieneś zastąpić go nazwą użytkownika, która Ci się podoba:
- adduser demo
następnie przypisz hasło do nowego Użytkownika (ponownie zastąp „demo” użytkownikiem, którego właśnie utworzyłeś):
- passwd demo
wprowadź silne hasło i powtórz je ponownie, aby je zweryfikować.
Krok trzeci — uprawnienia roota
teraz mamy nowe konto użytkownika ze zwykłymi uprawnieniami konta. Czasami jednak możemy potrzebować wykonać zadania administracyjne.
aby uniknąć konieczności wylogowywania się z naszego normalnego użytkownika i logowania z powrotem jako konto root, możemy skonfigurować coś, co jest znane jako „super użytkownik” lub uprawnienia roota dla naszego normalnego konta. Pozwoli to naszemu zwykłemu użytkownikowi na uruchamianie poleceń z uprawnieniami administracyjnymi poprzez umieszczenie słowa sudo
przed każdym poleceniem.
aby dodać te uprawnienia do naszego nowego użytkownika, musimy dodać nowego Użytkownika do grupy „koło”. Domyślnie na CentOS 7 użytkownicy należący do grupy” wheel”mogą używać polecenia sudo
.
jakoroot
, uruchom to polecenie, aby dodać nowego Użytkownika do grupy kół (zastąp wyróżnione słowo nowym użytkownikiem):
- gpasswd -a demo wheel
teraz twój użytkownik może uruchamiać polecenia z uprawnieniami super użytkownika! Aby uzyskać więcej informacji na temat tego, jak to działa, sprawdź nasz samouczek sudoers.
Krok czwarty — Dodaj uwierzytelnianie klucza publicznego (zalecane)
następnym krokiem w zabezpieczaniu serwera jest skonfigurowanie uwierzytelniania klucza publicznego dla nowego użytkownika. Konfiguracja ta zwiększy bezpieczeństwo serwera, wymagając prywatnego klucza SSH do logowania.
generowanie pary kluczy
Jeśli nie masz jeszcze pary kluczy SSH, która składa się z klucza publicznego i prywatnego, musisz ją wygenerować. Jeśli masz już klucz, którego chcesz użyć, przejdź do kroku Kopiuj klucz publiczny.
aby wygenerować nową parę kluczy, wprowadź następujące polecenie na terminalu komputera lokalnego:
- ssh-keygen
zakładając, że twój lokalny użytkownik nazywa się „localuser”, zobaczysz wyjście, które wygląda następująco:
ssh-keygen outputGenerating public/private rsa key pair.Enter file in which to save the key (/Users/localuser/.ssh/id_rsa):
naciśnij return, aby zaakceptować nazwę pliku i ścieżkę (lub wprowadź nową nazwę).
następnie zostanie wyświetlony monit o hasło zabezpieczające klucz. Możesz wprowadzić hasło lub pozostawić je puste.
Uwaga: Jeśli hasło zostanie puste, będzie można użyć klucza prywatnego do uwierzytelniania bez wprowadzania hasła. Jeśli wprowadzisz hasło, będziesz potrzebować zarówno klucza prywatnego, jak i hasła, aby się zalogować. Zabezpieczanie kluczy za pomocą haseł jest bezpieczniejsze, ale obie metody mają swoje zastosowania i są bezpieczniejsze niż podstawowe uwierzytelnianie hasłem.
To generuje klucz prywatny,id_rsa
I klucz publiczny,id_rsa.pub
, w katalogu.ssh
katalogu domowego użytkownika lokalnego. Pamiętaj, że klucz prywatny nie powinien być udostępniany nikomu, kto nie powinien mieć dostępu do Twoich serwerów!
skopiuj klucz publiczny
po wygenerowaniu pary kluczy SSH będziesz chciał skopiować klucz publiczny na nowy serwer. Omówimy dwa proste sposoby, aby to zrobić.
Uwaga: metodassh-copy-id
nie będzie działać na DigitalOcean, jeśli podczas tworzenia kropli wybrano klucz SSH. Dzieje się tak, ponieważ DigitalOcean wyłącza uwierzytelnianie hasłem, jeśli istnieje klucz SSH, a ssh-copy-id
polega na uwierzytelnianiu hasła, aby skopiować klucz.
Jeśli używasz DigitalOcean i wybrałeś klucz SSH podczas tworzenia kropli, użyj opcji 2.
Opcja 1: Użyj ssh-copy-id
Jeśli na twojej lokalnej maszynie jest zainstalowany skryptssh-copy-id
, możesz go użyć do zainstalowania klucza publicznego dla każdego użytkownika, dla którego posiadasz dane logowania.
Uruchom skryptssh-copy-id
, określając użytkownika i adres IP serwera, na którym chcesz zainstalować klucz, w ten sposób:
- ssh-copy-id [email protected]_IP_ADDRESS
Po podaniu hasła w monicie, klucz publiczny zostanie dodany do pliku.ssh/authorized_keys
. Odpowiedni klucz prywatny może być teraz użyty do zalogowania się na serwer.
Opcja 2: Ręcznie zainstaluj klucz
zakładając, że wygenerowałeś parę kluczy SSH za pomocą poprzedniego kroku, użyj następującego polecenia na terminalu komputera lokalnego, aby wydrukować klucz publiczny (id_rsa.pub
):
- cat ~/.ssh/id_rsa.pub
powinno to wydrukować publiczny klucz SSH, który powinien wyglądać mniej więcej tak jak poniżej:
id_rsa.pub contentsssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBGTO0tsVejssuaYR5R3Y/i73SppJAhme1dH7W2c47d4gOqB4izP0+fRLfvbz/tnXFz4iOP/H6eCV05hqUhF+KYRxt9Y8tVMrpDZR2l75o6+xSbUOMu6xN+uVF0T9XzKcxmzTmnV7Na5up3QM3DoSRYX/EP3utr2+zAqpJIfKPLdA74w7g56oYWI9blpnpzxkEd3edVJOivUkpZ4JoenWManvIaSdMTJXMy3MtlQhva+j9CgguyVbUkdzK9KKEuah+pFZvaugtebsU+bllPTB0nlXGIJk98Ie9ZtxuY3nCKneB+KjKiXrAvXUPCI9mWkYS/1rggpFmu3HbXBnWSUdf [email protected]
wybierz klucz publiczny i skopiuj go do schowka.
Dodaj klucz publiczny do nowego Zdalnego Użytkownika
aby umożliwić użycie klucza SSH do uwierzytelnienia jako nowy zdalny użytkownik, należy dodać klucz publiczny do specjalnego pliku w katalogu domowym użytkownika.
na serwerze, jako użytkownik root
, wprowadź następujące polecenie, aby przełączyć się na nowego użytkownika (zastąp własną nazwę użytkownika):
- su - demo
teraz będziesz w katalogu domowym nowego użytkownika.
Utwórz nowy katalog o nazwie.ssh
I ogranicz jego uprawnienia za pomocą następujących poleceń:
- mkdir .ssh
- chmod 700 .ssh
teraz otwórz plik w .ssh o nazwie authorized_keys
z edytorem tekstu. Do edycji pliku użyjemy vi:
- vi .ssh/authorized_keys
wejdź w tryb wstawiania, naciskająci
, następnie wprowadź swój klucz publiczny (który powinien znajdować się w schowku) wklejając go do edytora. Teraz naciśnij ESC
, aby opuścić tryb wstawiania.
wprowadź:x
następnieENTER
, aby zapisać i zakończyć plik.
teraz ogranicz uprawnienia pliku authorized_keys za pomocą tego polecenia:
- chmod 600 .ssh/authorized_keys
wpisz to polecenie raz, aby powrócić do root
użytkownik:
- exit
teraz możesz zalogować się SSH jako nowy użytkownik, korzystając z klucz prywatny jako uwierzytelnienie.
aby dowiedzieć się więcej o tym, jak działa uwierzytelnianie kluczy, przeczytaj ten samouczek: Jak skonfigurować uwierzytelnianie oparte na kluczach SSH na serwerze Linux.
krok piąty — Skonfiguruj demona SSH
teraz, gdy mamy nowe konto, możemy zabezpieczyć nasz serwer, modyfikując jego konfigurację demona SSH (program, który pozwala nam zalogować się zdalnie), aby uniemożliwić zdalny dostęp SSH do konta root.
Rozpocznij od otwarcia pliku konfiguracyjnego z edytorem tekstowym jako root:
- vi /etc/ssh/sshd_config
tutaj mamy możliwość wyłączenia logowania roota przez SSH. Jest to na ogół bardziej bezpieczne ustawienie, ponieważ możemy teraz uzyskać dostęp do naszego serwera za pośrednictwem naszego normalnego konta użytkownika i eskalować uprawnienia w razie potrzeby.
aby wyłączyć zdalne logowanie roota, musimy znaleźć linię, która wygląda tak:
#PermitRootLogin yes
Wskazówka: aby wyszukać tę linię, wpisz/PermitRoot
, a następnie naciśnijENTER
. To powinno doprowadzić kursor do znaku ” P ” w tej linii.
odkomentuj linię, usuwając symbol ” # ” (naciśnijShift-x
).
teraz przesuń kursor na „tak”, naciskającc
.
teraz zastąp „tak” naciskając cw
, a następnie wpisując „nie”. Kliknij Escape
po zakończeniu edycji. Powinno to wyglądać tak:
PermitRootLogin no
wyłączenie zdalnego logowania roota jest wysoce zalecane na każdym serwerze!
wprowadź:x
następnieENTER
, aby zapisać i zakończyć plik.
Przeładuj SSH
teraz, gdy wprowadziliśmy nasze zmiany, musimy ponownie uruchomić usługę SSH, aby korzystać z naszej nowej konfiguracji.
wpisz to, aby ponownie uruchomić SSH:
- systemctl reload sshd
teraz, zanim wylogujemy się z serwera, powinniśmy przetestować naszą nową konfigurację. Nie chcemy się rozłączać, dopóki nie potwierdzimy, że nowe połączenia mogą zostać pomyślnie nawiązane.
Otwórz nowe okno terminala. W nowym oknie musimy rozpocząć nowe połączenie z naszym serwerem. Tym razem zamiast korzystać z konta root, chcemy użyć nowego konta, które stworzyliśmy.
dla serwera, który skonfigurowaliśmy powyżej, połącz się za pomocą tego polecenia. Zastąp własne informacje tam, gdzie jest to właściwe:
- ssh [email protected]_IP_ADDRESS
Uwaga: Jeśli używasz PuTTY do łączenia się z serwerami, zaktualizuj numer portu sesji, aby pasował do bieżącej konfiguracji serwera.
zostaniesz poproszony o skonfigurowane hasło nowego użytkownika. Następnie zostaniesz zalogowany jako nowy użytkownik.
pamiętaj, że jeśli chcesz uruchomić polecenie z uprawnieniami roota, wpisz „sudo” przed nim w następujący sposób:
- sudo command_to_run
Jeśli wszystko jest w porządku, możesz zakończyć sesje, wpisując:
- exit
dokąd się stąd udać?
w tym momencie masz solidne podstawy dla swojego serwera. Możesz teraz zainstalować dowolne oprogramowanie, którego potrzebujesz na swoim serwerze.
Jeśli nie jesteś pewien, co chcesz zrobić ze swoim serwerem, sprawdź następny samouczek z tej serii, aby uzyskać dodatkowe zalecane kroki dla nowych serwerów CentOS 7. Obejmuje on takie rzeczy, jak włączeniefail2ban
w celu zmniejszenia skuteczności ataków brute force, podstawowych ustawień zapory sieciowej, NTP i plików wymiany. Zawiera również linki do samouczków, które pokazują, jak skonfigurować typowe aplikacje internetowe.
Jeśli chcesz po prostu eksplorować, spójrz na resztę naszej społeczności, aby znaleźć więcej samouczków. Niektóre popularne pomysły to konfiguracja stosu LAMP lub stosu LEMP, który pozwoli na hostowanie stron internetowych.