Administracja Serwerami Sieciowymi Linux - ćwiczenia/laboratoria

Termin zajęć:
  • ćwiczenia - wtorek, 17:15, A0-1
  • ćwiczenia - środa, 17:00, A0-1
Rodzaj zajęć:
  • ćwiczenia - 30h.
Warunek zaliczenia ćwiczeń:
  • Obecności - maksymalnie 3 niebecności w semestrze.
  • Co najmniej 50% punktów.
Link do wykładu:
Ocena ćwiczenia:


Plan ćwiczeń

  • Zajęcia 1
    Instalacja maszyn wirtualnych.
  • Zajęcia 2
    Przypomnienie BASH, sprawdzenie uruchomienie systemu (bootloader, inittab, , obsługa modułów jądra, zarządzanie dyskami, systemy plików, struktura katalogów, diagnostyka działania aplikacji - strace, lsof).
    Przydatny link:
    Referencje do standardów:
  • Zajęcia 3
    Zarządzanie oprogramowaniem - ćwiczenia (polecenia apt*, dpkg*). Zadania:
    1. Utwórz bibliotekę libhello w języku C udostępniającą dwie funkcje int hello() i hello2() (funkcje wypisują tylko na ekran napis "Hello\n" i "Hello2\n").
    2. Utwórz program helloworld dynamicznie linkujący się z biblioteką i pytający użytkownika którą funkcję chce wykonać hello() czy hello2(), po czym wykonujący odpowiednią z nich.
    3. Zbuduj dwie paczki z biblioteką i programem (paczka z programem zależy od paczki z biblioteką)
    4. Stwórz repozytorium w katalu domowym użytkownika root
    5. Dodaj repozytorium do sources.list
    6. Sprawdź działanie (Czy instalowanie paczki helloworld pociąga za sobą instalowanie paczki libhelo? Czy usuwanie paczki libhelo pociąga za sobą usuwanie paczki helloworld?).
  • Zajęcia 4
    Zarzadzanie sieciami - konfiguracja interfejsów, ustawienia protokołów, zarządzanie routingiem. Zadania:
    • Dodaj interfejs sieciowy eth0:5 na 3 maszynach z adresacja 192.168.100.{1,2,3}.
    • Ustaw parametr MTU dla interfejsu eth0:5 na 500 bajtów oraz wyślij komunikaty PING o wielkości 600bajtów.
    • Sprawdz poleceniem tcpdump -i eth0:5 jakie komunikaty są przesyłane
    • Ustaw tryb promisc dla interfejsu sieciowego
    • Wyświetl wpisy w tablicy ARP
    • Wyślij pakiet ping do komputera 192.168.100.2, a następnie zmień na nim numer MAC. Co się stało?
    • Skonfiguruj tunel IPIP i GRE między dwoma komputerami
    • Skonfiguruj tunel SIT między komputerami Client1-Srv tak by usługi na SRV były dostępne poprzez IPv6
    • Sprawdź jakie są otwarte port na maszynie client1 lokalnie i z serwera.
    • Prześlij dowolny plik między maszynami przy pomocy polecenia netcat
    Zadanie domowe:
    • Skonfiguruj tunel w sposób opisany na rysunku tak by komunikacja Client1-Client2 odbywała się przesyłając pakiety przez SRV.
  • Zajęcia 5
    Konfiguracja bibliotek PAM, analiza działania getty, login, kofiguracja serwera SSH i skryptów startowych użytkownika.

    Listy ACL

    Biblioteki PAM

    Przydatne linki: Zadania:
    • Ustaw następujące reguły logowania dla usługi:
      • ssh - maksymalna ilość procesów użytkownika uwierzytelnionego - 20
      • ssh - logowanie przez użytkownika root z podsieci 127.0.0.0/8 i 192.168.0.0/24
      • ssh - logowanie użytkownika tylko w Poniedziałki i Wtorki (użytkownik root zawsze może się zalogować)
      • ssh - użytkownik nie może logować się pustym hasłem (z /etc/shadow)
      • passwd - wykrywanie słabych haseł, palindromów i zmiany wielkości liter
      • passwd - pamiętanie 5 historycznych haseł użytkownika
      • login - logowanie użytkownika root z konsol tty1-tty4
      • login - wykonanie polecenia "sl" przed uruchomieniem shella użytkownika
      • login - użytkownik może logować się pustym hasłem (z /etc/shadow)
      • login - podczas wyswietlania ostatniej proby logowania nie wyswietla informacji o terminalu
    • Zmień:
      • tekst zachęty programu login (linie wyświetlane przed zapytaniem o hasło)
      • Message of the day
    Podeślij prowadzącemu na maila (kalkos w domenie uniwersyteckiej amu.edu.pl) informacje w jakim pliku trzeba było dokonać modyfikacji oraz w przypadku reguł logowania usług jaki wpis trzeba było dodać/zmodyfikować.

  • Zajęcia 6
    Instalacja VM zgodnie z instrukcjami w email.
    Po zainstalowaniu maszyny wirtualnej na publicznej adresacji:
    1. netstat -lnp (jakie aplikacje oczekują połączeń)
    2. apt-get remove nfs-common
    3. apt-get remove portmap
    4. apt-get install ssh
    5. netstat -lnp (jakie aplikacje zostały?)
    Ważne: proszę ustawić trudne hasła, gdyż maszyny są dostępne z internetu. Wytyczne:
    • co najmniej 8 znaków,
    • co najmniej dwa znaki spoza alfabetu (tylko nie numlock, capslock, backspace, itp. :])
    • nie zawierającego słów ani znanych ciągów (omijamy również pisane w odwrotnej kolejności)
    • nie zawieramy informacji o sobie, inicjałów, imion ani nicków swoich czy znajomych osób
    • nie używane do żadnego konta internetowego

  • Zajęcia 7
    RAID i LVM.
    Informacje:
  • Zajęcia 8
    Oprogramowanie DNS - konfiguracja bind.
    Informacje:
    • Przypomnienie diagnostyka odwzorowania nazw.
    • W domenie asl24.pl zostały utworzone wpisy dla każdego studenta
    • Studenci są dobrani w pary, tzn. każda domena ma dwa serwery NS, które będą utrzymywały strefę (jeden z nich master ma być obsługiwany przez studenta do ktorego strefa należy, drugi ma być oddelegowany do drugiej osoby z pary)
    Ćwiczenie: Zadanie:
    1. Proszę sprawdzić wpisy w domenie asl24.pl powiązane ze swoim numerem indeksu
    2. Proszę ustawić serwer master i slave każdy dla swojej strefy sXXXXXX.asl24.pl
    3. Proszę oddelegować domenę local.sXXXXXX.asl24.pl na maszynę asl-server na VMWare Player działającą jako master i na asl-client1 działającą jako slvae
    4. Proszę w każdej obsługiwanej przez swoje serwery DNS dodać domenę wpis "test" wskazujący na adres pierwszej karty sieciowej.
  • Zajęcia 9
    Rozproszone Systemy Plików - LizardFS.
  • Zajęcia 10
    OpenVPN.
  • Zajęcia 11
    Konfiguracja usług WWW - apache2 (Uwaga: zadania te można również wykonać na nginx).
  • Zajęcia 12
    Konfiguracja MySQL:
    1. Instalacja mysql
    Przydatne linki:
    1. Opcje serwera
    2. Parametry serwera
    3. Tryby SQL
    4. Logi MySQL
    5. Uprawnienia
    6. Dodawanie użytkowników
    7. Usuwanie użytkownika
    8. Ustawianie hasła użytkownika
    9. Ustawianie zasobów
    Zadanie:
    1. dodaj użytkwonika asl24
    2. utwórz bazę danych asl24
    3. przyznaj użytkownikowi dostęp do bazy asl24 z adresu lokalnego (127.0.0.1)
    4. Utwórz 3 różne tabele w bazie asl24 z silnikami MyISAM, InnoDB, CSV
    5. przyznaj prawa tworzenia, modyfikacji i usuwania tabel dla użytkwonika asl24
    6. przyznaj prawa odczytywania, modyfikowania i usuwania danych z wszystkich tabel dla użytkownika asl24
    7. odbierz prawo tworzenia tabel użytkownikowi asl24 poprzez modyfikację tabeli (nie GRANT)
  • Zajęcia 13
    Konfiguracja PostgreSQL:
    1. Instalacja PostgreSQL
    Przydatne linki:
    1. Opcje i parametry konfiguracyjne serwera
    2. Logi Postgres
    3. Uwierzytelnianie użytkowników
    4. Role i uprawnienia użytkowników
    5. Zarządzanie bazami
    Zadanie:
    1. dodaj użytkwonika asl24 w postgres z hasłem qwerty,
    2. dodaj użytkwonika asl24-pam w postgres i w systemie (adduser),
    3. utwórz bazę danych asl24
    4. przyznaj użytkownikowi asl24 dostęp do bazy asl24 z adresu lokalnego (127.0.0.1)
    5. przyznaj użytkownikowi asl24-pam dostęp do bazy asl24 z dowonlego adresu oraz poprzez unix socket oraz ustaw uwierzytelnianie hasłem takim jak systemowe (ustawienia w PAM)
    6. przyznaj prawa tworzenia, modyfikacji i usuwania danych dla użytkwonika asl24 w bazie asl24 dla przykładowej tabeli o nazwie test
    7. przyznaj prawa tworzenia tabel w bazie asl24 dla użytkownika asl24
  • Zajęcia 14
    Konfiguracja usług SMTP, POP3 i IMAP.
    1. Postfix
    2. Dovecot
    Zadanie:
    1. Dodaj dwa wpisy MX dla Twojej domeny, ten o niższym priorytecie niech wskazuje na Twój numer IP, a o wyższym niech wskazuje na numer IP kolegi
    2. Ustaw pliki konfiguracyjne tak by serwer obsługiwał pocztę dla Twojej domeny oraz pośredniczył w doręczaniu poczty dla serwera kolegi
    3. Skonfiguruj outlook lub thunderbird tak by korzystały z Twojego serwera IMAP i SMTP
    4. W serwerze SMTP ma być domyślne odbieranie każdej poczty dla Twojej domeny oraz przekazywanie całej poczty pod warunkiem uwierzytelnienia
    5. Sprawdź czy Twój serwer dostarcza całą pocztę i umożliwia jej odbieranie
    Przyadatne w sprawdzaniu błędów:
    1. /var/log/mail*
    2. /var/log/dovecot*
    Zadanie do domu:
    • W związku z zablokowanym portem wejściowym 25 dla sieci UAM, administratorzy WMI ustawili dla studentó ASL na serwerze msg.wmi.amu.edu.pl relay dla domen s.asl24.pl.
    • Ustaw z największym priorytetem rekord MX na powyższy serwer (tzn. msg.wmi.amu.edu.pl będzie brany pod uwagę jako ostatni).
    • Ustaw żeby Twój serwer SMTP nasłuchiwał na dodatkowym porcie (oprócz 25). W ten sposób Twój MUA (Outlook, Thunderbird, inne) będzie mógł się łączyć z Twoim MTA w celu wysyłania poczty. Twój MTA będzie odbierał pocztę otrzymując ją od msg.wmi.amu.edu.pl.
    • Sprawdź czy Twój serwer odbiera pocztę z innych domen (np. uniwersyteckiej, lub gmail) i czy umożliwia Tobie wysyłanie (inny port niż 25).
  • Zajęcia 15
    System Firewall - sprawdzanie działania.
    1. Iptables
    Uwagi:
    • testujmy rozwiązania na postawionych na początku zajęć trzech maszynach wirtualnych
    • praca z regułami firewall może spowodować utratę komunikacji z serwerem
    • w jaki sposób można diagnozować połączenia sieciowe zostało omówione na początku zajęć
    Zadanie:
    1. ustaw przeciwdziałanie spoofingowi.
      Tzn. odrzucanie pakietów przychodzących na interfejs sieciowy niezaadresowanych do tego interfejsu (dla wszystkich adresów i interfejsów, włącznie z lo i 127.0.0.1
    2. ustaw wejście na serwerze SG na TCP:mysql tylko dla serwera SW1,
    3. Ustaw translację adresów IP dla adresów z sieci lokalnej (SG ma działać jak ruter z maskowaniem adresów z sieci wewnętrznej na adres sieci zewnętrznej),
    4. przekaż połączenie przychodzące do SG na port 80 do SW na port 80
    5. sprawdź jak działa -m quota i -m time (man iptables)
    6. ustaw regułę uniemożliwiającą użytkownikom postgres i mysql nawiązywanie połączeń do Internetu
  • Zajęcia 16
    Synchronizacja czasu, ustawienia kopii zapasowych, konfiguracja syslog.
  • Zajęcia 17
    Zbieranie statystyk w systemie Linuks - impelementacja.
  • Zajęcia 17
    zaliczenie,wpisy.