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.