Wprowadzenie
Podczas tworzenia nowego serwera, istnieje kilka kroków konfiguracyjnych, które należy podjąć na początku w ramach podstawowej konfiguracji. To zwiększy bezpieczeństwo i funkcjonalność serwera VPS i da solidną podstawę do dalszych działań.
Krok #1: Logowanie za pomocą Root`a
Aby zalogować się na serwer, trzeba wiedzieć publiczny adres IP serwera oraz hasło do konta użytkownika root.
Jeżeli jeszcze nie jesteś podłączony do serwera, należy zalogować się jako użytkownik root za pomocą następującego polecenia (Zamiast ADRES_IP_SERVERA podaj adres IP Twojego serwera):
ssh root@ADRES_IP_SERVERA
Zakończ proces logowania przyjmując ostrzeżenie o autentyczności serwera, jeżeli się pojawi, zatem zaloguj się pod root`em (za pomocą hasła lub klucza prywatnego). Jeżeli to jest pierwsze logowanie do serwera z hasłem, to będziesz poproszony o zmianę hasła root.
Uprawnienia użytkownika Root
Użytkownik root jest administratorem w środowisku Linux, który ma bardzo szerokie uprawnienia. Ze względu na prawie nieograniczone uprawnienia użytkownika root, w rzeczywistości nie zaleca się używanie go w sposób regularny. To dlatego, że w łatwy sposób można zrobić bardzo destrukcyjne zmiany, nawet przez przypadek.
Następnym krokiem jest stworzenie alternatywnego konta użytkownika z mniejszymi uprawnieniami dla codziennej pracy.
Krok #2: Tworzenie nowego użytkownika
Gdy jesteś zalogowany jako root, już można dodać nowe konto użytkownika, które będziemy używać do logowania od tej chwili.
W tym przykładzie tworzymy nowego użytkownika o nazwie “demo“:
adduser demo
Następnie przypiszemy hasło dla nowego użytkownika:
passwd demo
Podaj bezpieczne hasło i powtórz go, aby go zweryfikować.
Krok #3: Dodanie Root uprawnień
Teraz mamy nowego użytkownika ze standardowym zestawem uprawnień. Jednak czasami musimy robić zadania administracyjne.
Aby uniknąć konieczności zmiany konta zwykłego użytkownika na konto root`a, możemy ustawić coś takiego, co nazywa się “super user” lub przypisać uprawnienia root`a do naszego normalnego konta. To pozwoli naszemu zwykłemu użytkownikowi uruchamiać polecenia z uprawnieniami administratora, umieszczając słowo sudo przed każdym poleceniem.
Aby dodać te uprawnienia do naszego nowego użytkownika, musimy dodać nowego użytkownika do grupy “wheel“. Domyślnie na CentOS 7 użytkownicy, którzy należą do grupy “wheel” mogą korzystać z sudo polecenia.
Jako root uruchom następujące polecenie, aby dodać nowego użytkownika do grupy “wheel“:
gpasswd -a demo wheel
Teraz podany wyżej użytkownik może wykonywać polecenia z uprawnieniami “super user“!
Krok #4: Dodanie klucza publicznego (Zalecane)
Następnym krokiem w zabezpieczeniu serwera jest stworzenie uwierzytelniania klucza publicznego dla nowego użytkownika. To ustawienie zwiększy bezpieczeństwo serwera przez wymaganie klucza prywatnego SSH do logowania.
Generowanie pary kluczy
Jeżeli jeszcze nie masz pary kluczy SSH, który składa się z publicznego i prywatnego klucza, trzeba stworzyć jedną parę. Jeżeli masz już klucz, który chcesz użyć, przejdź do następnego kroku Kopiowanie klucza publicznego.
Aby wygenerować nową parę kluczy, należy wpisać w konsoli swojego lokalnego systemu następujące polecenie:
ssh-keygen
Zakładamy, że nazwa użytkownika lokalnego jest “localuser“, wynik będzie wyglądać następująco:
Generating public/private rsa key pair. Enter file in which to save the key (/Users/localuser/.ssh/id_rsa):
Wciskamy Enter aby zaakceptować tę nazwę pliku i ścieżkę do niego (możesz wprowadzić inną nazwę).
Następnie zostaniesz poproszony o podanie hasła w celu zabezpieczenia klucza. Można wprowadzić hasło lub pozostawić znaczenie puste.
To wygeneruje klucz prywatny, id_rsa oraz klucz publiczny id_rsa.pub w domowym kayalogu .ssh naszego użytkownika localuser . Pamiętaj, że klucz prywatny nie powinien być udostępniony każdemu, kto nie powinien mieć dostępu do Twoich serwerów!
Kopiowanie klucza publicznego
Po wygenerowaniu pary kluczy SSH, musimy skopiować swój klucz publiczny na nowy serwer. Omówimy dwa proste sposoby, jak to zrobić.
Sposób #1: Wykorzystanie ssh-copy-id
Jeżeli lokalny komputer ma zainstalowany ssh-copy-id skrypt, można użyć go do instalacji klucza publicznego dla każdego użytkownika do którego masz dostęp.
Uruchom ssh-copy-id skrypt, podając nazwę użytkownika oraz adres IP serwera na który chcesz zainstalować klucz:
ssh-copy-id demo@ADRES_IP_SERVERA
Po podaniu hasła, klucz publiczny zostanie dodany do pliku .ssh/authorized_keys zdalnego użytkownika. Odpowiedni klucz prywatny może być używany do logowania na serwerze.
Sposób #2: Ręczna instalacja klucza
Jeżeli klucz SSH został wygenerowany za pomocą poprzedniego kroku, należy użyć następującego polecenia w terminalu komputera lokalnego, aby zobaczyć zawartość klucza publicznego ( id_rsa.pub ):
cat ~/.ssh/id_rsa.pub
Teraz możesz zobaczyć w terminalu swój klucz SSH, który będzie wyglądać podobnie do tego:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBGTO0tsVejssuaYR5R3Y/i73SppJAhme1dH7W2c47d4gOqB4izP0+fRLfvbz/tnXFz4iOP/H6eCV05hqUhF+KYRxt9Y8tVMrpDZR2l75o6+xSbUOMu6xN+uVF0T9XzKcxmzTmnV7Na5up3QM3DoSRYX/EP3utr2+zAqpJIfKPLdA74w7g56oYWI9blpnpzxkEd3edVJOivUkpZ4JoenWManvIaSdMTJXMy3MtlQhva+j9CgguyVbUkdzK9KKEuah+pFZvaugtebsU+bllPTB0nlXGIJk98Ie9ZtxuY3nCKneB+KjKiXrAvXUPCI9mWkYS/1rggpFmu3HbXBnWSUdf localuser@machine.local
Skopiuj klucz publiczny.
Dodanie klucza publicznego do zdalnego użytkownika
Aby umożliwić korzystanie z klucza SSH dla nowego zdalnego użytkownika, należy dodać klucz publiczny do specjalnego pliku w katalogu domowym użytkownika.
Na serwerze VPS jako użytkownik root wpisujemy następujące polecenie, aby przełączyć się na nowego użytkownika (podstawić swoją nazwę użytkownika):
su – demo
Teraz jesteś w katalogu domowym użytkownika demo.
Utwórz nowy katalog o nazwie .ssh i ogranicz jego uprawnienia wykorzystując następujące polecenia:
mkdir .ssh
chmod 700 .ssh
Teraz otwórz plik .ssh o nazwie authorized_keys za pomocą edytora tekstu. Będziemy korzystać z vi
do edycji pliku:
vi .ssh/authorized_keys
Aby przejść do trybu wstawiania nacisnij klawisz i, następnie wprowadź swój klucz publiczny (który powinien być w schowku), wklejając go do edytora. Teraz nacisnij Esc aby opuścić tryb wstawiania.
Wpisz :X
, następnie Enter, aby zapisać i zamknąć plik.
Teraz ograniczamy uprawnienia do pliku authorized_keys używając tego polecenia:
chmod 600 .ssh/authorized_keys
Wpisz jeden raz następujące polecenie, aby wrócić do użytkownika root:
exit
Teraz możesz zalogować się poprzez SSH jako nowy użytkownik za pomocą Twojego prywatnego klucza.
Krok #5: Konfiguracja SSH Daemon
Teraz, kiedy mamy nowe konto, możemy zabezpieczyć nasz serwer trochę modyfikując swoją konfigurację Daemona SSH (program, który pozwala nam, aby zalogować się zdalnie), aby uniemożliwić zdalny dostęp SSH do głównego konta root.
Zacznijmy od otwarcia pliku konfiguracyjnego z edytora tekstu jako root:
vi /etc/ssh/sshd_config
Tutaj mamy możliwość wyłączenia logowania root poprzez SSH. Zazwyczaj, jest to bardziej bezpieczne ustawienie, ponieważ możemy teraz uzyskać dostęp do naszego serwera za pośrednictwem konta zwykłego użytkownika, uprawnienia którego możemy rozszerzyć w razie potrzeby.
Aby wyłączyć funkcję zdalnego logowania root`a, musimy znaleźć wiersz, który wygląda tak:
#PermitRootLogin yes
Odkomentuj linię usuwając symbol “#” (naciśnij Shift-x).
Teraz przesuń kursor na “tak“, naciskając c.
Teraz zastąp “tak“, naciskając cw, a następnie wpisując “nie“. Naciskamy Escape po zakończeniu edycji. Powinno to wyglądać tak:
PermitRootLogin no
Wyłączenie zdalnego logowania jako root jest bardzo zalecane na każdym serwerze!
Wpisz :X
, następnie Enter, aby zapisać i zamknąć plik.
Odśwież SSH
Teraz, po wprowadzeniu naszych zmian, należy ponownie uruchomić usługę SSH, aby system zaczął korzystać z naszej nowej konfiguracji.
Wpisz to polecenie, aby ponownie uruchomić SSH:
systemctl reload sshd
Teraz, zanim opuścimy serwer musimy sprawdzić naszą nową konfigurację. Nie chcemy odłączać się od serwera bez potwierdzenia że nowe połączenia będzie nawiązane pomyślnie.
Otwórz nowe okno terminala na maszynie lokalnej. W nowym oknie, musimy utworzyć nowe połączenie do naszego serwera. Tym razem, zamiast korzystania z konta root skorzystamy z nowego konta które stworzyliśmy.
Ze zdalnym serwerem, który skonfigurowaliśmy wyżej, można się połączyć za pomocą następującego polecenia. Zamień nazwę użytkownika oraz adres IP serwera na swoje wlasne znaczenia:
ssh demo@ADRES_IP_SERVERA
Zostaniesz poproszony o podanie hasła nowego użytkownika, który został skonfigurowany wcześniej. Zatem zostaniesz zalogowany jako nowy użytkownik.
Pamiętaj, że jeżeli trzeba uruchomić polecenie z uprawnieniami administratora, wpisz “sudo” przed nim:
sudo command_to_run
Jeżeli wszystko jest w porządku, można wyjść z sesji wpisując polecenie:
exit
Gratulacje, teraz już umiesz zrobić wstępną konfigurację serwera z CentOS 7!