Administracja serwerami linuksowymi

Termin zajęć:
  • wykład - wtorek, 15:30, aula B
  • ćwiczenia - wtorek, 17:00, A0-1
Rodzaj zajęć:
  • wykład - 30h,
  • ćwiczenia - 30h.
Warunek zaliczenia ćwiczeń:
  • Obecności - maksymalnie 3 niebecności w semestrze.
  • Co najmniej 50% punktów.
Warunek zaliczenia wykładu:
  • Co najmniej 50% punktów.
Ocena ćwiczenia:
Ocena wykład:
  • Obecności - 20%
  • Referat - 20%
  • Egzamin - 60% (w przypadku obecności na wszystkich poza jednym wykładem - możliwość przepisania wyniku z Zaliczenia)
Referat:
  • Referat wygłosi grupa 3 osobowa
  • Grupa otrzymuje jeden temat do opracowania
  • Referat składa się 3 części - omówienie zgadanienia, dokumentacja zagadnienia, implementacja zagadnienia
  • Termin przygotowania wszystkich części - tydzień przed wygłoszeniem.
  • Każdy referat powinien mieć wydzieloną część jako zadanie na ćwiczenia - przykłady konfiguracji i możliwości ustawień wraz z opisami)

Plan wykładu (* - oznacza wykłady zrealizowane)

  • Wykład 1 (*)
    Budowa systemu operacyjnego linuks - wprowadzenie teoretyczne (wersje jądra, moduły do jądra, systemy plików, poziomy uruchomienia systemu , init, usługi systemowe, obsługa sieci).
  • Wykład 2 (*)
    Struktura katalogów Linux, analiza poziomów uruchomienia, zarządzanie partycjami i dyskami, zarządzanie modułami.
  • Wykład 3 (*)
    Zarządzanie oprogramowaniem na przykładzie debian i apt - budowa paczki, repozytorium, aktualizacja, tworzenie paczek.
  • Wykład 4 (*)
    Zarządzanie sieciami - interfejsy, protokoły, routing.
  • Wykład 5 (*)
    Dostęp do systemu - biblioteki PAM, program getty, login, serwery telnet i SSH, skrypty startowe użytkowników.
  • Wykład 6 (*)
    Instalacja VM.
  • Wykład 7 (*)
    System DNS - zarządzanie domenami w Internecie.
  • Wykład 8 (*)
    Serwery WWW - Apache (opis działania, analiza parametrów konfiguracyjnych, moduły - m.in. vhost, auth, alias, php, userdir)
  • Wykład 9 (*)
    Serwery Baz danych - MYSQL (budowa i działanie serwera)
  • Wykład 10 (*) (08.05.2012)
    Serwery Baz danych - PostgreSQL (budowa i działanie serwera)
  • Wykład 11 (*) (15.05.2012)
    Implementacja serwera SMTP,POP3,IMAP (postfix, dovecot)
  • Wykład 12 (*) (22.05.2012)
    System Firewall - omówienie zasad przetwarzania reguł oraz możliwości i parametrów
  • Wykład 13 (*) (29.05.2012)
    Referaty studentów
  • Wykład 14 (*) (05.06.2012)
    Referaty studentów
  • Wykład 15 (termin do ustalenia w sesji)
    Ogólne informacje na temat środowisk serwerowych - organizacja.

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).
  • Zajęcia 3
    Zarządzanie oprogramowaniem - ćwiczenia (polecenia apt*, dpkg*).
  • 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. 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 root z konsol tty1-tty4
    • 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 - 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?)
  • Zajęcia 7
    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 8
    Konfiguracja usług WWW - apache2.
  • Zajęcia 9
    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 10
    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 11 (15.05.2012)
    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 12 (22.05.2012)
    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 13 (29.05.2012)
    Synchronizacja czasu, ustawienia kopii zapasowych, konfiguracja syslog.
  • Zajęcia 14 (05.06.2012)
    Zbieranie statystyk w systemie Linuks - impelementacja.
  • Zajęcia 15 (14.06.2012, 16:30-21:00)
    zaliczenie,wpisy.
  • Zajęcia 15 (19.06.2012, 15:30-21:00)
    zaliczenie,wpisy.

Referaty (* - oznacza, że temat jest zajęty)

Łatwe:
  1. (*) NTP - synchronizacja czasu (serwer, klient), dokumentacja, prezentacja, zadania
  2. (*) Demon Cron, dokumentacja, zadania
  3. Demon AT
  4. (*) Serwer FTP, dokumentacja, prezentacja, zadania
  5. (*) Serwer IRC, dokumentacja, prezentacja, zadania, implementacja, przyklad_konfig_HUB.txt,
  6. Budowa wiadomości SMTP
Średnie:
  1. Demon ACPI
  2. Kopie zapasowe - Bacula
  3. Kopie zapasowe - Amanda
  4. Kopie zapasowe - Rsync+ssh
  5. (*) Zbieranie logów - rsyslog (lokalne i usługa sieciowa, kernel log, user log), dokumentacja, prezentacja, zadania
  6. Zbieranie logów - syslog-ng (lokalne i usługa sieciowa, kernel log, user log)
  7. (*) Bootloader Lilo
  8. (*) Bootloader Grub, dokumentacja, prezentacja, zadania, etc-default-grub, etc-grub.d-00_header, etc-grub.d-40_custom,
  9. Zbieranie statystyk Cacti
  10. Monitoring sieci Nagios, dokumentacja, zadania
  11. (*) Serwer DHCP
  12. (*) Duplikacja i replikacja mysql, dokumentacja, zadania
  13. (*) Duplikacja i replikacja postgres, dokumentacja, prezentacja
  14. Linux Virtual Serwer
Trudne:
  1. Zbieranie statystyk NTOP
  2. (*) Serwer SVN, zadania, prezentacja i dokumentacja
  3. Wersjonowanie konfiguracji (współpraca z grupą SVN)
  4. Serwer X-Window
  5. (*) Serwer SMB, dokumentacja, zadania, prezentacja
  6. Filtry antyspamowe w postfix
  7. (*) Puppet, zadania i dokumentacja
  8. NIDS - Snort