Jak tylko zostanie skonfigurowany nowy, czysty serwer z systemem operacyjnym Ubuntu 16.04 musimy dokonać kilku etapów ustawień dla konfiguracji naszego VPS. Pozwoli to podnieść poziom jego bezpieczeństwa i użyteczności, co również da solidną podstawę do dalszych działań.
Logowanie za pomocą Root`a
Żeby wejść na serwer VPS musisz wiedzieć jego publiczny adres IP i hasło głównego użytkownika o loginie “root”. Jeżeli będziesz miał problemy z odnalezieniem hasła czy adresu IP, możesz wejść do Panelu klienta i w zakładce z informacją o aktywnym produkcie będziesz miał link “Change Password” i informację o dodanym do Twojego serwera głównym adresie IP.
Jeżeli jeszcze nie jesteś zalogowany na serwer wirtualny, możesz to zrobić za pomocą następnego polecenia w systemach Linux / OS X (tylko musisz podświetlone słówko zamienić na swój IP):
ssh root@ADRES_IP_SERWERA
W systemie Windows możesz zalogować się za pomocą programu Putty.
Zakończ proces logowania, przyjmując ostrzeżenie o autentyczności serwera, jeśli się pojawi, zatem zaloguj się pod root`em (za pomocą hasła lub klucza prywatnego).
Uprawnienia użytkownika Root
Użytkownik root jest użytkownikiem z uprawnieniami administratora w systemie Linux i ma bardzo szeroki zasięg uprawnień. Z powodu prawie nieograniczonych uprawnień konta root, tak naprawdę nie zaleca się używać go regularnie. Nie polecamy dlatego, że można w łatwy sposób zrobić bardzo destrukcyjne zmiany, nawet przypadkowo.
Następnym krokiem jest utworzenie konta użytkownika z mniejszymi uprawnieniami dla codziennej pracy. Nauczymy Cię, jak uzyskać podwyższonym poziom uprawnień wtedy, jak będziesz tego potrzebował.
Tworzenie nowego użytkownika
Po tym, jak zalogowaliśmy się jako root, jesteśmy gotowi, aby dodać nowe konto użytkownika, które będziemy używać do logowania się od tej chwili.
W tym przykładzie tworzymy nowego użytkownika o loginie “demo”, ale należy go wymienić na nazwę użytkownika, która będzie Ci się podobała:
adduser demo
System zapyta u Ciebie o kilku rzeczy, zaczynając od hasła do tego konta.
Wybierz trudne do odgadnięcia hasło i, jeżeli chcesz, wpisz dodatkowe informacje o użytkowniku. Nie jest to wymagane, możesz po prostu cisnąć “Enter” w każdym polu, które nie chcesz wypełniać.
Dodanie uprawnień Root
Teraz mamy nowego użytkownika ze standardowym zestawem uprawnień. Jednak czasami koniecznym może być wykonanie polecenia w imieniu administratora.
Aby uniknąć przelogowania się z naszego zwykłego użytkownika na konto root, możemy ustawić coś takiego, co nazywa się “super user” lub przypisać uprawnienia “root” do naszego konta. To pozwoli naszemu zwykłemu użytkownikowi korzystać z poleceń z uprawnieniami administratora, umieszczając słowo sudo
przed każdym poleceniem.
Dodać te przywileje do naszego nowego użytkownika możemy dodając użytkownika do grupy “sudo”. Domyślnie w Ubuntu użytkownicy, które należą do grupy “sudo” mogą używać polecenia sudo
.
Jako root uruchom to polecenie, aby dodać nowego użytkownika do grupy “sudo” (zamień podany login na nazwę swojego użytkownika):
gpasswd -a demo sudo
Teraz podany wyżej użytkownik może wykonywać polecenia z uprawnieniami “super user”!
Dodanie klucza publicznego (Zalecane)
Następnym krokiem w zabezpieczeniu serwera będzie konfiguracja uwierzytelniania za pomocą klucza publicznego dla naszego nowego użytkownika. Ustawienie tego klucza zwiększy bezpieczeństwo Twojego serwera wymagając przy każdym logowaniu klucz SSH.
Generowanie klucza
Jeśli jeszcze nie masz pary kluczy SSH, która składa się z publicznego i prywatnego kluczy, trzeba stworzyć jedną taką. Jeśli już masz klucze, który chcesz użyć, przejdź do następnego rozdziału.
Dla wygenerowania klucze wpisz w konsoli swojego lokalnego systemu Linux następne polecenie:
ssh-keygen
Dla Windowsa musisz użyć specjalnego oprogramowania, które nazywa się Puttygen.
Zakładamy, że Twój lokalny użytkownik ma na imię “user” dla którego zobaczysz następny komunikat:
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/user/.ssh/id_rsa):
Wciśnij “Enter” dla potwierdzenia nazwy pliku i ścieżki do niego (oczywiście możesz zmienić znaczenie).
Dalej system poprosi Cię o ustawienia passphrase (hasła) do Twojego klucza. Możesz podać hasło albo możesz zostawić znaczenie pustym.
Uwaga: jeśli nie wypełnisz passphrase, będziesz mógł użyć prywatnego klucza do autoryzacji bez wpisywania dodatkowego hasła. Jeśli wpisałeś hasło, potrzebny będzie i klucz prywatny i hasło, aby zalogować się na serwer. Dodanie hasła do klucza pozwoli zwiększyć poziom bezpieczeństwa Twojego VPS.
Więc został utworzony klucz prywatny id_rsa i klucz publiczny id_rsa.pub w katalogu .ssh w folderze naszego lokalnego użytkownika. Pamiętaj, że klucz prywatny nie można udostępniać osobom trzecim, które nie muszą mieść dostępu do Twoich serwerów!
Kopiowania publicznego klucza
Po wygenerowaniu pary kluczy SSH, musimy skopiować swój klucz publiczny na nowy serwer. Weźmiemy do uwagi dwa proste sposoby, za pomocą których można to zrobić.
Pierwsza opcja: Skorzystać z ssh-copy-id
Jeżeli Twoja maszyna lokalna posiada moduł ssh-copy-id, możesz z niego skorzystać dla instalacji klucza dla dowolnego użytkownika, do którego masz dostępy.
Uruchom skrypt ssh-copy-id, podając nazwę użytkownika i adres IP serwera, na który chcesz wysłać i ustawić klucz:
ssh-copy-id demo@ADRES_IP_SERWERA
Po podaniu hasła przy poprzednim poleceniu Twój klucz publiczny zostanie dodany do pliku zdalnego użytkownika .ssh/authorized_keys. Teraz można użyć odpowiedniego klucza prywatnego do logowania się na serwer.
Druga opcja: Ręczna instalacja klucza
Jeżeli klucz SSH został wygenerowany za pomocą poprzedniego kroku, to należy użyć następnego polecenia w terminalu lokalnego komputera, żeby zobaczyć zawartość klucza publicznego (id_rsa.pub):
cat ~/.ssh/id_rsa.pub
Teraz możesz w terminalu zobaczyć swój klucz, który, mniej więcej, będzie wyglądał następująco:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBGTO0tsVejssuaYR5R3Y/i73SppJAhme1dH7W2c47d4gOqB4izP0+fRLfvbz/tnXFz4iOP/H6eCV05hqUhF+KYRxt9Y8tVMrpDZR2l75o6+xSbUOMu6xN+uVF0T9XzKcxmzTmnV7Na5up3QM3DoSRYX/EP3utr2+zAqpJIfKPLdA74w7g56oYWI9blpnpzxkEd3edVJOivUkpZ4JoenWManvIaSdMTJXMy3MtlQhva+j9CgguyVbUkdzK9KKEuah+pFZvaugtebsU+bllPTB0nlXGIJk98Ie9ZtxuY3nCKneB+KjKiXrAvXUPCI9mWkYS/1rggpFmu3HbXBnWSUdf localuser@machine.local
Za pomocą myszki wybierz klucz i skopiuj go (Ctrl + C).
Dodanie klucza publicznego do zdalnego użytkownika
Aby korzystać z klucza SSH do logowania się nowym zdalnym użytkownikiem, należy dodać klucz publiczny do specjalnego pliku w katalogu domowym użytkownika.
Na serwerze VPS jako użytkownik root wpisujemy następne 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 ustaw dla niego następne uprawnienia za pomocą poleceń:
mkdir .ssh
chmod 700 .ssh
Teraz otwórz plik w folderze .ssh z nazwą authorized_keys przy pomocy edytora tekstu. Będziemy korzystać z nano do edycji pliku:
nano .ssh/authorized_keys
Teraz wklej (Ctrl + V) swój klucz publiczny (który powinien być w schowku) do edytora.
Wciśnij CTRL + X,
żeby wyjść z edytora, potem Y
dla zapisu wprowadzonych zmian, zatem ENTER,
aby potwierdzić nazwę pliku.
Teraz dodamy ograniczenia dostępu dla pliku authorized_keys za pomocą następującego polecenia:
chmod 600 .ssh/authorized_keys
Wpisz jeden raz taką komendę, aby wrócić do użytkownika root:
exit
Teraz możesz zalogować się poprzez SSH jako Twój wcześniej stworzony użytkownik z wykorzystaniem Twojego prywatnego klucza.
Konfiguracja Demona SSH (SSH Daemon)
Teraz mamy nasze nowe konto użytkownika i możemy zapewnić naszemu serwerowi na Ubuntu bezpieczeństwo zmieniając jego konfigurację Demona SSH (oprogramowanie, które pozwala zalogować się zdalnie), żeby zablokować zdalny dostęp przez SSH dla konta root.
Zacznijmy od otwarcia pliku konfiguracyjnego za pomocą edytora tekstu, jako root:
nano /etc/ssh/sshd_config
Następnie powinniśmy odnaleźć linie, która wygląda tak:
PermitRootLogin yes
Tutaj, mamy możliwość wyłączenia użytkownika root od logowania się przez SSH. Zazwyczaj taki układ jest bezpieczniejszym rozwiązaniem, bo teraz mamy dostęp do naszego serwera za pośrednictwem konta zwykłego użytkownika, uprawnienia któego możemy rozszerzyć w razie potrzeby.
Zmieniamy tą linię na “no”, aby wyłączyć możliwość logowania się dla root:
PermitRootLogin no
Wyłączenie zdalnego logowania się jako root zaleca się na każdym serwerze!
Po zakończeniu wprowadzania zmian zapisz i zamknij plik, korzystając z wcześniej metody (kombinacja klawiszy Ctrl + X, potem Y, a następnie Enter).
Ponowne uruchomienie SSH (restartowanie SSH)
Teraz, po wprowadzeniu naszych zmian, należy ponownie uruchomić usługę SSH, żeby system zaczął korzystać z naszej nowej konfiguracji.
Dla ponownego uruchomienia SSH wpisujemy:
service ssh restart
Zanim wylogujemy się z serwera, musimy sprawdzić nasze nowe ustawienia. Nie chcemy rozłączać się z serwerem bez potwierdzenia, że nowe połączenia będzie nawiązane pomyślnie.
Otwórz nowe okno terminala na maszynie lokalnej, lub otwórz nową Sessię w Putty. W nowym oknie musimy utworzyć nowe połączenie z naszym serwerem VPS. Tym razem, zamiast korzystania z konta root, chcemy przetestować nowe konto, który stworzyliśmy trochę wcześniej.
Ze zdalnym serwerem, który konfigurowaliśmy wyżej, można się połączyć za pomocą następnego polecenia. Zamień nazwę użytkownika oraz adres IP serwera na swoje znaczenia:
ssh demo@ADRES_IP_SERWERA
Uwaga: Jeśli używasz Putty do łączenia się z serwerami, zaktualizuj znaczenie portu, który był wykorzystany w konfiguracji serwera.
Zostaniesz poproszony o podanie hasła użytkownika, który został skonfigurowany wcześniej. Wtedy zostaniesz zalogowany jako nowy użytkownik.
Pamiętaj, jeżeli trzeba wykonać polecenie z uprawnieniami roota, dodaj słowo “sudo” do niego:
sudo polecenie
Jeżeli wszytko przebiegło pomyślnie, możesz wylogować się, wpisując polecenie:
exit