Linux – usługi (SSH, FTP, DNS)
Przygotowanie do wdrożenia podstawowych usług sieciowych z wykorzystaniem systemu operacyjnego klasy Linux w wersji Ubuntu 22.04 Desktop
1. Na systemie stacjonarnym uruchom oprogramowanie VMware Workstation
2. Włącz maszynę wirtualną „Ubuntu Desktop”
3. Zaloguj się do niej z wykorzystaniem konta „root” i hasłem podanym przez prowadzącego. W celu zmiany użytkownika na ROOT należy kliknąć link poniżej nazwy konta user „Inny użytkownik”
4. Wprowadź nazwę użytkownika „root”, a następnie jego hasło
5. Po wykonaniu poprawnego uwierzytelnienia zobaczysz ekran główny systemu
6. Z lewej strony wybieramy terminal. W oknie terminala wykonujemy polecenie:
dpkg -l 'openssh*'
Po wykonaniu polecenia zobaczysz wszystkie pakiety z informacją o ich stanie. Stan „ii” informuje że pakiet zainstalowano, zaś „un” odpowiednio że jest nie zainstalowany. W naszym przypadku interesuje nas pakiet o nazwie „OpenSSH-server” aby uruchomić dostęp zdalny do naszego systemu.
7. Instalujemy pakiet OpenSSH-server. Aktualizujemy bazę informacji o dostępnych najnowszych pakietach do tego systemu poleceniem:
apt update
apt upgrade
Na ekranie zobaczysz informacje o tym ile aktualizacji jest wymaganych do zainstalowania (na obrazku wydać zero wymaganych instalacji i sugestię o przejściu do wersji PRO)
apt install openssh-server
Po zakończeniu instalacji możemy poleceniem „dpkg -l 'openssh*'” sprawdzić czy pakiet już widnieje jako zainstalowany. Nie ma takiej konieczności bo instalacja zakończyła się poprawnie – sprawdzenie jest jedynie dla celów poglądowych lub w przypadku problemów z instalacją.
8. Wykonamy testowe połączenie do swojego systemu z wykorzystaniem szyfrowanego połączenie terminalowego do konsoli systemu poprzez program Putty.exe, który masz na pasku narzędziowym. Aby się połączyć do systemu potrzebujesz adresu IP twojej maszyny wirtualnej. Uzyskasz go wykonując polecenie:
ip a
Po wpisaniu adresu zatwierdzamy poprzez „Open” i następnie zatwierdzamy klucze szyfrowania poprzez potwierdzenie certyfikatu serwera do którego wykonujesz połączenie.
9. Logujemy się jako użytkownik user i hasłem user.
10. Możemy zamknąć okno putty poprzez skrót klawiszowy CTRL-D lub wykonując polecenie „logout„. Wracamy do maszyny wirtualnej i w konsoli instalujemy serwer FTP, którym bedzie pakiet „vsftpd”. Wykonaj polecenie:
apt install vsftpd
11. Sprawdzimy czy nasz serwer FTP działa
service vsftpd status
12. Jeśli serwer (usługa) działa to możemy przejść do utworzenia konta użytkownika (dodatkowego) któremu damy dostęp do serwera FTP. W tym celu utworzymy konto „ftpuser” z hasłem „user”
13. Wykonamy kilka poleceń do przygotowania środowiska FTP dla tego użytkownika:
Przejdziemy do katalogu użytkowników
cd /home
Poleceniem poniżej sprawdzimy jakie foldery tam są:
ls
Utworzymy folder dla danych ftp
mkdir /home/ftpuser/ftp
Zmienimy właściciela tego utworzonego folderu na NIKT bo będziemy również uruchamiać dostęp do niego w trybie anonimowym (anonymous) czyli jako dowolny użytkownik z internetu
chown nobody:nogroup /home/ftpuser/ftp
Zabierzemy prawa zapisu do tego folderu dla dowolnego (other) użytkownika
chmod a-w /home/ftpuser/ftp
Utworzymy folder dla wgrywania danych wewnątrz folderu ftp
mkdir /home/ftpuser/ftp/upload
Nadamy uprawnienia dla ftpuser any mógł w tym folderze tylko on wgrywać dane
chown ftpuser:ftpuser /home/ftpuser/ftp/upload
Utworzymy tam przykładowy plik „demo.txt” z zawartością „Mój serwer FTP”
echo "Moj serwer FTP" > /home/ftpuser/ftp/upload/demo.txt
Sprawdzimy czy uprawnienia są poprawne w folderze
ls -al /home/ftpuser/ftp
14. Strukturę i konta mamy gotowe – teraz czas na przygotowanie funkcjonalne serwera FTP. W tym celu musimy edytować konfigurację serwera która jest w pliku „/etc/vsftpd.conf„. Wykorzystamy w celu uproszenia oprogramowanie mc które jest nakładką graficzną na system plików. Uruchamiamy polecenie: mc i przechodzimy do folderu /etc wykorzystują kursory z klawiatury (nie myszka) i klawisza Enter na polu „..” jeśli chcesz wyjść o folder w górę. Znajdź z /etc plik vsftpd.conf i będziemy go edytować poprzez klawisz F4. Przy pierwszym uruchomieniu edytora system zapyta którego chcesz użyć – KONIECZNIE wybierz mcedit (powinna to być opcja 2) potwierdzając wybór cyfrą i enter.
W pierwszej kolejności włączamy logowanie anonimowe ustawiając opcję „anonymous_enable=YES” (nie może być znaku hash „#” bo to oznacza komentarz
15. Następnie włączamy kolejno opcje:
local_enable=YES
write_enable=YES
16. Dalej modyfikując konfigurację niżej w pliku włączamy opcję
chroot_local_user=YES
17. Dodajemy na końcu pliku
user_sub_token=$USER
local_root=/home/$USER/ftp
Przypiszemy kto może korzystać z FTP
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO
18. Zapisujemy plik konfiguracji poprzez klawisz F2 i zatwierdzamy poprzez Enter
19. Musimy utworzyć plik listy kont które mają dostęp do serwera FTP. Dodamy użytkownika ftpuser poleceniem
echo "ftpuser" > /etc/vsftpd.userlist
20. Restartujemy serwis vsftpd i sprawdzamy czy działa poprawnie
service vsftpd restart
service vsftpd status
21. Wykonamy teraz test połączenia do serwera FTP. W tym celu uruchom w Windows konsole poleceń CDM i wewnątrz niej polecenie FTP
Wykonaj kolejno polecenia:
ftp <tu swój adres IP>
zaloguj się jako ftpuser z hasłem user
po prawidłowym zalogowaniu wykonaj komendę dir
UWAGA – może pojawić się prośba o dopuszczenie komunikacji w ramach Firewall Windows – zezwój na nią w obu typach sieci Prywatnej i Publicznej
Przejdziemy do folderu upload i zobaczymy co zawiera poprzez polecenie dir
Na koniec rozłączymy się poleceniem bye
22. Wykonamy połączenie do serwera FTP z wykorzystaniem oprogramowania WinSCP. Masz go dostępnego na pasku narzędziowym. Odpowiednio do obrazka wybierz protokół FTP, adres IP twojej maszyny wirtualnej (nie ten co na obrazku), użytkownika ftpuser i jego hasło user. Następnie połącz się poprzez przycisk „logowanie”
23. Po poprawnym zalogowaniu się dostaniesz się znowu do folderu ftp tego konta
Połączenie po protokole FTP jest niezabezpieczone i przesyłane dane można w prosty sposób posłuchać – w tym loginy i hasła. Lepszym zabezpieczeniem było by wykorzystanie protokołów szyfrowanych. Może to być zrealizowane na bazie serwera FTP jednak należy wygenerować klucze publiczne i prywatne i odpowiednio podpiąć je do serwera, co pozwoliło by na połączenia Sftp. Prostszym rozwiązaniem byłoby wykorzystanie usługi która jest od razu przystosowana do takich połączeń – SSH. Secure Schell pozwala na terminalowe połączenia ale również na transfer danych.
24. Otwórz nową sesję w ramach programu WinSCP.
Tym razem wybieramy protokół SCP i reszta bez zmian.
25. Po połączeniu zauważysz że widzisz więcej danych ponieważ nie ogranicza cię ustawienia serwera ftp. W tym przypadku otrzymujesz pełny dostęp do swojego konta i uprawnień jakie ono ma. Wadą tego rozwiązania jest niemożliwość połączenia się w trybie anonimowym.
26. Przejdziemy do konfiguracji własnego serwera DNS. Potrzebujemy zainstalować takowy na naszym hoście – w tym celu wykonaj polecenie:
apt install bind9
27. Uruchom polecenie mc. Przejdź do folderu /etc/bind9. Wewnątrz zobaczysz pliki konfiguracyjne serwera. Dla nas będą istotne:
db.local
named.conf.default-zones
named.conf.local
28. Ustaw się znacznikiem na pliku db.local i używając klawisza F5 wykonasz kopię tego pliku pod nową nazwą db.lab.lokalne
29. Edytuj nowo powstały plik i zmień w nim wszystkie wystąpienia localhost na lab.lokalne.
30. Teraz musimy edytować plik named.conf.default-zones. Z niego weźmiemy definicję strefy localhost (zaznaczony na obrazku obszar) i przeniesiemy dane do pliku named.conf.local
31. Wpisujemy skopiowane dane do pliku named.conf.local na jego końcu i poprawiamy informację o strefie (zamiast localhost -> lab.lokalne) oraz zmieniamy nazwę pliku strefy ( zamiast db.local -> db.lab.lokalne)
32. Zrestartuj usługę DNS i sprawdź czy działa poprawnie.
service named restart
service named status
33. Wykonaj test działania serwera DNS. Wydaj w konsoli następujące polecenia jak na obrazku poniżej.
nslookup
server 127.0.0.1
set type=any
lab.lokalne
34. Przejdź do konsoli graficznej i wybierz ikonę ustawień sieci.
35. Wybierz ustawienia sieci przewodowej
36. W ramach sieci wybierz ustawienia
37. Sprawdź dane ustawień sieciowych swojego komputera.
38 Teraz z konsoli postaramy się odczytać te dane bez wykorzystywania środowiska graficznego.
ip r
39. Zabezpieczenie swojej stacji jest bardzo ważne. Z każdego miejsca możemy spodziewać się ataku i próby przejęcia hosta. Powinnyśmy zadbać aby najlepiej jak można zabezpieczyć swój system. Ustawimy zaporę ogniową – FireWall. W pierwszej kolejności musimy doinstalować oprogramowanie do zarządzania oprogramowaniem UFW. Nie jest ono wymagane bo można wszystkie polecenia wydać z konsoli. Zobacz obrazek poniżej.
40. Uruchom oprogramowanie z dostępnych w aplikacjach.
41. Włącz zaporę i ustaw pozwolenia dla danych wchodzących i wychodzących do systemu.
42. Poprzez znak + dodaj nową regułę pozwalającą na ruch przychodzący do serwera WWW działającego na porcie 80. Nazwij tą regułę WWW-80.
43. Pojawiły się dwa wpisy – dlaczego? Zobacz ustawione reguły w konsoli serwera wydając polecenie
ufw status verbose
44. Zgłoś prowadzącemu zakończenie i pokaż swoje wyniki. Wyjaśnij dlaczego były dwa wpisy w ustawieniach FireWall.