UNIX/Linux kiszolgálók üzemeltetése

A tantárgy angol neve: UNIX/Linux Server Administration and Maintenance

Adatlap utolsó módosítása: 2011. november 7.

Tantárgy lejárati dátuma: 2015. június 30.

Budapesti Műszaki és Gazdaságtudományi Egyetem
Villamosmérnöki és Informatikai Kar

Mérnök informatikus szak

Villamosmérnöki szak

Szabadon választható tantárgy

Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
VITMJV28   3/1/0/v 4  
3. A tantárgyfelelős személy és tanszék Dr. Fehér Gábor,
4. A tantárgy előadója
 Név: Beosztás: Tanszék, Intézet:
 Korn András óraadó TMIT
 Dr. Fehér Gábor egy. docens TMIT
5. A tantárgy az alábbi témakörök ismeretére épít

TCP/IP hálózatok alapjai;

UNIX/Linux alapjai (alapvető shell-scriptelési ismeretek; kernel, userspace fogalma; stb.);

angol műszaki szöveg értése.

6. Előtanulmányi rend
Kötelező:
NEM ( TárgyTeljesítve("BMEVITMAV28") )

A fenti forma a Neptun sajátja, ezen technikai okokból nem változtattunk.

A kötelező előtanulmányi rend az adott szak honlapján és képzési programjában található.

Ajánlott:

Informatika I. (VIIIA202), Informatika II. (VIAUA203), Operációs rendszerek (VIMIA219), Számítógép-hálózatok (VIHIA215), Rendszerintegráció (VIFO4367).

Nem vehetik fel akik hallgatták a vitmav28 (UNIX/Linux kiszolgálók üzemeltetése) tárgyat

7. A tantárgy célkitűzése

A tárgy célja, hogy a hallgatókat olyan módszerekkel, folyamatokkal és protokollokkal kapcsolatos ismeretek birtokába juttassa, amelyek birtokában egyszerűbben, hatékonyabban és biztonságosabban üzemeltethetnek Unix-jellegű operációs rendszert futtató hálózati  kiszolgálókat.

A tárgy elméleti része univerzálisan hasznosítható; a gyakorlati tematika a GNU/Linuxra és más nyílt forráskódú, szabad szoftverekre (pl. OpenBSD, FreeBSD), valamint az x86/x86_64 architektúrára összpontosít.

8. A tantárgy részletes tematikája

1. hét

IP- és UNIX-alapok átismétlése, néhány fontos részlet kiemelésével (ARP biztonsági vonatkozásai; path MTU discovery működése; TCP SYN támadás működése és az ellene való védekezés módszerei; UNIX processz állapottere; capability-rendszer; signalok kezelése; jobkezelés a UNIX-ban).

2. hét

A DNS (Domain Name System) működése részletesen (autoritativitás fogalma; névfeloldás menete; rekordítpusok és felhasználásuk; SOA-mezők jelentése; TTL megválasztásával kapcsolatos kérdések; NXDOMAIN jelentése; DNS elleni támadások működése, a védekezés lehetőségei; a DNS architekturális problémái: glueless delegációk, CNAME-láncok, kezelhetetlen méretűvé váló bizalmi háló stb.).

3. hét

Az SMTP működése. A nem kívánt kereskedelmi e-mailek (spam) szűrésének módszerei részletesen (nolisting, greylisting, RBL, RHSBL, SPF, HashCash stb.). A HTTP rövid áttekintése: fejlécek, hibakódok, virtualhoszting, SNI. Az FTP működése röviden; „FXP” és biztonsági kérdései.

4. hét

Háttértár-kezelés. RAID. RAID-szintek jelentése, előnyeik, hátrányaik. Hardveres és szoftveres megvalósítások összehasonlítása. Bithibaráták hatása nagy tömbök helyreállítása sikerességének valószínűségére. A Linux softraid-megvalósításának használata. Logikai kötetkezelés: fogalmak; snapshot („pillanatfelvétel”) használata.

5. hét

A unixos fájlrendszerek sajátosságai (sparse file, symlink, hardlink, FIFO, fork, bővített attribútum stb.). Modern fájlrendszerekkel kapcsolatos fogalmak (késleltetett allokáció, extent-alapú allokáció, log-struktúrájú fájlrendszer, dinamikus inode-allokáció, POSIX ACL-ek, journaling, auditing, XIP, tail packing stb.) A Linux által támogatott fájlrendszerek tulajdonságai (ext2, ext3, ext4, xfs, jfs, reiserfs). Bind mount. DAC, MAC.

6. hét

A bootfolyamat részletes bemutatása. SystemV init. Runlevel fogalma. A daemonizált szolgáltatások kezelésével kapcsolatos problémák, versenyhelyzetek. A runit, mint initet helyettesítő megoldás architektúrája. A runit komponensei. Szolgáltatásspecifikus naplózás, naplóüzenetek szűrése és riasztások generálása az svlogd segítségével.

