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.