Administracja Serwerami Sieciowymi Linux - ćwiczenia/laboratoria

Termin zajęć:
  • ćwiczenia - wtorek, 17:15, 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:
Termin zaliczenia:
  • 17 czerwca 2014 roku


Plan ćwiczeń

  • Zajęcia 0
    Instalacja maszyn wirtualnych.
  • Zajęcia 1
    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: Zadanie. Napisz skrypt, który:
    • wyszuka w systemie plików wszystkie programy z ustawionymi uprawnieniami suid, których właścicielem jest root
    • dla wszystkich znalezionych plików:
      • wyliczy ich sumę kontrolną
      • zapamięta sumę kontrolną
      • porówna sumę kontrolną z poprzednią
      • jeśli sumy kontrolne się różnią, to wyśle maila na adres studenta informację o tym, że suma się zmieniła
      • wyśle do studenta informację o wszystkich sumach kontrolnych znalezionych plików
    Przydatne polecenia:
    • find / -user root -perm +6000 -exec jakiespolecenie {} \;
      Uwagi:
      jakiespolecenie to polecenie, które chcemy wykonać
      w miejsce {} wstawiana jest nazwa znalezionego pliki
      \; to ciąg znaków kończących linię dla exec
    • cut -f 1 -d " " ./plik.txt
    • md5sum plik
    • mail kalkos@amu.edu.pl -s "raport z informacją o sumach kontrolnych" < plik.txt
  • 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).
    • wpisz adres głowicy, sektora i cylindra - pierwszego i ostatniego sektora na partycji /
    • utwórz 3 dodatkowe konsole tty7, tty8, tty9 - widoczne po restarcie systemu
    • ustaw minimalny i maksymalny czas użycia hasła na 1 dzień i 90 dni
    • znajdź Jabber Server Farming Howto
    • uruchom proces "sleep 1000" i znajdź jego opis w katalogu /proc
    • uruchom system w poziomie 3
    • utwórz plik o rozmiarze 100MB utwórz na nim system plików ext3 i zamontuj jako partycję /mnt/nowa_partycja
    • utwórz plik o rozmiarze 100MB i dodaj go jako partycję swap
    • Dodaj moduł do obsługi tuneli gre (nazwa ip_gre)
    • Diagnostyka działania aplikacji

  • Zajęcia 2
    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 3
    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
    RAID i LVM.
    Informacje:
  • Zajęcia 7
    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 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
    Powtórzenie tematów: Budowa i instalacja systemu, Zarządzania oprogramowaniem, Sieci, Uwierzytelnianie i usługi dostępu, DNS.
  • Zajęcia 10
    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 11
    OpenVPN.
    1. OpenVPN - zestawienie połączenia (tun)
    Zadania:
    • uruchom serwer OpenVPN na maszynie wirtualnej udostępnionej na uczelni
    • ustaw sieć 10.10.0.0/24, serwer na uczelni niech otrzyma adres 10.10.0.1
    • uruchom klientów OpenVPN na maszynach wirtualnych zainstalowanych lokalnie oraz na serwerze w chmurze E24
    • (dla chętnych - uruchomić OpenVPN na swoim komputerze w domu) Na komputerze w domu ustaw dodatkową trasę rutingu:
      	route add 150.254.78.0 mask 255.255.254.0 10.10.0.1
      	
      Co musisz jeszcze wykonać, żeby móc korzystać z takiej trasy?
    • Na serwerze w E24Cloud ustaw:
      	ip r a 150.254.78.0/23 via 10.10.0.1
      	
      Opisz co się stało.
    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 12
    Konfiguracja usług WWW - apache2 (Uwaga: zadania te można również wykonać na nginx).
  • Zajęcia 13
    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 14
    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 15
    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 16
    Zaliczenia.