7. hét

A shell-programozás alapjainak felfrissítése. Shell-típusok (Bourne, csh, tcsh, Korn, bash, zsh). Alapvető vezérlési szerkezetek (if, for, case); függvények. Néhány haladó shellscript-megoldás: reguláris kifejezések, sed, GNU findutils; parancssori kapcsolók feldolgozása, konfigurálható shellscriptek írása.

8. hét

Naplózás. Dátumábrázolás problémái. TAI64. Használható naplóüzenetek tervezése. Konkrét naplózómegoldások bemutatása: syslog, syslog-ng, socklog. Naplófájlok kezelése: rotáció (ezzel kapcsolatos problémák, versenyhelyzetek), skálázható elemzés, utófeldolgozás. Hálózati naplózás.

9. hét

Tűzfalak: csomagszűrő, állapotkövető csomagszűrő, proxy-alapú tűzfal. Nevezetes topológiák (bastion host, DMZ stb.) Zónaszemlélet. Tervezési szempontok. A Linux Netfilter működése, használata. Behatolásjelző rendszerek típusainak rövid áttekintése.

Zárthelyi.

10. hét

Linuxos tűzfalscriptek írása. Lehetséges megközelítések. Összevetés az OpenBSD-vel. Esettanulmányok.

Hitelesítés és felhasználókezelés modern UNIX-rendszereken: PAM; NSS; LDAP-alapú címtárak, felhasználásuk.

11. hét

Szervermonitorozás: SNMP (röviden), munin, nagios. Architekturális kérdések (polling, pull vs. push, redundáns monitorozás, skálázhatóság; terheléscsúcsok problematikája stb.). Riasztások kezelése; eszkaláció. Az rrdtool működése; adatforrások típusai, jellegzetességeik; munin pluginok írása.

12. hét

Hálózatmonitorozás. Kitekintés: statisztikai módszerek. A NetFlow alapjai és felhasználási lehetőségei. Anomáliák keresése NetFlow-adatokban; lehetséges okaik feltárása. Példák. A NetFlow korlátai, kerülgetésük módszerei (pl. egyetlen TCP-kapcsolathoz tartozó folyamok azonosítása; alkalmazásszintű protokoll heurisztikus azonosítása).

13. hét

Virtualizációs technikák, technológiák: wine, VirtualBox, VMWare, UML, xen, vserver, OpenVZ, KVM, qemu, BSD jail összehasonlítása. Emuláció vs. izoláció. Háttértár-virtualizáció. Vserver-alapú rendszerek tervezésének részletei: háttértár-kezelés, hálózatkezelés stb.

14. hét

Az UCSPI-mechanizmus és a hozzá kapcsolódó architekturális szemlélet. Az ipsvd működése; előnyei és hátrányai az inetd-hez képest. Néhány további konkrét minimalista rendszerprogram bemutatása (pl. djbdns, qmail).

Elővizsga.

9. A tantárgy oktatásának módja (előadás, gyakorlat, laboratórium) előadás
10. Követelmények
  • A szorgalmi időszakban: egy zárthelyi dolgozat, egy házi feladat (a hallgató által választott, az oktatóval egyeztetett, a tárgy témájához kapcsolódó téma vagy esettanulmány igényes dokumentációja a tárgy honlapjául szolgáló wikin, választhatóan kiselőadással kombinálva)
  • A vizsgaidőszakban: szóbeli vizsga.
  • Elővizsga az utolsó órán. Feltétele az elfogadott házi feladat és a sikeres zárthelyi.
11. Pótlási lehetőségek

A zárthelyi dolgozat a pótlási időszakban, különeljárási díj fizetése mellett, másodszor is pótolható. Pótzárthelyi dolgozatok megírására a pótlási időszakban van lehetőség. A házi feladat a pótlási időszak végéig különeljárási díj mellett pótolható.

12. Konzultációs lehetőségek

Igény szerint, az oktatóval egyeztetve.

13. Jegyzet, tankönyv, felhasználható irodalom
  1. Andrew S. Tanenbaum, "Számítógép-hálózatok", PANEM könyvkiadó, 2004
    Andrew S. Tanenbaum, Albert S. Woodhull, "Operációs rendszerek", PANEM könyvkiadó, 2007
  2. A tárgy honlapján közzétett részletes előadásvázlatok és a bennük javasolt további irodalom: https://unixlinux.tmit.bme.hu/
14. A tantárgy elvégzéséhez átlagosan szükséges tanulmányi munka
Kontakt óra  56
Félévközi készülés órákra  10
Felkészülés zárthelyire  22
Házi feladat elkészítése  10
Kijelölt írásos tananyag elsajátítása   -
Vizsgafelkészülés  22
Összesen120
15. A tantárgy tematikáját kidolgozta
 Név: Beosztás: Tanszék, Intézet:
 Korn András ügyvivő szakértő TMIT
 Dr. Fehér Gábor egy. docens TMIT