kosa_attila_halozat.pdf

133

Upload: imrefodor

Post on 29-Oct-2015

63 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: kosa_attila_halozat.pdf

Egy elképzelt hálózat összeállításaa Debian GNU/Linux

Etch verziójánaksegítségével

Kósa [email protected]. december 22.

Page 2: kosa_attila_halozat.pdf

2 Debian GNU/LinuxSzerkeszt®Kósa AttilaSzerz®kKósa Attila (1, 2.1, 2.2, 2.3, 2.4, 2.5, 3.1, 3.2, 4.1, 4.2, 4.3, 5.1, 5.2, 6.1, 7.1, 8.1, 10.1, 10.2,11.1, 11.2, 12.1, 12.2, 12.3, 12.4, 13.1, 14 fejezetek)LektorokKorn András (2.1 fejezet)Nemkin Róbert (2.1, 3.1 fejezetek)Pásztor György (2.1, 3.1 fejezetek)Javítást küld®kA beküldés sorrendjében.Kolozs Sándor (14.8.2 fejezet)Kondás János (2.2 fejezet)

Jelmagyarázat:• d®lt bet¶ � opciók neve;• írógép típusú bet¶ � fájlok és könyvtárak neve;• kis méret¶, írógép típusú bet¶ � kiadandó parancsok;• kis méret¶, írógép típusú bet¶, bekeretezve � kon�gurációs állományok, szkriptek.

Kósa Attila <[email protected]> 2007. december 22.

Page 3: kosa_attila_halozat.pdf

Debian GNU/Linux 3Copyright c© 2007. Kósa AttilaE közlemény felhatalmazást ad önnek jelen dokumentum sokszorosítására, terjesztésére és/vagymódosítására a Szabad Szoftver Alapítvány által kiadott GNU Szabad Dokumentációs Licenc1.1-es, vagy bármely azt követ® verziójának feltételei alapján. A Nem Változtatható Szakaszokneve: Szerz®k, El®szó és Köszönetnyilvánítás, Címlap-szöveg a legels® oldalon található szöveg,a Hátlap-szövegek neve pedig �hátlapszöveg�. E licenc egy példányát a �GNU Szabad Dokumen-tációs Licenc� elnevezés¶ szakasz alatt találja.

2007. december 22. Kósa Attila <[email protected]>

Page 4: kosa_attila_halozat.pdf

4 Debian GNU/Linux

Kósa Attila <[email protected]> 2007. december 22.

Page 5: kosa_attila_halozat.pdf

Tartalomjegyzék

El®szó . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7Köszönetnyilvánítás . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71. A terv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92. DNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.1. BIND8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.2. BIND9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182.3. Adminisztrációs eszközök a BIND9 -hez . . . . . . . . . . . . . . . . . . . . . . 232.4. A DNS tesztelésére használható eszközök . . . . . . . . . . . . . . . . . . . . . 252.5. A többi szerver DNS beállítása . . . . . . . . . . . . . . . . . . . . . . . . . . 263. DHCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273.1. dhcp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273.2. dhcp3-server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284. Id®szinkron . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314.1. ntp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314.2. ntpdate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334.3. Windows alatti NTP beállítások . . . . . . . . . . . . . . . . . . . . . . . . . . 345. Biztonság . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375.1. SSL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375.2. ssh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406. LDAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456.1. OpenLDAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457. Fájlszerver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 577.1. SaMBa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 578. Levelek küldése . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 678.1. Post�x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 679. Levelek olvasása . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 719.1. Dovecot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7110. Proxy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7510.1. Squid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7510.2. Automatikus proxybeállítás . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7711. Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7911.1. Apache HTTP-n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7911.2. Apache HTTPS-en . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8012. Naplózás . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8312.1. logcheck . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8312.2. logrotate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8412.3. p�ogsumm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8512.4. syslog-ng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8613. Mentés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8913.1. Amanda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8914. Csomagsz¶rés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

5

Page 6: kosa_attila_halozat.pdf

6 Debian GNU/Linux14.1. DNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10114.2. NTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10214.3. ICMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10214.4. POP2, POP3, POP3S, IMAP, IMAPS . . . . . . . . . . . . . . . . . . . . . . 10314.5. SMTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10314.6. UUCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10314.7. AUTH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10314.8. FTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10414.9. TFTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10414.10. HTTP, HTTPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10414.11. �nger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10514.12. whois . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10514.13. syslog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10514.14. �r� parancsok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10514.15. telnet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10614.16. SSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10614.17. NNTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10614.18. talk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10614.19. IRC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10714.20. SNMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10714.21. NFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10714.22. NIS/YP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10714.23. X11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10714.24. SaMBa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10814.25. lpr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10815. T�ZFAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10915.1. DNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10915.2. NTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11115.3. ntpdate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11315.4. SMTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11415.5. VPN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11515.6. Csomagsz¶rés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119GNU Licenc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123Tárgymutató . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132Irodalomjegyzék . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133

Kósa Attila <[email protected]> 2007. december 22.

Page 7: kosa_attila_halozat.pdf

El®szó

Azért kezdtem bele ennek a �könyvnek� a megírásába, mert ilyen összetett anyaggal még nemtalálkoztam, és � reményeim szerint � képes lesz betölteni az általam érzett ¶rt. Természetesensoha nem mernék olyat állítani, hogy tökéletes lesz, inkább azt mondom, hogy igyekszem alegjobb tudásom szerint �elmesélni�, hogyan csinálnám én.Öszintén örülnék annak, ha sikerülne egy színvonalas anyagot átnyújtani a közönségnek,amelyb®l a kételked®k számára is nyilvánvalóvá válik, hogy a Linux igenis alkalmas a cégeknélfelmerül® problémák megoldására, a felhasználók minél teljesebb kör¶ kiszolgálására.De egy percre se feledje senki, hogy ami ebben az anyagban megjelenik, az nem szentírás!Linux alatt mindenki megszokhatta, hogy egy problémának több megoldása is lehetséges, ezértfelel®tlenség lenne azt állítani, hogy az itt leírtak az üdvözít®ek egyedül. Ugyanezen okbólbotorság lenne azt hinni, hogy minden megemlített szoftver minden lehet®sége szóba kerülmajd. Inkább egyfajta szakácskönyvként tekintsen az olvasó e m¶re, és a benne szerepl® receptekalapján kedve szerint, ízlésének megfelel®en �f¶szerezzen�.Debian-speci�kus az egész anyag (köszönhet®en annak, hogy azt használok a napi munkám-ban), ami persze nem jelenti azt, hogy használhatatlan lenne más Linux disztribúciók haszná-lóinak.A leírás LATEX -ben készült, vim és dvips segítségével. A tesztelésre használt gépeket éshálózatot vmware server alatt állítottam össze.

KöszönetnyilvánításÚjra köszönetet mondok Drótos Dániel nev¶ f®iskolai tanáromnak, hogy megismertetett a Li-nuxszal.Sokat köszönhetek Gál Tamás barátomnak, aki magánbeszélgetéseinken meger®sítette azonmeggy®z®désemet, hogy könyvet kell írnom, és tanácsaival átlendített a holtpontokon. Remélem,nem okozok neki csalódást. . .Nem gy®zöm elégszer megköszönni a LATEX kezd®knek és haladóknak cím¶ könyv ([6]) szer-z®inek (Wettl Ferenc, Mayer Gyula és Sudár Csaba), hogy megírták csodálatos könyvüket, melyelindított a LATEX -hel való megismerkedés útján, valamint azóta kiadták LATEX kézikönyv cím¶könyvüket ([7] � Wettl Ferenc, Mayer Gyula és Szabó Péter), amely a felmerült kérdéseim jórészére választ tudott adni.Meg kell emlékeznem és köszönetet kell mondanom az Irodalomjegyzékben található összestöbbi könyv, anyag szerz®jér®l, illetve szerz®jének is, mert ®k is sokat segítettek a Linuxszalvaló ismerkedésben, valamint tudásom elmélyítésében.Köszönöm Korn Andrásnak, Nemkin Róbertnek és Pásztor Györgynek, hogy az anyag ké-szítésének korai szakaszában támogattak ötleteikkel, és elvállalták az els® fejezetek lektorálását,valamint sok id®t eltöltöttek azzal, hogy meggy®zzenek az igazukról.Köszönet illeti a kollégáimat � Balsai Pétert és Váradi Gábort �, akik elnézték nekem,hogy a közös szekér el®remozdítása helyett ezen anyag elkészítésébe fektettem fölös energiáimat,valamint minden támogatást megadtak, amelyet megadhattak.

7

Page 8: kosa_attila_halozat.pdf

8 Debian GNU/LinuxKöszönöm Goreczky Rolandnak, Kecskeméti Lászlónak és Szél Miklósnak, hogy olyan sokid®t áldoztak a html megjelenéssel kapcsolatos problémáim megoldására.Természetesen a családomnak � feleségemnek, Marikának és két kis�amnak, Attilának ésBálintnak � tartozom a legtöbb köszönettel, hiszen ®k biztosították azt a hátteret, amely anyugodt és eredményes munkához elengedhetetlen.

TámogatásAz adományozás egy nagyszer¶ módja, hogy kimutasd elismerésed és megbecsülésed, valamintösztönözz a további munkára. Kérlek, hogy annyit még segíts, hogy az átutaláskor (be�zetés-kor) tüntesd fel, hogy mely rész volt számodra a leghasznosabb. Így lehet®ségem nyílik annakfelmérésére, hogy az anyag mely részére fordítsak több �gyelmet, mit b®vítsek, mir®l írjak rész-letesebben. Természetesen e-mail-ben is elküldheted számomra ezen információkat.A támogatók nevei a weboldalon feltüntetésre kerülnek. Ha valamiért nem szeretnél ottmegjelenni, akkor kérlek, jelezd ezt nekem a könyv elején található e-mail címen.

OTP bankos számlaszámom: 11773346-04210407.TámogatókCsak a weben elérhet® változatban található meg a felsorolás.

http://www.mithrandir.hu/doc/book/index.html

Kósa Attila <[email protected]> 2007. december 22.

Page 9: kosa_attila_halozat.pdf

1. fejezet

A terv

El®ször pár szót arról, hogy MIR�L NEM SZÓL ez az anyag.Nem akarok a Debian telepítésének menetér®l mesélni, feltételezem, hogy aki ebb®l az anyag-ból akar pro�tálni, az már túljutott a telepítés nehézségein, illetve elérhet®ek az Internetenkifejezetten a Debian telepítésér®l szóló anyagok.Nem írok részletesen arról, hogy egy-egy szolgáltatásra miért is van szükség a tervezetthálózatban, illetve nem szeretnék az ezekhez kapcsolódó elmélettel sem untatni senkit (bárvalamennyit muszáj volt megemlítenem) � akit érdekel, az rengeteg jó dokumentációt találhataz Interneten.Nem lesz szó �tuningolásról�, az egyes szolgáltatások memóriabeállításairól. Mégpedig azértnem, mert ezen opciók nagyon sok mindent®l függenek, szinte lehetetlen megoldást mondani azegyes opciók értékére a körülmények pontos ismerete nélkül. Az egy gépen futó szolgáltatások,a sávszélesség, a felhasználók száma, a gépben lév® memória mennyisége � mind-mind olyantényez®1, amely az egyes szolgáltatások beállítását befolyásolja.És most nézzük végre azt, hogy MIR�L SZÓL a könyv. Kiválasztottam egy számomraszimpatikus hálózatot (egy C osztályút, a 192.168.10.0 cím¶t), és ebben a hálózatban szeretnékkülönböz® szolgáltatásokat beüzemelni. Az üzembeállításhoz szükséges feladatok leírása ezenanyag egyik célja.A szerverek Linuxot fognak futtatni, míg a munkaállomások windowsos gépek lesznek2. Le-hetséges, hogy egyszer az anyag el fogja érni azt a szintet, amikor linuxos munkaállomásokhálózatba állításáról is szót fog ejteni, de ez egyel®re csak nagyon távlati terv.Nem kötelez® minden � az anyagban szerepl® � szolgáltatást üzembe helyezni a saját hálóza-tunkban. Azért �zsúfoltam� bele talán feleslegesnek t¶n® szolgáltatásokat (például másodlagosdns szerver), hogy a beállításával kapcsolatos dolgokat be tudjam mutatni.A fejezetek sorrendje nem az elkészítés sorrendjét határozza meg (bár van olyan, amit csakmeghatározott sorrendben lehet végrehajtani, például tanúsítvány generálása el®tt nem lehet atanúsítványt használó LDAP szervert üzembe helyezni). Egyszer¶bbnek t¶nt, ha minden szol-gáltatásról külön fejezet szól (még akkor is, ha maga a szolgáltatás több gépet is érint � ekkorkülön alfejezetben szólok a különböz® gépek kon�gurációs igényeir®l). De nézzük meg, hogymilyen szolgáltatásokat terveztem beüzemelni a hálózatban (picit részletesebb magyarázatot azegyes fejezetek elején találhat a Tisztelt Olvasó az egyes szolgáltatások szükségességér®l):• DNS (els®dleges és másodlagos);• DHCP (egyes gépekhez �xen hozzárendelt IP címek);

1A felsorolás nem teljes, számtalan egyéb dologtól is függhet az optimális beállítás.2A samba kivételével a többi szolgáltatás ugyanúgy m¶ködhetne linuxos hálózatban is, mint windowsos háló-zatban (igazából a samba tisztán linuxos környezetben való m¶ködtetésének sincs akadálya).

9

Page 10: kosa_attila_halozat.pdf

10 Debian GNU/Linux• SMTP (a bels® hálózat levelezése, valamint az Internet felé irányuló levélforgalom);• IMAPS (titkosított kapcsolaton keresztüli levélkezelés, miközben a levelek a szerverentárolódnak);• proxy (sávszélességünk védelme és egyéb megfontolások);• fájltárolás (fájlok tárolása a szerveren);• központi felhasználókezelés (egy jelszót minden szolgáltatáshoz, �single sign on�);• naplózás (központi logszerver, logelemzések);• backup (ha minden a szervereken van, akkor érdemes menteni);• pontos id® (például a titkosításokhoz szükséges, hogy azonosan járjanak a szerverek órái,de a logokban való keresgélést is megkönnyíti, ha az összes gép órája azonosan jár);• bels® webszerver (például nyilvános adatoknak);• t¶zfal (védjük meg, amit összeraktunk).A gépek nevei és IP címei (a bels® hálózatban példaként az akarmi.intra tartományne-vet fogom használni) a következ®k (ezeket az adatokat fogom felhasználni az egész anyagban,ezeknek megfelel®en készülnek majd el a kon�gurációs állományok):• a bels® weboldalakat tároló szerver � intraweb, 192.168.10.247;• a mentéseket végz® szerver � backup, 192.168.10.248;• a logszerver � syslog, 192.168.10.249;• a fájlszerver � samba, 192.168.10.250;• a proxyszerver � proxy, 192.168.10.251;• a levelez®szerver � mail, 192.168.10.252;• a DNS-szerver � dns, 192.168.10.253;• a t¶zfal bels® hálózat felé néz® lába � fw, 192.168.10.254.Nem lehet megszabni, hogy milyen szolgáltatásokat kell egy gépre összerakni, és melyeketmuszáj más gépekre telepíteni. Ebben a kérdésben is csak az általam követett elveket tudomelmondani (plusz még néhány olyan dolgot, amelyet fontosnak tartok kiemelni):• A DNS és DHCP szolgáltatást azért szoktam egy gépre tenni, mert hasonló adatokra vanszükségük, és egyszer¶bb szkriptb®l generálni a mindkét szolgáltatáshoz szükséges állomá-nyokat. Ez pedig nehézkes lenne (persze nem megoldhatatlan), ha külön gépen lennének.Természetesen lehetséges külön gépen futtatni ezeket az alkalmazásokat, és például cvs-b®lvenni a kon�gurációs állományokat.• A DNS-ben (és egyúttal a DHCP-ben is) érdemes valamilyen rendszer szerint elkülöní-teni pár dolgot. A szerverek, a hálózati nyomtatók, az aktív eszközök és a felhasználóigépek csoportosítását tartom én célszer¶nek. Egy lehetséges megoldás netmaszk határo-kon �vágni�, ez a kés®bbi esetleges �zikai szétválasztást is egyszer¶vé teszi. Természetesenbármilyen más felosztás is megoldást jelenthet, s®t, ilyen jelleg¶ felosztás nélkül is m¶kö-d®képes a hálózat. Hasznos olvasmányok a döntéshez az rfc1519.txt (http://www.ietf.org/rfc/rfc1519.txt) és az rfc1219.txt (http://www.ietf.org/rfc/rfc1219.txt).

Kósa Attila <[email protected]> 2007. december 22.

Page 11: kosa_attila_halozat.pdf

Debian GNU/Linux 11• Az IMAP-on történ® levelezés meglehet®sen sok feladatot ad a diszk-alrendszernek (sokegyidej¶ felhasználó esetén), és a hálózati forgalma is nagy tud lenni. Emiatt nem cél-szer¶ hasonlóan nagy hálózati forgalmat bonyolító szolgáltatásokkal egy gépre telepíteni,amilyen például a samba és a squid.• A proxy (squid) is komolyan képes igénybevenni a diszk-alrendszert, emiatt célszer¶ ön-magában futtatni, illetve olyan diszkeket (vagy diszkelrendezést) választani, amelyek ké-pesek megfelelni ennek a terhelésnek. A diszkrendszer terhelését befolyásolja például aletöltésre használható sávszélesség is. Még a fájlrendszer kiválasztására is ügyelnünk kell,s®t, a mountolás opcióival is lehet®ségünk nyílik gyorsítani a rendszert (például a noatimeopcióval).• Az IMAP és az SMTP szolgáltatás egy gépen történ® futtatása ésszer¶nek t¶nik, hiszena levelek kézbesítéséhez szükség van egy MTA-ra (SMTP szolgáltatásra).• NTP szolgáltatást szoktam a t¶zfalra is telepíteni, hogy a bels® szervereknek ne az Inter-netre kelljen menniük a pontos id®ért. Viszont a bels® hálózat klienseit nem szoktam at¶zfalhoz odaengedni, ezért a bels® hálózaton is létre szoktam hozni NTP szervert (vagyszervereket), amelyek közvetlenül a t¶zfalhoz szinkronizálják az óráikat, és szolgáltatnaka kliensek felé. Amennyiben nem áll rendelkezésünkre egy gép, amely a bels® ntp szerverlehetne, akkor természetesen a kliensek szinkronizálhatnak a t¶zfalon futó ntp szerverhez.• Ugyanez a helyzet a DNS szolgáltatással is. A t¶zfalra is telepítek, hogy a bels® DNSszerver ne az Interneten lév® szerverekkel beszéljen. Ily módon csak a t¶zfallal kell beszél-nie. De a t¶zfal is csak a bels® hálózat dedikált DNS szervereivel kommunikál, a klienseknem érhetik el a t¶zfalon futó DNS szolgáltatást közvetlenül. Amennyiben nem áll ren-delkezésünkre egy külön gép, amely a bels® DNS szerver lehetne, akkor természetesen aklienseknek is el kell érniük a t¶zfalon futó DNS szervert.• A központi logszerverre nem igazán érdemes mindenki számára elérhet® szolgáltatásokattelepíteni, nehogy a felhasználók elfoglalják a logolás számára létfontosságú sávszélességet.Célszer¶ a logelemz® programokat is ezen a gépen futtatni, nem pedig a különálló szer-vereken, bár vigyáznunk kell, hogy az elemz® programok ne terheljék le annyira a gépet,hogy az ne legyen képes mással foglalkozni.• A mentéseket végz® (és tároló) gépre lehet®ség szerint semmilyen kívülr®l elérhet® szol-gáltatást nem szabad rakni, hiszen (valószín¶leg) a lehet® legtöbb érzékeny adatot ez aszerver tárolja.• Az rsync csomag sokszor a segítségünkre lehet, érdemes telepíteni. Alapbeállításban nemfut démonként, tehát nem nyújt lehet®séget a gép kívülr®l történ® elérésére. Jellemz®enssh csatornán keresztül használjuk.

2007. december 22. Kósa Attila <[email protected]>

Page 12: kosa_attila_halozat.pdf

12 Debian GNU/Linux

Kósa Attila <[email protected]> 2007. december 22.

Page 13: kosa_attila_halozat.pdf

2. fejezet

DNS

A cél az, hogy a bels® hálózatunkban név szerint szólíthassuk meg a gépeinket. Ezt a feladatotmegoldhatnánk a hosts fájlok segítségével is (miként az Internet h®skorában is megoldották),de egy rendesen m¶köd® névfeloldó-rendszer üzemeltetése kevesebb problémát okoz, mint ahiánya. Ugyanis a legtöbb szolgáltatás alapértelmezésben használni szeretné a névfeloldást, ésa névfeloldás hiányából fakadó id®túllépés lassítani fogja a kliensek kiszolgálását.Másodlagos DNS szerver nélkül is m¶köd®képes a bels® hálózat, de több okból érdemesmegfontolni az alkamazását:• Növelheti az üzembiztonságot, ha az els®dleges szerver problémája esetén is van, aki ki-szolgálja a klienseket.• Vannak olyan szolgáltatások, amelyek sok névfeloldási kérést küldenek. Jellemz®en ilyenpéldául a proxy vagy a levelezés. Ezek mellé tehetünk másodlagos dns szervert (ezért kerülta példában is a levelez® szerverre), ezáltal kihasználhatjuk a cache el®nyét, valamint aztis, hogy a névfeloldási kérések nem a hálózaton keresztül történnek, hanem a saját gépenbelül � ezáltal gyorsabban jut adatokhoz a szolgáltatás, gyorsabbá válhat a kiszolgálás.A bels® hálózatunkon használt domain-nek nem fontos az Interneten kapott tartománynévvelmegegyeznie. Aki b®vebb magyarázatot szeretne, az forduljon például az Irodalomjegyzékbenmegadott ([5]) anyaghoz. A használt DNS szerver típusától függetlenül javasolt betartanunk aztaz elvet, hogy ne adjunk ki felesleges információt vagy túl sok adatot.

2.1. BIND82.1.1. Els®dleges DNS szerver

Telepítsük fel azokat a szoftvereket, amelyek szükségesek ahhoz, hogy a BIND8 segítségévelmegvalósíthassuk a DNS szerverünket.# apt-get install bindÁllítsuk meg a kon�gurálás idejére:# /etc/init.d/bind stopGeneráljunk egy titkos kulcsot (a dnskeygen parancs segítségével), amely a két BIND8 szer-ver (az els®dleges és a másodlagos szerverekr®l van szó) közötti adatforgalom titkosításáhozszükséges:# dnskeygen -H 512 -h -n titkos_kulcs** Adding dot to the name to make it fully qualified domain name**Generating 512 bit HMAC-MD5 Key for titkos_kulcs.Generated 512 bit Key for titkos_kulcs. id=0 alg=157 flags=513

13

Page 14: kosa_attila_halozat.pdf

14 Debian GNU/LinuxKét fájl jött létre a parancs hatására:

Ktitkos_kulcs.+157+00000.keyKtitkos_kulcs.+157+00000.privateA titkos_kulcs név bármi lehet, ez csak annak a fájlnak a nevét (pontosabban nevének egyrészét) alkotja, amelyben a kulcs tárolásra kerül. A /etc/bind könyvtárban hoztam létre a fáj-lokat, de gyakorlatilag nincs jelent®sége, hogy hol tároljuk, hiszen a kon�gurációs állománybanúgyis szerepel maga a kulcs. Figyeljünk arra, hogy a két szerver órájának azonosan kell járnia(például 10 perc eltérés esetén már biztosan nem fog m¶ködni a szerverek közötti kommuniká-ció1).A /etc/bind könyvtárban találhatóak a kon�gurációs állományok:• named.conf � az els®dleges kon�gurációs állomány, a többi ebbe kerül beágyazásra (azinclude opció segítségével);• named.conf.local � a lokális zónák megadására szolgáló fájl;• named.conf.options � egyéb opciók megadására szolgáló fájl.A named.conf állományt hagyjuk változatlanul, csak a másik két fájlra fordítsuk a �gyel-münket. A named.conf.options fájl felépítése az egyszer¶bb, ezért el®ször azzal kezdjük akon�gurálást.Amikor készen vagyunk, akkor így néz ki a kon�gurációs állomány:

options {directory "/var/cache/bind";fetch-glue no;query-source address * port 53;forward only;forwarders {192.168.10.254;};check-names master fail;check-names response warn;}; key titkos_kulcs {algorithm hmac-md5;secret "0mPVTGyCXISROZNDFwIkrbc/iI9hhFvdInL1gym3JAgEs1ibzPwYoxm39g3X1qYO+KK8ymFRe7pn7nQ0diFVIw==";};server 192.168.10.252 {transfer-format many-answers;keys { titkos_kulcs; };};A fájl elején látható a directory opció. Az itt látható /var/cache/bind könyvtárban tárol-hatjuk a named.conf.local fájlban megadott zónafájljainkat.A query-source address opció azt határozza meg, hogy melyik interfészen melyik portrólindítsa a lekérdezéseket a BIND8. Vegyük ki a kommentet ez el®l a sor el®l, így az alapértelmezett53-as portról fogja indítani a kérdéseket minden interfészen.2A forwarders opció abban van a segítségünkre, hogy a bels® hálózatunkon lév® DNS szer-verünk ne akarjon a nagyvilággal kommunikálni, kizárólag a t¶zfalunkon lév® DNS szerverrelbeszélgessen � tehát itt adjuk meg a t¶zfalunk IP címét. Ahhoz, hogy ez valóban így is történjen,szükséges még a forward only opció megadása is.A recursion no opcióval azt tudjuk szabályozni, hogy a szerverünk válaszoljon-e a kliensekneka saját zónáin kívül es® adatokkal kapcsolatban. Van egy allow-recursion opció, amellyel azesetleges tiltás ellenére ezt mégis engedélyezni tudjuk a kívánt gépek számára.

1Ez is indokolja az id®szinkronizálásról szóló 4. fejezet létjogosultságát.2Ennek a csomagsz¶r® beállításánál látjuk hasznát, hiszen így pontosan korlátozni tudjuk, hogy egyes DNSszervereink melyik portról fogják indítani kérdéseiket. Viszont egy esetleges támadó is élhet azzal a feltételezéssel,hogy rögzítettük a portszámot, ezáltal nagyságrendekkel könnyebb dolga lesz egy dns támadás (blind DNSforgery) esetén. Persze ahhoz, hogy sikeres támadást hajthasson végre kell az, hogy a t¶zfal bels® lábának IPcímét spoofolja (azt hazudja, hogy ® a t¶zfal), el kell találnia mind a kérdésben szerepl® úgynevezett nonce-ot(ami egy 16 bites szám), mind a forrásportot. Amennyiben kikommentezve hagyjuk, akkor a szerverünk úgy fogviselkedni (lekérdezés szempontjából), mint egy egyszer¶ kliens (az 1024-es portjánál magasabb portról fogjaindítani a lekérdezéseket).

Kósa Attila <[email protected]> 2007. december 22.

Page 15: kosa_attila_halozat.pdf

Debian GNU/Linux 15A check-names opció a kon�gurációs hibákra adott viselkedést szabályozza. Külön lehetszabályozni, hogy mi történjen, ha a saját els®dleges zónáiban (master), ha a másodlagos zó-nákban (slave), illetve egy kérdésre kapott válaszban (response) talál hibát. Három értéket lehetbeállítani mindegyik eseteben:• fail � hibaüzenetet ír a logfájlba, és az adatot nem veszi �gyelembe;• warn � hibaüzenetet ír a logfájlba;• ignore � nem tör®dik a hibával.A transfer-format many-answers opció azt biztosítja, hogy a szerver a válaszait ne egyesével,hanem kötegelve küldje a másodlagos szervernek.Ezen a gépen a /etc/resolv.conf fájlban célszer¶ saját magát (tehát a 127.0.0.1 IP címet)beírni a nameserver sorba, illetve a search opcióban az általa kezelt zónát megadni. A t¶zfalIP címét is tegyük bele a biztonság kedvéért. Tehát így nézzen ki a fájl:

search akarmi.intranameserver 127.0.0.1nameserver 192.168.10.254A named.conf.local fájlnak kell tartalmaznia azt, hogy az egyes zónákhoz hogyan vi-szonyuljon a DNS szerverünk. Leggyakrabban a master és slave típusú zónák használatosak.Egyel®re csak a master típusú zónákkal foglalkozunk, a slave típusra a másodlagos DNS szerverbeállításánál látható példa (17. oldal).

zone "akarmi.intra" {type master;file "belso.db";allow-transfer {192.168.10.252;};allow-query {127.0.0.1;192.168.10.0/24;};also-notify {192.168.10.252;};notify yes;};zone "10.168.192.in-addr.arpa" {type master;file "belso-rev.db";allow-transfer {192.168.10.252;};allow-query {127.0.0.1;192.168.10.0/24;};also-notify {192.168.10.252;};notify yes;};Lássuk, mit is jelentenek a zónafájl sorai. A type sorban azt lehet megadni, hogy milyenviszonyban áll a szerverünk az adott zónával. A �le opció után a zóna tárolására szolgáló fájlnevét adhatjuk meg (csak fájlnév esetén a named.conf.options fájl directory opciója határozzameg az elérési útvonalat, de akár teljes elérési útvonalat is megadhatunk). Az allow-transfer op-ció lehet®séget nyújt azon IP címek felsorolására, amelyek zónatranszfert végezhetnek. Itt többcímet is megadhatunk, egymás alatt, de pontosvessz®vel elválasztva ®ket. Az allow-query opcióannak korlátozását teszi lehet®vé, hogy kikt®l fogadjon el kérést (illetve milyen címekr®l, cím-tartományokból érkez® kérésekre válaszoljon) a szerver. Az also-notify de�niál egy IP címekb®lálló listát, egyúttal meghatározva azt, hogy ezeknek a címeknek kell elküldeni a NOTIFY üze-netet, amikor a zónafájl új verziója kerül betöltésre a szerveren. A notify yes arra utasítja azels®dleges szerverünket, hogy ha a zónafájl változását észleli, akkor küldjön jelzést a másodlagosszervereknek, hogy frissítsék a zónát. Ekkor van jelent®sége a kés®bb említésre kerül® Serial-nak,

2007. december 22. Kósa Attila <[email protected]>

Page 16: kosa_attila_halozat.pdf

16 Debian GNU/Linuxmert a másodlagos szerverek ennek a változásából tudják majd, hogy valóban frissült az adottzóna, és ezután kérik le az els®dleges szervert®l, hogy náluk is az új adatok legyenek meg.Miután az alapvet® kon�gurációval elkészültünk, már csak az általunk kezelt zónafájlok megí-rása van hátra, hogy üzembeállíthassuk DNS szerverünket. Ezeket a fájlokat a /var/cache/bindkönyvtárban kell elhelyeznünk. Lássuk ezen fájlok formátumát és a lehetséges tartalmukat (ateljesség igénye nélkül).El®ször a belso.db3 névre �keresztelt� fájlt készítsük el.$TTL 86400@ IN SOA dns.akarmi.intra. dnsmaster.akarmi.intra. (2007022001 ; Serial86400 ; Refresh900 ; Retry604800 ; Expire86400 ) ; Negativ cache TTL@ IN NS dns.akarmi.intra.@ IN NS slavedns.akarmi.intra.$origin akarmi.intra.kliens1 IN A 192.168.10.10intraweb IN A 192.168.10.247wpad IN CNAME intraweb.akarmi.intra.backup IN A 192.168.10.248syslog IN A 192.168.10.249samba IN A 192.168.10.250proxy IN A 192.168.10.251mail IN A 192.168.10.252slavedns IN CNAME mail.akarmi.intra.dns IN A 192.168.10.253time IN CNAME dns.akarmi.intra.fw IN A 192.168.10.254

Már csak a belso-rev.db3 nev¶ fájl elkészítése van hátra.$TTL 86400@ IN SOA dns.akarmi.intra. root.dns.akarmi.intra. (2007022001 ; Serial86400 ; Refresh900 ; Retry604800 ; Expire86400 ) ; Negativ cache TTL@ IN NS dns.akarmi.intra.@ IN NS slavedns.akarmi.intra.$origin 10.168.192.in-addr.arpa.10 IN PTR kliens1.akarmi.intra.247 IN PTR intraweb.akarmi.intra.248 IN PTR backup.akarmi.intra.249 IN PTR syslog.akarmi.intra.250 IN PTR samba.akarmi.intra.251 IN PTR proxy.akarmi.intra.252 IN PTR mail.akarmi.intra.253 IN PTR dns.akarmi.intra.254 IN PTR fw.akarmi.intra.Némi magyarázat ahhoz, hogy mit is jelentenek a fájlok elején a számsorok.2007022001 Serial. Ez egy egyszer¶ sorszám, amelyet lehetne más formában használni (pél-dául nem a fenti évhónapnapverzió formában, hanem egyszer¶en egy számot írnánk oda,például 1). Ezt a számot kell növelnünk, ha az adott zónafájlban változtatásokat haj-tottunk végre � ebb®l tudják majd a másodlagos szerverek, hogy az adott zónán mikortörtént változtatás (azért használom én a dátumos formátumot, hogy az emberi szemszámára is azonnal látható legyen, mikor történt az utolsó változtatás). Nem árt megszok-nunk, hogy növeljük ezt a számot, sok bosszúságtól (érthetetlen problémáktól és feleslegeshibakeresést®l) kímélhetjük meg magunkat.86400 Refresh (frissítési id®). Ez egy másodpercekben megadott érték. Azt mondja meg, hogya másodlagos szervereknek mennyi id®nként kell az els®dleges szervert®l lekérdezniük aSerial értékét (hogy szükséges-e a zónát frissíteni).

3Önkényesen választottam ezt a fájlnevet.

Kósa Attila <[email protected]> 2007. december 22.

Page 17: kosa_attila_halozat.pdf

Debian GNU/Linux 17900 Retry (várakozás). Ez egy másodpercekben megadott érték. Ha a frissítés nem sikerül amásodlagos szervereken, akkor ennyi ideig kell várakozniuk az újabb próbálkozás el®tt.604800 Expire (lejárati id®). Ez egy másodpercekben megadott érték, amely a zóna adatainaklejárati idejét adja meg. A másodlagos DNS szerverek ennyi ideig szolgáltathatják azels®dleges szervert®l kapott zónát, ha nem sikerül felvenniük a kapcsolatot az els®dlegesszerverrel.86400 Negatív cache TTL. Ez egy másodpercekben megadott érték, amely a hibás lekérdezésekcache-elésének id®tartamára vonatkozik.

Végeztünk is az alapvet® kon�gurálással, most már rendelkezünk egy m¶köd® DNS szer-verrel, csak el kell indítanunk a /etc/init.d/bind start paranccsal. Az indítást követ®enellen®rizzük a logokban, hogy hibaüzenet nélkül indult el, illetve például a netstat -natp pa-ranccsal, hogy �gyel-e a megfelel® interfészeken.2.1.2. Másodlagos DNS szerver

Gyakorlatilag ugyanarra a szoftverre van szükségünk, amelyre az els®dleges szerver telepítésénél.# apt-get install bind

Ebb®l következ®en ugyanazokat a fájlokat fogjuk megtalálni a telepítés végén, mint amelye-ket már megbeszéltünk, tehát nézzük azonnal a kon�gurációs állományokat (miután leállítottuka kon�gurálás idejére a szolgáltatást):# /etc/init.d/bind stop

A resolv.conf állomány így nézzen ki:search akarmi.intranameserver 127.0.0.1nameserver 192.168.10.253nameserver 192.168.10.254

A named.conf.options fájl tartalma megegyezik az els®dleges szerverével (két apró eltérés-t®l eltekintve, amely a check-names opciót érinti, ahová master helyett a slave szót kell beírni;illetve a server opciót, ahová az els®dleges szerver IP címét kell beírni), így akár át is másol-hatjuk a másodlagos szerverre (csak ne felejtsük el átírni a fentieket). A named.conf.optionsfájlnak nem kötelez® megegyeznie, hiszen más feladatokat is elláthat a szerver amellett, hogy azels®dleges szerver zónáit kezeli. A named.conf.local fájl tartalma már némiképp eltér, amintaz a következ®kben látható.zone "akarmi.intra" {type slave;masters port 53 {192.168.10.253;};file "belso.db";allow-query {127.0.0.1;192.168.10.0/24;};};zone "10.168.192.in-addr.arpa" {type slave;masters port 53 {192.168.10.253;};file "belso-rev.db";allow-query {127.0.0.1;192.168.10.0/24;};};

Mondhatni, hogy készen is vagyunk, hiszen a named.conf fájlt ezen a gépen is változatlanulhagyhatjuk. Indítsuk el:

2007. december 22. Kósa Attila <[email protected]>

Page 18: kosa_attila_halozat.pdf

18 Debian GNU/Linux# /etc/init.d/bind start

A másodlagos szerver elindításakor azt fogjuk látni a logokban (a master szerveren), ahogylekéri a master szervert®l a zónákat:Mar 26 11:21:21 dns named[10481]: approved AXFR from [192.168.10.252].2266 for "akarmi.intra" (TSIG key "titkos_kulcs")Mar 26 11:21:21 dns named[10481]: zone transfer (AXFR) of "akarmi.intra" (IN) to [192.168.10.252].2266 serial 2007032101Mar 26 11:21:21 dns named[10481]: approved AXFR from [192.168.10.252].2267 for " 10.168.192.in-addr.arpa" (TSIG key "titkos_kulcs")Mar 26 11:21:21 dns named[10481]: zone transfer (AXFR) of "10.168.192.in-addr.arpa" (IN) to [192.168.10.252].2267 serial 20070321012.2. BIND92.2.1. Els®dleges DNS szerver

Telepítsük fel azt a szoftvert, amely szükséges ahhoz, hogy a BIND9 segítségével megvalósíthassuka DNS szerverünket.# apt-get install bind9Láthatjuk, amint a telepítés végén létrejön egy csoport és egy felhasználói account, illetveegy rndc.key nev¶ fájl a /etc/bind könyvtárban, majd elindul a szolgáltatás:Setting up bind9 (9.3.4-2) ...Adding group `bind' (GID 103) ...Done.Adding system user `bind' (UID 101) ...Adding new user `bind' (UID 101) with group `bind' ...Not creating home directory `/var/cache/bind'.wrote key file "/etc/bind/rndc.key"Starting domain name service...: bind.Állítsunk le a kon�gurálás idejére:# /etc/init.d/bind9 stopGeneráljunk egy titkos kulcsot, amelynek segítségével a két DNS-szerverünk (az els®dlegesés a másodlagos) egymással titkosított kapcsolaton beszélhet:# cd /etc/bind# dnssec-keygen -a hmac-md5 -b 128 -n HOST titkos_kulcsKtitkos_kulcs.+157+34456Két fájl jött létre a parancs hatására, amelyeket igazából nem használunk semmire, csak atartalmukat.Ktitkos_kulcs.+157+34456.keyKtitkos_kulcs.+157+34456.privateA /etc/default könyvtárban található egy bind9 nev¶ állomány, amely mindössze az aláb-biakat tartalmazza:

OPTIONS="-u bind"RESOLVCONF=yesEz azt okozza, hogy a BIND9 a bind nev¶ felhasználó és csoport nevében fog futni, tehátnem root jogosultságokkal.A /etc/bind könyvtárban találhatóak a kon�gurációs állományok:• named.conf � az els®dleges kon�gurációs állomány, a többi ebbe kerül beágyazásra (azinclude opció segítségével);• named.conf.local � a lokális zónák megadására szolgáló fájl;• named.conf.options � egyéb opciók megadására szolgáló fájl.A named.conf állományt hagyjuk változatlanul, és csak a másik két fájlra fordítsuk a �-gyelmünket. A named.conf.options fájl felépítése az egyszer¶bb, ezért el®ször azzal kezdjük akon�gurálást.Amikor készen vagyunk, akkor így néz ki a kon�gurációs állomány:

Kósa Attila <[email protected]> 2007. december 22.

Page 19: kosa_attila_halozat.pdf

Debian GNU/Linux 19

acl belso_halo { 192.168.10.0/24; };acl masodlagos_dns { 192.168.10.252; };server 192.168.10.252 {keys { titkos_kulcs; };};key titkos_kulcs {algorithm hmac-md5;secret "islfIxRey4p2Uedv9+Rhfw==";};options {directory "/var/cache/bind";query-source address * port 53;forward only;forwarders {192.168.10.254;};check-names master fail;check-names response warn;allow-transfer { key titkos_kulcs; };allow-query { localhost; belso_halo; };allow-recursion { localhost; belso_halo; };auth-nxdomain no;listen-on-v6 { none; };};Az acl opciókban el®re felsorolhatjuk az IP címeket, és adhatunk nekik egy-egy nevet, majdezeket a neveket használhatjuk a többi opcióban. Ily módon egyetlen helyen tudjuk karbantar-tani az IP címeket, nem kell minden opciónál külön-külön.A server opcióval azt határozzuk meg, hogy mely szerverekkel való kapcsolattartáshoz melyiktitkos kulcsot használja a szerver.A key opcióval rendelhetünk egy nevet egy kulcshoz, hogy ennek a névnek a segítségéveltudjunk hivatkozni rá a kés®bbiekben.A directory opció határozza meg, hogy melyik könyvtárban tárolhatjuk a named.conf.localfájlban megadott zónafájljainkat.A query-source address opció azt határozza meg, hogy melyik interfészen melyik portrólindítsa a lekérdezéseket a BIND9. Vegyük ki a kommentet ez el®l a sor el®l, így az alapértelmezett53-as portról fogja indítani a kérdéseket minden interfészen.4A forwarders opció abban van a segítségünkre, hogy a bels® hálózatunkon lév® DNS szer-verünk ne akarjon a nagyvilággal kommunikálni, kizárólag a t¶zfalunkon lév® DNS szerverrelbeszélgessen � tehát itt adjuk meg a t¶zfalunk IP címét. Ahhoz, hogy ez valóban így is történjen,szükséges még a forward only opció megadása is.A check-names opció a kon�gurációs hibákra adott viselkedést szabályozza. Külön lehetszabályozni, hogy mi történjen, ha a saját els®dleges zónáiban (master), ha a másodlagos zó-nákban (slave), illetve egy kérdésre kapott válaszban (response) talál hibát. Három értéket lehetbeállítani mindegyik eseteben:• fail � hibaüzenetet ír a logfájlba, és az adatot nem veszi �gyelembe;• warn � hibaüzenetet ír a logfájlba;• ignore � nem tör®dik a hibával.Az allow-transfer opció lehet®séget nyújt azon IP címek felsorolására, akik zónatranszfertvégezhetnek. Itt több címet is megadhatunk, egymás alatt, de pontosvessz®vel elválasztva ®ket,

4Ennek a csomagsz¶r® beállításánál látjuk hasznát, hiszen így pontosan korlátozni tudjuk, hogy egyes DNSszervereink melyik portról fogják indítani kérdéseiket. Viszont egy esetleges támadó is élhet azzal a feltételezéssel,hogy rögzítettük a portszámot, ezáltal nagyságrendekkel könnyebb dolga lesz egy dns támadás (blind DNSforgery) esetén. Persze ahhoz, hogy sikeres támadást hajthasson végre kell az, hogy a t¶zfal bels® lábának IPcímét spoofolja (azt hazudja, hogy ® a t¶zfal), el kell találnia mind a kérdésben szerepl® úgynevezett nonce-ot(ami egy 16 bites szám), mind a forrásportot. Amennyiben kikommentezve hagyjuk, akkor a szerverünk úgy fogviselkedni (lekérdezés szempontjából), mint egy egyszer¶ kliens (az 1024-es portjánál magasabb portról fogjaindítani a lekérdezéseket).

2007. december 22. Kósa Attila <[email protected]>

Page 20: kosa_attila_halozat.pdf

20 Debian GNU/Linuxilletve kiköthetjük azt, hogy csak azok végezhetnek ilyet, akik rendelkeznek a megfelel® tikoskulccsal.Az allow-query opció annak korlátozását teszi lehet®vé, hogy kikt®l fogadjon el kérést (illetvemilyen címekr®l, címtartományokból érkez® kérésekre válaszoljon) a szerver.Az allow-recursion opcióval azt tudjuk szabályozni, hogy a szerverünk mely klienseknekválaszoljon a saját zónáin kívül es® adatokkal kapcsolatban.A listen-on-v6 opció azt szabályozza, hogy mely hálózati kártyákon �gyeljen IPv6-on.Létezik egy max-cache-size nev¶ opció, amelynek a segítségével lehet limitálni a gyorsító-tárnak használt memória méretét (byte-ban kell megadni). Ha túl kevés memóriát adunk aszolgáltatásnak, akkor az kihat a kiszolgálás sebességére. Érdemes pár héten keresztül korláto-zás nélkül futtatni a szolgáltatást, annyi id® alatt be fog állni egy megközelít®leg stabil értékrea memóriafoglalás, majd ezt az értéket �gyelembe véve kell beállítani a limitet. Ideális esetbenez a limit magasabbra van állítva, mint a tapasztalt stabil érték.Ezen a gépen a /etc/resolv.conf fájlban célszer¶ saját magát (tehát a 127.0.0.1 IP címet)beírni a nameserver sorba, illetve a search opcióban az általa kezelt zónát megadni. A biztonságkedvéért tegyük bele a t¶zfal IP címét is. Tehát így nézzen ki a fájl:search akarmi.intranameserver 127.0.0.1nameserver 192.168.10.254

A named.conf.local fájlnak kell tartalmaznia azt, hogy az egyes zónákhoz hogyan vi-szonyuljon a DNS szerverünk. Leggyakrabban a master és slave típusú zónák használatosak.Egyel®re csak a master típusú zónákkal foglalkozunk, a slave típusra a másodlagos DNS szerverbeállításánál látható példa (23. oldal).zone "akarmi.intra" {type master;file "belso.db";allow-transfer {192.168.10.252;};allow-query {127.0.0.1;192.168.10.0/24;};also-notify {192.168.10.252;};notify yes;};zone "10.168.192.in-addr.arpa" {type master;file "belso-rev.db";allow-transfer {192.168.10.252;};allow-query {127.0.0.1;192.168.10.0/24;};also-notify {192.168.10.252;};notify yes;};

Lássuk, mit is jelentenek a zónafájl sorai. A type sorban azt lehet megadni, hogy milyenviszonyban áll a szerverünk az adott zónával. A �le opció után a zóna tárolására szolgáló fájlnevét adhatjuk meg (csak fájlnév esetén a named.conf.options fájl directory opciója határozzameg az elérési útvonalat, de akár teljes elérési útvonalat is megadhatunk). Az allow-transfer op-ció lehet®séget nyújt azon IP címek felsorolására, amelyek zónatranszfert végezhetnek. Itt többcímet is megadhatunk, de pontosvessz®vel kell elválasztanunk ®ket. Az allow-query opció annakkorlátozását teszi lehet®vé, hogy kikt®l fogadjon el kérést (illetve milyen címekr®l, címtarto-mányokból érkez® kérésekre válaszoljon) a szerver. Az also-notify de�niál egy IP címekb®l állólistát, egyúttal meghatározva azt, hogy ezeknek a címeknek kell elküldeni a NOTIFY üzenetet,amikor a zónafájl új verziója kerül betöltésre a szerveren. A notify yes arra utasítja az els®dleges

Kósa Attila <[email protected]> 2007. december 22.

Page 21: kosa_attila_halozat.pdf

Debian GNU/Linux 21szerverünket, hogy ha a zónafájl változását észleli, akkor küldjön jelzést a másodlagos szerve-reknek, hogy frissítsék a zónát. Ekkor van jelent®sége a kés®bb említésre kerül® Serial-nak, merta másodlagos szerverek ennek a változásából tudják majd, hogy valóban frissült az adott zóna,és ezután kérik le az els®dleges szervert®l, hogy náluk is az új adatok legyenek meg.Miután az alapvet® kon�gurációval elkészültünk, már csak az általunk kezelt zónafájlok megí-rása van hátra, hogy üzembeállíthassuk DNS szerverünket. Ezeket a fájlokat a /var/cache/bindkönyvtárban kell elhelyeznünk. Lássuk ezen fájlok formátumát és a lehetséges tartalmukat (ateljesség igénye nélkül).El®ször a belso.db5 névre �keresztelt� fájlt készítsük el.$TTL 86400@ IN SOA dns.akarmi.intra. dnsmaster.akarmi.intra. (2007022001 ; Serial86400 ; Refresh900 ; Retry604800 ; Expire86400 ) ; Negativ cache TTL@ IN NS dns.akarmi.intra.@ IN NS slavedns.akarmi.intra.$origin akarmi.intra.kliens1 IN A 192.168.10.10intraweb IN A 192.168.10.247wpad IN CNAME intraweb.akarmi.intra.backup IN A 192.168.10.248syslog IN A 192.168.10.249samba IN A 192.168.10.250proxy IN A 192.168.10.251mail IN A 192.168.10.252slavedns IN CNAME mail.akarmi.intra.dns IN A 192.168.10.253time IN CNAME dns.akarmi.intra.fw IN A 192.168.10.254

Már csak a belso-rev.db5 nev¶ fájl elkészítése van hátra.$TTL 86400@ IN SOA dns.akarmi.intra. root.dns.akarmi.intra. (2007022001 ; Serial86400 ; Refresh900 ; Retry604800 ; Expire86400 ) ; Negativ cache TTL@ IN NS dns.akarmi.intra.@ IN NS slavedns.akarmi.intra.$origin 10.168.192.in-addr.arpa.10 IN PTR kliens1.akarmi.intra.247 IN PTR intraweb.akarmi.intra.248 IN PTR backup.akarmi.intra.249 IN PTR syslog.akarmi.intra.250 IN PTR samba.akarmi.intra.251 IN PTR proxy.akarmi.intra.252 IN PTR mail.akarmi.intra.253 IN PTR dns.akarmi.intra.254 IN PTR fw.akarmi.intra.

Állítsuk be a létrehozott fájlok jogosultságait és tulajdonosait:# chmod 640 /var/cache/bind/belso*# chown root:bind /var/cache/bind/belso*Némi magyarázat ahhoz, hogy mit is jelentenek a fájlok elején a számsorok.2007022001 Serial. Ez egy egyszer¶ sorszám, amelyet lehetne más formában használni (pél-dául nem a fenti évhónapnapverzió formában, hanem egyszer¶en egy számot írnánk oda,például 1). Ezt a számot kell növelnünk, ha az adott zónafájlban változtatásokat haj-tottunk végre � ebb®l tudják majd a másodlagos szerverek, hogy az adott zónán mikortörtént változtatás (azért használom én a dátumos formátumot, hogy az emberi szemszámára is azonnal látható legyen, mikor történt az utolsó változtatás). Nem árt megszok-nunk, hogy növeljük ezt a számot, sok bosszúságtól (érthetetlen problémáktól és feleslegeshibakeresést®l) kímélhetjük meg magunkat.

5Önkényesen választottam ezt a fájlnevet.

2007. december 22. Kósa Attila <[email protected]>

Page 22: kosa_attila_halozat.pdf

22 Debian GNU/Linux86400 Refresh (frissítési id®). Ez egy másodpercekben megadott érték. Azt mondja meg, hogya másodlagos szervereknek mennyi id®nként kell az els®dleges szervert®l lekérdezniük aSerial értékét (hogy szükséges-e a zónát frissíteni).900 Retry (várakozás). Ez egy másodpercekben megadott érték. Ha a frissítés nem sikerül amásodlagos szervereken, akkor ennyi ideig kell várakozniuk az újabb próbálkozás el®tt.604800 Expire (lejárati id®). Ez egy másodpercekben megadott érték, amely a zóna adatainaklejárati idejét adja meg. A másodlagos DNS szerverek ennyi ideig szolgáltathatják azels®dleges szervert®l kapott zónát, ha nem sikerül felvenniük a kapcsolatot az els®dlegesszerverrel.86400 Negatív cache TTL. Ez egy másodpercekben megadott érték, amely a hibás lekérdezésekcache-elésének id®tartamára vonatkozik.

Végeztünk is az alapvet® kon�gurálással, most már rendelkezünk egy m¶köd® DNS szer-verrel, csak el kell indítanunk a /etc/init.d/bind9 start paranccsal. Az indítást követ®enellen®rizzük a logokban, hogy hibaüzenet nélkül indult el, illetve például a netstat -natp pa-ranccsal, hogy �gyel-e a megfelel® interfészeken.2.2.2. Másodlagos DNS szerver

Gyakorlatilag ugyanarra a szoftverre van szükségünk, amelyre az els®dleges szerver telepítésénél.# apt-get install bind9

Itt is láthatjuk, amint a telepítés végén létrejön egy csoport és egy felhasználói account,illetve egy rndc.key nev¶ fájl a /etc/bind könyvtárban, majd elindul a szolgáltatás.Setting up bind9 (9.3.4-2) ...Adding group `bind' (GID 103) ...Done.Adding system user `bind' (UID 101) ...Adding new user `bind' (UID 101) with group `bind' ...Not creating home directory `/var/cache/bind'.wrote key file "/etc/bind/rndc.key"Starting domain name service...: bind.

Ezt is állítsuk le a kon�gurálás id®szakára.# /etc/init.d/bind9 stop

Az azonos szoftverb®l következ®en ugyanazokat a fájlokat fogjuk megtalálni a telepítés végén,mint amelyeket már megbeszéltünk, tehát nézzük a kon�gurációs állományokat. A resolv.confállomány így nézzen ki:search akarmi.intranameserver 127.0.0.1nameserver 192.168.10.253nameserver 192.168.10.254

A named.conf.options fájlt másoljuk át, majd javítsuk ki a következ® módon.acl belso_halozat { 192.168.10.0/24; };server 192.168.10.253 {keys { titkos_kulcs; };};key titkos_kulcs {algorithm hmac-md5;secret "islfIxRey4p2Uedv9+Rhfw==";};options {directory "/var/cache/bind";query-source address * port 53;forward only;forwarders {192.168.10.254;};check-names slave fail;

Kósa Attila <[email protected]> 2007. december 22.

Page 23: kosa_attila_halozat.pdf

Debian GNU/Linux 23check-names response warn;allow-transfer { none; };allow-query { localhost; belso_halo; };allow-recursion { localhost; belso_halo; };auth-nxdomain no;listen-on-v6 { none; };};

A néhány különbség magyarázata a következ®. A check-names opció esetén azért kerültslave megadásra, mert nincsenek saját els®dleges zónái a másodlagos szerverünknek. Az allow-transfer opció pedig azért nem tartalmaz semmit (illetve a none paramétert), mert róla senkisem végezhet zónatranszfert.A named.conf.local fájl tartalma már némiképp eltér, amint az a következ®kben látható.zone "akarmi.intra" {type slave;masters port 53 {192.168.10.253;};file "belso.db";allow-query {127.0.0.1;192.168.10.0/24;};};zone "10.168.192.in-addr.arpa" {type slave;masters port 53 {192.168.10.253;};file "belso-rev.db";allow-query {127.0.0.1;192.168.10.0/24;};};

Mondhatni, hogy készen is vagyunk, hiszen a named.conf fájlt ezen a gépen is változatlanulhagyhatjuk. Indítsuk el:# /etc/init.d/bind9 start

A másodlagos szerver elindításakor azt fogjuk látni a logokban (az els®dleges szerveren),ahogy lekéri az els®dleges szervert®l a zónákat (a titkos kulcs segítségével):Mar 23 14:57:49 dns named[2501]: client 192.168.10.252#4550: transfer of 'akarmi.intra/IN': AXFR started: TSIG titkos_kulcsMar 23 14:57:49 dns named[2501]: client 192.168.10.252#4550: transfer of 'akarmi.intra/IN': AXFR endedMar 23 14:57:50 dns named[2501]: client 192.168.10.252#2465: transfer of '10.168.192.in-addr.arpa/IN': AXFR started: TSIG titkos_kulcsMar 23 14:57:50 dns named[2501]: client 192.168.10.252#2465: transfer of '10.168.192.in-addr.arpa/IN': AXFR ended

2.3. Adminisztrációs eszközök a BIND9 -hezTelepítsük fel a szükséges csomagot:# apt-get install dnsutils2.3.1. named-checkconf

A named.conf, a named.conf.local és a named.conf.options fájlok szintaktikai ellen®rzéséreszolgál.Használata:# cd /etc/bind# named-checkconf named.conf ; echo $?0# named-checkconf named.conf.local ; echo $?0# named-checkconf named.conf.options ; echo $?0

Ha minden rendben van, akkor semmilyen választ nem látunk a képerny®n (a parancs vissza-térési értéke 0, ezt írattuk ki az echo $? parancs segítségével).

2007. december 22. Kósa Attila <[email protected]>

Page 24: kosa_attila_halozat.pdf

24 Debian GNU/Linux2.3.2. named-checkzone

Szintaktikai ellen®rzést végez, valamint a fájlok konzisztenciáját ellen®rzi.# cd /var/cache/bind# named-checkzone akarmi.intra belso.dbzone akarmi.intra/IN: loaded serial 2007032101OK# named-checkzone 10.168.192.in-addr.arpa belso-rev.dbzone 10.168.192.in-addr.arpa/IN: loaded serial 2007032101OK2.3.3. rndc

A remote name daemon control (távoli név démon ellen®rzés) névb®l származik a programneve: rndc. Hozzáférést biztosít egy távoli névszerverhez, és parancsok kiadását teszi lehet®vé.Használata:rndc [-c config] [-s server] [-p port] [-y key] command [command...]A következ® parancsokat lehet használni:

• reload � Újra betölti a kon�gurációs állományokat és a zónafájlokat.• reload zone [class [view]] � Újra betölti az adott zónát.• refresh zone [class [view]] � Frissíti a megadott zónákat.• reconfig � Újra betölti a kon�gurációs állományokat és betölti az új zónákat. De nemtölti újra a létez® zónákat, ha azok nem változtak. Ez gyorsabb megoldás, mint az összeszóna újratöltése, ennek nagy számú zóna használata esetén láthatjuk az el®nyeit.• stats � Kiírja a szerver statisztikát a named.run nev¶ fájlba, amely a /var/cache/bindkönyvtárban található.• querylog � A parancs els® kiadásakor be-, a második kiadásakor kikapcsolja a lekérdezésekloggolását. Alapértelmezésben a syslog-ba kerülnek az üzenetek.• dumpdb � Kiírja a szerver gyorsítótárának a tartalmát a named_dump.db nev¶ fájlba, amelya /var/cache/bind könyvtárban található.• stop � Leállítja a szolgáltatást. Minden változtatás (dinamikus update és IXFR esetén)el®ször mentésre kerül a megfelel® zónafájlba.• halt � Leállítja a szolgáltatást. A változtatások (dinamikus update és IXFR) nem kerülnekmentésre a zónafájlokba, de a journal fájlból �visszajátszásra� kerülnek a szolgáltatásújraindításakor.• trace � Növeli a szerver debug szintjét eggyel.• trace level � Beállítja a szerver debug szintjét a megadott értékre.• notrace � Beállítja a szerver debug szintjét 0-ra.• flush � Kiüríti a szerver gyorsítótárát.• status � Kiírja a képerny®re a szerver állapotinformációit.Használatához szükséges egy kon�gurációs fájl. A szerverrel folytatott minden kommu-nikáció digitálisan aláírottan zajlik egy megosztott kulcs segítségével, és a szerver ennek akulcsnak a segítségével azonosítja a klienset. Ez a titkos kulcs a /etc/bind könyvtárban, arndc.key fájlban található (a telepítéskor generálódik automatikusan, de újra lehet generálniaz rndc-confgen -a parancs segítségével).

Kósa Attila <[email protected]> 2007. december 22.

Page 25: kosa_attila_halozat.pdf

Debian GNU/Linux 25A kommunikáció alapértelmezésben a 953-as porton zajlik, erre a csomagsz¶r® beállításánáloda kell �gyelnünk, de alapértelmezésben csak a localhoston �gyel, tehát kívülr®l nem lehetelérni ezt a szolgáltatást.Most az rndc.key nev¶ fájlt használjuk az rndc kon�gurációs állományaként. Alapértelme-zésben mindössze ennyit tartalmaz (a secret opció utáni rész véletlenszer¶en el®állított):

key "rndc-key" {algorithm hmac-md5;secret "c63Vt1syLt6eLTz0h2gM6g==";};Ez lehet®vé teszi a lokálisan futó szolgáltatás elérését mindenféle kapcsoló használata nélkül:

# rndc statusnumber of zones: 6debug level: 0xfers running: 0xfers deferred: 0soa queries in progress: 0query logging is OFFrecursive clients: 0/1000tcp clients: 0/100server is up and running

2.4. A DNS tesztelésére használható eszközök2.4.1. dig

A dig egy parancssoros eszköz, amely információkat képes gy¶jteni a DNS-szerverekt®l. Kétüzemmódja van, egy egyszer¶ interaktív mód, amely egyszerre egy kérést tesz lehet®vé, illetveaz úgynevezett batch mód, amelyben egy listában sorolhatjuk fel a kéréseket, amelyeket végrekell hajtania. Minden lekérdezési opció elérhet® a parancssorból.dig [@server] domain [query-type] [query-class] [+query-option] [-dig-option] [%comment]

Az összes opcióról a dig manual oldala nyújt leírást.

2.4.2. host

Egy egyszer¶ DNS lekérdézést lehet®vé tev® parancssoros eszköz. Alapértelmezésben konvertála gépnevek és az IP címek között.host [-aCdlrTwv] [-c class] [-N ndots] [-t type] [-W timeout] [-R retries] hostname [server]

Az összes opcióról a host manual oldala nyújt leírást.

2.4.3. nslookup

DNS szerverek lekérdezésére használható parancssoros eszköz. Két üzemmódja van: az interak-tív és a nem interaktív. Interaktív módban lehet®vé teszi a felhasználónak, hogy lekérdezéseketintézzen a névszerverhez gépekkel, domain-ekkel és címekkel kapcsolatban. Nem interaktív mód-ban csak kiírja a neveket és a kért információkat a gépr®l vagy a domain-r®l.nslookup [-option...] [host-to-find | - [server]]

A dig használata javasolt az nslookup helyett.

2007. december 22. Kósa Attila <[email protected]>

Page 26: kosa_attila_halozat.pdf

26 Debian GNU/Linux2.5. A többi szerver DNS beállításaA dns szervereken és a t¶zfalon kívüli szerverek /etc/resolv.conf fájljainak a tartalma akövetkez®:search akarmi.intranameserver 192.168.10.253nameserver 192.168.10.252

A dhcp-vel IP címet kapó gépek a dhcp szervert®l megkapják az aktuális beállításokat anévfeloldást végz® szerverekre vonatkozóan.

Kósa Attila <[email protected]> 2007. december 22.

Page 27: kosa_attila_halozat.pdf

3. fejezet

DHCP

Célunk az, hogy a gépeknek központi helyr®l küldjük ki a hálózati beállításokat (amelyek akárgépenként különböz®ek is lehetnek).

3.1. dhcpTelepítsük fel azt a szoftvert, amely szükséges ahhoz, hogy a kívánt célt elérjük. Ne felejtsükel azonban, hogy ennek a szoftvernek kerneltámogatásra is szüksége van, egészen pontosan aCONFIG_FILTER és a CONFIG_PACKET opciókra (ezek hiányát beleírja a logokba).# apt-get install dhcpSetting up dhcp (2.0pl5-19.5) ...Generating /etc/default/dhcp...Please note that if you are installing the DHCP server for the firsttime you need to configure it first. Please stop (/etc/init.d/dhcpstop) the DHCP server daemon, edit /etc/dhcpd.conf to suit your needsand particular configuration, and restart the DHCP server daemon(/etc/init.d/dhcp start).You also need to edit /etc/default/dhcp to specify the interfaces dhcpdshould listen to. By default it listens to eth0.NOTE: dhcpd's messages are being sent to syslog. Look there fordiagnostics messages.Starting DHCP server: dhcpd failed to start - check syslog for diagnostics.

Megpróbálja elindítani a szolgáltatást, de mivel a csomaggal érkez® kon�gurációs állománynem a mi hálózatunknak megfelel® beállításokat tartalmaz, ezért nem indul el.A /etc/dhcpd.conf fájl maga a kon�gurációs állomány, de találunk a /etc/default könyv-tárban is egy fájlt (dhcp néven), amelyben azt tudjuk beállítani, hogy melyik interfészen �gyeljena szerver (több interfész is megadható).A csomag telepítésekor felkerül® állományt eltehetjük emlékbe, írjunk helyette rögtön egymásikat, amely az alábbiakat tartalmazza.server-identifier dns.akarmi.intra;subnet 192.168.10.0 netmask 255.255.255.0 {authoritative;default-lease-time 21600;max-lease-time 43200;option subnet-mask 255.255.255.0;option broadcast-address 192.168.10.255;option routers 192.168.10.254;option domain-name-servers 192.168.10.253, 192.168.10.252;option domain-name "akarmi.intra";option netbios-node-type 8;option netbios-name-servers 192.168.10.249;deny unknown-clients;host kliens1 {hardware ethernet 00:50:8b:de:2d:f8;fixed-address 192.168.10.10;}}

27

Page 28: kosa_attila_halozat.pdf

28 Debian GNU/LinuxA server-identi�er opciót annak a gépnek a teljes neve kell kövesse, amelyen a szolgáltatásfut. A subnet meghatározza (a netmask -kal együtt) azt a címtartományt, amelyb®l a címe-ket osztani fogjuk. A lease-time opciók a �bérleti szerz®désre� vonatkoznak, arra, hogy mennyiideig érvényesek azok az adatok, amelyeket a szerver átadott a klienseknek (másodpercbenmeghatározva). Ha nem vagyunk authoritative-ek a hálózatra, akkor az ismeretlen kliensekt®l(unknown-clients opció) érkez® kérésekre nem ad semmilyen választ, és nem biztos, hogy eztakarjuk. Az authoritative opció hatására az ismeretlen klienseknek a szerver egy DHCPNAKüzenetettel megtiltja a további próbálkozást. A default-lease-time a bérlet lejárati idejét hatá-rozza meg másodpercben, ha a kliens nem kér speciális lejárati id®t. A max-lease-time a bérletmaximális id®tartamát határozza meg, ennek lejártakor a kliensnek mindenképpen újra kellkérnie a szervert®l az adatokat. Az option kulcsszóval kezd®d® sorok elég beszédesek, de azértszaladjunk végig a jelentésükön.• subnet-mask � az alkalmazott alhálózati maszk;• broadcast-address � a hálózat broadcast címe;• routers � az alapértelmezett átjáró (default gateway) címe;• domain-name-servers � a névszerver(ek) címei;• domain-name � a tartomány neve;• netbios-node-type � a windowsos gépek miatt szükséges opció, a hálózati kommunikáció-jukat lehet befolyásolni a segítségével (b®vebben a 7.1.3. fejezetben);• netbios-name-servers � a WINS szerver címe, ugyancsak a windowsos gépek miatt (bárWindows 2000-t®l már tudnak tisztán IP alapon is m¶ködni).A deny unknown-clients opció arra szolgál, hogy az azonosítatlan klienseket, akiknek nincsa mac address-e (hardware ethernet sor a fenti példában) rögzítve a kon�gurációs állományban,nem szolgálja ki, tehát nem ad nekik IP címet. Ezzel biztosíthatjuk, hogy csak az általunk ismertgépek kaphatnak IP címet a dhcp szervert®l.Viszont nem szabad elfelejtenünk, hogy ez nem tekinthet® védelemnek, mert minden ope-rációs rendszer lehet®séget nyújt (megfelel® jogosultságokkal rendelkez® felhasználó számára) ahálózati kártya azonosítójának (mac address-ének) az átírására, ezáltal bármelyik gép felvehetibármelyik ismert azonosítót, és így fordulhat a dhcp szerverhez IP címért (amely ezután prob-lémázás nélkül ki is fogja szolgálni, azaz fog neki IP címet adni). Egy másik megoldás ennek a�védelemnek� a kikerülésére (amelyre szintén minden operációs rendszerben van lehet®ség), ha�x IP címet állítanak be egy gépnek, tehát nem is igényelnek a dhcp szervert®l IP címet.Egyes switchek lehet®séget nyújtanak arra, hogy portonként beállíthassuk, hogy milyen macaddress-¶ hálózati kártya kommunikálhat az adott porton, de ennek a kifejtése túllépi ezen anyaghatárait.

3.2. dhcp3-serverTelepítsük fel azt a szoftvert, amely szükséges ahhoz, hogy a kívánt célt elérjük.# apt-get install dhcp3-serverSetting up dhcp3-server (3.0.4-13) ...Generating /etc/default/dhcp3-server...Starting DHCP server: dhcpd3 failed to start - check syslog for diagnostics.invoke-rc.d: initscript dhcp3-server, action "start" failed.

Megpróbálja elindítani a szolgáltatást, de mivel a csomaggal érkez® kon�gurációs állománynem a mi hálózatunknak megfelel® beállításokat tartalmaz, ezért nem indul el.

Kósa Attila <[email protected]> 2007. december 22.

Page 29: kosa_attila_halozat.pdf

Debian GNU/Linux 29A /etc/dhcp3/dhcpd.conf fájl maga a kon�gurációs állomány, de találunk a /etc/defaultkönyvtárban is egy fájlt (dhcp3-server néven), amelyben azt tudjuk beállítani, hogy melyikinterfészen �gyeljen a szerver (több interfész is megadható).A csomag telepítésekor felkerül® állományt eltehetjük emlékbe, írjunk helyette rögtön egymásikat, amely az alábbiakat tartalmazza.

server-identifier dns.akarmi.intra;subnet 192.168.10.0 netmask 255.255.255.0 {authoritative;default-lease-time 21600;max-lease-time 43200;option subnet-mask 255.255.255.0;option broadcast-address 192.168.10.255;option routers 192.168.10.254;option domain-name-servers 192.168.10.253, 192.168.10.252;option domain-name "akarmi.intra";option netbios-node-type 8;option netbios-name-servers 192.168.10.249;deny unknown-clients;host kliens1 {hardware ethernet 00:50:8b:de:2d:f8;fixed-address 192.168.10.10;}}A server-identi�er opciót annak a gépnek a teljes neve kell kövesse, amelyen a szolgáltatásfut. A subnet meghatározza (a netmask -kal együtt) azt a címtartományt, amelyb®l a címe-ket osztani fogjuk. A lease-time opciók a �bérleti szerz®désre� vonatkoznak, arra, hogy mennyiideig érvényesek azok az adatok, amelyeket a szerver átadott a klienseknek (másodpercbenmeghatározva). Ha nem vagyunk authoritative-ek a hálózatra, akkor az ismeretlen kliensekt®l(unknown-clients opció) érkez® kérésekre nem ad semmilyen választ, és nem biztos, hogy eztakarjuk. Az authoritative opció hatására az ismeretlen klienseknek a szerver egy DHCPNAKüzenetettel megtiltja a további próbálkozást. A default-lease-time a bérlet lejárati idejét hatá-rozza meg másodpercben, ha a kliens nem kér speciális lejárati id®t. A max-lease-time a bérletmaximális id®tartamát határozza meg, ennek lejártakor a kliensnek mindenképpen újra kellkérnie a szervert®l az adatokat. Az option kulcsszóval kezd®d® sorok elég beszédesek, de azértszaladjunk végig a jelentésükön.• subnet-mask � az alkalmazott alhálózati maszk;• broadcast-address � a hálózat broadcast címe;• routers � az alapértelmezett átjáró (default gateway) címe;• domain-name-servers � a névszerver(ek) címei;• domain-name � a tartomány neve;• netbios-node-type � a windowsos gépek miatt szükséges opció, a hálózati kommunikáció-jukat lehet befolyásolni a segítségével (b®vebben a 7.1.3. fejezetben);• netbios-name-servers � a WINS szerver címe, ugyancsak a windowsos gépek miatt (bárWindows 2000-t®l már tudnak tisztán IP alapon is m¶ködni).A deny unknown-clients opció arra szolgál, hogy az azonosítatlan klienseket, akiknek nincsa mac address-e (hardware ethernet sor a fenti példában) rögzítve a kon�gurációs állományban,nem szolgálja ki, tehát nem ad nekik IP címet. Ezzel biztosíthatjuk, hogy csak az általunk ismertgépek kaphatnak IP címet a dhcp szervert®l.Viszont nem szabad elfelejtenünk, hogy ez nem tekinthet® védelemnek, mert minden ope-rációs rendszer lehet®séget nyújt (megfelel® jogosultságokkal rendelkez® felhasználó számára) ahálózati kártya azonosítójának (mac address-ének) az átírására, ezáltal bármelyik gép felvehetibármelyik ismert azonosítót, és így fordulhat a dhcp szerverhez IP címért (amely ezután prob-lémázás nélkül ki is fogja szolgálni, azaz fog neki IP címet adni). Egy másik megoldás ennek a

2007. december 22. Kósa Attila <[email protected]>

Page 30: kosa_attila_halozat.pdf

30 Debian GNU/Linux�védelemnek� a kikerülésére (amelyre szintén minden operációs rendszerben van lehet®ség), ha�x IP címet állítanak be egy gépnek, tehát nem is igényelnek a dhcp szervert®l IP címet.Egyes switchek lehet®séget nyújtanak arra, hogy portonként beállíthassuk, hogy milyen macaddress-¶ hálózati kártya kommunikálhat az adott porton, de ennek a kifejtése túllépi ezen anyaghatárait.

Kósa Attila <[email protected]> 2007. december 22.

Page 31: kosa_attila_halozat.pdf

4. fejezet

Id®szinkron

Több okból is szükség van arra, hogy a bels® hálózat gépeinek (mind a szervereknek, mind amunkaállomásoknak) az órái szinkronban legyenek egymással.• A titkosított kapcsolatok nem szeretik, ha az id® jelent®sen eltér egymástól a kapcsolatbanrészt vev® gépeken. Ez akár azt is okozhatja, hogy nem is képesek egymással a titkosítottkapcsolatot létrehozni.• Bármit szeretnénk visszakeresni a logokban, megkönnyíti a dolgunkat, ha egyformán jár-nak a gépek órái.

4.1. ntpA telepítés egyszer¶:# apt-get install ntp

Nem látható a telepítés alatt (csak a logokban), hogy a csomag létrehoz egy ntp nev¶csoportot, és egy ugyanilyen nev¶ felhasználót is. Elindításakor ezeknek a nevében fog futni aszolgáltatás, nem a root felhasználó jogosultságaival.A kon�gurációs állomány a /etc/ntp.conf fájl, illetve a /etc/default könyvtárban vanegy ntp nev¶ állomány. Ez utóbbi mindössze egyetlen sort tartalmaz a telepítés után:NTPD_OPTS='-g'

Az általunk használt kon�gurációs állomány:driftfile /var/lib/ntp/ntp.driftstatsdir /var/log/ntpstats/statistics loopstats peerstats clockstatsfilegen loopstats file loopstats type day enablefilegen peerstats file peerstats type day enablefilegen clockstats file clockstats type day enableserver 192.168.10.254server 127.127.1.0fudge 127.127.1.0 stratum 13restrict default kod notrap nomodify nopeer noqueryrestrict 127.0.0.1 nomodify

Ténylegesen sokkal több opció létezik, illetve a szerepl® opcióknak is több kapcsolója van,de most csak a fentiek magyarázatára térünk ki.drift�le Ebben a fájlban tárolja az ntp démon, hogy az els® elindulásakor a számítógép bels®frekvenciájának mennyi a hibája. Körülbelül 1 napig tart az elindítása után, amíg egy jóbecslést kiszámít, és ily módon közel kerül a szinkronizáláshoz használt szerver idejéhez.Ezt a fájlt használja arra, hogy a démon újraindítása esetén újra inicializálja saját magát,és így el tudja kerülni azt, hogy újra 1 napig tartson a becslés kiszámítása.

31

Page 32: kosa_attila_halozat.pdf

32 Debian GNU/Linuxstatsdir Egy könyvtár teljes elérési útvonalát határozza meg, ahol a statisztikai fájlokat tárolnifogja a rendszer.statistics Engedéyezi statisztikai adatok írását. Jelenleg 6 különböz® statisztika támogatott.

clockstats Az óra statisztikai információi.loopstats A loop �lter statisztikai információi.peerstats Az egyéb ntp szerverekkel kapcsolatos statisztikai információk (magában fog-lalja a kon�gurált speciális szignálokat is).

�legen Egy adott sor meghatározza, hogy milyen típusú adatot mikor és hová kell írni. Arégi adatokat (fájlokat) el lehet távolítani, mert csak adminisztrációs szempontból vanjelent®ségük, az ntp csak az aktuális fájlokat használja.server A szinkronizáláshoz használt time szerver neve vagy IP címe.fudge Arra használatos, hogy plusz információt szolgáltasson az egyéni órairányítók számára.A stratum opció használható az eszköz alapértelmezésének felülírására.

Egy referenciaórának a stratum száma alapértelmezésben nulla. Az ntp minden egyesszerver stratumához (amelyekhez ® szinkronizál) hozzáad egyet. 15 fölötti stratum eseténmár nem használják szinkronizálásra, mert túlságosan pontatlan lenne.restrict Az alapértelmezett bejegyzés (IP cím: 0.0.0.0, netmaszk 0.0.0.0) mindig benne van, ésmindig a listának az els® tagja. Tehát az els® restrict bejegyzés mindig erre vonatkozik.A további bejegyzéseknél megadhatjuk (IP címmel vagy DNS névvel) a korlátozandóklistáját. Ha nincs restrict sor a kon�gurációs állományunkban, akkor nincs semmilyenkorlátozás a szolgáltatás elérését tekintve. A korlátozásokat két csoportra lehet osztani,az egyik, amely az id®szolgáltatás elérését korlátozza, a másik pedig a szervert®l kérhet®információkat, valamint a szerver futási id®ben történ® újrakon�gurálását.

ignore Minden csomagot �gyelmen kívül hagy, beleértve az ntpq és az ntpdc lekérdezé-seket is.kod Ha ez a jelz® be van állítva amikor egy szabálytalan elérési próbálkozás történik,akkor egy KoD (kiss-o'-death � a halál csókja) csomagot fog küldeni a szerver. Ezencsomagok száma másodpercenként egyre van korlátozva.nomodify Megakadályozza, hogy az ntpq és az ntpdc segítségével változtatni lehessena kon�gurációs beállításokon, tehát futás közben nem lehet átállítani a szervert. Azezekkel a parancsokkal történ® lekérdezést azonban nem tiltja meg.noquery Letiltja az ntpq és az ntpdc kéréseit. Ez magát a szolgáltatást nem érinti.nopeer Elutasítja azokat a csomagokat, amelyek új szervert vennének fel.notrap A trap szolgáltatás elérését tiltja.

A fentiek ismeretében lássuk, pontosan mit is jelent az elkészített kon�gurációs állományunk.A /var/lib/ntp/ntp.drift fájl van beállítva drift�le-ként (azaz ott tárolja az adatokat). Astatisztikák tárolására a /var/log/ntpstats/ könyvtár van megadva. 3 statisztika készüljön,naponta egy, a statisztikák nevének megfelel® fájlba kerüljenek (az el®z®leg megadott könyv-tárban). 2 szerver van beállítva. A 192.168.10.254 a t¶zfalunk IP címe, ahhoz szinkronizál abels® szerverünk. A 127.127.1.0 cím¶ szerver az saját magát, a lokális gép óráját jelenti. Asaját órájához 13 van beállítva stratumként (az egyszer¶ség kedvéért nevezzük pontosságnak,bár nem egészen fedi ez a kifejezés a valóságot). Ez arra jó, hogy ha nem tud a távoli szerverhezszinkronizálni, akkor is tud id®t szolgáltatni a kliensek (és a szerverek) számára. És végül kétkorlátozás szerepel még a kon�gurációs állományban.

Kósa Attila <[email protected]> 2007. december 22.

Page 33: kosa_attila_halozat.pdf

Debian GNU/Linux 334.1.1. A szolgáltatás ellen®rzése

Több lehet®ségünk is van a szolgáltatás m¶ködésének az ellen®rzésére. A legegyszer¶bb azntpdate használata (ehhez el®ször természetesen telepítenünk kell az ntpdate csomagot). Ezzelegyszer¶en megpróbáljuk elérni a szervert:# ntpdate -q -v time8 Nov 15:54:39 ntpdate[1213]: ntpdate 4.2.0a@1:4.2.0a+stable-2-r Fri Aug 26 10:30:13 UTC 2005 (1)server 192.168.10.253, stratum 5, offset 0.000004, delay 0.025688 Nov 15:54:39 ntpdate[1213]: adjust time server 192.168.10.253 offset 0.000004 secEgy másik lehet®ség az ntpq használata. Ha úgy indítjuk, hogy ntpq, akkor egy ntpq>promptot kapunk, ahol a ? (kérd®jel) segítségével juthatunk a használható parancsok listájához.Ugyanezeket a parancsokat használhatjuk az ntpq másik indítási módjánál is: ntpq -c ?. Teháta -c parancssori opció után adhatjuk meg a használható parancsokat. Például a readvar opcióhatására a következ® adatokat kapjuk:# ntpq -c readvarassID=0 status=0664 leap_none, sync_ntp, 6 events, event_peer/strat_chg,version="ntpd [email protected] Sun Mar 4 13:21:35 UTC 2007 (1)"processor="i686", system="Linux/2.6.18-4-686", leap=00, stratum=5precision=-20, rootdelay=25.092, rootdispersion=379.947, peer=29110,refid=192.168.10.254,reftime=c9b22e22.81d92a97 Mon, Mar 26 2007 13:33:54.507, poll=6,clock=c9b22fea.083a1008 Mon, Mar 26 2007 13:41:30.032, state=4,offset=122.694, frequency=38.028, jitter=140.360, noise=43.379,stability=13.445, tai=0Itt látható, hogy miért ajánlatos letiltani az NTP szerverünk ntpq segítségével történ® el-érését. Hiszen még a használt szoftver és kernel verziója is megjelenik az üzenetben, amely alegtöbb esetben nem publikus információ.A harmadik lehet®ség az ntpdc használata, amely az ntpq parancshoz hasonlóan m¶ködik.A lekérdezéshez használható opciókat ennél az ntpdc -c ? parancs segítségével kaphatjuk meg.

4.2. ntpdateArra szolgál, hogy a gép óráját egy id®kiszolgálóhoz szinkronizálja.El®ször telepítsük fel:# apt-get install ntpdate

Egyetlen kon�gurációs állománya van, a /etc/default/ntpdate fájl. A fájl a telepítés utánaz alábbiakat tartalmazza (a kommenteket kihagytam):NTPDATE_USE_NTP_CONF=yesNTPSERVERS="0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org"NTPOPTIONS=""

Az NTPOPTIONS opciónál sorolhatjuk fel az ntpdate parancssori kapcsolóit. Ezek közülaz alábbi hármat látom én célszer¶nek használni:s Alapértelmezésben a standard kimenetre küldi üzeneteit az ntpdate, de ett®l a kapcsolótól asyslog-ba fognak bekerülni az üzenetek.u E nélkül a kapcsoló nélkül az ntpdate a 123-as (privilegizált) portot akarja használni. Ha futegy NTP szerver a gépen, akkor ez nem fog neki sikerülni, és az alábbi hibaüzenetet adja:the NTP socket is in use, exiting.v B®beszéd¶bbé válik t®le az ntpdate, kiírja, hogy mennyi volt az id®eltérés a szinkronizálásrahasznált szervert®l.

Végeredményben így fog kinézni a /etc/default/ntpdate állományunk:NTPDATE_USE_NTP_CONF=noNTPSERVERS="time"NTPOPTIONS="-vus"

2007. december 22. Kósa Attila <[email protected]>

Page 34: kosa_attila_halozat.pdf

34 Debian GNU/LinuxAz ntpdate csak a rendszer indulásakor fut le automatikusan. Ha nem csak ilyenkor szeret-nénk futtatni, akkor kénytelenek vagyunk a cron segítségével elindítani. Ehhez a /etc/cron.dkönyvtárba helyezzünk el egy ntpdate1 nev¶ fájlt az alábbi tartalommal:

MAILTO=""15 * * * * root /usr/sbin/ntpdate-debian -s -b >/dev/nullA MAILTO sor hatására a cron nem fog levelet küldeni a parancs végrehajtásáról. A kö-vetkez® sor hatására pedig minden óra 15 perckor fogja futtatni a szinkronizáláshoz szükségesparancsot.

4.2.1. ntpdate az NTP szerveren

A time (igazi nevén dns) gépen másképp fog kinézni, mivel neki a t¶zfalon futó NTP szerver-hez kell szinkronizálnia, illetve rá fel van telepítve az ntp csomag, ily módon elérhet®vé válik a/etc/ntp.conf fájl (és abból fogja venni az információt, hogy mely szerverhez kell szinkroni-zálnia, nem az itt látható NTPSERVERS opcióból):NTPDATE_USE_NTP_CONF=yesNTPSERVERS="0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org"NTPOPTIONS="-u -v -s"

4.3. Windows alatti NTP beállítások4.3.1. Windows 2000

Picit nehézkesen érhet® el a kattintgatásokhoz szokott felhasználóknak az id®szinkronizáció be-állítása. A parancssor szerelmesei viszont örülni fognak az egyszer¶ségnek. Készítenünk kell egyolyan fájlt, amelyet majd be tudunk importálni a registry-be. A következ®ket kell tartalmazniennek a fájlnak (az egyszer¶ség kedvéért legyen ntp_2000.reg a neve):HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters"LocalNTP"=dword:00000000"Period"="SpecialSkew""type"="NTP""NtpServer"="time.akarmi.intra"

Ezt a fájl felrakhatjuk a fájlszerverünk egy megosztásába, majd importálnunk kell, és újra-indítani a megfelel® szolgáltatást (kérjünk egy command promptot a Futtatás menüpont segít-ségével, és oda gépeljük az alábbiakat � rendszergazdai jogok szükségesek az óra beállításáhozés a szolgáltatás újraindításához!):C:\ regedit /s \\samba\megosztas_neve\ntp_2000.regC:\ net stop w32time && net start w32time4.3.2. Windows XP

Sajnos a Windows ezen verziójában már nagyon sok minden tartozik ezen szolgáltatáshoza regisrty-ben, ezért nem tudok a fentieknek megfelel®en egy egyszer¶ .reg fájlt ajánlani.Így kénytelenek vagyunk kattintgatva beállítani a szinkronizálást. Természetesen ha azonosWindows-aink vannak, akkor az els® elkészített gépen exportálhatjuk a megfelel® registry kul-csot, és attól kezdve használhatjuk a parancssort az importálásra, valamint a szolgáltatás újra-indítására.Adminisztrátor jogosultságokkal lépjünk be, majd a tálcán látható órára kattintsunk ket-t®t. Erre meg kell jelennie egy ablaknak, amelynek a harmadik fülén az Internet-id® feli-rat látható. Itt egy mez®ben látható a time.windows.com név. Ennek a helyére írjuk be a1Önkényesen választottam ezt a nevet.

Kósa Attila <[email protected]> 2007. december 22.

Page 35: kosa_attila_halozat.pdf

Debian GNU/Linux 35time.akarmi.intra nevet, majd kattintsunk az Alkalmaz gombra. Ezután kipróbálhatjuk azazonnali szinkronizálást a Azonnali frissítés gombra kattintva, majd az OK gombra kattintvabefejezhetjük a beállítást.

2007. december 22. Kósa Attila <[email protected]>

Page 36: kosa_attila_halozat.pdf

36 Debian GNU/Linux

Kósa Attila <[email protected]> 2007. december 22.

Page 37: kosa_attila_halozat.pdf

5. fejezet

Biztonság

Azért van szükségünk az egyes hálózati forgalmak titkosítására, hogy érzékeny adatokat is biz-tonságosan tudjunk átjuttatni a bárki által elérhet® hálózaton keresztül. Jellemz®en ilyen érzé-keny adatok a felhasználói név és jelszó párosok. Emiatt célszer¶ titkosítással ellátni azokat aszolgáltatásokat, amelyek ezen két adattal dolgoznak. A Bibliográ�ában szerepl® ([1]) anyagbanrészletes leírást találunk a tanúsítványokról, valamint érdekes példákat a használatukra.A különböz® szolgáltatásokhoz szükséges titkosítás el®állításáról1, valamint az ssh-n keresz-tüli távoli adminisztrációról lesz szó ebben a fejezetben.Nem szabad elfelejtenünk, hogy ha saját CA-t készítünk, és ezen CA-val írjuk alá a szervere-ink tanúsítványait, akkor ezen CA-nak a tanúsítványát el kell helyeznünk a megfelel® helyeken.Ha egy webszerverhez generálunk kulcsot, akkor a munkaállomás böngész®jének is a tudomá-sára kell hoznunk, hogy miképpen tudja ellen®rizni a webszerver tanúsítványát. Erre azonbancsak a CA tanúsítványának ismeretében lesz képes! Tehát ha a kliens nem rendelkezik a CAtanúsítványával, akkor nem fogja tudni ellen®rizni a webszerver tanúsítványát. Alapesetben ezannyit fog jelenteni, hogy minden böngész® �gyelmeztetni fogja a felhasználót, hogy a web-szerver tanúsítványát nem tudja ellen®rizni. Ekkor a felhasználók jelent®s része arra a gombrakattint, amelynek segítségével tovább léphet. . . 2Mivel a felhasználó legtöbbször gondolkodás nélkül kattint a minél gyorsabb továbblépésérdekében, az is el®fordulhat, hogy egy támadó hasonló weboldalt és tanúsítványokat állít el®mint a valódiak, majd az általa elkészített oldalra irányítva (vagy csalva) a klienseket ily módonértékes adatokhoz jut. Ha azonban a kliens rendelkezik a valódi CA tanúsítványával, akkorazonnal reklamálnia kell az alkalmazott szoftvernek, hogy nem egyezik a tanúsítvány, így atámadó nem jár sikerrel.

5.1. SSLEl®ször fel kell telepítenünk a szükséges csomagot:# apt-get install openssl

Ezután hozzunk létre egy könyvtárat, amely védett helyen van, tehát a felhasználók nemférhetnek hozzá, majd lépjünk bele, és ebben a könyvtárban végezzük a következ® feladatokat.# echo "01" > serial# touch index.txt

1Az egyes alkalmazások emiatti kon�gurációs igényeir®l az adott alkalmazásról szóló fejezetben esik szó.2Ugyanez igaz a levelezést kezel® szerverünkre, tehát a levelek eléréséhez használt alkalmazásnak is meg kelladnunk a CA-nk tanúsítványát.

37

Page 38: kosa_attila_halozat.pdf

38 Debian GNU/Linux5.1.1. CA létrehozása

Hozzunk létre egy CA.cnf nev¶ fájlt az alábbi tartalommal, amely a CA-nk alapértelmezettbeállításait fogja tartalmazni.[ ca ]default_ca = CA_akarmi[ CA_akarmi ]dir = ./certs = $dir/certscrl_dir = $dir/crlnew_certs_dir = $dirserial = $dir/serialdatabase = $dir/index.txtcertificate = $dir/CA.crtprivate_key = $dir/CA.keydefault_days = 365default_crl_days = 30default_md = md5preserve = nopolicy = policy_anything[ policy_anything ]countryName = optionalstateOrProvinceName = optionallocalityName = optionalorganizationName = optionalorganizationalUnitName = optionalcommonName = suppliedemailAddress = optional[ req ]default_bits = 1024encrypt_key = yesdistinguished_name = req_dnx509_extensions = cert_typeprompt = no[ cert_type ]nsCertType = server[ req_dn ]countryName = HUstateOrProvinceName = BAZlocalityName = MiskolcorganizationName = "Akarmi Kft"organizationalUnitName = CA_kiallitocommonName = akarmi.intraemailAddress = [email protected]

Ezután nézzük meg, hogy pontosan milyen parancsokat is kell kiadnunk ahhoz, hogy sajátCA-t hozzunk létre, amely 10 évig m¶ködik.# openssl req -set_serial 00 -passout "pass:CA_jelszo" -new -x509 -keyout CA.key -out CA.crt -days 3650 -config CA.cnfGenerating a 1024 bit RSA private key..++++++..............++++++writing new private key to 'CA.key'-----

És már készen is van a saját CA-nk, amelyet 2 fájl is bizonyít: a CA.crt és a CA.key.A CA.key fájlra nagyon kell vigyáznunk, mert ha valaki hozzájut (és valahogyan kitalálja azáltalunk adott jelszót, amely jelen esetben a CA_jelszo), akkor ugyanolyan tanúsítványokat(certi�cate-eket) tud létrehozni, mint mi magunk. Ne felejtsük el, hogy a CA.crt fájlt kell elér-het®vé tennünk a kliensek számára, hogy képesek legyenek ellen®rizni az aláírt tanúsítványokat.Ehhez az ellen®rzéshez be kell importálniuk ezt a fájlt a böngész®be, valamint � szükség esetén �a levelez®programba.Ellen®rizzük le, hogy mi is található benne:# openssl x509 -serial -issuer -subject -dates -fingerprint -noout -in CA.crtserial=00issuer= /C=HU/ST=BAZ/L=Miskolc/O=Akarmi Kft/OU=CA_kiallito/CN=akarmi.intra/[email protected]= /C=HU/ST=BAZ/L=Miskolc/O=Akarmi Kft/OU=CA_kiallito/CN=akarmi.intra/[email protected]=Mar 26 14:53:13 2007 GMTnotAfter=Mar 23 14:53:13 2017 GMTSHA1 Fingerprint=E1:83:66:97:0D:33:2A:B6:8E:32:F4:32:28:61:F2:BD:45:7A:0F:925.1.2. Tanúsítványok létrehozása

A tanúsítványokat nem szokás túlságosan hosszú id®re generálni, általában 1 évre szokták. Perszenem árt megjegyezni, hogy mikor fog lejárni, mert az azt használó alkalmazásoknál el®fordulhat,

Kósa Attila <[email protected]> 2007. december 22.

Page 39: kosa_attila_halozat.pdf

Debian GNU/Linux 39hogy nem fognak m¶ködni a tanúsítvány lejárta után. A tanúsítvány akkor is érvényét veszti,ha saját maga ugyan még érvényes lenne, ám az ®t aláíró CA lejár.Mivel évente újra kell majd generálnunk az összes tanúsítványunkat3, ezért érdemesnek t¶-nik valamiképp automatizálni a feladatot. Ennek érdekében minden tanúsítványhoz hozzunklétre saját .cnf fájlt (amely neve megegyezik a tanúsítványban szerepl® commonName-mel).Példaként nézzük meg a samba.akarmi.intra.cnf fájl tartalmát.[ req_dn ]countryName = HUstateOrProvinceName = BAZlocalityName = MiskolcorganizationName = "Akarmi Kft"organizationalUnitName = tanusitvany_generalocommonName = samba.akarmi.intraemailAddress = [email protected]

Nagyon fontos, hogy a commonName opciónál azt a nevet kell megadnunk, amely névenmeg fogják szólítani a szervert!# cat CA.cnf samba.akarmi.intra.cnf > atmeneti.cnf# openssl req -nodes -newkey rsa:1024 -config atmeneti.cnf -keyout samba.akarmi.intra.key.nopass -out samba.akarmi.intra.csrGenerating a 1024 bit RSA private key.............................++++++...............++++++writing new private key to 'samba.akarmi.intra.key.nopass'-----

Ennek hatására egy samba.akarmi.intra.csr és egy samba.akarmi.intra.key.nopassnev¶ fájllal lettünk gazdagabbak. Gyakorlatilag bármilyen neveket adhatunk ezeknek a fáj-loknak (miként a CA generálásakor is bármilyen neveket választhatunk a fájloknak), mégisérdemesebb �beszédes� neveket alkalmazni.5.1.3. Tanúsítványok aláírása# openssl ca -passin "pass:CA_jelszo" -config atmeneti.cnf -out samba.akarmi.intra.pem -infiles samba.akarmi.intra.csrUsing configuration from atmeneti.cnfCheck that the request matches the signatureSignature okThe Subject's Distinguished Name is as followscountryName :PRINTABLE:'HU'stateOrProvinceName :PRINTABLE:'BAZ'localityName :PRINTABLE:'Miskolc'organizationName :PRINTABLE:'Akarmi Kft'organizationalUnitName:T61STRING:'tanusitvany_generalo'commonName :PRINTABLE:'samba.akarmi.intra'emailAddress :IA5STRING:'[email protected]'Certificate is to be certified until Mar 25 15:22:26 2008 GMT (365 days)Sign the certificate? [y/n]:y1 out of 1 certificate requests certified, commit? [y/n]yWrite out database with 1 new entriesData Base Updated

Itt kétszer le kell nyomnunk az y billenty¶t válaszként a kérdésekre. Ha szkriptet írunk, akkoraz echo parancsra rá tudjuk bízni, hogy ezt végezze el helyettünk, és akkor nem kell �gyelemmelkísérnünk a számítógépet unalmas munkája elvégzésében.Ellen®rizzük le, hogy valóban sikerült-e aláírnunk a tanúsítványunkat:# openssl x509 -serial -issuer -subject -dates -fingerprint -noout -in samba.akarmi.intra.pemserial=01issuer= /C=HU/ST=BAZ/L=Miskolc/O=Akarmi Kft/OU=CA_kiallito/CN=akarmi.intra/[email protected]= /C=HU/ST=BAZ/L=Miskolc/O=Akarmi Kft/OU=tanusitvany_generalo/CN=samba.akarmi.intra/[email protected]=Mar 26 15:22:26 2007 GMTnotAfter=Mar 25 15:22:26 2008 GMTSHA1 Fingerprint=BF:81:A4:88:4B:B8:C0:64:C2:CA:3C:C5:2A:AF:3D:9E:6F:25:3C:D6Néhány apróságot még el kell végeznünk miel®tt használatba vennénk újonnan elkészítetttanúsítványunkat.# sed -e '/-----BEGIN CERT/,/-----END CERT/!d' < samba.akarmi.intra.pem > samba.akarmi.intra.crt# rm atmeneti.cnfIgazából csak a .crt és a .key.nopass nev¶ fájlokra lesz szükségünk, akár le is törölhetjük atöbbi állományt (a 01.pem, samba.akarmi.intra.csr és a samba.akarmi.intra.pem fájlokat).

3Ha valóban csak 1 éves érvényességgel hoztuk létre ®ket.

2007. december 22. Kósa Attila <[email protected]>

Page 40: kosa_attila_halozat.pdf

40 Debian GNU/Linux5.2. sshKét csomagra bontották az ssh-t, az openssh-server és az openssh-client csomagokra. Illetvelétrehoztak egy ssh nev¶ csomagot, amely mindkett®t felteszi egyszerre. Tehát az alábbi kétparancs egyenérték¶ (ebb®l kifolyólag csak az egyikre van szükségünk):# apt-get install openssh-server openssh-client# apt-get install ssh5.2.1. Kulcsok generálása

Alapjában véve helytelen jelszó nélküli kulcsokat használni. De el®fordulhat olyan feladat,amelynek a megoldásához szükségünk van ilyen kulcsokra. Azonban ilyenkor mindig gondol-junk arra, hogy a jelszó nélküli kulcs illetéktelen kezekbe történ® kerülése esetén a miénkkelmegegyez® jogkört biztosítunk a kulcsot megszerz®nek. Ezért mindig próbáljuk meg szerverol-dalon korlátozni a kulcs használatát. Ennek a részletes dokumentációját a man 8 sshd parancskiadása után az authorized_keys fájl formátumáról szóló fejezetben találhatjuk meg, de ezenanyag 5.2.5. fejezetében (a 42. oldalon) van szó az elérhet® opciókról.Tehát generáljunk magunknak kulcsot, és tegyük fel az összes szerverre. Az interaktív hasz-nálatra szánt kulcsunkat azonban mindenképpen jelszóval védjük (tehát az Enter passphrasekérdésre adjunk meg jelszót)! Az ssh-agent használatakor ezt a jelszót kell majd megadnunk(amellyel a kulcsunkat védtük).# ssh-keygen -b 1024 -f ~/.ssh/id_dsa -t dsa -C root@sajatGenerating public/private dsa key pair.Enter passphrase (empty for no passphrase):Enter same passphrase again:Your identification has been saved in /root/.ssh/id_dsa.Your public key has been saved in /root/.ssh/id_dsa.pub.The key fingerprint is:a5:8e:94:5b:c9:d1:63:0f:38:0a:22:3e:ce:d2:86:16 root@sajat

Az amdump használatához generáljunk a backup nev¶ gépen egy kulcsot, amelyet adjunk abackup nev¶ felhasználó �kezelésébe�:# mkdir /var/backups/.ssh# chmod 0750 /var/backups/.ssh# ssh-keygen -b 1024 -f /var/backups/.ssh/id_rsa_amdump -t rsa -C backup@backup_amdumpGenerating public/private dsa key pair.Enter passphrase (empty for no passphrase):Enter same passphrase again:Your identification has been saved in /var/backups/.ssh/id_rsa_amdumpYour public key has been saved in /var/backups/.ssh/id_rsa_amdump.pubThe key fingerprint is:bd:59:41:58:f6:4c:dc:3e:32:7f:f6:6f:33:e8:c2:ac backup@backup_amdump# chown -R backup:backup /var/backups/.sshNe felejtkezzünk el a kulcs korlátozásáról (42. oldal)!Hogy az amanda használni is tudja majd a kulcsot, egy known_hosts nev¶ fájlban el kelltárolnunk azoknak a gépeknek a kulcsát, amelyekre ssh-val be szeretne jutni a backup nev¶felhasználónk. Ennek a legegyszer¶bb módja az, ha ezen felhasználó ssh-val belép ezekre a gé-pekre, hiszen ekkor automatikusan eltárolódik ebben a fájlban a szerver kulcsa. Tehát mindösszeennyit kell tennünk:# su - backup$ ssh -i .ssh/id_rsa_amdump dns.akarmi.intraThe authenticity of host 'dns.akarmi.intra (192.168.10.253)' can't be established.RSA key fingerprint is 58:35:7c:d2:d5:ad:5e:21:ec:a8:9b:5f:68:e6:35:95.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added 'dns.akarmi.intra,192.168.10.253' (RSA) to the list of known hosts.

Ehhez azonban el®ször oda kell másolnunk a publikus kulcsot a megfelel® gépre, hiszen abackup felhasználónknak nincs jelszava, így csak kulcs segítségével tud belépni, jelszóval nem.Ugyanezt a két lépést meg kell tennünk az amrecover futtatása el®tt is!A mentett adatok visszaállításához is generáljunk kulcsot (ezt minden szerveren meg kelltennünk!):

Kósa Attila <[email protected]> 2007. december 22.

Page 41: kosa_attila_halozat.pdf

Debian GNU/Linux 41# ssh-keygen -b 1024 -f .ssh/id_rsa_amrecover -t rsa -C root@backup_amrecoverGenerating public/private rsa key pair.Enter passphrase (empty for no passphrase):Enter same passphrase again:Your identification has been saved in .ssh/id_rsa_amrecover.Your public key has been saved in .ssh/id_rsa_amrecover.pub.The key fingerprint is:00:37:df:7c:e4:7d:fd:5d:78:73:2d:89:a4:15:0e:6b root@backup_amrecover

Az így létrehozott kulcsot át kell másolnunk a backup nev¶ gépre, a backup felhasználóauthorized_keys fájljába, és természetesen ezt is nagyon ajánlott korlátozni.5.2.2. A kulcsok másolása

A legegyszer¶bb megoldás az ssh-copy-id parancs használata.# ssh-copy-id -i ~/.ssh/id_dsa.pub user@gepnevSajnos az ssh-copy-id nem tud a 22-es porttól eltér® portra kapcsolódni, tehát ha ett®leltér® porton futó ssh szerverre szeretnénk a kulcsunkat átmásolni, akkor más megoldást kellkeresnünk, például az alábbit:# cat ~/.ssh/id_dsa.pub | ssh -p 22222 gepnev "cat >> ~/.ssh/authorized_keys"Tekintve, hogy a backup nev¶ felhasználónak nincsen jelszava, ezért nem tudjuk használniaz ssh-copy-id parancsot, hiába a 22-es porton �gyel az ssh szolgáltatásunk. Ekkor is jól jön amásodikként bemutatott lehet®ség (csak ne a root authorized_keys fájljába tegyük a kulcsot,hanem a backup felhasználóéba).4

5.2.3. Az ssh szerver beállítása

Ha sikerült elhelyeznünk a kulcsunkat a szervereken, akkor állítsuk be úgy az ssh szervereket,hogy csak kulcs használatával lehessen rájuk belépni, jelszóval ne. A telepítés után így néz ki a/etc/ssh/sshd_config fájlunk (a kommenteket kihagytam):Port 22Protocol 2HostKey /etc/ssh/ssh_host_rsa_keyHostKey /etc/ssh/ssh_host_dsa_keyUsePrivilegeSeparation yesKeyRegenerationInterval 3600ServerKeyBits 768SyslogFacility AUTHLogLevel INFOLoginGraceTime 120PermitRootLogin yesStrictModes yesRSAAuthentication yesPubkeyAuthentication yesIgnoreRhosts yesRhostsRSAAuthentication noHostbasedAuthentication noPermitEmptyPasswords noChallengeResponseAuthentication noX11Forwarding yesX11DisplayOffset 10PrintMotd noPrintLastLog yesTCPKeepAlive yesAcceptEnv LANG LC_*Subsystem sftp /usr/lib/openssh/sftp-serverUsePAM yes

Ahhoz, hogy a jelszavas authentikáció ne legyen lehetséges (csak a kulcsos), ki kell egészíte-nünk a fentieket az alábbi sorral, majd újra kell indítanunk az ssh szolgáltatást:PasswordAuthentication no

# /etc/init.d/ssh restartAzt mindenkinek magának kell eldöntenie, hogy engedélyezi-e a root-ként való belépéstssh-n keresztül (PermitRootLogin opció). Ha nem akarunk olyan gra�kus alkalmazást futtatnia szerveren, amely a mi képerny®nkre rajzol, akkor célszer¶ az X11Forwarding opció no-raállítása is.

4Az amanda-val végzett mentés miatt szükséges.

2007. december 22. Kósa Attila <[email protected]>

Page 42: kosa_attila_halozat.pdf

42 Debian GNU/Linux5.2.4. Az ssh-agent használata

Az új X szerverek alapértelmezésben olyan kon�gurációval érkeznek, hogy az X-be belépéskorelindul az ssh-agent, és így képes felügyelni a felhasználó összes ssh kapcsolatát. Ezt a use-ssh-agent opcióval lehet bekapcsolni Xfree és Xorg alatt is (a /etc/X11/Xsession.optionsfájlban). Igy a belépés után egy tetsz®leges terminálablakban ki kell adnunk az ssh-add pa-rancsot, majd megadnunk az ssh kulcsainkhoz tartozó jelszavakat, és ezzel regisztráltuk is azssh-agent-nél a kulcsainkat. Ha nem id_rsa, id_dsa vagy identity néven tároljuk a kul-csainkat a .ssh könyvtárunkban, akkor meg kell adnunk a fájl(ok) nevét is ahhoz, hogy azssh-agent-nél be tudjuk jegyeztetni. Ha sikerül, akkor innent®l kezdve (amíg be nem fejezi afutását, vagy mi magunk nem utasítjuk a kulcsaink eldobására) az ssh-agent elintéz mindenssh kapcsolatunkkal kapcsolatos kérdést. Tehát ha olyan szerverre kívánunk belépni, amelyenmegtalálható az ssh kulcsunk publikus része és engedélyezték a kulcsos authentikációt, akkorsehol sem kell jelszót megadnunk, mert az ssh-agent ezt elintézi helyettünk.Természetesen nem csak X alatt van lehet®ségünk az ssh-agent használatára, hanem kon-zolon is.Az ssh-agent-tel kapcsolatban érdemes oda�gyelni az ssh -A parancssori kapcsolójára is,amely az ssh-agent kapcsolatát továbbítja a következ® szerverre. Ennek segítségével az sshkliensünk �viszi magával� az ssh-agent segítségét akárhány gépen keresztül anélkül, hogy atitkos kulcsunknak ott kellene lennie azokon a gépeken, amelyeken keresztülmentünk.5.2.5. Korlátozási lehet®ségek

Az authorized_keys fájlban lehet®ségünk nyílik korlátozni a kulcsok használatát. A követke-z®kben olvasható opciókat a publikus kulcs elé kell beírni. Több opció is használható egyszerre,ekkor vessz®vel kell elválasztani ®ket egymástól.from="lista" Ezzel azt lehet korlátozni, hogy mely gépekr®l léphet be a kulcs használója.Szóközökkel elválasztva több gépet is meg lehet adni, illetve lehet használni a * és ?helyettesít®ket is. Lehet®ség van a megadás negálására is a ! karakterrel.command="parancs" Ezzel azt lehet korlátozni, hogy milyen parancsot lehet futtatni a kulcssegítségével.environment="NÉV=érték" Környezeti változókat lehet engedélyezni a segítségével. Ez azopció automatikusan kikapcsolásra kerül, ha a /etc/ssh/sshd_config fájlban a UseLoginopció engedélyezve van.no-port-forwarding Letiltja a portok továbbításának lehet®ségét.no-X11-forwarding Letiltja az X11 továbbításának a lehet®ségét.no-agent-forwarding Letiltja az ssh-agent továbbításának lehet®ségét.no-pty Nem engedélyez terminált a kulcs használójának.permitopen="gép:port" Korlátozza a portok továbbításának lehet®ségét a megadott gép ésport párosra.

Egy konkrét példaként nézzük meg az amanda-val végzett mentéshez használt kulcs korláto-zását. Tehát így nézzen ki a dns nev¶ gépen a backup felhasználó authorized_keys fájlja (csakaz oldal szélessége miatt van tördelve):from="backup.akarmi.intra",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,command="/usr/lib/amanda/amandad -auth=ssh amdump" ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEApndHiSGSowMeNDZvShUazfPk8964yLvfu//goCid5NVHZIuL0OQGdo4mS+BKsS9R5jkHZcy2hPJZLLrx+Tvl7r2G0P2rarXLkwvh+v5/gE9ZX/Az1CL0ZADDw7z9fULA9XAopd8XparKi0ASPWDhLxRXa1iw6LlUgibiUdV2ex0= backup@backup_amdump

Kósa Attila <[email protected]> 2007. december 22.

Page 43: kosa_attila_halozat.pdf

Debian GNU/Linux 43Az adatok visszaállításához használt kulcsot is nagyon ajánlott korlátozni. Tehát így nézzenki a backup nev¶ gépen a backup felhasználó authorized_keys fájlja (csak az oldal szélességemiatt van tördelve):

from="dns.akarmi.intra",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,command="/usr/lib/amanda/amandad -auth=ssh amindexd amidxtaped" ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEA0ttfgVtHJpUsihlFPLubUqmyxSOMnGDNQuBktdWUMypJgUldR1AgHVV4dTy954dJlYqy1yUmNSHgdE9DdSKiJrWnYpr4CQ622Vy+9mcewBGRH42ZjsdkibGuej7lf3qoCsgY6Od2cm6h6NhX+VA/+gX7iaqQxqvyFMe9hxwIoRM= root@backup_amrecover

2007. december 22. Kósa Attila <[email protected]>

Page 44: kosa_attila_halozat.pdf

44 Debian GNU/Linux

Kósa Attila <[email protected]> 2007. december 22.

Page 45: kosa_attila_halozat.pdf

6. fejezet

LDAP

Ezen szolgáltatás használatának az a célja, hogy a felhasználóknak csak egyetlen jelszót kelljenmegjegyeznie, bármely szolgáltatást szeretnék is igénybe venni a bels® hálózatunkon.6.1. OpenLDAP6.1.1. A f® kiszolgáló telepítése és kon�gurálása

A samba.akarmi.intra nev¶ gépre telepítjük az LDAP szervert, hogy a samba tartományvezér-l®vel egy gépen legyen. A samba fejleszt®i azt javasolják, hogy a f® LDAP szerveren legyen atartományvezérl® (bár m¶köd®képes akkor is, ha csak egy LDAP replika áll a rendelkezésére).Sokat kommunikál egymással a samba és az LDAP, és ha külön gépen helyezkednek el, akkor ezkihathat a (fájl)kiszolgálás sebességére.# apt-get install slapd

Válaszoljunk a kérdésekre:Admin password: ldap_admin_jelszoConfirm password: ldap_admin_jelszoSetting up slapd (2.3.30-5) ...Creating new user openldap... done.Creating initial slapd configuration... done.Creating initial LDAP directory... done.Starting OpenLDAP: slapd.A telepítés végén elinduló slapd-t állítsuk le amíg be nem kon�guráljuk:# /etc/init.d/slapd stopÉrdemes lefuttatni a következ® parancsot, mert így még több dolgot beállíthatunk a kon�-gurációs állomány kézi szerkesztése nélkül, és így a debconf is megjegyzi válaszainkat, aminekegy frissítés esetén vehetjük hasznát.# dpkg-reconfigure -plow slapdOmit OpenLDAP server configuration? NoDNS domain name: akarmi.intraName of your organization: akarmi.intraAdmin password: ldap_admin_jelszoConfirm password: ldap_admin_jelszoDatabase backend to use: BDBDo you want your database to be removed when slapd is purged? YesMove old database? YesAllow LDAPv2 protocol? NoAz újrakon�gurálás végén elinduló slapd-t állítsuk le amíg teljesen be nem kon�guráljuk:# /etc/init.d/slapd stopHa a Move old database? kérdésre Yes volt a válaszunk, akkor a /var/backups könyvtár-ban létrejött egy új könyvtár, amelyre � tekintettel arra, hogy az adatbázisunk még teljesenüres volt � nincs szükségünk, tehát nyugodtan törölhetjük.

45

Page 46: kosa_attila_halozat.pdf

46 Debian GNU/Linux# rm -rf /var/backups/unknown-2.3.30-5.*

Telepítsük fel a tanúsítványok kezeléséhez szükséges csomagot.# apt-get install openssl

Az 5.1.1 és az 5.1.2 fejezetekben generált fájlokat másoljuk be a megfelel® helyekre, ésállítsuk be a jogosultságaikat:# cp CA.crt /etc/ssl/certs/# cp samba.akarmi.intra.crt /etc/ssl/certs/# cp samba.akarmi.intra.key.nopass /etc/ssl/private/# chgrp openldap /etc/ssl/private# chgrp openldap /etc/ssl/private/samba.akarmi.intra.key.nopass# chmod 0710 /etc/ssl/private/# chmod 0644 /etc/ssl/certs/*.crt# chmod 0640 /etc/ssl/private/samba.akarmi.intra.key.nopass

A /etc/default/slapd fájlt egészítsük ki a következ® sorral (már szerepel hasonló sor afájlban, de ki van kommentezve, a kikommentezett sor alá írjuk az alábbit):SLAPD_SERVICES="ldap://127.0.0.1:389/ ldaps:///"

Ezzel beállítottuk, hogy a lokális interfészen titkosítás nélkül lehessen elérni az LDAP szer-verünket, illetve az összes többi interfészünkön pedig csak titkosított módon.A /etc/ldap/ldap.conf fájlba írjuk bele a következ®ket:HOST 127.0.0.1BASE dc=akarmi,dc=intraTLS_CACERT /etc/ssl/certs/CA.crtTLS_CACERTDIR /etc/ssl/certs/TLS_REQCERT allow

A samba.schema fájl megszerzésének egyszer¶ módja, ha telepítjük a samba-doc csomagot.# apt-get install samba-doc# gzip -dc /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz > /etc/ldap/schema/samba.schema# chmod 0644 /etc/ldap/schema/samba.schema

A mail-alias.schema nev¶ fájlt egy másik fájlból alakítottam ki magamnak1 (és elmen-tettem a /etc/ldap/schema/ könyvtárba), és mindössze az alábbiakat tartalmazza:attributetype ( 1.1.2.1.1.2 NAME ( 'alias' )DESC 'email alias'EQUALITY caseIgnoreMatchSUBSTR caseIgnoreSubstringsMatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )objectclass ( 1.1.2.2.1.1 NAME 'MailAlias' SUP top AUXILIARYDESC 'Objectclass for Mail Alias'MAY ( alias $ uid ))

Egészítsük ki a /etc/ldap/slapd.conf fájlunkat, hogy az alábbi módon nézzen ki (a rep-likára vonatkozó részt értelemszer¶en hagyjuk ki, ha nincs rá szükségünk):include /etc/ldap/schema/core.schemainclude /etc/ldap/schema/cosine.schemainclude /etc/ldap/schema/nis.schemainclude /etc/ldap/schema/inetorgperson.schemainclude /etc/ldap/schema/samba.schemainclude /etc/ldap/schema/mail-alias.schemapidfile /var/run/slapd/slapd.pidargsfile /var/run/slapd/slapd.argsloglevel 0modulepath /usr/lib/ldapmoduleload back_bdbsizelimit 500tool-threads 1TLSCipherSuite :SSLv3TLSCertificateFile /etc/ssl/certs/samba.akarmi.intra.crtTLSCertificateKeyFile /etc/ssl/private/samba.akarmi.intra.key.nopassTLSCACertificateFile /etc/ssl/certs/CA.crt

1Ez nem szép, bár m¶köd® megoldás. Csak akkor használjuk, ha biztosak vagyunk benne, hogy nem kellmás LDAP szerverekkel együttm¶ködnünk a kés®bbiekben. Ha erre szükségünk van, akkor igényeljünk (a http://www.iana.org/ oldalon) magunknak OID-ket, és készítsünk saját schema fájlt vagy használjunk egy mármeglév®t.

Kósa Attila <[email protected]> 2007. december 22.

Page 47: kosa_attila_halozat.pdf

Debian GNU/Linux 47backend bdbcheckpoint 512 30database bdbsuffix "dc=akarmi,dc=intra"directory "/var/lib/ldap"dbconfig set_cachesize 0 2097152 0dbconfig set_lk_max_objects 1500dbconfig set_lk_max_locks 1500dbconfig set_lk_max_lockers 1500index objectClass eqindex cn pres,sub,eqindex sn pres,sub,eqindex uid pres,sub,eqindex displayName pres,sub,eqindex uidNumber eqindex gidNumber eqindex memberUid eqindex sambaSID eqindex sambaPrimaryGroupSID eqindex sambaDomainName eqindex givenname eq,subindex default sublastmod onreplogfile /var/lib/slapd/replogaccess to attrs=userPassword,sambaNTPassword,sambaLMPassword,sambaPwdLastSet,sambaPwdCanChangeby dn="cn=admin,dc=akarmi,dc=intra" writeby dn="cn=replicator,dc=akarmi,dc=intra" writeby anonymous authby self writeby * noneaccess to dn.base="" by * readaccess to *by dn="cn=admin,dc=akarmi,dc=intra" writeby dn="cn=replicator,dc=akarmi,dc=intra" writeby self writeby * readreplica uri=ldaps://mail.akarmi.intra:636/binddn="cn=replicator,dc=akarmi,dc=intra"bindmethod=simple credentials=ldap_replicator_jelszo

Miel®tt elindítanánk az LDAP szerverünket, generáljuk le az index állományokat, és nefelejtsük el hozzáférhet®vé tenni a slapd-t futtató felhasználónak és csoportnak:# slapindex -f /etc/ldap/slapd.confWARNING!Runnig as root!There's a fair chance slapd will fail to start.Check file permissions!# chown openldap:openldap /var/lib/ldap/cn.bdb# chmod 0600 /var/lib/ldap/cn.bdbMost már el kell tudnunk indítani az LDAP szerverünket:# /etc/init.d/slapd startTelepítsük fel az adatbázisunk parancssori módosításához szükséges eszközöket:# apt-get install ldap-utilsEkkor már le tudjuk kérdezni a futó szerverünket, és az alábbi választ kell kapnunk:# ldapsearch -h localhost -x# extended LDIF## LDAPv3# base <> with scope subtree# filter: (objectclass=*)# requesting: ALL## akarmi.intradn: dc=akarmi,dc=intraobjectClass: topobjectClass: dcObjectobjectClass: organizationo: akarmi.intradc: akarmi# admin, akarmi.intradn: cn=admin,dc=akarmi,dc=intraobjectClass: simpleSecurityObjectobjectClass: organizationalRolecn: admindescription: LDAP administrator# search resultsearch: 2result: 0 Success# numResponses: 3# numEntries: 2

2007. december 22. Kósa Attila <[email protected]>

Page 48: kosa_attila_halozat.pdf

48 Debian GNU/LinuxA replicator2 felhasználóra akkor van szükségünk, ha egy (vagy több) slave LDAP szer-vert is üzemeltetni szeretnénk. A következ® dolgunk ennek a felhasználónak a hozzáadásaaz adatbázishoz, hogy utána már a replikálás m¶köd®képes legyen. Tehát hozzunk létre egyreplicator.ldif nev¶ fájl2 az alábbi tartalommal:

dn: cn=replicator,dc=akarmi,dc=intracn: replicatorobjectClass: topobjectClass: organizationalRoleobjectClass: simpleSecurityObjectuserPassword: {SSHA}JXkMpPzYB5N4W8ZhH9FpCuodrzcD2WGvdescription: LDAP replicatorA userPassword mez® tartalmát a következ® paranccsal tudjuk meg:

# slappasswd -h {SSHA}New password:Re-enter new password:{SSHA}JXkMpPzYB5N4W8ZhH9FpCuodrzcD2WGvA New password: kérdésre adjuk meg a /etc/ldap/slapd.conf állományban megadottjelszót (47. oldal), a Re-enter new password kérésre pedig ismételjük meg.Már csak hozzá kell adnunk az adatbázishoz. Ezt a következ® paranccsal tudjuk megtenni:

# ldapmodify -a -x -D 'cn=admin,dc=akarmi,dc=intra' -W -f replicator.ldifEnter LDAP Password:adding new entry "cn=replicator,dc=akarmi,dc=intra"Jelszóként a 45. oldalon, az Admin password: kérdésre adott jelszót kell megadnunk.

6.1.2. Replika beállítása

A mail szerverenA példaként bemutatott hálózatunkban a mail.akarmi.intra nev¶ szerverre fogjuk telepíteni azLDAP replikát, mert a levelek kézbesítéséhez és eléréséhez is szükségük lesz a szoftvereknek azLDAP-pal történ® kommunikációra.Gyakorlatilag ugyanúgy kell kezdenünk, mint a f® szerver telepítésekor. Felrakjuk a szükségescsomagokat, majd leállítjuk a szervert a kon�gurálás idejére. Hogy gyorsabban haladjunk, egy-szer¶en átmásoljuk a f® szerverr®l a kon�gurációs állományokat, majd átszerkesztjük a szükségesopciókat. Így kihagyhatjuk a dpkg-reconfigure lépést is. Nyugodtan letörölhetjük a telepít®által létrehozott adatbázist is, hiszen úgyis ide kell másolnunk a f® szerveren létrehozott adat-bázisunkat. Ezen másolás idejére a f® szervert ne felejtsük el leállítani! Az 5.1.2. fejezetbenleírtaknak megfelel®en generáljunk tanúsítványt ezen szerver részére is.# apt-get install slapd ldap-utils openssl rsync# /etc/init.d/slapd stop# rm -f /var/lib/ldap/*# rsync -av -e ssh samba:/etc/ldap/ /etc/ldap/# scp samba:/etc/default/slapd /etc/default/# cp CA.crt /etc/ssl/certs/# cp mail.akarmi.intra.crt /etc/ssl/certs/# cp mail.akarmi.intra.key.nopass /etc/ssl/private/# chgrp openldap /etc/ssl/private# chgrp openldap /etc/ssl/private/mail.akarmi.intra.key.nopass# chmod 0710 /etc/ssl/private# chmod 0644 /etc/ssl/certs/*.crt# chmod 0640 /etc/ssl/private/mail.akarmi.intra.key.nopass# rsync -av -e ssh samba:/var/lib/ldap/ /var/lib/ldap/

Lássuk, melyik állományon mit is kell változtatnunk. A /etc/ldap/slapd.conf fájlt némi-képp át kell írnunk, hogy az alábbi módon nézzen ki.include /etc/ldap/schema/core.schemainclude /etc/ldap/schema/cosine.schemainclude /etc/ldap/schema/nis.schemainclude /etc/ldap/schema/inetorgperson.schemainclude /etc/ldap/schema/samba.schemainclude /etc/ldap/schema/mail-alias.schemapidfile /var/run/slapd/slapd.pidargsfile /var/run/slapd/slapd.args

2A nevet önkényesen választottam.

Kósa Attila <[email protected]> 2007. december 22.

Page 49: kosa_attila_halozat.pdf

Debian GNU/Linux 49loglevel 0modulepath /usr/lib/ldapmoduleload back_bdbsizelimit 500tool-threads 1TLSCipherSuite :SSLv3TLSCertificateFile /etc/ssl/certs/samba.akarmi.intra.crtTLSCertificateKeyFile /etc/ssl/private/samba.akarmi.intra.key.nopassTLSCACertificateFile /etc/ssl/certs/CA.crtbackend bdbcheckpoint 512 30database bdbsuffix "dc=akarmi,dc=intra"directory "/var/lib/ldap"dbconfig set_cachesize 0 2097152 0dbconfig set_lk_max_objects 1500dbconfig set_lk_max_locks 1500dbconfig set_lk_max_lockers 1500index objectClass eqindex cn pres,sub,eqindex sn pres,sub,eqindex uid pres,sub,eqindex displayName pres,sub,eqindex uidNumber eqindex gidNumber eqindex memberUid eqindex sambaSID eqindex sambaPrimaryGroupSID eqindex sambaDomainName eqindex givenname eq,subindex default sublastmod onreplogfile /var/lib/slapd/replogaccess to attrs=userPassword,sambaNTPassword,sambaLMPassword,sambaPwdLastSet,sambaPwdCanChangeby dn="cn=admin,dc=akarmi,dc=intra" writeby dn="cn=replicator,dc=akarmi,dc=intra" writeby anonymous authby self writeby * noneaccess to dn.base="" by * readaccess to *by dn="cn=admin,dc=akarmi,dc=intra" writeby dn="cn=replicator,dc=akarmi,dc=intra" writeby self writeby * readupdatedn "cn=replicator,dc=akarmi,dc=intra"updateref "ldaps://samba.akarmi.intra"

Ha ezek után mindkét gépen lefuttatjuk a# /etc/init.d/slapd startparancsot (el®ször a f® szerveren futtassuk), akkor látni fogjuk, hogy a f® szerveren nem csak aslapd, hanem a slurpd is elindult. Ugyanis ez felel®s a replikálásért.Ha most a mail nev¶ gépen is kiadjuk az el®z®leg leírt ldapsearch parancsot, akkor ugyanaztkell látnunk, mint amikor a f® szerveren adjuk ki.6.1.3. Az adatbázis feltöltése

Kezdjük el feltölteni az adatbázisunkat. Ehhez .ldif fájlokat fogunk írni, amelyeket egyesévelfogunk betölteni. Természetesen lehetséges egyetlen menetben is elvégezni a feltöltést, egyetlen.ldif fájlt használva, de most az átláthatóság kedvéért csináljuk egyesével. Nem fogom mindenbetöltéshez leírni a szükséges parancsot, a Groups rész betöltésénél bemutatott parancsot (ésjelszót) kell mindig használni, csak a betöltend® fájl nevét kell változtatni értelemszer¶en.El®ször a csoportok tárolására szolgáló ágat hozzuk létre (a groups.ldif nev¶ fájlba).dn: ou=Groups,dc=akarmi,dc=intraobjectClass: topobjectClass: organizationalUnitou: Groups

És maga a betöltés:ldapmodify -a -x -D 'cn=admin,dc=akarmi,dc=intra' -W -f groups.ldifEnter LDAP Password:adding new entry "ou=Groups,dc=akarmi,dc=intra"A windowsos tartományvezérl® miatt van erre szükség, itt fognak tárolódni a tartománybabelépett számítógépek (a computers.ldif nev¶ fájlba).

2007. december 22. Kósa Attila <[email protected]>

Page 50: kosa_attila_halozat.pdf

50 Debian GNU/Linux

dn: ou=Computers,dc=akarmi,dc=intraobjectClass: topobjectClass: organizationalUnitou: ComputersA felhasználók tárolására szolgáló ágat hozzuk létre (a users.ldif nev¶ fájlba).

dn: ou=Users,dc=akarmi,dc=intraobjectClass: topobjectClass: organizationalUnitou: UsersMivel sambát szeretnénk használni, kénytelenek vagyunk átnyúlni a samba telepítéséhez, ésonnan kiszedni bizonyos információkat, illetve �gyelembe venni a sambával kapcsolatos dolgokat.Ugyanis ezeket az információkat is szerepeltetni kell az adatbázisban. Az 57. oldalon láthatóaka lekérdezéshez szükséges parancsok és az általuk visszaadott eredmények.Hogy ketté tudjuk választani az LDAP-ban és az esetlegesen a passwd fájlban lév® felhasz-nálókat, hozzunk létre egy csoportot (az ldapusers.ldif fájlba).

dn: cn=ldapusers,ou=Groups,dc=akarmi,dc=intraobjectClass: topobjectClass: posixGroupcn: ldapusersgidNumber: 20000description: Domain Users groupA tartományi rendszergazdáknak hozzunk létre külön csoportot (a ntadmins.ldif fájlba).

dn: cn=ntadmins,ou=Groups,dc=akarmi,dc=intraobjectClass: topobjectClass: posixGroupcn: ntadminsgidNumber: 20001description: Domain Admins groupA tartományi vendég usereknek hozzunk létre külön csoportot (az ldapguests.ldif fájlba).

dn: cn=ldapguests,ou=Groups,dc=akarmi,dc=intraobjectClass: topobjectClass: posixGroupcn: ldapguestsgidNumber: 20002description: Domain Guests groupEbbe a csoportba fognak tartozni a tartományba belép® gépek (az ldapmachine.ldiffájlba).

dn: cn=ldapmachine,ou=Computers,dc=akarmi,dc=intraobjectClass: topobjectClass: posixGroupcn: ldapmachinegidNumber: 20003description: Domain Computers groupIgaz, hogy van nobody felhasználónk, de a samba nem tud róla (mivel az LDAP-ban nincs,és a samba csak az LDAP-val kommunikál). Ezért létre kell hoznunk egy nobody felhasználót azLDAP adatbázisában is, de unixos dolgokat (mint például home könyvtár, shell) nem kell nekibeállítanunk, az alábbiak elegend®ek (a nobody_user.ldif fájlba).

dn: uid=nobody,ou=Users,dc=akarmi,dc=intraobjectClass: inetOrgPersonobjectClass: sambaSamAccountuid: nobodycn: nobodysn: nobodysambaLogonTime: 0sambaLogoffTime: 0sambaKickoffTime: 0sambaPwdCanChange: 0sambaPwdMustChange: 0sambaPwdLastSet: 0sambaBadPasswordCount: 0sambaAcctFlags: [UX ]sambaSID: S-1-5-21-3140357665-410036179-3970665752-501sambaPrimaryGroupSID: S-1-5-21-3140357665-410036179-3970665752-514sambaLMPassword: NO PASSWORDXXXXXXXXXXXXXXXXXXXXXsambaNTPassword: NO PASSWORDXXXXXXXXXXXXXXXXXXXXX

Kósa Attila <[email protected]> 2007. december 22.

Page 51: kosa_attila_halozat.pdf

Debian GNU/Linux 51És most adjuk hozzá az els® felhasználónkat (de el®tte mindenképpen állítsuk be a tarto-mányvezérl®n a tartományra vonatkozó alapbeállításokat � lásd az 59. oldalt). Ezek az adatokkerüljenek az atkosa_user.ldif nev¶ fájlba.

dn: uid=atkosa,ou=Users,dc=akarmi,dc=intraobjectClass: topobjectClass: shadowAccountobjectClass: posixAccountobjectClass: personobjectClass: inetOrgPersonobjectClass: sambaSamAccountobjectClass: MailAliasuid: atkosadescription: Kosa Attilacn: Kosa Attilasn: KosagivenName: Attilamail: atkosaalias: kosa.attilaalias: attila.kosauidNumber: 20000gidNumber: 20000homeDirectory: /home/atkosaloginShell: /bin/bashshadowMin: 0shadowMax: 9999shadowWarning: 7shadowExpire: 0shadowLastChange: 13598sambaLogonTime: 0sambaLogoffTime: 0sambaKickoffTime: 0sambaPwdCanChange: 0sambaPwdMustChange: 0sambaPwdLastSet: 0sambaBadPasswordCount: 0sambaLogonHours: -1displayName: Kosa AttilasambaPasswordHistory: 0000000000000000000000000000000000000000000000000000000000000000sambaAcctFlags: [U ]sambaSID: S-1-5-21-3140357665-410036179-3970665752-41000sambaPrimaryGroupSID: S-1-5-21-3140357665-410036179-3970665752-41001sambaLMPassword: 0sambaNTPassword: 0userPassword: {SMD5}0A használt attribútumok magyarázata:• dn � Annak leírása, hogy a �fában� hová kerül a bejegyzés.• objectClass � Az alkalmazni kívánt osztályok.• uid � A felhasználói név, amely a belépésre (a szolgáltatások igénybevételére) használható.• description � Egy egyszer¶ leírás mez®.• cn � A felhasználó teljes neve.• sn � A felhasználó vezetékneve.• givenName � A felhasználó keresztneve.• mail � A felhasználó els®dleges e-mail címe. Azért nem szerepel benne a @domain.név,hogy bármilyen domainnek szóló levelet fogad is el a levelez®szerver, abban a domain-benérvényes név lesz. Ez gondot okozhat, ha virtuális domain-eket is kell kezelnünk, ekkorajánlott a teljes (domainnévvel kiírt) e-mail cím használata.• alias � A felhasználó összes olyan neve, amelyre leveleket szeretne kapni. Ugyanazért nemtartalmazza a domain részt, mint a mail változó.• uidNumber � A felhasználó azonosítási száma.• gidNumber � A felhasználó csoportazonosító száma.

2007. december 22. Kósa Attila <[email protected]>

Page 52: kosa_attila_halozat.pdf

52 Debian GNU/Linux• homeDirectory � A felhasználó home könyvtára. Ne felejtkezzünk el arról, hogy a felhasz-náló létrehozásakor nem jön létre automatikusan a home könyvtára! Valahogyan létre kellhoznunk az összes gépen, amelyeken home könyvtárra van szüksége. Ebb®l a szempontbólegyedül a levelez®szerver a kritikus. A többi gépen elégséges, ha a pam_mkhomedir beál-lításával akkor jön létre a home könyvtár, ha a felhasználó belép. De levelek érkezhetnekszámára azel®tt is, miel®tt belépne a levelez®szerverre. A postfix képes a levelek táro-lásához szükséges Maildir könyvtár létrehozására a felhasználó home könyvtárában, dea biztonság kedvéért beletehetjük a /etc/skel könyvtárba is a Maildir könyvtárat (alevelez®szerveren).# mkdir /etc/skel/Maildir && chmod 0700 /etc/skel/MaildirTermészetesen az is megoldást jelenthet, ha azokra a szerverekre, amelyeken fontos, hogya felhasználónak létrejöjjön a home könyvtára, mi magunk ssh-zunk be a felhasználónevében (hiszen ismerjük a kezdeti jelszavát), így a pam_mkhomedir létrehozza a megfelel®jogosultságokkal és tartalommal (a /etc/skel könyvtár megfelel® �feltöltése� esetén) afelhasználó home könyvtárát. Ehhez persze az kell, hogy minden szükséges gépen az sshúgy legyen beállítva, hogy az LDAP-t használja a felhasználók azonosítására.

• loginShell � A felhasználó shell-je. Nem kell, hogy feltétlenül valódi shell-je legyen a fel-használónak, a /bin/false is megteszi. A használni kívánt szolgáltatások függvénye (ésa saját döntésünk), hogy adunk-e a felhasználónak shell-t vagy sem.• shadowMin � Két jelszóváltoztatás között minimum ennyi napnak kell eltelnie. A unixosjelszóra vonatkozik, a sambás jelszóra nincs hatással.• shadowMax � Két jelszóváltoztatás között maximum ennyi nap telhet el.Tekintve, hogy az utolsó jelszócserét®l (shadowLastChange változó) a megengedett leg-hosszabb ideig (shadowMax változó) érvényes a unixos jelszó, ezért ezek értékét úgy kellmegválasztani, hogy az aktuálisan számolt id®érték (az 1970. január 01-t®l eltelt napokszáma) kisebb vagy egyenl® legyen, mint a fent említett két változó összege. Egyszer¶ena következ® parancs segítségével számolható ki ez az összeg:# echo $[`date +%s` / (60*60*24)]Ha az így kapott összegnél nagyobb az eltelt napok száma, akkor a felhasználó nem tudjahasználni a unixos jelszavát, mert lejártnak tekinti a rendszer. Sajnos ebben az esetbenaz smbpasswd parancs sem segít (mert az nem változtatja a shadowLastChange mez®tartalmát, csak a userPassword mez®ét � magyarul a unixos jelszavát), egyedül a roottudja a passwd parancs segítségével megváltoztatni a felhasználó jelszavát.Másképpen mondva: ha a shadowLastChange változó értékét a létrehozásakor beállítjuka fenti parancs által megadott számra, a shadowMax változóban megadott napig leszérvényes a unixos jelszava. Persze ha a felhasználónak lehet®sége van rá, akkor saját magais megváltoztathatja a passwd parancs segítségével a jelszavát3, de ehhez el®ször be kelltudnia jelentkezni.

• shadowWarning � Ennyi nappal a jelszó lejárata el®tt �gyelmezteti a rendszer a felhasz-nálót.• shadowExpire � Ha nem 0, akkor maximum addig érvényes a jelszó (1970-01-01-t®l szá-molva napokban értend®).• shadowLastChange � Az utolsó jelszóváltoztatás id®pontja (1970-01-01-t®l számolva na-pokban értend®). Értékének mindenképpen nagyobbnak kell lennie nullánál.

3De így nem változik a sambaLMPassword és a sambaNTPassword mez®k értéke (magyarul a windowsosjelszava).

Kósa Attila <[email protected]> 2007. december 22.

Page 53: kosa_attila_halozat.pdf

Debian GNU/Linux 53• sambaLogonTime � Jelenleg nem használt mez®.• sambaLogo�Time � Jelenleg nem használt mez®.• sambaKicko�Time � Azt az id®t határozhatjuk meg (Unix id® formátumban), amikor afelhasználó zárolva van és nem tud belépni. Ha ezt az attribútumot elhagyjuk, akkor afelhasználó account-ja soha nem jár le. Ha együtt használjuk ezt a shadowAccount osz-tály shadowExpire attribútumával, akkor teljesen pontos dátummal határozhatjuk meg azaccount lejáratát.• sambaPwdCanChange � Azt az id®t határozhatjuk meg (Unix id® formátumban), amikora felhasználó megváltoztathatja a jelszavát. Ha ez az attribútum nincs beállítva, akkor afelhasználó bármikor megváltoztathatja a jelszavát.• sambaPwdMustChange � Azt az id®t határozhatjuk meg (Unix id® formátumban), amikora felhasználónak kötelez® megváltoztatnia a jelszavát. Ha ez az érték 0, akkor a felhasz-nálónak az els® belépéskor meg kell változtatnia a jelszavát. Ha az attribútumot nemhasználjuk, akkor a felhasználó jelszava soha nem jár majd le.• sambaPwdLastSet � Az 1970. 01. 01-t®l eltelt id®t tartalmazza másodpercekben, amikora sambaLMPassword és a sambaNTPassword attribútumok utoljára változtak.• sambaBadPasswordCount � A hibás bejelentkezéseket számolja ebben a mez®ben a samba.Az 59. oldalon látható bad lockout attempt beállításával lehet meghatározni, hogy hányhibás bejelentkezés után zárolódjon az account.• sambaLogonHours � Ezzel szabályozhatjuk, hogy a felhasználó mely napokon, és met-t®l meddig terjed® id®szakban léphet be a tartományba. A bitek jelentésér®l részletesleírás található a http://pdbsql.sourceforge.net/field-descriptions-passdb.txtfájlban.• displayName � Windows XP kliens esetén az itt megadott név fog látszani a Start menütetején.• sambaPasswordHistory � A felhasználó által korábban használt jelszavak MD4 hash-éttartalmazza.• sambaAcctFlags � Az account jellemz®it tartalmazó mez®. A lehetséges tartalmát a 7.3. fe-jezetben (a 62. oldalon) láthatjuk. Egyszerre több jelz®t is lehet használni.• sambaSID � A felhasználó azonosítási száma windowsos oldalon. A 60. oldalon láthatómódon lehet kiszámolni az értékét.• sambaPrimaryGroupSID � A felhasználó els®dleges csoportjának Windows oldali azono-sítási száma. A 60. oldalon látható módon lehet kiszámolni az értékét.• sambaLMPassword � A felhasználó LANMAN windowsos jelszava 16 byte-on tárolva.• sambaNTPassword � A felhasználó NT windowsos jelszava 16 byte-on tárolva.• userPassword � A felhasználó unixos jelszava.Mivel nem írtunk jelszót a felhasználónak, ezért interaktívan kell jelszóval ellátnunk. Ez (asamba ldap passwd sync = yes opciójának köszönhet®en) megváltoztatja a unixos és a windowsosjelszavát is a felhasználónak.

# smbpasswd atkosa

2007. december 22. Kósa Attila <[email protected]>

Page 54: kosa_attila_halozat.pdf

54 Debian GNU/LinuxHa úgy szeretnénk generálni a .ldif fájlt, hogy már a jelszó eleve belekerüljön, akkor szük-ségünk lesz az mkntpwd programra (a 62. oldalon látható a beszerzése és a fordítása), illetvea 48. oldalon látható slappasswd parancsot kell használnunk. Ebben az esetben viszont �gyel-nünk kell rá, hogy mindkét jelszónak azonosat generáljunk, hogy a felhasználónak ne legyenekproblémái4.Adjuk hozzá az új felhasználónkat az ldapusers csoporthoz. Ezt az alábbi .ldif fájl segít-ségével tehetjük meg.

dn: cn=ldapusers,ou=Groups,dc=akarmi,dc=intrachangetype: modifyadd: memberUidmemberUid: atkosaAdjuk hozzá az új felhasználónkat az ntadmins csoporthoz, hogy adminisztrátori jogokatbiztosítsunk számára a windowsos gépeken. Ezt az alábbi .ldif fájl segítségével tehetjük meg.

dn: cn=ntadmins,ou=Groups,dc=akarmi,dc=intrachangetype: modifyadd: memberUidmemberUid: atkosa

6.1.4. A rendszer kon�gurálása a samba (master) szerveren

Telepítenünk kell azokat a csomagokat, amelyek segítségével a rendszerünk látni fogja az adat-bázisban lév® felhasználókat és csoportokat.# apt-get install libpam-ldap libnss-ldap

Válaszok a kérdésekre.LDAP server Uniform Resource Identifier: ldap://127.0.0.1:389/Distinguished name of the search base: dc=akarmi,dc=intraLDAP version to use: 3LDAP account for root: cn=admin,dc=akarmi,dc=intraLDAP root account password: ldap_admin_jelszoMake local root Database admin. YesDoes the LDAP database require login? NoLDAP account for root: cn=admin,dc=akarmi,dc=intraLDAP root account password: ldap_admin_jelszo

A /etc/nsswitch.conf fájlban ki kell javítani az alább láthatóra a megfelel® sorokat.passwd: compat ldapgroup: compat ldapshadow: compat ldapEzekben a fájlokban mindössze a megadott soroknak kell benne lenniük.A /etc/pam.d/common-account fájl tartalma.account sufficient pam_ldap.soaccount required pam_unix.so try_first_pass

A /etc/pam.d/common-auth fájl tartalma.auth sufficient pam_ldap.soauth required pam_unix.so nullok_secure try_first_pass

A /etc/pam.d/common-password fájl tartalma.password sufficient pam_ldap.sopassword required pam_unix.so nullok obscure min=4 max=8 md5 try_first_pass

A /etc/pam.d/common-session fájl tartalma.4Lehetséges oly módon is használni az LDAP-t, hogy a unixos és a sambás jelszavak ne legyenek szinkronban

egymással, tehát külön lehessen változtatni ®ket, egymástól függetlenül.

Kósa Attila <[email protected]> 2007. december 22.

Page 55: kosa_attila_halozat.pdf

Debian GNU/Linux 55

session required pam_unix.sosession optional pam_mkhomedir.so skel=/etc/skel/ umask=0077Ezáltal az összes PAM-ot használó szolgáltatásunk el tudja érni az adatbázisban lév® fel-használókat és csoportokat. Amennyiben nincs erre szükségünk, akkor megtehetjük, hogy csakaz adott szolgáltatás /etc/pam.d/ könyvtárban lév® fájlját módosítjuk a kívánalmainknak meg-felel®en.A getent passwd és a getent group parancsokkal ellen®rizni tudjuk, hogy valóban látja-ea rendszerünk az adatbázisban lév® felhasználókat és csoportokat.A /etc/pam.d könyvtárban lév® fájlok módosítása után az ssh és a cron szolgáltatást újrakell indítanunk, hogy értesüljön a PAM változásairól!

6.1.5. A rendszer kon�gurálása a mail (replika) szerveren

Telepítenünk kell azokat a csomagokat, amelyek segítségével a rendszerünk látni fogja az adat-bázisban lév® felhasználókat és csoportokat.# apt-get install libpam-ldap libnss-ldap

Válaszok a kérdésekre.LDAP server Uniform Resource Identifier: ldap://127.0.0.1:389/Distinguished name of the search base: dc=akarmi,dc=intraLDAP version to use: 3LDAP account for root: cn=admin,dc=akarmi,dc=intraLDAP root account password: ldap_admin_jelszoMake local root Database admin. NoDoes the LDAP database require login? No

A /etc/nsswitch.conf fájlban ki kell javítani az alább láthatóra a megfelel® sorokat.passwd: compat ldapgroup: compat ldapshadow: compat ldap

Ezekben a fájlokban mindössze a megadott soroknak kell benne lenniük (ugyanazoknak,mint a f® szerveren, tehát nyugodtan át is másolhatjuk ®ket).A /etc/pam.d/common-account fájl tartalma.account sufficient pam_unix.soaccount required pam_ldap.so try_first_pass

A /etc/pam.d/common-auth fájl tartalma.auth sufficient pam_ldap.soauth required pam_unix.so nullok_secure

A /etc/pam.d/common-password fájl tartalma.password sufficient pam_ldap.sopassword required pam_unix.so nullok obscure md5 try_first_pass

A /etc/pam.d/common-session fájl tartalma.session required pam_unix.sosession optional pam_mkhomedir.so skel=/etc/skel/ umask=0077

A getent passwd és a getent group parancsokkal ellen®rizni tudjuk, hogy valóban látja-ea rendszerünk az adatbázisban lév® felhasználókat és csoportokat.

2007. december 22. Kósa Attila <[email protected]>

Page 56: kosa_attila_halozat.pdf

56 Debian GNU/Linux6.1.6. A rendszer kon�gurálása a proxy szerveren

Telepítsük fel a szükséges csomagot, majd másoljuk a megfelel® helyre a CA.crt fájlt, illetvemásoljuk át a samba nev¶ gépr®l az ldap.conf fájlt, és írjuk át a HOST változóhoz tartozóértéket 192.168.10.250-re.# apt-get install openssl# scp samba:/etc/ssl/certs/CA.crt /etc/ssl/certs/# scp samba:/etc/ldap/ldap.conf /etc/ldap/

Telepítenünk kell azokat a csomagokat, amelyek segítségével a rendszerünk látni fogja azadatbázisban lév® felhasználókat és csoportokat.# apt-get install libpam-ldap libnss-ldap

Válaszok a kérdésekre.5LDAP server Uniform Resource Identifier: ldaps://samba.akarmi.intra/Distinguished name of the search base: dc=akarmi,dc=intraLDAP version to use: 3LDAP account for root: cn=admin,dc=akarmi,dc=intraLDAP root account password: mindegy_mit_adunk_megMake local root Database admin. NoDoes the LDAP database require login? No

Azért nem kell megadnunk az LDAP helyes root jelszavát, mert nincs rá szükség, és akövetkez® parancs kiadásakor a rendszer tudomására is tudjuk ezt hozni.Mindenképpen futtassuk a következ® parancsokat, miel®tt tovább lépnénk!# dpkg-reconfigure -plow libnss-ldap

Válaszok a kérdésekre:LDAP server Uniform Resource Identifier: ldaps://samba.akarmi.intra/Distinguished name of the search base: dc=akarmi,dc=intraLDAP version to use: 3Does the LDAP database require login? NoSpecial LDAP privileges for root? NoMake the configuration file readable/writeable by its owner only? No# dpkg-reconfigure -plow libpam-ldap

Válaszok a kérdésekre:LDAP server Uniform Resource Identifier: ldaps://samba.akarmi.intra/Distinguished name of the search base: dc=akarmi,dc=intraLDAP version to use: 3Make local root Database admin. NoDoes the LDAP database require login? NoLocal crypt to use when changing passwords. emd5

A /etc/nsswitch.conf fájlban ki kell javítani az alább láthatóra a megfelel® sorokat.passwd: compat ldapgroup: compat ldapshadow: compat ldap

A getent passwd és a getent group parancsokkal ellen®rizni tudjuk, hogy valóban látja-ea rendszerünk az adatbázisban lév® felhasználókat és csoportokat.Mivel ezen a gépen mindössze a proxy szolgáltatást szeretnénk igénybevenni, nem kell azösszes /etc/pam.d könyvtárban lév® fájlt átalakítani. Csak létre kell hoznunk egy squid nev¶fájlt6 ebben a könyvtárban a következ® tartalommal:auth required pam_ldap.soaccount required pam_ldap.so

5Most direkt nem lokális LDAP-szerverrel mutatom be a proxy kon�gurálását, hanem úgy, hogy egy másikgépen futó szolgáltatástól szerzi be a felhasználói adatokat. De csak azért, hogy erre is lássunk egy példát, ésnem pedig azért, mert így jobb lenne a proxy-nak.6Ha más nevet választunk neki, akkor a pam_auth parancs -n opciójának azt a másik nevet kell megadnunka squid kon�gurációs állományában.

Kósa Attila <[email protected]> 2007. december 22.

Page 57: kosa_attila_halozat.pdf

7. fejezet

Fájlszerver

Egy olyan szolgáltatást szeretnék megvalósítani, amely LDAP-alapú felhasználókezeléssel ren-delkezik.7.1. SaMBaEgy els®dleges tartományvezérl® kon�gurálását szeretném bemutatni a teljesség igénye nélkül.7.1.1. Telepítés és kon�gurálás

A telepítés egyszer¶:# apt-get install samba

Válasz az egy szem kérdésre.Workgroup/Domain Name? TARTOMANY

Kérdezzük le a SID értékét.# net getlocalsidSID for domain SAMBA is: S-1-5-21-3140357665-410036179-3970665752

Állítsuk le addig, amíg be nem kon�guráljuk.# /etc/init.d/samba stop

Hozzuk létre a szükséges könyvtárakat és fájlokat, valamint állítsuk be a megfelel® jogosult-ságokat és tulajdonosokat, illetve csoportokat.# touch /etc/printcap# touch /etc/samba/lmhosts# mkdir -p /etc/skel/.profile/nt# chmod 700 /etc/skel/.profile /etc/skel/.profile/nt# chmod 600 /etc/skel/.bash*# mkdir -p /var/local/samba/netlogon# chown 0:0 /var/local/samba/# chown 0:ntadmins /var/local/samba/netlogon# chmod 0700 /var/local/samba# chmod 2775 /var/local/samba/netlogon

Amíg nincs /etc/printcap fájlunk, addig a samba hibaüzeneteket ír a logba, hogy nemtalálja ezt a fájlt, emiatt szoktam megtenni az els® lépést (legalább addig, amíg egy nyom-tató nem kerül bekon�gurálásra a rendszerben). Hasonló a helyzet a második paranccsal is.Hiába állítottam be (a name resolv order opcióban), hogy ne használja az lmhosts fájlt, akkoris hibaüzenetet ad, ha nem találja. Ezzel létrehoztuk a felhasználói pro�lok tárolására szol-gáló könyvtárakat (abban a könyvtárban, amelynek a tartalmát a rendszer oda fogja másolni akés®bb létrejöv® felhasználók home könyvtárába), valamint a netlogon nev¶ megosztáshoz szük-séges könyvtárakat (itt tárolódnak a felhasználók login szkriptjei). Biztosítottuk azt is, hogy az

57

Page 58: kosa_attila_halozat.pdf

58 Debian GNU/Linuxntadmins csoport tagjai írhassák ezt a könyvtárat, illetve minden ebben a könyvtárban létrejöv®fájl és könyvtár automatikusan az ® tulajdonukba kerüljön.A szükséges kon�gurációs változtatások a /etc/samba/smb.conf fájlban:security = userenable privileges = yeswins support = yesname resolve order = wins host bcastpassdb backend = ldapsam:"ldap://localhost"domain logons = yesdomain master = yeslocal master = yespreferred master = yeslogon drive = h:logon path = \\%L\profilentlogon home = \\%L\%Ulogon script = %U.batallow trusted domains = yesmachine password timeout = 604800ldap admin dn = cn=admin,dc=akarmi,dc=intraldap ssl = noldap suffix = dc=akarmi,dc=intraldap user suffix = ou=Usersldap group suffix = ou=Groupsldap machine suffix = ou=Computersldap delete dn = noldap replication sleep = 5000ldap passwd sync = yesldap timeout = 15log level = 3dos charset = CP852unix charset = ISO8859-2add machine script = /root/bin/samba_gep_add.sh %u[netlogon]comment = Network Logon Servicepath = /var/local/samba/netlogonwritable = nobrowseable = noshare modes = noguest ok = yeslocking = nowrite list = @ntadminscreate mask = 0664directory mask = 0775[profilent]path = /home/%U/.profile/ntbrowseable = nowriteable = yespublic = nocreate mask = 0600directory mask = 0700profile acls = yes

Az ldap admin dn opcióban beállított felhasználónak a jelszavát a samba tudomására kellhozni, ennek segítségével fog tudni hozzáférni az adatbázishoz. Mivel írni is akar az adatbá-zisba, ezért egy olyan felhasználót kell itt beállítani, aki megfelel® jogosultsággal rendelkezik azadatbázis megfelel® részeinek az írásához.# smbpasswd -w ldap_admin_jelszoSetting stored password for "cn=admin,dc=akarmi,dc=intra" in secrets.tdb

A gépek hozzáadásához szükségünk van egy szkriptre, amelyet a /root/bin/ könyvtárbanhelyezünk el samba_gep_add.sh néven (úgyis csak a root felhasználó fog hozzáférni, a sambais az ® nevében futtatja az add machine script opcióban megadott szkriptet). Nézzük a szkripttartalmát.#!/bin/shPATH=/usr/sbin:/usr/bin:/sbin:/binLANG=CLC_CTYPE=CLC_COLLATE=CLC_TIME=CLC_ALL=CPRG=`basename $0 .sh`LDAPJELSZO=ldap_admin_jelszoLDAPMASTER=localhostBINDDN=cn=admin,dc=akarmi,dc=intraMINUID=20000NTMACHINEGIDNUMBER=20003HOMEDIRECTORY=/dev/nullLOGINSHELL=/bin/falseDESCRIPTION=ComputerCNT=0VARAKOZAS=10if [ -f /var/run/$PRG.pid ]; thenexit 2fiecho $$ > /var/run/$PRG.pid

Kósa Attila <[email protected]> 2007. december 22.

Page 59: kosa_attila_halozat.pdf

Debian GNU/Linux 59UU=`getent passwd | awk -v min=$MINUID -F: '{ if($3 >= min) { uid[$3]=1 } } \END { k=0; for(j=min; k==0; j++) { if(uid[j] != 1) { print j; k=1 } } }'`XTMP=`mktemp -q -p /tmp -t $PRG.XXXXXX`if [ -z "$XTMP" ]; thenXTMP=/tmp/$PRG.$$.tmpfi(echo "dn: uid=$1,ou=Computers,dc=akarmi,dc=intra"echo "objectClass: top"echo "objectClass: inetOrgPerson"echo "objectClass: posixAccount"echo "cn: $1"echo "sn: $1"echo "uid: $1"echo "uidNumber: $UU"echo "gidNumber: $NTMACHINEGIDNUMBER"echo "displayName: $1"echo "homeDirectory: $HOMEDIRECTORY"echo "loginShell: $LOGINSHELL"echo "description: $DESCRIPTION"echo ""echo "dn: cn=ldapmachine,ou=Groups,dc=akarmi,dc=intra"echo "changetype: modify"echo "add: memberUid"echo "memberUid: $1"echo "") >$XTMPldapmodify -a -x -w $LDAPJELSZO -H ldap://$LDAPMASTER -D "$BINDDN" -f $XTMP | logger -t "gep hozzaadas"while [ "`getent passwd $1 ; echo $?`" == "2" -a $CNT -ne $VARAKOZAS ]; dosleep 1CNT=$[$CNT+1]donerm -f $XTMP /var/run/$PRG.pidexit 0

Most már elindíthatjuk a tartományvezérl®nket, munkára kész.# /etc/init.d/samba startA unixos csoportok windowsos csoportokra való leképezése. Természetesen ehhez már az ldapadatbázisában szerepelnie kell ezeknek a csoportoknak! A parancsokban látható rid értéke nemszabadon választott érték (részletesen lásd a 61. oldalon). A Windows ezen értéket használjaa jogosultságok megállapítására. Ennek a három csoportnak mindenképpen léteznie kell egytartományvezérl®n (ezek beépített csoportok a windowsos gépeken).# net groupmap add rid=512 unixgroup=ntadmins ntgroup='Domain Admins'Successfully added group Domain Admins to the mapping db as a domain group# net groupmap add rid=513 unixgroup=ldapusers ntgroup='Domain Users'Successfully added group Domain Users to the mapping db as a domain group# net groupmap add rid=514 unixgroup=ldapguests ntgroup='Domain Guest'Successfully added group Domain Guest to the mapping db as a domain group# net groupmap add rid=515 unixgroup=ldapmachine ntgroup='Domain Computers'Successfully added group Domain Computers to the mapping db as a domain group# net groupmap listDomain Users (S-1-5-21-3140357665-410036179-3970665752-513) -> ldapusersDomain Admins (S-1-5-21-3140357665-410036179-3970665752-512) -> ntadminsDomain Guest (S-1-5-21-3140357665-410036179-3970665752-514) -> ldapguestsDomain Computers (S-1-5-21-3140357665-410036179-3970665752-515) -> ldapmachineA fenti parancsok hatására az LDAP-ban lév® bejegyzések kiegészülnek. Az 50. oldalonláthatódn: cn=ldapusers,ou=Groups,dc=akarmi,dc=intraobjectClass: topobjectClass: posixGroupcn: ldapusersgidNumber: 20000description: Domain Users group

bejegyzés például ilyen formát fog ölteni:dn: cn=ldapusers,ou=Groups,dc=akarmi,dc=intraobjectClass: topobjectClass: posixGroupobjectClass: sambaGroupMappingcn: ldapusersgidNumber: 20000sambaSID: S-1-5-21-3140357665-410036179-3970665752-513sambaGroupType: 2displayName: Domain Usersdescription: Domain Users group

Tehát a samba beleírja a számára szükséges dolgokat az LDAP adatbázisába. Bármelyikunixos csoportunkat �láthatóvá� tehetjük a windowsos gépeken egy net groupmap add parancssegítségével.A tartományra vonatkozó alapbeállítások:

2007. december 22. Kósa Attila <[email protected]>

Page 60: kosa_attila_halozat.pdf

60 Debian GNU/Linux# pdbedit -P "min password length" -C 8 -d 0account policy "min password length" description: Minimal password length (default: 5)account policy "min password length" value was: 5account policy "min password length" value is now: 8# pdbedit -P "password history" -C 5 -d 0account policy "password history" description: Length of Password History Entries (default: 0 => off)account policy "password history" value was: 0account policy "password history" value is now: 5# pdbedit -P "minimum password age" -C 3600 -d 0account policy "minimum password age" description: Minimal password age, in seconds (default: 0 => allow immediate password change)account policy "minimum password age" value was: 0account policy "minimum password age" value is now: 3600# pdbedit -P "maximum password age" -C 3888000 -d 0account policy "maximum password age" description: Maximum password age, in seconds (default: -1 => never expire passwords)account policy "maximum password age" value was: 4294967295account policy "maximum password age" value is now: 3888000# pdbedit -P "bad lockout attempt" -C 3 -d 0account policy "bad lockout attempt" description: Lockout users after bad logon attempts (default: 0 => off)account policy "bad lockout attempt" value was: 0account policy "bad lockout attempt" value is now: 3

Adjunk jogokat1 a Domain Admins csoportnak2, hogy gépeket vehessenek fel a tartományba.Az atkosa felhasználó jelszavát kell megadni! Ez azt feltételezi, hogy az atkosa felhasználó mártagja az ntadmins csoportnak, és a korábban említett (a net groupmap parancsok által megva-lósított) csoportleképezések már készen vannak.# net -U atkosa rpc rights grant 'TARTOMANY\Domain Admins' SeMachineAccountPrivilegePassword:Successfully granted rights.Ellen®rizzük le, hogy milyen jogokkal rendelkezik a Domain Admins csoport.# net -U atkosa rpc rights list 'TARTOMANY\Domain Admins'Password:SeMachineAccountPrivilege

7.1.2. Tesztelés

Telepítsük fel a tesztelésre egyszer¶en használható parancssori kliensprogramot.# apt-get install smbclientKérjünk egy listát a szerver elérhet® megosztásairól.# smbclient -L samba -U atkosa -d 0Password:Domain=[TARTOMANY] OS=[Unix] Server=[Samba 3.0.24]Sharename Type Comment--------- ---- -------print$ Disk Printer DriversIPC$ IPC IPC Service (samba server)atkosa Disk Home DirectoriesDomain=[TARTOMANY] OS=[Unix] Server=[Samba 3.0.24]Server Comment--------- -------SAMBA samba serverWorkgroup Master--------- -------TARTOMANY SAMBAÉs közben a /home/atkosa könyvtár is létrejött a pam_mkhomedir modulnak köszönhet®en.

7.1.3. Kiegészít® információk

Az ldap adatbázisába beírandó sambaSID értékét ki kell számolni. Ennek a következ® a logikája:a RID base értéke a samba algorithmic rid base opciójában megadott érték, alapértelmezésben1000. A SID értékét a net getlocalsid parancs segítségével kaphatjuk meg. A felhasználóhoztartozó uid értékét magunk állíthatjuk be. Ezek alapján a képlet a következ®:RID = RID base + (2 ∗ uid)

Nézzük meg konkrét számokkal:felhasználói uid = 10000

1A delegálható jogosultságok táblázata a 61. oldalon látható.2Nem csak csoportoknak, hanem egyes felhasználóknak is lehetséges jogokat delegálni.

Kósa Attila <[email protected]> 2007. december 22.

Page 61: kosa_attila_halozat.pdf

Debian GNU/Linux 61RID base = 1000

RID = 1000 + (2 ∗ 10000) = 21000

SID = S-1-5-21-3140357665-410036179-3970665752sambaSID = S-1-5-21-3140357665-410036179-3970665752-21000

A csoportok esetén annyi a változás, hogy a RID base értéke 1001, a képlet ugyanaz marad(természetesen az uid helyett a gid értékét kell behelyettesíteni).De vannak speciális, fenntartott RID értékek, amelyeknek kötelez® a 7.1. táblázatban lát-hatónak lennie. Ezért kellett az 59. oldalon látható módon a RID értékét direktben megadnia net groupmap add parancsoknak.7.1. táblázat: A Windows RID értékei

Ismert entitások RID Típus Szükséges-eDomain Administrator 500 User NemDomain Guest 501 User Nem3Domain KRBTGT 502 User NemDomain Admins 512 Csoport IgenDomain Users 513 Csoport IgenDomain Guest 514 Csoport IgenDomain Computers 515 Csoport NemDomain Controllers 516 Csoport NemDomain Certi�cate Admins 517 Csoport NemDomain Schema Admins 518 Csoport NemDomain Enterprise Admins 519 Csoport NemDomain Policy Admins 520 Csoport NemBuiltin Admins 544 Alias NemBuiltin Users 545 Alias NemBuiltin Guest 546 Alias NemBuiltin Power Users 547 Alias NemBuiltin Account Operators 548 Alias NemBiltin System Operators 549 Alias NemBuiltin Print Operators 550 Alias NemBuiltin Backup Operators 551 Alias NemBultin Replicator 552 Alias NemBuiltin RAS Servers 553 Alias Nem

A http://support.microsoft.com/kb/243330 címen érhet® el a Microsoft által kiadottanyag.A 60. oldalon láthattunk példát egy jogosultság �kiadására�. A 7.2. táblázat összefoglalja,hogy milyen jogosultságok delegálhatóak jelenleg.7.2. táblázat: Delegálható jogosultságok

Jogosultságok MagyarázatSeMachineAccountPrivilege Gépek hozzáadása a tartományhozSePrintOperatorPrivilege Nyomtatók menedzseléseSeAddUsersPrivilege Felhasználók és csoportok felvétele a tartományba3A samba dokumentációja szerint nem lényeges, de a samba mégis keresi az elinduláskor, és reklamál, ha nem

találja. Ezért én inkább mégis létre szoktam hozni � lásd a nobody felhasználó létrehozását az 50. oldalon.

2007. december 22. Kósa Attila <[email protected]>

Page 62: kosa_attila_halozat.pdf

62 Debian GNU/Linux7.2. táblázat: (folytatás)

Jogosultságok MagyarázatSeRemoteShutdownPrivilege Távoli rendszerek leállításaSeDiskOperatorPrivilege Megosztások menedzseléseA 7.3. táblázat a sambaAcctFlags attribútum lehetséges értékeit mutatja be.

7.3. táblázat: Használható jelz®kJelz® MagyarázatU FelhasználóW MunkaállomásX Nem jár le a jelszóI Domain trust accountH Home könyvtár szükségesS Szerver trust accountD Kikapcsolva

Az mkntpwd program beszerzése és lefordítása.# cd /usr/local/src/# wget "http://downloads.sourceforge.net/ldaputils/mkntpwd.tar.gz?modtime=997682498&big_mirror=0"# tar zxpvf mkntpwd.tar.gz# chmod 0600 *# chown 0:0 *# apt-get install make gcc libc6-dev# makegcc -g -Wall -D_DEBUG -O2 -DMPU8086 -c -o getopt.o getopt.cgcc -g -Wall -D_DEBUG -O2 -DMPU8086 -c -o md4.o md4.cmd4.c: In function `mdfour':md4.c:144: warning: implicit declaration of function `memcpy'gcc -g -Wall -D_DEBUG -O2 -DMPU8086 -c -o mkntpwd.o mkntpwd.cmkntpwd.c:37: warning: return type of `main' is not `int'mkntpwd.c: In function `main':mkntpwd.c:67: warning: implicit declaration of function `getopt'gcc -g -Wall -D_DEBUG -O2 -DMPU8086 -c -o smbdes.o smbdes.cgcc -g -Wall -D_DEBUG -O2 -DMPU8086 -o mkntpwd getopt.o md4.o mkntpwd.o smbdes.o# chmod 0700 mkntpwd# cp mkntpwd /usr/local/sbin# chown 0:0 /usr/local/sbin/mkntpwd# apt-get remove --purge make gcc libc6-dev linux-kernel-headers binutils cpp cpp-3.3 gcc-3.3A 3.1. fejezetben említésre került a node-type kifejezés. Ez az a beállítás, amely megmondjaa windowsos gépnek, hogy mit tegyen elindulás után. Az alábbi 4 megoldás lehetséges:• B-Node � Broadcastot és direkt kérdést is kiküld UDP-n és TCP-n. Hatalmas broadcastforgalmat csinál. Száma az 1.• P-Node � Direkt IP címet szólít meg UDP-n és TCP-n. Ha a cím nem él, nem tud belépnia rendszerbe. Száma a 2.• M-Node � El®ször egy broadcast üzenettel kísérletezik, majd ha az nem sikerül neki, akkoregy direkt kapcsolattal. Szintén nagy broadcast forgalmat okoz. Száma a 4.• H-Node � El®ször direkt kapcsolatot keres, majd ha ez nem sikerül neki, akkor elküld 1broadcast üzenetet. Ha talál valakit, akkor vele attól kezdve direktben beszélget. Számaa 8.A direkt címek (amelyeket szólítgatnak) a WINS szerver(ek) címei. Ilyenkor regisztrálja ismagát a gép az adott WINS szervernél.

7.1.4. Nyomtatódriverek telepítése a szerverre

Ebben az alfejezetben megnézzük, hogy mit kell ahhoz tennünk, hogy a szerverünkr®l elérhet®nyomtatók windowsos meghajtóprogramjait (drivereit) felrakjuk a szerverünkre, amelyek auto-

Kósa Attila <[email protected]> 2007. december 22.

Page 63: kosa_attila_halozat.pdf

Debian GNU/Linux 63matikusan települnek (extra jogosultságtól függetlenül), amint a kliens nyomtatni szeretne azadott nyomtatón.A régi printer admin opció helyett a SePrintOperatorPrivilege jogot kell delegálni az alábbimódon.4# net -U atkosa rpc rights grant 'TARTOMANY\Domain Admins' SePrintOperatorPrivilegePassword:Successfully granted rights.

Ellen®rizzük le újra, hogy milyen jogokkal rendelkezik a Domain Admins csoport.# net -U atkosa rpc rights list 'TARTOMANY\Domain Admins'Password:SeMachineAccountPrivilegeSePrintOperatorPrivilege

Kon�guráljuk be a nyomtatót a szerveren (mindegy, hogy cups-ot vagy lprng-t használunk,csak �gyeljünk arra, hogy a használt nyomtatószerver függvényében kell a samba-t beállíta-nunk), majd teszteljük le. Célszer¶ el®ször parancssorból kipróbálni, hogy tudunk-e nyomtatnia nyomtatóra. Ha ez m¶ködik (és már a samba-t is beállítottuk), akkor az smbclient program-mal ellen®rizhetjük, hogy látszik-e a nyomtatónk.Én az egyszer¶ség kedvéért az lprng-t használtam, és egy hálózati nyomtatót állítottam be.Ekkor mindössze ennyire volt szükség az smb.conf fájlban (a többi maradt az alapértelmezettbeállításon):load printers = yesprinting = lprngprintcap name = /etc/printcap

Végre kell hajtanunk némi változtatást az alapértelmezett print$ nev¶ megosztáson. Úgyjavítsuk ki, hogy az alábbi információkat tartalmazza:[print$]comment = Printer Driverspath = /var/lib/samba/printersbrowseable = yesread only = yesguest ok = nowrite list = @ntadminsforce group = ntadmincreate mask = 0664directory mask = 0775

Gondoskodnunk kell arról is, hogy a /var/lib/samba/printers könyvtárat az ntadminscsoportnak legyen joga írni.# chgrp -R ntadmins /var/lib/samba/printers# find /var/lib/samba/printers -type d -exec chmod 775 {} \;

Az smbclient ezt mutatja:# smbclient -L localhost -U atkosaPassword:Domain=[TARTOMANY] OS=[Unix] Server=[Samba 3.0.24]Sharename Type Comment--------- ---- -------print$ Disk Printer DriversIPC$ IPC IPC Service (samba server)lexmark Printer Lexmarkatkosa Disk Home DirectoriesDomain=[TARTOMANY] OS=[Unix] Server=[Samba 3.0.24]Server Comment--------- -------SAMBA samba serverWorkgroup Master--------- -------TARTOMANY SAMBA

4Természetesen nem kötelez® a tartományi rendszergazdáknak adni ezt a jogot, de akkor �gyelnünk kell akapcsolódó beállításokra, mint például a könyvtárjogosultságok.

2007. december 22. Kósa Attila <[email protected]>

Page 64: kosa_attila_halozat.pdf

64 Debian GNU/LinuxEddig jól alakulnak a dolgok, most nézzük meg, hogy mit kell tennünk windowsos oldalról.Jelentkezzünk be egy olyan felhasználóval a tartományba egy windowsos gépen, akinek de-legáltuk a SePrintOperatorPrivilege jogot. Nem akarok képeket tenni az anyagba, ezért inkábbleírom, hogy miképp juthatunk el a szerveren lév® nyomtatóhoz. Magyar nyelv¶ Windows XPa kliens. �Hálózati helyek�, �Teljes hálózat�, �Microsoft Windows hálózat�, �Tartomany� (ez atartományunk neve), �Samba server� (ez a szerverünk neve), �Nyomtatók és faxok�, �lexmark�(ez pedig a nyomtatónk neve). Erre az utolsóra kell a jobb egérgombbal kattintani, majd a�Tulajdonságok� menüpontot kiválasztani. Felugrik egy ablak (�Nyomtató tulajdonságai� fejléc-cel), amely arról tájékoztat bennünket, hogy nincs telepítve a nyomtató illeszt®programja, ésrákérdez, hogy szeretnénk-e telepíteni. Most jön a trükk, a �Nem�-et kell választanunk. A követ-kez® ablak már a nyomtatóé, 5 füllel rendelkezik (�Általános�, �Megosztás�, �Portok�, �Speciális�,�Biztonság�). A �Speciális� fül kell nekünk, annak is a fels® harmadából az �Illeszt®program� sorvégén található �Új� feliratú gomb. Erre kell kattintanunk, majd a �Tovább� gombra. Ezután vanlehet®ségünk kiválasztani a szerveren keresztül elérhet® nyomtató típusát, majd ismét a �To-vább� gombra kattinthatunk. Ekkor láthatjuk, hogy mely illeszt®programot fogjuk telepíteni.Már csak a �Befejezés� gombra kell kattintanunk, és láthatjuk, amint felkerülnek a megfelel®fájlok a szerveren a helyükre. Az �Alapértelmezések� gombra kattintva beállíthatjuk, hogy akliensekre letölt®dve mik legyenek az alapértelmezett beállítások. Érdemes megvizsgálni ezeketa lehet®ségeket. Az �OK� gombra kattintva készen is vagyunk.Ily módon megkaptuk annak a lehet®ségét is, hogy egyetlen helyr®l adminisztrálhatjuk azösszes kliens erre a nyomtatóra vonatkozó beállításait. Az is lehet®vé vált ezáltal, hogy a felhasz-náló saját login szkriptjében rendeljük hozzá a nyomtatókat, automatikusan telepítve azokat.Természetesen így törölhetjük is a feleslegessé vált nyomtatókat a felhasználó gépér®l. Lássuk,mit is kell beírni a felhasználó login szkriptjébe, hogy ez valóban m¶ködjön is.

rundll32 printui.dll,PrintUIEntry /in /n "\\samba\lexmark" /qrundll32 printui.dll,PrintUIEntry /y /n "\\samba\lexmark" /qA login szkript els® sora feltelepíti a gépre a megadott nyomtatót, a második sor pedigbeállítja, hogy ez legyen az alapértelmezett nyomtató. Az egyéb lehet®ségekr®l egy windowsosgépen tudunk tájékozódni, az alábbi parancs hatására megjelen® ablakból (akár a �Start menü��Futtatás� pontjából is indítható):

rundll32 printui.dll,PrintUIEntry /?7.1.5. Megosztások létrehozása

Nézzünk néhány példát a samba lehet®ségeinek b®séges tárházából. A netlogon megosztásnálláthattuk (az 58. oldalon), hogyan korlátozzuk egy csoport tagjaira az írásjogokat. Ott unixosoldalon gondoskodtunk arról, hogy a létrejöv® fájlok a megfelel® csoport tulajdonába kerüljenek(az 57. oldalon látható módon).Az els® példában olyan megosztást szeretnénk létrehozni, amelyhez az egyik csoport tagjaiteljes (írási és olvasási) joggal férhetnek hozzá (a fájlokat és könyvtárakat a csoport összestagja létrehozhatja, törölheti, módosíthatja), míg a másik csoport kizárólag olvasásra érheti ela megosztásban lév® állományokat és könyvtárakat, tehát nem hozhat ott létre semmit, nem ismásolhat oda semmit, és nem is törölhet.Hozzuk létre a megosztás könyvtárát.# mkdir /samba/teszt01

Beállítjuk a könyvtár jogosultságait, ezzel biztosítva azt, hogy a könyvtárban létrejöv® fáj-lok és könyvtárak az iro_csoport tulajdonába kerüljenek. Ennek akkor van jelent®sége, hael®fordulhat, hogy unix alól is eléri valaki az adott megosztást.# chmod 2770 /samba/teszt01# chown root:iro_csoport /samba/teszt01

Kósa Attila <[email protected]> 2007. december 22.

Page 65: kosa_attila_halozat.pdf

Debian GNU/Linux 65Az ehhez szükséges minimális samba kon�guráció.

[teszt01]path = /samba/teszt01writeable = yesvalid users = @iro_csoport @olvaso_csoportread list = @olvaso_csoportcreate mask = 0660directory mask = 0770force group = iro_csoport

2007. december 22. Kósa Attila <[email protected]>

Page 66: kosa_attila_halozat.pdf

66 Debian GNU/Linux

Kósa Attila <[email protected]> 2007. december 22.

Page 67: kosa_attila_halozat.pdf

8. fejezet

Levelek küldése

A központi levelez®szerver, illetve az egyéb szerverek és kliensek beállításairól lesz szó ebben afejezetben.8.1. Post�x8.1.1. Telepítés a központi szerveren

Két csomagra van szükségünk, egy lépésben telepítsük mindkett®t:# apt-get install postfix postfix-ldapSetting up postfix (2.3.8-2+b1) ...Adding group `postfix' (GID 106) ...Done.Adding system user `postfix' (UID 103) ...Adding new user `postfix' (UID 103) with group `postfix' ...Not creating home directory `/var/spool/postfix'.Creating /etc/postfix/dynamicmaps.cfAdding tcp map entry to /etc/postfix/dynamicmaps.cfAdding group `postdrop' (GID 107) ...Done.setting myhostname: mail.akarmi.intrasetting alias mapssetting alias databasechanging /etc/mailnamesetting myoriginsetting destinations: kulso-domain.hu mail.akarmi.intra, localhost.akarmi.intra, localhostsetting relayhost: fw.akarmi.intrasetting mynetworks: 127.0.0.0/8setting mailbox_size_limit: 0setting recipient_delimiter: +setting inet_interfaces: all/etc/aliases does not exist, creating it.WARNING: /etc/aliases exists, but does not have a root alias.Postfix is now set up with a default configuration. If you needto make changes, edit /etc/postfix/main.cf (and others) asneeded. To view Postfix configuration values, see postconf(1).After modifying main.cf, be sure to run '/etc/init.d/postfix reload'.Running newaliasesStopping Postfix Mail Transport Agent: postfix.Starting Postfix Mail Transport Agent: postfix.Setting up postfix-ldap (2.3.8-2+b1) ...Adding ldap map entry to /etc/postfix/dynamicmaps.cfVálaszok a telepítés közben feltett kérdésekre.General type of configuration? Internet with smarthostMail name? mail.akarmi.intraSMTP relay host? (blank for none) fw.akarmi.intraÉrdemes lefuttatni a következ® parancsot, mert így még több dolgot bekon�gurálhatunka kon�gurációs állomány kézi szerkesztése nélkül, és így a debconf is megjegyzi válaszainkat,aminek egy frissítés esetén vehetjük hasznát.# dpkg-reconfigure -plow postfixVálaszok a kérdésekre.

67

Page 68: kosa_attila_halozat.pdf

68 Debian GNU/LinuxGeneral type of configuration? Internet with smarthostWhere should mail for root go atkosaMail name? mail.akarmi.intraSMTP relay host? (blank for none) fw.akarmi.intraOther destinations to accept mail for? (blank for none) kulso-domain.hu mail.akarmi.intra, akarmi.intra, localhost.akarmi.intra, localhostForce synchronous updates on mail queue? NoLocal networks? 127.0.0.0/8 192.168.10.0/24Mailbox size limit 0Local address extension character? +Internet protocols to use? ipv48.1.2. Beállítás a központi szerveren

A telepítés végén a /etc/postfix/main.cf kon�gurációs állomány a következ® sorokat tartal-mazza (a kommenteket nem írom le):smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)biff = noappend_dot_mydomain = nosmtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pemsmtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.keysmtpd_use_tls=yessmtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scachesmtp_tls_session_cache_database = btree:${queue_directory}/smtp_scachemyhostname = mail.akarmi.intraalias_maps = hash:/etc/aliasesalias_database = hash:/etc/aliasesmyorigin = /etc/mailnamemydestination = kulso-domain.hu mail.akarmi.intra, akarmi.intra, localhost.akarmi.intra, localhostrelayhost = fw.akarmi.intramynetworks = 127.0.0.0/8 192.168.10.0/24mailbox_size_limit = 0recipient_delimiter = +inet_interfaces = allinet_protocols = ipv4

Az egyes opciók magyarázata1:• Az smtpd_banner változó tartalmát több változóból rakja össze a rendszer. Nem biztos,hogy még azt is tudatni kívánjuk az érdekl®d®kkel, hogy Debian/GNU rendszer futtatunk,ezért érdemes lehet olyasmire átírni, ami nem nyújt ilyen információkat.• A bi� változó azt szabályozza, hogy küldjön-e értesítést a biff utility-knek (például biff,gnubiff, xlbiff stb.). Egy szerveren nincs értelme a használatának.• Az append_dot_mydomain változó azt szabályozza, hogy ha olyan e-mail érkezik a szer-verre, amelyben nem teljes domain név szerepel, akkor hozzátegye-e a mydomain változótartalmát (ponttal elválasztva) a @ (kukac) utáni részhez, és így próbálja meg kézbesítenia levelet.• A myhostname változóban a gép saját neve szerepel.• Az alias_maps és az alias_database változókban szerepel az aliasok kezeléséhez haszná-landó fájl neve.• A myorigin változó tartalmazza a teljes domainnevét a gépnek. Csak a helyben (az adottgépen) feladott leveleknél számít (amely levelekben a @ mögött semmi sem szerepel), mertott a @ mögé az egész változó tartalmát beilleszti.• A mydestination változóban felsorolt domainekre érkez® levelek kerülnek lokálisan feldol-gozásra.• A relayhost változóban megadott gépnek továbbítsa a nem neki szóló leveleket (ezt aviselkedést lehet befolyásolni a transport táblával).• A mynetworks változóban megadott hálózatoktól és/vagy egyedi címekt®l fogadjon el le-veleket tárolásra vagy továbbításra.

1Még néhány hiányzik.

Kósa Attila <[email protected]> 2007. december 22.

Page 69: kosa_attila_halozat.pdf

Debian GNU/Linux 69• A mailbox_size_limit változó tartalma határozza meg, hogy mailbox formátumú levél-tárolás esetén az egyes felhasználók mailboxa mekkora méret¶ lehet maximum. Globálisérték, nem lehet felhasználónként szabályozni. Maildir használata esetén nincs hatása.• A recipient_delimiter azt határozza meg, hogy a felhasználói név és az extension közöttmilyen elválasztójel van. Ha ebben a változóban megadott jelet talál a @ el®tti részben,akkor szétválasztja a jel két oldalán álló részt. Jellemz®en internetszolgáltatók használják,egy átlagos hálózaton nincs jelent®sége.• Az inet_interfaces sorban alapértelmezésben az szerepel, hogy minden interfészen �gyeljena post�x.A dpkg-reconfigure alkalmával lefutó kon�guráló rákérdez ugyan, hogy kinek szeretnénktovábbítani a root-nak szóló leveleket, de a /etc/aliases fájlba nem teszi bele a válaszunkat.Emiatt szükséges szerkesztenünk ezt a fájlt, hogy így nézzen ki:

postmaster: rootroot: atkosaA levelek Maildir-ben történ® tárolásáról tudnia kell a szervernek is. Az alábbi opció fogjamegmondani neki, hogy ne mailbox formátumot használjon a felhasználók leveleinek tárolására.

home_mailbox = Maildir/Az ldap-val kapcsolatos beállítások:

alias_ldap_timeout = 15alias_ldap_search_base = ou=Users,dc=akarmi,dc=intraalias_ldap_server_host = localhostalias_ldap_server_port = 389alias_ldap_query_filter = (|(uid=%u)(mail=%[email protected])(alias=%[email protected]))alias_ldap_result_attribute = uidalias_ldap_scope = subalias_ldap_bind = noalias_ldap_expansion_limit = 1000alias_ldap_version = 3A TLS miatt egészítsük ki az alábbi sorokkal a main.cf fájlt:

smtpd_tls_loglevel = 1smtpd_tls_received_header = yessmtpd_tls_ccert_verifydepth = 3

8.1.3. A hálózat összessége miatti �nomítások

A /etc/aliases fájlba vegyük fel a következ® sorokat:dnsmaster: rootproxymaster: root

A dnsmaster alias a bind kon�gjában beállított név miatt kell (16. és 21. oldal), a proxy-master alias a squid beállítása miatt (76. oldal). A /etc/aliases fájl változtatása után nefelejtsük el futtatni a newaliases parancsot.8.1.4. Tesztelés

Telepítsünk fel egy egyszer¶ levélküld® klienst:# apt-get install mailx

Küldjünk egy levelet a létrehozott felhasználónknak (egyúttal tesztelve az alias beállítása-inkat is):# date | mailx -s"teszt001" root

2007. december 22. Kósa Attila <[email protected]>

Page 70: kosa_attila_halozat.pdf

70 Debian GNU/LinuxA /var/log/syslog fájlban a következ® látható a kézbesítésr®l2:postfix/pickup[4410]: 6ED10231D: uid=0 from=<root>postfix/cleanup[4417]: 6ED10231D: message-id=<[email protected]>postfix/qmgr[4411]: 6ED10231D: from=<[email protected]>, size=333, nrcpt=1 (queue active)postfix/local[4419]: 6ED10231D: to=<[email protected]>, orig_to=<root>, relay=local, \delay=0.61, delays=0.38/0.09/0/0.14, dsn=2.0.0, status=sent (delivered to maildir)postfix/qmgr[4411]: 6ED10231D: removedTehát sikeresen kézbesült a levél.

8.1.5. Post�x a hálózat többi szerverén

Nem kötelez® minden szerverünkre MTA-t (Mail Transfer Agent) telepíteni, de tudnunk kell,hogy anélkül még a cron üzeneteir®l sem fogunk semmit sem kapni. . .Viszont a syslog nev¶ gépre mindenképpen telepítenünk kell, mert a logcheck csomagnakszüksége van rá. Ezért ennek a gépnek a példáján keresztül mutatom be a postfix telepítésétaz �egyszer¶� (levelez® szolgáltatást nem végz®) szerverekre.# apt-get install postfixSetting up postfix (2.3.8-2+b1) ...Adding group `postfix' (GID 104) ...Done.Adding system user `postfix' (UID 101) ...Adding new user `postfix' (UID 101) with group `postfix' ...Not creating home directory `/var/spool/postfix'.Creating /etc/postfix/dynamicmaps.cfAdding tcp map entry to /etc/postfix/dynamicmaps.cfAdding group `postdrop' (GID 105) ...Done.setting myhostname: syslog.akarmi.intrasetting alias mapssetting alias databasechanging /etc/mailnamesetting myoriginsetting destinations: syslog.akarmi.intra, localhost.akarmi.intra, localhostsetting relayhost: mail.akarmi.intrasetting mynetworks: 127.0.0.0/8setting mailbox_size_limit: 0setting recipient_delimiter: +setting inet_interfaces: all/etc/aliases does not exist, creating it.WARNING: /etc/aliases exists, but does not have a root alias.Postfix is now set up with a default configuration. If you needto make changes, edit /etc/postfix/main.cf (and others) asneeded. To view Postfix configuration values, see postconf(1).After modifying main.cf, be sure to run '/etc/init.d/postfix reload'.Running newaliasesStopping Postfix Mail Transport Agent: postfix.Starting Postfix Mail Transport Agent: postfix.Válaszok a telepítés közben feltett kérdésekre.General type of configuration? Internet with smarthostMail name? syslog.akarmi.intraSMTP relay host? (blank for none) mail.akarmi.intraÉrdemes lefuttatni a következ® parancsot, mert így még több dolgot bekon�gurálhatunka kon�gurációs állomány kézi szerkesztése nélkül, és így a debconf is megjegyzi válaszainkat,aminek egy frissítés esetén vehetjük hasznát.# dpkg-reconfigure -plow postfixVálaszok a kérdésekre.General type of configuration? Internet with smarthostWhere should mail for root go [email protected] name? syslog.akarmi.intraSMTP relay host? (blank for none) mail.akarmi.intraOther destinations to accept mail for? (blank for none) syslog.akarmi.intra, localhost.akarmi.intra, localhostForce synchronous updates on mail queue? NoLocal networks? 127.0.0.0/8Mailbox size limit 0Local address extension character? +Internet protocols to use? ipv4Az inet_interfaces: all sorban az all szót javítsuk át localhost-ra. Ez azt fogja eredmé-nyezni, hogy csak a 127.0.0.1 IP címen (tehát a localhost-on) lehet majd elérni a postfix-et.Ett®l függetlenül lehet levelet kiküldeni err®l a gépr®l, de kintr®l beküldeni rá nem lehetséges.

2Az utolsó el®tti sort �eltörtem�, hogy kiférjen az oldalra.

Kósa Attila <[email protected]> 2007. december 22.

Page 71: kosa_attila_halozat.pdf

9. fejezet

Levelek olvasása

A felhasználók leveleihez hozzáférést biztosító szolgáltatás kialakítása a cél, amelyet a bizton-ságot szem el®tt tartva SSL fölötti kapcsolódással fogunk megoldani. Az IMAP segítségével afelhasználók a szerveren tárolhatják a leveleiket, amelynek több el®nye is van:• A munkaállomások esetleges sérülése nem jelenti az üzletileg fontos levelezés elvesztését.• Az egy helyen tárolt adatok megkönnyítik a biztonsági másolat készítését.• A felhasználók bárhonnan elérhetik a leveleiket.

9.1. Dovecot9.1.1. Telepítés

A telepítés egyszer¶ (mivel ez a szolgáltatás is a mail nev¶ szerverre kerül, ezért az opensslcsomag már fel van telepítve):# apt-get install dovecot-imapdSetting up dovecot-common (1.0.rc15-2) ...adduser: Warning: that home directory does not belong to the user you are currently creating.Adding user `dovecot' to group `mail' ...Done.Creating generic self-signed certificate: /etc/ssl/certs/dovecot.pem(replace with hand-crafted or authorized one if needed).Setting up dovecot-imapd (1.0.rc15-2) ...A telepítés után állítsuk le amíg bekon�guráljuk.# /etc/init.d/dovecot stop

9.1.2. Beállítás

A telepítés végén 3 fájl kerül a /etc/dovecot könyvtárba: dovecot.conf, dovecot-sql.confés dovecot-ldap.conf.A dovecot-*.conf fájlok a különböz® adatbázisokhoz tartozó authentikációs módokat tar-talmazzák. A dovecot.conf fájl tartalmazza az egyéb beállítási lehet®ségeket. Alakítsuk át úgyezt a fájlt, hogy az alábbiakat tartalmazza:protocols = imapsdisable_plaintext_auth = yesshutdown_clients = yeslog_timestamp = "%Y-%m-%d %H:%M:%S "ssl_disable = nossl_cert_file = /etc/ssl/certs/mail.akarmi.intra.crtssl_key_file = /etc/ssl/private/mail.akarmi.intra.key.nopassssl_verify_client_cert = nossl_parameters_regenerate = 168ssl_cipher_list = ALL:!LOWverbose_ssl = no

71

Page 72: kosa_attila_halozat.pdf

72 Debian GNU/Linuxlogin_process_per_connection = yeslogin_log_format_elements = user=<%u> method=%m rip=%r lip=%l %cmail_location = maildir:~/Maildirmail_extra_groups = mailmail_full_filesystem_access = nomail_debug = nomail_read_mmaped = nommap_disable = nofirst_valid_uid = 20000last_valid_uid = 30000first_valid_gid = 20000last_valid_gid = 20000umask = 0077mail_cache_fields = imap.bodystructuremailbox_idle_check_interval = 30maildir_copy_with_hardlinks = noprotocol imap {mail_executable = /usr/lib/dovecot/imapimap_max_line_length = 65536login_greeting_capability = noimap_client_workarounds = outlook-idle}auth_executable = /usr/lib/dovecot/dovecot-authauth_username_chars = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@auth_verbose = noauth_debug = noauth default {mechanisms = plainpassdb pam {args = session=yes}userdb passwd {args = blocking=yes}user = root}9.1.3. Tesztelés

A sikeresen kézbesült levelet (lásd a 70. oldalt) próbáljuk meg elolvasni az új IMAP szerve-rünkön.# openssl s_client -host mail -port 993 -CAfile /etc/ssl/certs/CA.crtCONNECTED(00000003)depth=1 /C=HU/ST=BAZ/L=Miskolc/O=Akarmi Kft/OU=CA_kiallito/CN=akarmi.intra/[email protected] return:1depth=0 /C=HU/ST=BAZ/L=Miskolc/O=Akarmi Kft/OU=tanusitvany_generalo/CN=mail.akarmi.intra/[email protected] return:1---Certificate chain0 s:/C=HU/ST=BAZ/L=Miskolc/O=Akarmi Kft/OU=tanusitvany_generalo/CN=mail.akarmi.intra/[email protected]:/C=HU/ST=BAZ/L=Miskolc/O=Akarmi Kft/OU=CA_kiallito/CN=akarmi.intra/[email protected] certificate-----BEGIN CERTIFICATE-----MIICqTCCAhICAQMwDQYJKoZIhvcNAQEEBQAwgZUxCzAJBgNVBAYTAkhVMQwwCgYDVQQIEwNCQVoxEDAOBgNVBAcTB01pc2tvbGMxEzARBgNVBAoTCkFrYXJtaSBLZnQxFDASBgNVBAsUC0NBX2tpYWxsaXRvMRUwEwYDVQQDEwxha2FybWkuaW50cmExJDAiBgkqhkiG9w0BCQEWFXNlY3VyaXR5QGFrYXJtaS5pbnRyYTAeFw0wNzAzMjYxODAzMDZaFw0wODAzMjUxODAzMDZaMIGjMQswCQYDVQQGEwJIVTEMMAoGA1UECBMDQkFaMRAwDgYDVQQHEwdNaXNrb2xjMRMwEQYDVQQKEwpBa2FybWkgS2Z0MR0wGwYDVQQLFBR0YW51c2l0dmFueV9nZW5lcmFsbzEaMBgGA1UEAxMRbWFpbC5ha2FybWkuaW50cmExJDAiBgkqhkiG9w0BCQEWFXNlY3VyaXR5QGFrYXJtaS5pbnRyYTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwUuBpAWEhqOuVSemAsTCiB/P/1j1nx+tP4H/400gqqSubQy2vMqTS3mL3UOWqtA1t5zr9moGge0lpq1AHFmXOkGMpBMLhAWFugDmzGi/mFXiyAKPrTJHe8pQ0yrd5KJv6sG4nPXSzOewI4sEvux70H5E+nURwBOm/t725sEf9kcCAwEAATANBgkqhkiG9w0BAQQFAAOBgQCQ+tymGX4Wuv64YNpxAl8eeTz/Tu072ovEjwkEI5sIvbjakhUgLAAGMqNRsf4xbhzKsid88UNsYlX79F3NvsWRo9V2SPvN7UKCl6h/3YJYSgOgu4BqedZqBGor6Vrx9vIt2nu1CTiI83WPheXdVDS1Rvtsw7dbWciRYba+AD8a2w==-----END CERTIFICATE-----subject=/C=HU/ST=BAZ/L=Miskolc/O=Akarmi Kft/OU=tanusitvany_generalo/CN=mail.akarmi.intra/[email protected]=/C=HU/ST=BAZ/L=Miskolc/O=Akarmi Kft/OU=CA_kiallito/CN=akarmi.intra/[email protected] client certificate CA names sent---SSL handshake has read 1249 bytes and written 316 bytes---New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-SHAServer public key is 1024 bitCompression: NONEExpansion: NONESSL-Session:Protocol : TLSv1Cipher : DHE-RSA-AES256-SHASession-ID: 37B9C878A0AAB3B2F72DC600909C11DBD0309F483DCDB9219677615413DCCD58Session-ID-ctx:Master-Key: D6AC180889FB966EC5E5E38DA0A81163DAAFF0A0FAA0D0E9DF3F0A1DAA8910FFEEB85D562D539768B25ACCE1B3655BE7Key-Arg : NoneStart Time: 1182176669Timeout : 300 (sec)Verify return code: 0 (ok)---* OK dovecot ready.01 login atkosa jelszo

Kósa Attila <[email protected]> 2007. december 22.

Page 73: kosa_attila_halozat.pdf

Debian GNU/Linux 7301 OK Logged in.02 select inbox* FLAGS (\Answered \Flagged \Deleted \Seen \Draft)* OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)] Flags permitted.* 27 EXISTS* 1 RECENT* OK [UNSEEN 27] First unseen.* OK [UIDVALIDITY 1182176824] UIDs valid* OK [UIDNEXT 28] Predicted next UID02 OK [READ-WRITE] Select completed.03 status inbox (messages)* STATUS "inbox" (MESSAGES 27)03 OK Status completed.04 fetch 1 rfc822* 1 FETCH (RFC822 {2328}Return-Path: <[email protected]>X-Original-To: atkosaDelivered-To: [email protected]: by mail.akarmi.intra (Postfix, from userid 0)id 3BCBF41C4; Mon, 18 Jun 2007 10:44:03 +0100 (CET)To: [email protected]: teszt001Message-Id: <[email protected]>Date: Mon, 18 Jun 2007 10:44:03 +0100 (CET)From: [email protected] (root)Mon Jun 18 10:44:02 CET 2007)04 OK Fetch completed.05 logout* BYE Logging out05 OK Logout completed.read:errno=0

2007. december 22. Kósa Attila <[email protected]>

Page 74: kosa_attila_halozat.pdf

74 Debian GNU/Linux

Kósa Attila <[email protected]> 2007. december 22.

Page 75: kosa_attila_halozat.pdf

10. fejezet

Proxy

A sávszélesség az, ami sohasem elég. Emiatt minden alkalmat meg kell ragadnunk, hogy teher-mentesítsük a vonalunkat. Erre jó lehet®séget nyújtanak a proxy szerverek, amelyek eltároljáka rajtuk keresztül leszedett tartalmakat, és az ugyanazt kér® felhasználóknak már a tárolt tar-talmat szolgáltatják1.De nem csak a sávszélességünk védelme lehet az egyetlen ok, ami miatt proxy-t szeretnénkhasználni.• Például nem akarunk minden felhasználónak Internet-elérési jogosultságot adni.• Bizonyos tartalmak, oldalak elérését nem akarjuk engedélyezni felhasználóinknak.• Tudni szeretnénk, hogy felhasználóink merre barangolnak az Interneten, mivel foglalkoz-nak a munkaidejükben. Ezzel kapcsolatban �gyelnünk kell arra, hogy ne sértsük meg ahatályos törvényeket!A példában az egész bels® hálózatból érkez® felhasználók használhatják a proxy szolgáltatást,ha képesek egy � az LDAP-ban lév® � érvényes felhasználói névvel és jelszóval azonosítanimagukat. Ha a böngész®jük képes NTLM authentikációra, akkor a proxy elintézi az azonosításta háttérben a tartományvezérl®vel, ellenkez® esetben a felhasználó el®tt meg fog jelenni egyablak, amelybe beírhat egy felhasználói nevet és jelszót.

10.1. SquidA telepítés nem bonyolult.# apt-get install squid

A kon�gurálás idejére állítsuk le, és töröljük a cache könyvtárakat (mert valószín¶leg nemfelel meg az alapértelmezésben megadott 100MB terület).# /etc/init.d/squid stop# rm -rf /var/spool/squid/*A /etc/squid könyvtárban találjuk meg a kon�gurációs állományt squid.conf néven. Na-gyon sok beállítás attól függ, hogy mennyi memória áll a rendelkezésünkre a használt gépben,ezért ezekre most nem térek ki.Ha készen vagyunk a kon�gurálással, akkor indítsuk el (induláskor ellen®rzi, hogy a cachekönyvtárak megvannak-e, ha nincsenek, akkor létrehozza ®ket).# /etc/init.d/squid startStarting proxy server: Creating squid spool directory structure2007/05/12 12:04:59| Creating Swap Directoriessquid.

1Ennél persze árnyaltabb a dolog, például a https-en elérhet® tartalmat nem tárolják a proxy-k.

75

Page 76: kosa_attila_halozat.pdf

76 Debian GNU/Linux10.1.1. 1 proxy a hálózatban

Rengeteg beállítási lehet®ség áll a rendelkezésünkre, most csak a m¶ködéshez legszükségeseb-beket vesszük szemügyre (el®ször arra az esetre koncentrálva, amikor egyetlen proxy-nk van).http_port 3128icp_port 0htcp_port 0client_netmask 255.255.255.255ftp_user [email protected]_passive onauth_param ntlm program /usr/lib/squid/ntlm_auth TARTOMANY\\sambaauth_param ntlm children 5auth_param ntlm keep_alive on#auth_param ntlm max_challenge_reuses 0#auth_param ntlm max_challenge_lifetime 2 minutes#auth_param ntlm use_ntlm_negotiate onauth_param basic program /usr/lib/squid/pam_auth -n squidauth_param basic children 5auth_param basic realm Squid proxy-caching web serverauth_param basic credentialsttl 2 hoursauth_param basic casesensitive offauthenticate_ip_ttl 2 houracl password proxy_auth REQUIREDacl our_networks src 192.168.10.0/24http_access allow our_networks passwordhttp_access allow localhosthttp_access deny allicp_access deny alllogfile_rotate 0append_domain .akarmi.intralog_icp_queries offquery_icmp offerror_directory /usr/share/squid/errors/Hungariansnmp_port 0snmp_access deny all

10.1.2. 2 proxy a hálózatban

Ebben az alfejezetben azt szeretném bemutatni, hogy miképpen kell beállítani 2 proxy-t úgy,hogy csak az egyik érheti el az Internetet, a másik pedig csak rajta keresztül kérhet le bármitis.Itt most csak azokat az opciókat mutatom be, amelyek szükségesek ahhoz, hogy a két proxyegyütt tudjon m¶ködni, illetve a második (az Internetre közvetlenül ki nem látó) proxy mögöttifelhasználók is elérjék az engedélyezett oldalakat.Az els® proxy beállításai (amely közvetlenül kilát az Internetre):

http_port 3128icp_port 3130htcp_port 0acl our_networks src 192.168.10.0/24acl slave_proxy src 192.168.88.29/255.255.255.255http_access allow slave_proxyhttp_access allow our_networks passwordhttp_access allow localhosthttp_access deny allicp_access allow slave_proxyicp_access deny alllog_icp_queries onalways_direct allow allA második proxy beállításai (amely közvetlenül nem lát ki az Internetre, csak az els® proxy-nkeresztül):

http_port 3128icp_port 3130htcp_port 0cache_peer proxy.akarmi.intra parent 3128 0 defaultacl our_networks src 192.168.88.0/24http_access allow our_networks passwordhttp_access allow localhosthttp_access deny allicp_access deny alllog_icp_queries offnever_direct allow all

Kósa Attila <[email protected]> 2007. december 22.

Page 77: kosa_attila_halozat.pdf

Debian GNU/Linux 7710.2. Automatikus proxybeállításEz nem a szervereket, hanem a munkaállomásokat érint® dolog. Az elterjedt böngész®k képesekarra (és alapértelmezésben úgy is vannak beállítva), hogy automatikusan keressenek egy állo-mányt egy webszerveren, amelyet letöltve be tudják állítani saját magukat. Ezt az állományt awpad nev¶ webszerveren fogják keresni (ahol a wpad után a kliens által ismert teljes domainnév áll), proxy.pac néven.Létre kell hoznunk a megfelel® helyen egy proxy.pac nev¶ állományt. Az Interneten talál-ható leírások alapján célszer¶nek látszik két szoftlinket is létrehozni erre az állományra, hogybiztosan minden elterjedt böngész® megtalálja.# ln -s proxy.pac wpad.da# ln -s proxy.pac wpad.dat

A proxy.pac fájl tartalma (a teljesség igénye nélkül):function FindProxyForURL(url, host){ if (shExpMatch(host, "*.akarmi.intra")||shExpMatch(host, "*.akarmi.intra"))return "DIRECT";if (isPlainHostName(host))return "DIRECT";if (dnsDomainIs(host, "akarmi.intra"))return "DIRECT";if (isInNet(host, "192.168.10.0", "255.255.255.0"))return "DIRECT";if (url.substring(0, 5) == "http:" ||url.substring(0, 4) == "ftp:" ||url.substring(0, 4) == "FTP:" ||url.substring(0, 5) == "HTTP:" ||url.substring(0, 6) == "https:" ||url.substring(0, 6) == "HTTPS:" ||url.substring(0, 7) == "gopher:")return "PROXY proxy:3128";return "DIRECT";}

Lehet®ségeket és példákat a Bibliográ�ában látható ([10]) anyagban olvashatunk.

2007. december 22. Kósa Attila <[email protected]>

Page 78: kosa_attila_halozat.pdf

78 Debian GNU/Linux

Kósa Attila <[email protected]> 2007. december 22.

Page 79: kosa_attila_halozat.pdf

11. fejezet

Web

Az egyetlen IP címmel rendelkez® webszerverünkön több site-ot szeretnénk üzemeltetni. Ehhez awebszervernek képesnek kell lennie arra, hogy szétválogassa a beérkez® kéréseket, és a megfelel®szerverhez továbbítsa. Ezt a böngész® által küldött kérés �Host� fejlécének tartalma alapjántudják megtenni a szerverek.Ezen lehet®ség bemutatására hozzunk létre 2 különböz® szervert, egyet az intrawebnek ésegy másikat a wpadnak sima HTTP-n, és egy HTTPS-en elérhet®t, amelyet szintén intrawebnéven lehet megszólítani.11.1. Apache HTTP-n11.1.1. Telepítés és kon�gurálás

A telepítés egyszer¶en a következ® paranccsal oldható meg:# apt-get install apacheA legegyszer¶bb, ha azonnal leállítjuk az elinduló szervert (/etc/init.d/apache stop),majd elindítjuk a dpkg-reconfigure parancsot, hogy újrakon�guráljuk az apache-ot.# dpkg-reconfigure -plow apacheVálaszok a kérdésekre:Would you like to start apache at boot time? YesEnable suExec? NoPlease select the modules that apache will load (itt választanunk kell, hogy mely modulokat szeretnénk használni)Set the FQDN for apache default server intraweb.akarmi.intraSet the email address of the apache administrator [email protected] the directory that will contain the web pages for apache default server /var/wwwSet the TCP port on which the apache server will listen 80Ismét állítsuk le, hogy ne zavarjon a kon�gurálás ideje alatt.# /etc/init.d/apache stopA /etc/apache/httpd.conf fájlba tegyük bele a következ® sort:NameVirtualHost 192.168.10.247:80Ez biztosítja annak a lehet®ségét, hogy egy IP címen több webszervert használhassunk.A /etc/apache/conf.d könyvtárban kell elhelyeznünk a szükséges kon�gurációs állományo-kat. A fájlok nevei nem lényegesek, de itt is célszer¶ � a már sokszor emlegetett � �beszédes�neveket alkalmazni. Tehát az intraweb kiszolgálásáért felel®s szerver kon�gurációs állományátnevezzük intraweb-nek, míg a wpad nev¶ webszerver állományának a neve legyen wpad.1 Ésmost nézzük a fájlok tartalmát.Az intraweb fájl tartalma:

1Ezt meg lehetne oldani egyetlen szerverrel (hiszen a ServerAlias opció segítségével megadhatnánk neki awpad.akarmi.intra nevet is), csak a példa kedvéért csináltam két virtuális szerverrel.

79

Page 80: kosa_attila_halozat.pdf

80 Debian GNU/Linux

<VirtualHost 192.168.10.247:80>ServerName intraweb.akarmi.intraServerAlias intrawebServerAdmin [email protected] /var/log/apache/intraweb-error.logCustomLog /var/log/apache/intraweb-access.log commonDocumentRoot /var/www/intraweb/<Directory />AllowOverride None</Directory><Directory /var/www/intraweb/>AllowOverride NoneOrder allow,denyallow from all</Directory></VirtualHost>A wpad fájl tartalma:

<VirtualHost 192.168.10.247:80>ServerName wpad.akarmi.intraServerAlias wpadServerAdmin [email protected] /var/log/apache/wpad-error.logCustomLog /var/log/apache/wpad-access.log commonDocumentRoot /var/www/wpad/<Directory />AllowOverride None</Directory><Directory /var/www/wpad/>AllowOverride NoneOrder allow,denyallow from all</Directory></VirtualHost>A fentiek alapján a /var/www/wpad könyvtárba kell elhelyeznünk a 10.2. fejezetben be-mutatott proxy.pac kon�gurációs állományt (és a linkeket is).A /etc/logrotate.d/apache fájlban látható, hogy azért érdemes .log kiterjesztést adni alogfájljainknak, mert így automatikusan rotálódni fognak.

11.2. Apache HTTPS-enHa https-en elérhet® weboldalakat szeretnénk az apache segítségével létrehozni és üzemeltetni,akkor szükséges a libapache-mod-ssl csomag telepítése. Ez fel fogja tenni a openssl csomagotis, ha még nem lenne fent.# apt-get install libapache-mod-ssl

A csomag telepítésekor a /etc/apache/modules.conf fájlba bekerül a mod_ssl.so, tehátbe fogja tölteni a következ® újraindításkor.Az ssl fájl (HTTPS-t megvalósító) tartalma:<VirtualHost 192.168.10.247:443>ServerName intraweb.akarmi.intraServerAlias intrawebServerAdmin [email protected] /var/log/apache/intraweb-ssl-error.logCustomLog /var/log/apache/intraweb-ssl-access.log commonDocumentRoot /var/www/intraweb-ssl/<Directory />AllowOverride None</Directory><Directory /var/www/intraweb-ssl/>AllowOverride NoneOrder allow,denyallow from all</Directory>SSLEngine onSSLCertificateFile /etc/ssl/certs/intraweb.akarmi.intra.crtSSLCertificateKeyFile /etc/ssl/private/intraweb.akarmi.intra.key.nopassSSLCACertificateFile /etc/ssl/certs/CA.crt</VirtualHost>

# cp intraweb.akarmi.intra.crt CA.crt /etc/ssl/certs/# cp intraweb.akarmi.intra.key.nopass /etc/ssl/private/# chmod 600 /etc/ssl/private/intraweb.akarmi.intra.key.nopass# chmod 644 /etc/ssl/certs/*.crt

Kósa Attila <[email protected]> 2007. december 22.

Page 81: kosa_attila_halozat.pdf

Debian GNU/Linux 81Egy apró változtatást kell végrehajtanunk a /etc/apache könyvtárban lév® httpd.conffájlunkon is, hogy http-n és https-en is elérhet® legyen. A Port 80 opciót ki kell kommenteznünk,és helyette be kell írnunk a Listen 192.168.10.247:80 és a Listen 192.168.10.247:443 sorokat.Figyeljünk arra, hogy ebben az esetben a localhoston (a 127.0.0.1-es IP címen) nem fog válaszolnia szerverünk!

2007. december 22. Kósa Attila <[email protected]>

Page 82: kosa_attila_halozat.pdf

82 Debian GNU/Linux

Kósa Attila <[email protected]> 2007. december 22.

Page 83: kosa_attila_halozat.pdf

12. fejezet

Naplózás

Központi logszerver beállításáról, valamint az összegy¶jtött logok automatikus elemzésér®l szólez a fejezet.A logok távoli szerverre történ® eljuttatása fontos dolog, például egy esetleges betörés alkal-mával lehet®séget nyújthat annak rekonstruálására, hogy mi is történt a megtámadott gépen,még akkor is, ha a támadó eltünteni az adott gépen a behatolás nyomait. A logok meg®rzéseakár törvényi kötelezettségként is jelentkezhet!Egyrészt azért célszer¶ a központi logszerveren végezni a logok elemzését, mert így nemszükséges diszkterületet, processzorid®t és memóriát (egyszóval er®forrásokat) áldozni mindenegyes gépen erre a feladatra. Másrészt így a logelemzést végz® szoftvert és a keresési feltételeketcsak egyetlen helyen kell karbantartani.

12.1. logcheckA logok elemzésére a logcheck nev¶ programcsomagot használhatjuk. Telepítése egyszer¶enaz alábbi paranccsal végezhet® el (feltételezem, hogy a 8.1.5. fejezetben leírtak már készenvannak):# apt-get install logcheck logcheck-database

Figyelembe kell vennünk, hogy a logcheck alapbeállítások esetén a logcheck nev¶ felhasz-náló (és a logcheck nev¶ csoport) nevében fut, ezért az elemezni kívánt logokhoz olvasási jogokatkell biztosítani, illetve a logokat tartalmazó könyvtárakhoz is a megfelel® jogokat kell biztosíta-nunk. Mivel a logcheck pontosan ismeri az elemzésre kijelölt fájlok nevét, ezért nem szükségesolvasási jogot is adnunk a könyvtárakra, elég a végrehajtási jog, de a fájlokra olvasási jogot kellbeállítanunk. Ennek a kon�gurálása látható a szerverr®l szóló 12.4.1. fejezetben (a 86. olda-lon).A logcheck is kon�gurálásra szorul. A /etc/logcheck könyvtárban található az ehhezszükséges 2 fájl, a logcheck.conf és a logcheck.logfiles. A logcheck.logfiles fájlbankell felsorolnunk azokat az állományokat, amelyekben szeretnénk, ha keresne a logcheck. Azösszes szerverünk syslog fájlját vegyük fel a következ®képpen (a sorrend lényegtelen):/var/log/GEPEK/127.0.0.1/syslog/var/log/GEPEK/192.168.10.254/syslog/var/log/GEPEK/192.168.10.253/syslog/var/log/GEPEK/192.168.10.252/syslog/var/log/GEPEK/192.168.10.251/syslog/var/log/GEPEK/192.168.10.250/syslog/var/log/GEPEK/192.168.10.249/syslog/var/log/GEPEK/192.168.10.248/syslog/var/log/GEPEK/192.168.10.247/syslog

A logcheck.conf fájlt javítsuk ki ízlésünknek megfelel®en, például ilyenre:

83

Page 84: kosa_attila_halozat.pdf

84 Debian GNU/Linux

DATE="$(date +'%Y-%m-%d %H:%M')"INTRO=0REPORTLEVEL="server"SENDMAILTO="[email protected]"FQDN=1SORTUNIQ=0SUPPORT_CRACKING_IGNORE=1RULEDIR="/etc/logcheck"SYSLOGSUMMARY=0ATTACKSUBJECT="Attack Alerts"SECURITYSUBJECT="Security Events"EVENTSSUBJECT="System Events"ADDTAG="yes"Ennek eredményeként az alábbihoz hasonló fejléc¶ e-mail-eket fogunk kapni:Date: Wed, 4 Apr 2007 22:03:49 +0200 (CEST)From: [email protected] (logcheck system account)To: [email protected]: [logcheck] syslog.akarmi.intra 2007-04-04 22:02 System EventsA REPORTLEVEL változó alapértelmezésben a server értéket tartalmazza. Két másik vá-lasztási lehet®ségünk van, a workstation és a paranoid. Ehhez kapcsolódnak a ignore.d.* könyv-tárak. Ezen könyvtárak (pontosabban az ezekben a könyvtárakban lév® fájlok tartalma) segít-ségével tudjuk azt beállítani, hogy milyen logrészleteket hagyjon �gyelmen kívül a logcheck,melyeket ne tegyen bele az elküldött e-mail-be. Célszer¶nek látszik, ha nem a disztribúció cso-magjai által odatett fájlokba írjuk bele, hogy mi nem érdekel bennünket, mert egy esetlegesfrissítés alkalmával ezen fájlok felülíródhatnak, és ezzel elveszítenénk a saját bejegyzéseinket.Ezért hozzunk létre egy fájlt a megfelel® könyvtárban (a REPORTLEVEL változó által meg-határozott könyvtárban), és abba tegyük saját bejegyzéseinket.

12.2. logrotate12.2.1. A szerveren

Ne felejtsük el, hogy amiatt, hogy a syslog-ng-vel az alapbeállításoktól eltér®en tároljuk (alogszerveren) a logokat, módosítanunk kell a logok rotálását végz® program kon�gurációs állo-mányát. Ez a /etc/logrotate.d/syslog-ng fájl. Írjuk át az alábbira:/var/log/GEPEK/192.168.10.*/syslog {rotate 7dailycompress}/var/log/GEPEK/192.168.10.*/postfix {rotate 7dailycompress}/var/log/GEPEK/127.0.0.1/postfix {rotate 7dailycompress}/var/log/GEPEK/127.0.0.1/syslog {rotate 7dailycompresspostrotate/etc/init.d/syslog-ng reload >/dev/nullendscript}

Ez minden nap el fogja rotálni a logfájlokat, tömöríteni fogja ®ket, de mindig csak az utolsó7 nap logja fog megmaradni, a régebbiek törl®dnek.12.2.2. A klienseken

A klienseken nincs szükség ilyen átkon�gurálásra, mert ott marad a syslog fájl a /var/logkönyvtárban. Tehát ott mindössze ennyit kell tartalmaznia a fenti állománynak (a feleslegessorokat töröljük ki bel®le nyugodtan):

Kósa Attila <[email protected]> 2007. december 22.

Page 85: kosa_attila_halozat.pdf

Debian GNU/Linux 85

/var/log/syslog {rotate 7dailycompresspostrotate/etc/init.d/syslog-ng reload >/dev/nullendscript}

12.3. p�ogsummTelepítsük fel a postfix logjainak az elemzésére alkotott szoftvert:# apt-get install pflogsumm# zcat /var/log/GEPEK/192.168.10.252/postfix.1.gz | \pflogsumm -d yesterday -i --problems_first -q --smtpd_stats | \mailx -s "Levelezési statisztika: `/bin/date --date '-1 day' +%Y%m%d`" [email protected]

A fenti parancs hatására kapunk egy ilyen e-mail-t (jó esetben nem ennyire üreset, hanemhasznos adatokat tartalmazót):Date: Wed, 4 Apr 2007 22:44:55 +0200 (CEST)From: [email protected] (root)To: [email protected]: Levelezési statisztika: 20070403Postfix log summaries for Apr 3Grand Totals------------messages0 received0 delivered0 forwarded0 deferred0 bounced0 rejected (0%)0 reject warnings0 held0 discarded (0%)0 bytes received0 bytes delivered0 senders0 sending hosts/domains0 recipients0 recipient hosts/domainssmtpd 0 connections0 hosts/domains0 avg. connect time (seconds)0:00:00 total connect timeFatal Errors: nonePanics: nonePer-Hour Traffic Summarytime received delivered deferred bounced rejected--------------------------------------------------------------------0000-0100 0 0 0 0 00100-0200 0 0 0 0 00200-0300 0 0 0 0 00300-0400 0 0 0 0 00400-0500 0 0 0 0 00500-0600 0 0 0 0 00600-0700 0 0 0 0 00700-0800 0 0 0 0 00800-0900 0 0 0 0 00900-1000 0 0 0 0 01000-1100 0 0 0 0 01100-1200 0 0 0 0 01200-1300 0 0 0 0 01300-1400 0 0 0 0 01400-1500 0 0 0 0 01500-1600 0 0 0 0 01600-1700 0 0 0 0 01700-1800 0 0 0 0 01800-1900 0 0 0 0 01900-2000 0 0 0 0 02000-2100 0 0 0 0 02100-2200 0 0 0 0 02200-2300 0 0 0 0 02300-2400 0 0 0 0 0Host/Domain Summary: Message Deliverysent cnt bytes defers avg dly max dly host/domain

2007. december 22. Kósa Attila <[email protected]>

Page 86: kosa_attila_halozat.pdf

86 Debian GNU/Linux-------- ------- ------- ------- ------- -----------Host/Domain Summary: Messages Receivedmsg cnt bytes host/domain-------- ------- -----------Per-Hour SMTPD Connection Summaryhour connections time conn. avg./conn. max. time--------------------------------------------------------------------Host/Domain Summary: SMTPD Connectionsconnections time conn. avg./conn. max. time host/domain----------- ---------- ---------- --------- -----------

Ha m¶ködik, és ezt szeretnénk, akkor már csak el kell helyeznünk például a /etc/cron.dailykönyvtárban, egy pflogsumm nev¶ fájlban1 a fenti parancsokat.12.4. syslog-ng12.4.1. A szerveren

Azért javaslom a magyar fejlesztés¶ syslog-ng csomagot, mert sokoldalúbban kon�gurálható,mint a gyárilag a disztribúcióban lév® sysklogd és klogd csomagok. Ezek a csomagok ütközneka felrakni kívánt csomaggal, ezért ezeket le kell takarítanunk. Ehhez a következ® parancsokatkell kiadnunk:# apt-get install syslog-ng# dpkg --purge sysklogd klogd# cd /var/log && mkdir GEPEK && chmod 710 GEPEK && chown 0:logcheck GEPEK# /etc/init.d/syslog-ng stop

Miel®tt elindítanánk a syslog-ng-t, a /etc/syslog-ng könyvtárba másoljuk be az alábbikon�gurációs állományt.options { sync(0); time_reopen(10); log_fifo_size(1000);long_hostnames(off); use_dns(no); use_fqdn(no);create_dirs(yes); dir_perm(0710); dir_group(logcheck);keep_hostname(yes); stats_freq(0);};source src { unix-stream("/dev/log" max_connections(200));internal();tcp(ip(192.168.10.249) port(514) max-connections(10));file("/proc/kmsg");};filter y_postfix { match("postfix"); };destination syslog { file("/var/log/GEPEK/$SOURCEIP/syslog" perm(0640) group("logcheck") ); };destination postfix { file("/var/log/GEPEK/$SOURCEIP/postfix" perm(0600) ); };log { source(src); destination(syslog); };log { source(src); filter(y_postfix); destination(postfix); };

Lássuk, mi történik a logjainkkal ennek hatására. A /var/log/GEPEK/$SOURCEIP könyv-tárban lév® syslog fájlba minden log bekerül. A $SOURCEIP változót a syslog-ng képes ki-fejteni és a logot küld® gép IP címét behelyettesíteni. Ezáltal a logokat gy¶jt® szerveren min-den gépnek saját könyvtárba kerülnek a logjai, ezzel is követhet®bbé válik a logolás. A �l-ter y_post�x kezdet¶ sorban látható post�x egyezés (match) által meghatározott logok kerül-nek a /var/log/GEPEK/$SOURCEIP könyvtárban lév® postfix fájlba (de ezek is bekerülnek a/var/log/GEPEK/$SOURCEIP/syslog fájlba!). A perm opció azért felel, hogy a létrejöv® állo-mány jogosultságai 0640-ra legyenek beállítva. A group opcióval a létrejöv® állomány csoporttu-lajdonosát állíthatjuk be. Gyakorlatilag szétszedhetjük a logokat tetsz®leges elvek szerint, a fenticsak egy példa. Azért javaslom a TCP használatát UDP helyett, mert az UDP nem megbízhatókapcsolat, ezért el®fordulhat, hogy elvesznek logok.12.4.2. A klienseken

A /etc/syslog-ng/syslog-ng.conf fájl tartalma a klienseken:1Más nevet is választhatunk.

Kósa Attila <[email protected]> 2007. december 22.

Page 87: kosa_attila_halozat.pdf

Debian GNU/Linux 87

options { sync(0); time_reopen(10); log_fifo_size(1000);long_hostnames(off); use_dns(no); use_fqdn(no);create_dirs(no); keep_hostname(yes); stats_freq(0);};source src { unix-stream("/dev/log" max_connections(200));internal();file("/proc/kmsg");};destination syslog { file("/var/log/syslog" perm(0600) ); };destination loghost { tcp( 192.168.10.249 port(514) ); };log { source(src); destination(loghost); };log { source(src); destination(syslog); };Minden log a /var/log/syslog fájlba kerül, valamint átkerül a 192.168.10.249 IP cím¶központi logszerverre (az IP cím helyett írhattunk volna gépnevet is). A klienseken nincs szükség,hogy a root-on kívül bárkinek olvasási jogot biztosítsunk a logfájlra, hiszen az elemzést végz®program a központi logszerveren fut.

2007. december 22. Kósa Attila <[email protected]>

Page 88: kosa_attila_halozat.pdf

88 Debian GNU/Linux

Kósa Attila <[email protected]> 2007. december 22.

Page 89: kosa_attila_halozat.pdf

13. fejezet

Mentés

Egyszer¶ feladatot vázoltam fel ebben a fejezetben. Egy távoli gép meghatározott könyvtárátkell minden nap teljes egészében lementeni merevlemezre, a hónap utolsó napján pedig szalagosmeghajtóra. De ez az egyszer¶ség nem jelenti azt, hogy a bemutatott program mindössze errelenne képes.13.1. Amanda13.1.1. A kliens telepítése és beállítása

A kliens szoftver telepítése el®tt kénytelenek vagyunk valamilyen levelez®szervert felrakni, mertaz amanda-client függ®ségei között szerepel valamilyen MTA. Ehhez a feladathoz tanulmá-nyozzuk a 8.1.5. fejezetet (persze a megfelel® módosításokat értelemszer¶en hajtsuk végre).# apt-get install amanda-clientA telepítés közben látható, hogy a backup felhasználót hozzáadja a disk és a tape csoporthozaz amanda-common csomag postinst szkriptje.Setting up amanda-common (2.5.1p1-2.1) ...Adding user `backup' to group `disk' ...Done.Adding user `backup' to group `tape' ...Done.Szükség van inetd-re (vagy xinetd-re) a kliensen is az Amanda m¶ködéséhez. Az alábbi sorkerül bele a fenti telepítéskor a /etc/inetd.conf fájlba:

amanda dgram udp wait backup /usr/sbin/tcpd /usr/lib/amanda/amandadNe felejtsük el elindítani az openbsd-inetd démont, különben az amanda nem lesz m¶köd®-képes!A netstat -napu parancs kimenetében látható, hogy a 10080-as porton �gyel az inetd,pontosabban az általa felügyelt amanda.A /etc/amandahosts fájlba be kell írni a mentést végz® gép teljes nevét, valamint a mentéstvégz® felhasználó nevét. Alapértelmezésben szerepel benne a localhost backup páros, de kikell egészítenünk, hogy az alábbi módon nézzen ki:

localhost backupbackup.akarmi.intra backupAz exclude-list opciónak megadott fájlnak (a szerveren a exclude.gtar nevet adtuk meg),léteznie kell a kliensen is (a megfelel® elérési útvonalon). A kliens telepítése nem hozza eztlétre (mivel nem tudhat róla, hogy a szerveren mi mit állítottunk be), tehát nekünk kell eztmegtennünk.

89

Page 90: kosa_attila_halozat.pdf

90 Debian GNU/Linux# mkdir /etc/amanda# touch /etc/amanda/exclude.gtar# touch /etc/amanda/amanda-client.conf# chmod 0770 /etc/amanda# chmod 440 /etc/amanda/exclude.gtar /etc/amanda/amanda-client.conf# chown -R backup:backup /etc/amanda

Az amanda-client.conf nev¶ fájlba írjuk bele az alábbiakat:conf "napi_backup"index_server "backup.akarmi.intra"tape_server "backup.akarmi.intra"auth "ssh"ssh_keys "/root/.ssh/id_rsa_amrecover"

Ezzel a kliens beállításával készen is vagyunk. A kliens mentéséhez a szerveren (a megfelel®disklist fájlban) kell megadnunk, hogy mit is szeretnénk menteni a kliensr®l.13.1.2. A szerver telepítése

A szerver telepítése:# apt-get install amanda-serverEz felteszi az amanda-server és amanda-common csomagokat (persze az összes függ®séggelegyütt).A telepítés közben látható, hogy a backup felhasználót hozzáadja a disk és a tape csoporthozaz amanda-common csomag postinst szkriptje.Setting up amanda-common (2.5.1p1-2.1) ...Adding user `backup' to group `disk' ...Done.Adding user `backup' to group `tape' ...Done.Ha a mentést végz® gépr®l is szeretnénk mentést készíteni, akkor fel kell telepítenünk aamanda-client csomagot is.# apt-get install amanda-clientSzükség van inetd-re (vagy xinetd-re) a szerveren is az Amanda m¶ködéséhez. Az alábbisorok kerülnek bele a fenti telepítéskor a /etc/inetd.conf fájlba:

amandaidx stream tcp nowait backup /usr/sbin/tcpd /usr/lib/amanda/amindexdamidxtape stream tcp nowait backup /usr/sbin/tcpd /usr/lib/amanda/amidxtapedamanda dgram udp wait backup /usr/sbin/tcpd /usr/lib/amanda/amandadNe felejtsük el elindítani az openbsd-inetd démont, különben az amanda nem lesz m¶köd®-képes!A netstat -napu parancs kimenetében látható, hogy a 10080-as porton �gyel az inetd,pontosabban az általa felügyelt amanda. A netstat -natp kimenetében pedig az 10082-es és10083-as portok láthatóak. A /etc/services fájlban tudjuk megnézni, hogy melyik portotmelyik szolgáltatás használja.A telepítés után a /etc/amanda könyvtárban találunk egy fájlt (crontab.amanda) és egykönyvtárat (DailySet1). A DailySet1 könyvtár két fájlt tartalmaz, egy amanda.conf és egydisklist nev¶t. Mindezek csak minták, hasonlóakat kell létrehoznunk ahhoz, hogy m¶köd®mentési rendszerünk legyen. A /etc/amanda könyvtárban hozzunk létre egy könyvtárat (cél-szer¶nek t¶nik aszerint elnevezni, amilyen célt fog szolgálni, például a napi mentésekhez adjukneki a napi_backup nevet). A napi_backup könyvtárba fogjuk létrehozni saját amanda.conf ésdisklist fájlunkat. A havi mentésekhez hozzunk létre egy új könyvtárat, például havi_backupnéven. Ebben is ugyanúgy létre kell majd hoznunk saját amanda.conf és disklist fájlunkat.Nem szabad elfelejtenünk, hogy a backup felhasználónak és csoportnak kell adnunk a könyvtára-kat és fájlokat! Erre azért van szükség, mert ezekben a könyvtárakban adminisztrálja az Amandaa szalagokkal kapcsolatos dolgokat (a tapelist, tapelist.amlabel, tapelist.yesterday,changer-access, changer-clean, és changer-slot nev¶ fájlokban). Hozzuk létre a szüksé-ges könyvtárakat, valamint állítsuk be a tulajdonosukat és a jogosultságokat.

Kósa Attila <[email protected]> 2007. december 22.

Page 91: kosa_attila_halozat.pdf

Debian GNU/Linux 91# mkdir -p /etc/amanda/napi_backup /etc/amanda/havi_backup /holding /backup /var/lib/amanda/napi_backup/curinfo /var/lib/amanda/napi_backup/index \/var/lib/amanda/napi_backup/log /var/lib/amanda/havi_backup/curinfo /var/lib/amanda/havi_backup/index /var/lib/amanda/havi_backup/log \/var/log/amanda/napi_backup/log /var/log/amanda/havi_backup/log# touch /etc/amanda/exclude.gtar /etc/amanda/napi_backup/tapelist /etc/amanda/havi_backup/tapelist# chmod -R 0770 /holding /backup /etc/amanda/napi_backup /etc/amanda/havi_backup /var/lib/amanda/napi_backup /var/lib/amanda/havi_backup \/var/log/amanda/napi_backup/log /var/log/amanda/havi_backup/log# chmod 0440 /etc/amanda/exclude.gtar# chmod 0660 /etc/amanda/napi_backup/tapelist /etc/amanda/havi_backup/tapelist# chown -R backup:backup /holding /backup /etc/amanda/napi_backup /etc/amanda/havi_backup /var/lib/amanda/napi_backup/ /var/lib/amanda/havi_backup \/etc/amanda/exclude.gtar /var/log/amanda/napi_backup/log /var/log/amanda/havi_backup/log13.1.3. Általános kon�gurációs beállítások

A /var/backups könyvtárban található egy .amandahosts nev¶ link, amely a /etc könyvtárbanlév® amandahosts fájlra mutat. Már szerepel benne a localhost backup páros, de egészítsükki a következ®képpen:localhost backupbackup.akarmi.intra backupTehát a gép teljes nevét, és a backup felhasználói nevet kell feltüntetni.A mentési stratégia kialakításában viszonylag szabad kezünk van. Lehet®ségünk van a men-tésre alkalmazandó program kiválasztására (jellemz®en a dump és a tar programot használjuk,de a dump esetén ellen®rizni kell, hogy képes-e a fájlrendszerünk mentésére).Meglehet®sen sok opciót használhatunk, de csak a példában használtak magyarázatát olvas-hatjuk alább:comment Csak megjegyzés megadására szolgál.compress A tömörítési módszer megadása. Az alábbi lehet®ségekb®l választhatunk (az alap-értelmezés a compress client fast):

none Nincs tömörítés.client best A kliens gépen történik a tömörítés és a legjobb tömörítési módot használja.client fast A kliens gépen történik a tömörítés és a leggyorsabb tömörítési módot hasz-nálja.server best A szerver gépen történik a tömörítés és a legjobb tömörítési módot használja.server fast A szerver gépen történik a tömörítés és a leggyorsabb tömörítési módot hasz-nálja.

index Indexfájlokat hoz létre, amelyekben kereshetünk.exclude-list Ennek az opciónak egy fájlt lehet megadni (most az exclude.gtar nev¶t adtukmeg), amelyben azokat a fájlokat és könyvtárakat adhatjuk meg, amelyeket ki akarunkhagyni a mentésb®l. Nézzünk erre is egy példát:

./proc/*./tmp/*Magának a fájlnak mindenképpen léteznie kell, akár üresen is. Figyelni kell arra, hogy (atarmiatt, mert leszedi a / -t a mentés elejér®l) . (pont)-tal kell kezdeni az elérési útvonalakmegadását. Ha csak annyit írnánk, hogy ./proc, akkor a könyvtár neve sem kerül belea mentésbe. Ha azt szeretnénk, hogy a könyvtár neve benne legyen a mentésben, de atartalma nem, akkor a fent kiemelt példának megfelel®en kell megadni a könyvtár nevét.Ennek a visszaállításkor lehet jelent®sége, nem árt erre �gyelni.

A fentieken kívül lehet®ségünk van meghatározni egy prioritási szintet. A low, medium éshigh lehet®ségek közül választhatunk. Ezeknek akkor van jelent®ségük, amikor az Amandánaknem áll rendelkezésére szalag a mentéshez valamilyen hiba miatt. Ekkor a magasabb prioritásúkerül el®ször mentésre.

2007. december 22. Kósa Attila <[email protected]>

Page 92: kosa_attila_halozat.pdf

92 Debian GNU/LinuxA mentend® könyvtárakat (partíciókat) is meg kell határoznunk. Ehhez a disklist fájlt kellmegszerkesztenünk. Ebben a következ®knek kell egy sorba kerülniük:

gep_neve /mentendo strategiaA gep_neve elég egyértelm¶, a mentend® gép nevét kell megadni (én a domain részt nemírtam oda). A /mentendo már érdekesebb, itt megadhatunk könyvtárnevet, illetve partíciónevetis. Tehát az sdb2 is érvényes (használható) de�níció. A strategia helyére írhato dolgokat azamanda.conf fájlban találhatjuk meg (illetve hozhatjuk létre) dumptypes címszó alatt.Például ahhoz, hogy a dns nev¶ gép /etc könyvtárát le tudjuk menteni a saját stratégiánk-kal, a következ®ket kell beleírni a disklist fájlunkba.

dns /etc teljes_mentesAz Amandának szüksége van néhány MB-nyi területre, ahol a log, debug és index fájlo-kat tárolja. Ezek nagyra meg tudnak n®ni, ezért nem ajánlott a /etc/amanda könyvtárbantárolni ®ket. Ezen fájlok helyének beállítására szolgálnak az info�le, log�le és indexdir opciókaz amanda.conf fájlban.A mentés automatizálásához a cron segítségét kell igénybe vennünk. A /etc/cron.d könyv-tárban hozzunk létre egy fájlt (például mentes néven), amelyben határozzunk meg id®pontot(vagy id®pontokat) a szalagok ellen®rzésére, valamint a tényleges mentésre. Az alábbihoz ha-sonlóaknak kell szerepelnie ebben a fájlban.

0 10,15 * * mon-fri backup /usr/sbin/amcheck -a napi_backup55 22 * * mon-fri backup /usr/sbin/amdump napi_backupEzzel azt érjük el, hogy hétf®t®l péntekig minden nap (beleértve a hétf®t és a pénteket is)pontosan 10 és 15 órakor lefusson az amcheck, ily módon ellen®rizve azt, hogy a következ®mentésnek megfelel® szalag található-e a meghajtóban és mindenképpen küldjön e-mail-t azellen®rzés eredményér®l (a -a opció hatására). A -a opció helyett használhatjuk a -m opciót,amely csak probléma esetén küld e-mail-t. A mentés (az amdump futása) hétf®t®l péntekig mindeneste 22 óra 55 perckor indul (amelynek eredményér®l szintén e-mail-ben kapunk jelentést, azamanda.conf fájl mailto opciójában megadott címre vagy címekre).

13.1.4. Merevlemezre történ® mentés

Ehhez úgynevezett virtuális szalagos egységet kell létrehoznunk. Menjünk végig ennek a folya-matnak a lépésein.Fentebb már létrehoztunk egy /backup nev¶ könyvtárat, hogy ebbe mountoljuk a mentésektárolására szolgáló lemezegységet. A fájlrendszerek általában rosszul viselik, ha a telítettségmeghaladja a 90%-ot, ezért ajánlott a következ® �képletet� �gyelembe venni a szükséges diszk-terület kiszámításához:(elérhet® terület ∗ 0.9) >= szalaghossz ∗ szalagszám.

Például egy 20GB-os merevlemez esetén ez a következ®ket jelenti:20GB ∗ 0.9 = 18GB. Tehát a következ® lehet®ségeink vannak:

18GB = 18GB ∗ 1

18GB = 9GB ∗ 2

18GB = 6GB ∗ 3

18GB = 3GB ∗ 6 stb.Létre kell hozni egy tapetype de�níciót a merevlemezhez. Az alábbi egy 3GB-os �szalag�-nakmegfelel® egységet határoz meg:

Kósa Attila <[email protected]> 2007. december 22.

Page 93: kosa_attila_halozat.pdf

Debian GNU/Linux 93

define tapetype HARD-DISK {comment "Mentes merevlemezre"length 3072 mbytes}Nem kötelez® használni a speed opciót, ugyanis az Amanda nem használja ezt. A �lemarkopció használata sem kötelez®, alapértelmezetten 1KB-os értéket tételez fel.Mivel merevlemez esetén meglehet®sen nehézkes lenne cserélgetni a diszkeket, ezért célszer¶úgy megoldani, hogy az Amanda automatikusan váltogassa a mentéshez használt könyvtárakat(mint szalagos meghajtó esetén a szalagokat). Ehhez a csomagban lév® (a /usr/lib/amandakönyvtárban helyet foglaló) chg-disk szkriptet használjuk.Lássuk, hogy mi is kell egy diszkre történ® mentés esetén az amanda.conf fájlunkba.

org "Napi diszkre mentes"mailto "[email protected]"usetimestampsdumpuser "backup"inparallel 4dumporder "BTBTBTBT"taperalgo firstdisplayunit "k"netusage 600 Kbpsdumpcycle 1 weeksrunspercycle 5tapecycle 5 tapesbumpsize 20 MBbumppercent 20bumpdays 1bumpmult 4etimeout 300dtimeout 1800ctimeout 30tapebufs 20runtapes 1tapedev "file:/backup/napi_backup"rawtapedev "file:/backup/napi_backup"changerdev "/dev/null"tpchanger "chg-disk"changerfile "/etc/amanda/napi_backup/changer"maxdumpsize -1tapetype HARD-DISKlabelstr "^NAPIBACKUP[0-9][0-9]*$"amrecover_do_fsf yesamrecover_check_label yesamrecover_changer "file:/backup/napi_backup"autoflush noinfofile "/var/lib/amanda/napi_backup/curinfo"logdir "/var/log/amanda/napi_backup/log"indexdir "/var/lib/amanda/napi_backup/index"define tapetype HARD-DISK {comment "Mentes diszkre"length 3072 mbytes}define dumptype global {comment "Global definitions"holdingdisk neverauth "ssh"ssh_keys "/var/backups/.ssh/id_rsa_amdump"}define dumptype teljes_mentes {globalprogram "GNUTAR"comment "Teljes mentes tar-ral"compress noneindexexclude list "/etc/amanda/exclude.gtar"priority highdumpcycle 0}Merevlemezre történ® mentés esetén nem érdemes átmeneti (holding) területet megadni.Ugyanis el®ször oda hozná létre a mentést az Amanda és onnan másolná át a szalagként funk-cionáló könyvtárba. Ezáltal egy mentés kétszer foglalná a helyet a merevlemezen, valamintfelesleges terhelést okozna a diszknek maga a másolás (hiszen els®re is oda hozná létre a men-tést).És a kon�gurációs állományhoz tartozó magyarázatok1:

org Az ide beírt adat fog megjelenni az e-mail-ek tárgy mez®jében (subject), amelyeket azamcheck és az amdump fog küldeni.1Még hiányzik néhány.

2007. december 22. Kósa Attila <[email protected]>

Page 94: kosa_attila_halozat.pdf

94 Debian GNU/Linuxmailto Az itt megadott e-mail címre fognak érkezni az e-mail-ek. Felsorolhatunk több címetis, szóközökkel elválasztva.usetimestamps Ezen opciót akkor kell használnunk, ha egy nap több mentést is szeretnénkkészíteni. Használatakor ugyanis nem csak az év, hónap és nap kerül bele a mentés �cím-kéjébe�, hanem az óra, perc és másodperc is.dumpuser Ennek a felhasználónak a nevében fognak futni az amcheck és az amdump processzek.inparallel Azt szabályozza, hogy hány mentés futhat párhuzamosan (maximum 63 állíthatóbe).netusage KB/másodpercben megadott érték, amely a hálózat maximális terhelését adja meg.dumpcycle Egy mentési ciklus alatti napok száma.tapecycle A mentési körforgásban használt szalagok száma.etimeout Ennyi másodpercet kap a fájlrendszer becslésére.dtimeout Ennyi másodpercet vár miel®tt a mentést megszakítottnak tekinti.ctimeout Maximum ennyi másodpercet vár az amcheck a mentend® kliensre.runtapes A szalagok száma, hogy mennyit használhat az amdump a futása közben.tapedev A mentésre használt eszköz megnevezése, fontos, hogy �norewinding� eszköz nevét kellitt megadni. Ugyanis Linux alatt többféleképpen is meg lehet szólítani a szalagos meghaj-tót. Tehát: a /dev/st0 az az �univerzális� (mindentudó) meghajtónév, a /dev/nst0 pediga �norewinding� eszköz neve. Mentéskor a /dev/nst0, visszaállításkor pedig a /dev/st0eszköznevet kell használnunk. Ez utóbbi használatára a 98. oldalon láthatunk példát.tapetype Itt határozzuk meg, hogy melyik kés®bb de�niált meghajtót szeretnénk használni.labelstr A labelstr sorba azt kell beírni, hogy hogyan akarjuk nevezni a szalagjainkat. Ez abbanlesz segítségünkre, hogy csak a következ® szalagra fog írni az Amanda, nem fogja felülírniaz éppen lementett anyagainkat.info�le Az adatbázis tárolására szolgáló könyvtárak helyének beállítása.logdir A mentésekr®l szóló logfájlok tárolására szolgáló könyvtár beállítása.indexdir A mentésekben történ® kereséseket segít® indexállományok tárolására szolgáló könyv-tár beállítása. Nem minden mentési stratégia hoz létre indexállományokat.de�ne tapetype A ment®egység adatainak meghatározása. Ebb®l többet is de�niálhatunk, dea neveknek egyedieknek kell lenniük.de�ne dumptype A mentési stratégia meghatározása. Ebb®l többet is de�niálhatunk, de aneveknek egyedieknek kell lenniük. Ezek a de�níciók egymásba is ágyazhatóak, amelyet aglobal de�níció mutat be.

Ha az összes kon�gurációs opciót látni szeretnénk, akkor adjuk ki az alábbi parancsot (ateljes kimenetet nem idézem be, mert elég hosszú):# su - backup$ amadmin napi_backup config | less

Ezután létre kell hoznunk a szalagokat mintázó könyvtárakat, amelyekbe a mentések fognakkerülni.

Kósa Attila <[email protected]> 2007. december 22.

Page 95: kosa_attila_halozat.pdf

Debian GNU/Linux 95# mkdir /backup/napi_backup# cd /backup/napi_backup# touch info# for i in `seq 5` ; do mkdir slot$i ; done# ln -s slot1 data# chown -R backup:backup /backup/napi_backup# chmod -R 750 /backup/napi_backup

Még fel kell címkéznünk a �szalagokat�, hogy az Amanda is tudjon róluk. Ezt már backupuserként kell végrehajtanunk (csakúgy, mint igazi szalagok esetén).# su - backup$ /usr/sbin/amlabel napi_backup NAPIBACKUP01 slot 1labeling tape in slot 1 (file:/backup/napi_backup):rewinding, reading label, not an amanda tape (Read 0 bytes)rewinding, writing label NAPIBACKUP01, checking label, done.$ /usr/sbin/amlabel napi_backup NAPIBACKUP02 slot 2labeling tape in slot 2 (file:/backup/napi_backup):rewinding, reading label, not an amanda tape (Read 0 bytes)rewinding, writing label NAPIBACKUP02, checking label, done.$ /usr/sbin/amlabel napi_backup NAPIBACKUP03 slot 3labeling tape in slot 3 (file:/backup/napi_backup):rewinding, reading label, not an amanda tape (Read 0 bytes)rewinding, writing label NAPIBACKUP03, checking label, done.$ /usr/sbin/amlabel napi_backup NAPIBACKUP04 slot 4labeling tape in slot 4 (file:/backup/napi_backup):rewinding, reading label, not an amanda tape (Read 0 bytes)rewinding, writing label NAPIBACKUP04, checking label, done.$ /usr/sbin/amlabel napi_backup NAPIBACKUP05 slot 5labeling tape in slot 5 (file:/backup/napi_backup):rewinding, reading label, not an amanda tape (Read 0 bytes)rewinding, writing label NAPIBACKUP05, checking label, done.

Lehet®ségünk van a �szalagok� cserélgetésére is:# cd /etc/amanda/napi_backup# /usr/lib/amanda/chg-disk -current5 file:/backup/napi_backup# /usr/lib/amanda/chg-disk -next1 file:/backup/napi_backup

A címkézés után az ötödik �szalag� van a �meghajtóban� (mint a fentebbi példában látható),esetleg érdemes lehet átállítani a nekünk szükséges számú �szalagra�.Teszteljük le a virtuális meghajtónkat:# su - backup$ ammt -f file:/backup/napi_backup/ statusfile:/backup/napi_backup/ status: ONLINE

Ha reseteljük a virtuális meghajtónkat, akkor az els® �szalag� tölt®dik be.# su - backup$ amtape napi_backup resetamtape: changer is reset, slot 1 is loaded.

Az amcheck (backup felhasználóként történ®) futtatásakor a következ®höz hasonló üzenetetkapunk.# su - backup$ /usr/sbin/amcheck napi_backupAmanda Tape Server Host Check-----------------------------slot 1: read label `NAPIBACKUP01', date `X'NOTE: skipping tape-writable testTape NAPIBACKUP01 label okWARNING: tapecycle (5) <= runspercycle (5).NOTE: host info dir /var/lib/amanda/napi_backup/curinfo/dns does not existNOTE: it will be created on the next run.NOTE: index dir /var/lib/amanda/napi_backup/index/dns does not existNOTE: it will be created on the next run.Server check took 1.138 secondsAmanda Backup Client Hosts Check--------------------------------Client check: 1 host checked in 0.458 seconds, 0 problems found(brought to you by Amanda 2.5.1p1)

Láthatjuk, hogy melyik szalagra fog történni a következ® mentés. A WARNING mindössze arra�gyelmeztet bennünket, hogy nincs tartalék ..szalagunk� (hiba esetére), de mivel merevlemezrementünk, felesleges lenne többet de�niálni a használtnál (hiszen ha nem tudja használni, akkora helyette használni kívánt sem m¶ködne, révén ugyanarról a diszkr®l van szó). A NOTE meg-jegyzések arról tájékoztatnak, hogy az újonnan felvett géphez még nem létezik a curinfo és azindex könyvtár.

2007. december 22. Kósa Attila <[email protected]>

Page 96: kosa_attila_halozat.pdf

96 Debian GNU/LinuxHa szerepel egy Host key verification failed. sor az amcheck üzenetében, akkor abackup felhasználó known_hosts fájljában nem jó kulcs szerepel (vagy egyáltalán nem szerepelkulcs). Ekkor a 40. oldalon látható parancsot kell kiadnunk a megfelel® gép nevével.Sikeres mentés esetén egy ehhez hasonló e-mail érkezik az amdump programtól:

From: backup <[email protected]>To: [email protected]: Napi diszkre mentes AMANDA MAIL REPORT FOR April 27, 2007These dumps were to tape NAPIBACKUP01.The next tape Amanda expects to use is: a new tape.The next new tape already labelled is: NAPIBACKUP02.STATISTICS: Total Full Incr.-------- -------- --------Estimate Time (hrs:min) 0:00Run Time (hrs:min) 0:00Dump Time (hrs:min) 0:00 0:00 0:00Output Size (meg) 1.3 1.3 0.0Original Size (meg) 1.2 1.2 0.0Avg Compressed Size (%) -- -- --Filesystems Dumped 1 1 0Avg Dump Rate (k/s) 301.7 301.7 --Tape Time (hrs:min) 0:00 0:00 0:00Tape Size (meg) 1.3 1.3 0.0Tape Used (%) 0.1 0.1 0.0Filesystems Taped 1 1 0Chunks Taped 0 0 0Avg Tp Write Rate (k/s) 275.9 275.9 --USAGE BY TAPE:Label Time Size % Nb NcNAPIBACKUP01 0:00 1312K 0.1 1 0^LNOTES:planner: tapecycle (5) <= runspercycle (5)planner: Adding new disk dns:/etc.taper: tape NAPIBACKUP01 kb 1312 fm 1 [OK]^LDUMP SUMMARY: DUMPER STATS TAPER STATSHOSTNAME DISK L ORIG-KB OUT-KB COMP% MMM:SS KB/s MMM:SS KB/s-------------------------- ------------------------------------- -------------dns /etc 0 1250 1312 -- 0:04 287.4 0:05 275.9(brought to you by Amanda version 2.5.1p1)

Miután lefuttattuk az amdump programot (backup felhasználóként), használhatjuk az alábbiparancsot (is) a mentés ellen®rzésére:# su - backup$ amadmin napi_backup finddate host disk lv tape or file file part status2007-04-27 21:54:09 dns /etc 0 NAPIBACKUP03 1 -- OK

Ami még érdekes (és hasznosnak t¶n®) volt, hogy a length paramétert gond nélkül tudtamnövelni két mentés között (tehát nem mentés közben!), semmilyen problémát nem jelentett azAmanda számára, szépen megértette, hogy a �szalag� mostantól kezdve hosszabb.13.1.5. Szalagos egység beállítása

Ha szerepel a szalagos egységünk az eredeti amanda.conf fájlban, akkor egyszer¶en másoljukát a /etc/amanda/havi_backup/amanda.conf fájlunkba. Ha nem szerepel, akkor le kell futtat-nunk a következ® parancsot:# /usr/sbin/tapetype -f /dev/st0 -t MYDAT

Ez a parancs végigírja a szalagot, ezért csak olyat tegyünk bele, amin nincs fontos adat,mert minden letörl®dik róla! El®ször folyamatosan végigírja, másodszor pedig véletlenszer¶enír, teker, majd megint ír. Meglehet®sen hosszú ideig tart a felismerés folyamata (például egyHP SureStore DAT40, 16508MB-os szalag esetén körülbelül 4 óra). Ha végzett, akkor kiírjaazokat az adatokat, amelyeket be kell írnunk a saját amanda.conf fájlunkba (a MYDAT nevetén választottam, de bármi lehet, csak egyedi legyen):

Kósa Attila <[email protected]> 2007. december 22.

Page 97: kosa_attila_halozat.pdf

Debian GNU/Linux 97

define tapetype MYDAT {comment "just produced by tapetype program"length 16508 mbytesfilemark 452 kbytesspeed 2610 kbytes}Nézzük meg a szalagos mentéshez szükséges teljes kon�gurációs állományt.

org "Havi szalagos mentes"mailto "[email protected]"dumpuser "backup"inparallel 4dumporder "netusage 600dumpcycle 6 weekstapecycle 6 tapesbumpsize 20 MBbumpdays 1bumpmult 4etimeout 300dtimeout 1800ctimeout 30runtapes 1tapedev "/dev/nst0"tapetype MYDATlabelstr "^HAVISZALAG[0-9][0-9]*$"diskdir "/holding"disksize 200 MBinfofile "/var/lib/amanda/havi_backup/curinfo"logfile "/var/lib/amanda/havi_backup/log"indexdir "/var/lib/amanda/havi_backup/index"define tapetype MYDAT {comment "just produced by tapetype program"length 16508 mbytesfilemark 452 kbytesspeed 2610 kbytes}define dumptype teljes_mentes {program "GNUTAR"comment "particiok mentese tar-ral"options index, exclude-list "/etc/amanda/exclude.gtar"priority highdumpcycle 0maxcycle 0}A kon�gurációs állományból csak azokat az opciókat magyarázom el, amelyek eltérnek amerevlemezes mentés esetén alkalmazottaktól.

diskdir Az itt megadott könyvtárban helyezi el az Amanda az átmeneti adatokat, miel®tt kiírná®ket a szalagra. Ez akkor jön jól, ha a hálózaton keresztül több gépr®l kell összeszednünka mentend® adatokat.disksize Az el®z® pontban megadott merevlemez-terület mérete.

Ahhoz viszont meg kell ismertetnünk az Amandával a szalagjainkat (fel kell címkéznünk®ket), hogy tudja, melyik szalag a soron következ®. Ezt az alábbi paranccsal tudjuk megtenni:# su - backup$ /usr/sbin/amlabel havi_backup HAVISZALAG01

A napi_szalag a /etc/amanda könyvtárban lév® könyvtár, a HAVISZALAG01 pedig a la-belstr sorban megadott névnek megfelel® elnevezés.Ellen®rizzük le az ily módon megcímkézett szalagot:# su - backup$ /usr/sbin/amcheck havi_backup

Ha hasonló a válasz, akkor jó minden:Amanda Tape Server Host Check-----------------------------/holding: 106474 KB disk space available, that's plenty.NOTE: skipping tape-writable test.Tape HAVISZALAG01 label ok.Server check took 0.008 seconds.Amanda Backup Client Host Check-------------------------------Client check: 1 host checked in 0.127 seconds, 0 problems found.(brought to you by Amanda 2.5.1p1)

2007. december 22. Kósa Attila <[email protected]>

Page 98: kosa_attila_halozat.pdf

98 Debian GNU/LinuxA /holding: 106474 KB disk space available, that's plenty. sor azt jelenti, hogy akon�gurációs állományban (amanda.conf) megadott 200MB átmeneti területb®l csak 106474KBszabad.

13.1.6. Visszaállítás

amrestoreA mentett adatok visszaállítására használható használható egyik parancs (szalagos mentés ese-tén) a következ®:# su - backup$ /usr/sbin/amrestore -p /dev/st0 gep_neve /mentendo | /sbin/restore -i -v -f - -T /var/tmp

Figyelni kell arra, hogy itt eszköznévként a /dev/st0-t kell feltüntetni (azért, mert itt kell-het oda-vissza tekergetni a szalagot). A gep_neve és a /mentendo a fentiekb®l remélem, hogyvilágos, a restore parancs kapcsolóinak magyarázata pedig a következ®:i Interaktív visszaállítást jelent.v Az el®z® opcióhoz kapcsolódik, b®beszéd¶bbé teszi azt.f Azt a fájlnevet el®zi meg, amelyb®l olvasni kell a mentést. A - itt a pipe-ból érkez® adatokatjelenti a restore számára.T Ez után az opció után adhatjuk meg azt a könyvtárat, ahová az átmeneti állományok kerül-hetnek.

A fenti parancs kiadása után (viszonylag rövid id®n belül) kapunk egy parancssorhoz hasonlópromptot (/sbin/restore> kinézet¶t). Itt a ? billenty¶ lenyomására megkapjuk a használhatóparancsok listáját.A visszaállításkor a /sbin/restore abban az esetben jó, ha a mentés a dump segítségéveltörtént. Ha tar-ral, akkor hibát kapunk. Ilyen esetben a tar-t kell visszaállításra is használni.Ellenben ha backup felhasználóként indítjuk a visszaállítást, akkor a tar nem tudja visszaál-lítani az eredeti tulajdonosokat és jogokat. Erre viszont alkalmas a csomagban lév® wrapper(/usr/lib/amanda/runtar).amrecoverEgy másik lehet®ség a mentett anyagok visszaállítására az amrecover használata. Egyel®re adump és a tar programokkal készült mentéseket lehet ezen a módon visszaállítani. Úgy dolgozik,hogy az Amanda index-fájljaiban keres. Csak root-ként tudjuk használni, más felhasználókéntnem lehet.Nézzük meg a merevlemezre történ® mentés esetén hogyan tudnánk visszaállítani a mentést.A dns nev¶ gépen állunk, és oda próbálunk meg a mentésb®l visszaállítani egy könyvtárat.# /usr/sbin/amrecoverAMRECOVER Version 2.5.1p1. Contacting server on backup.akarmi.intra ...220 backup AMANDA index server (2.5.1p1) ready.Setting restore date to today (2007-06-18)200 Working date set to 2007-06-18.200 Config set to napi_backup.200 Dump host set to dns.Use the setdisk command to choose dump disk to recoveramrecover>

Látható, hogy kaptunk egy promptot, ahol egy csomó dolgot be tudunk állítani. Ahhoz,hogy a megfelel® adatokat nyerjük vissza, be is kell :) A használható parancsok listájához ahelp (vagy ?) parancs segítségével juthatunk:

Kósa Attila <[email protected]> 2007. december 22.

Page 99: kosa_attila_halozat.pdf

Debian GNU/Linux 99amrecover> helpvalid commands are:add path1 ... - add to extraction list (shell wildcards)addx path1 ... - add to extraction list (regular expressions)cd directory - change cwd on virtual file system (shell wildcards)cdx directory - change cwd on virtual file system (regular expressions)clear - clear extraction listdelete path1 ... - delete from extraction list (shell wildcards)deletex path1 ... - delete from extraction list (regular expressions)extract - extract selected files from tapesexithelphistory - show dump history of disklist [filename] - show extraction list, optionally writing to filelcd directory - change cwd on local file systemls - list directory on virtual file systemlpwd - show cwd on local file systemmode - show the method used to extract SMB sharespwd - show cwd on virtual file systemquitlisthost - list hostslistdisk [diskdevice] - list diskssetdate {YYYY-MM-DD|--MM-DD|---DD} - set date of look{YYYY-MM-DD-HH-MM-SS} - set date of looksetdisk diskname [mountpoint] - select disk on dump hostsethost host - select dump hostsettape [host:][device|default] - select tape server and/or devicesetmode smb|tar - select the method used to extract SMB sharesamrecover>

Menjünk végig a dns nev¶ gép /etc/pam.d könyvtárának visszaállítási folyamatán. El®szörmagát a gépet kell kijelölnünk, amelynek a mentéseivel foglalkozni szeretnénk:amrecover> sethost dns200 Dump host set to dns.

A következ® parancs elárulja nekünk, hogy az el®bb kijelölt gépen mir®l is van mentésünk:amrecover> listdisk200- List of disk for host dns201- /etc200 List of disk for host dns

A visszaállítandó anyag dátumát is be kell állítanunk. Ez a példában a 2006. 11. 27-i mentés,ennek megfelel®en folytatjuk a visszaállítás kon�gurálását:amrecover> setdate 2006-11-27200 Working date set to 2006-11-27.

Ha nem találja az amanda a mentéshez tartozó indexfájlokat, akkor az alábbit láthatjuk2:amrecover> setdisk /etc200 Disk set to /etc.No index records for disk for specified dateIf date correct, notify system administrator

Egy /bin/ls -Al /backup/napi_backup/ parancs megmutatja, hogy melyik nap is készültutoljára mentésünk (ha máshonnan nem jutna véletlenül eszünkbe). A data nev¶ link arra akönyvtárra mutat, amelyik következik majd a mentés folyamán. Ezt át kell állítanunk, mond-hatni be kell állítanunk a �szalagos egységünket�, hogy az a �kazetta� legyen benne, amelyikreszükségünk van.# cd /etc/amanda/napi_backup# /usr/lib/amanda/chg-disk -info3 5 1# /usr/lib/amanda/chg-disk -next4 file:/backup/napi_backup

Állítsunk be egy olyan id®pontot, amikorról már tényleg vannak mentéseink:amrecover> setdate 2007-06-12200 Working date set to 2007-06-12.

Állítsuk be a visszaállítani kívánt részt:amrecover> setdisk /etc200 Disk set to /etc.

2Ha felcseréljük a setdisk és setdate parancsokat (probléma nélkül fel lehet), akkor a kés®bb kiadott esetébenkapunk értesítést az indexfájlok hiányáról.

2007. december 22. Kósa Attila <[email protected]>

Page 100: kosa_attila_halozat.pdf

100 Debian GNU/LinuxHa megvannak az indexfájlok, akkor itt már láthatjuk a beállított /etc könyvtár tartal-mát egészen pontosan még nem a mentésben nézel®dünk, mindössze az amanda index-fájljaithasználjuk). Használhatjuk a pwd, a cd és az ls parancsokat, amelyek hasonlóak a shellbenmegszokott parancsokhoz.Az add paranccsal kiválasztjuk amit vissza szeretnénk kapni (több fájlt is megadhatunkegyszerre és használhatjuk a shellben használható helyettesít® karaktereket is).

amrecover> add pam.dAdded dir /pam.d/ at date 2007-06-12-14-00-02Ellen®rizzük, hogy hol állunk:

amrecover> lpwd/rootMódosítsuk (ha nem tetszik):

amrecover> lcd /tmpamrecover> lpwd/tmpSzerezzük vissza:

amrecover> extractExtracting files using tape drive file:/backup/napi_backup on host backup.akarmi.intra.The following tapes are needed: NAPIBACKUP04Restoring files into directory /tmpContinue [?/Y/n]? ?Enter "y"es to continue, "n"o to stopContinue [?/Y/n]? YExtracting files using tape drive file:/backup/napi_backup on host backup.akarmi.intra.Load tape NAPIBACKUP04 nowContinue [?/Y/n/s/t]? ?Enter "y"es to continue, "n"o to stop, "s"kip this tape or "t"ape to change tape drivesContinue [?/Y/n/s/t]? Y./pam.d/./pam.d/chfn./pam.d/chsh./pam.d/common-account./pam.d/common-auth./pam.d/common-password./pam.d/common-session./pam.d/cron./pam.d/login./pam.d/other./pam.d/passwd./pam.d/ssh./pam.d/suamrecover> quit200 Good bye.A program kiírja, hogy melyik meghajtót szeretné használni a visszaállításhoz (melyik gé-pen), és hogy melyik címkéj¶ �szalagra� van szüksége.Én mindig a root felhasználót használtam a visszaállításhoz, és így nem voltak a visszaállí-tással kapcsolatban problémáim.

Kósa Attila <[email protected]> 2007. december 22.

Page 101: kosa_attila_halozat.pdf

14. fejezet

Csomagsz¶rés

Talán néhol túlságosan is leegyszer¶sítve tárgyalom a különböz® dolgokat, de ezt amiatt teszem,mert kizárólag a csomagsz¶réssel megoldható dolgokat szeretném megvilágítani.Valószín¶leg nem említek meg minden, az Interneten használatos alkalmazást, de igyekszema fontosabbakra kitérni.Figyelni kell arra is, hogy a kiszolgálónk bizonyos esetekben kliensként fog viselkedni (példáulSMTP kiszolgáló e-mail küldése esetén), tehát a csomagsz¶rést ennek megfelel®en kell beállítani.A kiszolgálók alapértelmezett portszáma is tájékoztató jelleg¶ információnak számít a szö-vegben, mert � hála a Linux kon�gurálhatóságának � szinte mindegyik kiszolgálót át lehetállítani, hogy más porton szolgáljon ki. Tehát amennyiben az alapértelmezett®l eltér® portra ál-lítottuk bármelyik kiszolgálónkat, akkor ennek megfelel®en kell módosítanunk a csomagsz¶r®nkbeállításait is.Amennyiben root felhasználóként (vagy setuid-os programmal sima felhasználóként) pró-bálunk bizonyos kliensprogramokat használni, akkor el®fordulhat, hogy a kliensprogram általhasznált forrásport száma 1023 alatti lesz (például ssh esetén).A kapcsolódó RFC-k elérhet®k például az ftp://ftp.kfki.hu/pub/documents/rfc/ vagya http://www.faqs.org/rfcs/ címen.

14.1. DNSKét típusa van a DNS szolgáltatásoknak: az egyszer¶ lekérdezés és a zónatranszfer. Lekérdezésaz, amikor a kliens kér információkat a DNS-kiszolgálótól (például egy névhez tartozó IP címet,vagy egy IP címhez tartozó nevet szeretne megtudni). Zónatranszfer az, amikor a másodlagosDNS-kiszolgáló kérdést küld egy másik DNS-kiszolgálónak (az els®dlegesnek), amelyben az el-s®dleges kiszolgáló által felügyelt zóna adatairól szeretne információkat kérni. Lássuk, hogyanzajlik ez protokollokat és portszámokat is �gyelembevéve. A kiszolgálók az 53-as porton �gyelnekalapértelmezés szerint.

A kapcsolódó RFC-k száma: 1101, 1183, 1348, 1383, 1401, 1535, 1536, 1537, 1611, 1612,1637, 1664, 1706, 1712, 1713, 1794, 1886, 1912, 1995, 1996, 2052, 2136, 2181, 2182, 2219, 2230,2308, 2517, 2536, 2537, 2538, 2539, 2540, 2541, 2606, 2671, 2672, 2694, 2782, 2826, 2845, 2874,2915, 2916, 2929, 2930, 2931, 3007, 3008, 3071, 3090, 3110, 3123, 3130, 3197, 3225, 3226, 3363,3364, 3403, 3467, 3596, 3597, 3645, 3646, 3655, 3757, 3832, 3833, 3845, 3901, 4025, 4033, 4034,4035, 4074, 4183, 4185, 4255, 4310, 4339, 4343, 4367, 4398, 4431, 4470, 4471, 4472, 4509, 4641,4690, 4697, 4701.

101

Page 102: kosa_attila_halozat.pdf

102 Debian GNU/Linux14.1.1. Lekérdezés

A kliens kérdezi a kiszolgálót: a forrás port 1023 fölötti, a célport az 53-as. A kliens véletlen-szer¶en választ portot 1023 fölött, UDP-n és TCP-n egyaránt kérdezhet. A kiszolgáló amikorválaszol, akkor az 53-as portjáról indítja a válaszcsomagokat, és a kliens 1023 fölötti portjárakapcsolódik. Bizonyos esetekben a kiszolgáló átkapcsol TCP-re, hiába UDP-n keresztül érkezetta kérés, akkor is TCP-n keresztül küldi a választ. Két kiszolgáló egymás közötti kommunikációja(lekérdezése) az 53-as porton zajlik, tehát a kapcsolat forrás-, illetve célportja is 531.14.1.2. Zónatranszfer

Zónatranszfernél: kizárólag TCP-n történik a kommunikáció. A másodlagos kiszolgáló az 1023-as port fölül indítja a kérést, az els®dleges kiszolgáló 53-as portjára. Az els®dleges kiszolgáló az53-as portjáról válaszol a másodlagos kiszolgáló 1023-as portja fölé címzett csomagokkal.14.2. NTPUDP alapú szolgáltatás. A kiszolgálók a 123-as porton �gyelnek alapértelmezés szerint.A kapcsolódó RFC-k száma: 0958, 1165, 1361, 1708, 1769, 2030, 2980, 3977, 4075, 4330,4642, 4643, 4644.14.2.1. Kliens�kiszolgáló

A kliens kérdezi a kiszolgálót: a forrás port 1023 fölötti, a célport a 123-as. A kliens véletlen-szer¶en választ portot 1023 fölött. A kiszolgáló válasza a 123-as portról indul, a célport pedig akliens egy 1023 fölötti portja.14.2.2. Kiszolgáló�kiszolgáló

A forrás- és a célport is a 123-as.14.3. ICMPAz ICMP csomagoknak nincsen forrás-, illetve célportjuk, jellemz®jük viszont az ICMP csomagtípusa. A következ® típusú icmp üzenetek szokásosak:

14.1. táblázat: ICMP üzenetek típusaitípus angol leírás magyar leírás0 echo reply válasz a ping-re3 destination unreachable cél elérhetetlen4 source quench forrás �lecsendesítése�8 echo request ping11 time exceeded id®túllépés12 parameter problem paraméter probléma

Hacsak nincs valami különleges okunk, akkor a fentieket nem érdemes kisz¶rni, mert többproblémát okozhatunk magunknak, mint amennyit segít megoldani.A kapcsolódó RFC-k száma: 0844, 1256, 1788, 1885, 2463, 2466, 2521, 2765, 4443, 4727.1Ez is kon�gurálható, az újabb szoftverek alapértelmezésben már egyszer¶ kliensként viselkednek inkább,

tehát az 1023 fölötti portról indítják a kapcsolatot (az 53-as portra).

Kósa Attila <[email protected]> 2007. december 22.

Page 103: kosa_attila_halozat.pdf

Debian GNU/Linux 10314.3.1. traceroute

Ez egy érdekes �képz®dmény�, mert UDP csomagokat küld ki, de ICMP csomagokat vár vissza.Hogy milyen portokat használ UDP alatt, az függ az adott implementációtól, és/vagy a pa-rancssori paraméterekt®l. Általában elmondható, hogy a forrásport 32768 fölött helyezkedik el,míg a célport 33434 és 33523 közé esik. Ha nagyon kíváncsiak vagyunk, akkor érdemes elolvasnia traceroute forráskódját :)Tehát a kommunikáció így zajlik: elindítunk egy UDP csomagot a 32768-as port fölül, a fentmeghatározott célportra. Érkezik vissza (jó esetben) egy 11-es és/vagy egy 3-as típusú ICMPcsomag.A kapcsolódó RFC-k száma: 1393, 2925, 4560.14.4. POP2, POP3, POP3S, IMAP, IMAPSTCP alapú szolgáltatás mind az öt. Alapértelmezésben a POP2 kiszolgáló a 109-es porton�gyel, a POP3 a 110-es porton, az IMAP a 143-as porton, a POP3S a 995-ös porton, az IMAPSkiszolgáló pedig a 993-as porton. A kommunikáció mindegyik esetében hasonlóan zajlik, ezértcsak egyet írok le, a többinél értelemszer¶en kell behelyettesíteni a szerver szolgáltatás portját.A kliens kérdezi a kiszolgálót: a forrás port 1023 fölötti, a célport a 110-es. A kliens véletlen-szer¶en választ portot 1023 fölött. A kiszolgáló válasza a 110-es portról indul, a célport pedig akliens egy 1023 fölötti portja.A POP3-hoz kapcsolódó RFC-k száma: 1734, 1957, 2449, 2595.Az IMAP-hoz kapcsolódó RFC-k száma: 1731, 1732, 1733, 2061, 2086, 2087, 2088, 2095,2177, 2180, 2192, 2193, 2195, 2221, 2342, 2359, 2595, 2683, 2971, 3348, 3502, 3503, 3516, 3691,4314, 4315, 4466, 4467, 4469, 4549, 4551, 4731.14.5. SMTPTCP alapú szolgáltatás. A kiszolgálók a 25-ös porton �gyelnek alapértelmezés szerint. Az SMTP-t használó küld®k véletlenszer¶en választanak portot 1023 fölött. A küld® kapcsolódik a kiszol-gálóhoz: a forrás port 1023 fölötti, a célport a 25-ös. A kiszolgáló válasza a 25-ös portról indul,a célport a küld® egy 1023 fölötti portja.A kapcsolódó RFC-k száma: 0876, 1047, 1090, 1425, 1426, 1427, 1428, 1651, 1652, 1653,1830, 1845, 1846, 1854, 1869, 1870, 1891, 1985, 2034, 2197, 2442, 2487, 2505, 2554, 2645, 2852,2920, 3030, 3207, 3461, 3848, 3865, 3885, 3974, 4141, 4405, 4496.14.6. UUCPTCP alapú szolgáltatás. A kiszolgálók az 540-es porton �gyelnek alapértelmezés szerint. Akliensek véletlenszer¶en választanak portot 1023 fölött. A kliens kapcsolódik a kiszolgálóhoz:a forrás port 1023 fölötti, a célport az 540-es. A kiszolgáló válasza az 540-es portról indul, acélport a kliens egy 1023 fölötti portja.A kapcsolódó RFC száma: 0976.14.7. AUTHTCP alapú szolgáltatás. A kiszolgálók a 113-as porton �gyelnek alapértelmezésben. A kliensekvéletlenszer¶en választanak portot 1023 fölött. A kliens kapcsolódik a kiszolgálóhoz: a forrásport 1023 fölötti, a célport az 113-as. A kiszolgáló válasza a 113-as portról indul, a célport akliens egy 1023 fölötti portja.

2007. december 22. Kósa Attila <[email protected]>

Page 104: kosa_attila_halozat.pdf

104 Debian GNU/LinuxBizonyos esetekben szükséges lehet a tiltása, jellemz®en akkor, ha a másik oldal igényelneilyen szolgáltatást, de nekünk nincs ilyen (vagy nem akarjuk engedélyezni a használatát). Ilyeneset fordulhat el® bizonyos SMTP, illetve FTP kiszolgálók esetén. Nem javasolt az ide érkez® cso-magok válasz nélküli eldobása, mert ebben az esetben a lekérést elindító kiszolgáló kényszer¶enki fogja várni a timeout-ot, ezáltal lassítva a kapcsolódást.A kapcsolódó RFC-k száma: 0912, 0931, 0989, 1040, 1113, 1421, 1511, 1704, 3127.

14.8. FTPTCP alapú szolgáltatás. Kétféle mód létezik az FTP használatára, a normál, illetve a passzívmód. Lényeges különbség van köztük csomagsz¶rés szempontjából. A kapcsolódásig lényegébenmegegyezik a két üzemmód, az eltérés majd az adatok átvitelében jelentkezik2. A kiszolgálóka 21-es porton �gyelnek alapértelmezés szerint. A kliensek véletlenszer¶en választanak portot1023 fölött. A kliens kapcsolódik a kiszolgálóhoz: a forrás port 1023 fölötti, a célport a 21-es.A kiszolgáló válasza a 21-es portról indul, a célport a kliens egy 1023 fölötti portja. Tehát akiadott parancsok mindig a kliens 1023 fölötti portjáról indulnak a kiszolgáló 21-es portjára(például az ls parancs), de az adatok már a lentebb ismertetett módon közlekednek a két gépközött.A kapcsolódó RFC-k száma: 0238, 0412, 0414, 0438, 0448, 0458, 0463, 0468, 0475, 0478,0479, 0480, 0506, 0520, 0532, 0571, 0593, 0630, 0640, 0683, 0691, 0697, 0737, 0743, 0751, 0775,0949, 1545, 1579, 1635, 1639, 2228, 2428, 2577, 2585, 4217.14.8.1. Normál mód

Az adatcsatorna létrehozásához a kiszolgáló a 20-as portjáról indít egy kapcsolatot a kliens 1023fölött véletlenszer¶en kiválasztott portjára, és a továbbiakban azon történik az adatcsere. Teháta kliens err®l az 1023 fölötti portról fog válaszolni a kiszolgáló 20-as portjára.14.8.2. Passzív mód

A kliens a pasv paranccsal tudatja a szerverrel, hogy passzív módú adatátvitelt kezdeményez.Ebben az esetben az adatcsatorna létrehozásához a kiszolgáló 1023 fölött egy véletlenszer¶enkiválasztott portot kinyit, és a kliens számára a nyitott címet és portszám-párt elküldi a kliens-nek a parancs csatornán, majd �passzívan� várja a portra kapcsolódást. A kliens erre a portraegy 1023 fölötti portcímr®l fog csatlakozni. Ily módon épül ki az adatcsatorna.14.9. TFTPUDP alapú szolgáltatás. A kiszolgálók a 69-es porton �gyelnek alapértelmezés szerint. A kliensekvéletlenszer¶en választanak portot 1023 fölött, és onnan küldik az els® csomagot a kiszolgálófelé. A kiszolgáló az 1023-as portja fölötti portról válaszol, a célport a kliens 1023 fölötti portja.Tehát a kommunikáció az 1023 fölötti portokon folyik, az els® csomagot leszámítva.A kapcsolódó RFC-k száma: 0783, 0906, 1350, 1782, 1783, 1784, 1785, 2090, 2347, 2348,2349, 3617.14.10. HTTP, HTTPSTCP alapú szolgáltatás mind a kett®. A kiszolgálók a 80-as porton �gyelnek alapértelmezésszerint (http esetén). A kliensek véletlenszer¶en választanak portot 1023 fölött. A kliens kap-

2A kiadott parancsokra kapott válaszcsomag is adatnak számít!

Kósa Attila <[email protected]> 2007. december 22.

Page 105: kosa_attila_halozat.pdf

Debian GNU/Linux 105csolódik a kiszolgálóhoz: a forrás port 1023 fölötti, a célport a 80-as. A kiszolgáló válasza a 80-asportról indul, a célport a kliens egy 1023 fölötti portja. Jegyezzük meg, hogy ugyanígy m¶kö-dik (csomagsz¶rés szempontjából) a HTTPS protokoll is, csak ott a kiszolgáló (alapértelmezésszerint) a 443-as porton �gyel.A kapcsolódó RFC-k száma: 1945, 2068, 2069, 2109, 2145, 2169, 2227, 2295, 2296, 2518,2585, 2616, 2617, 2774, 2817, 2818, 2935, 2936, 2964, 2965, 3143, 3205, 3229, 3230, 3310, 4130,4169, 4229, 4236, 4387, 4559.

14.11. �ngerTCP alapú szolgáltatás. A kiszolgálók a 79-es porton �gyelnek alapértelmezés szerint. A kliensekvéletlenszer¶en választanak portot 1023 fölött. A kliens kapcsolódik a kiszolgálóhoz: a forrás port1023 fölötti, a célport a 79-es. A kiszolgáló válasza a 79-es portról indul, a célport a kliens egy1023 fölötti portja.A kapcsolódó RFC-k száma: 0742, 1194, 1196, 1288.

14.12. whoisTCP alapú szolgáltatás. A kiszolgálók a 43-as porton �gyelnek alapértelmezés szerint. A kliensekvéletlenszer¶en választanak portot 1023 fölött. A kliens kapcsolódik a kiszolgálóhoz: a forrás port1023 fölötti, a célport a 43-as. A kiszolgáló válasza a 43-as portról indul, a célport a kliens egy1023 fölötti portja.A kapcsolódó RFC-k száma: 0812, 0954, 1714, 1834, 1835, 1913, 1914, 2167, 2957, 2958,3912.

14.13. syslogUDP alapú szolgáltatás. A kiszolgálók az 514-es porton �gyelnek alapértelmezés szerint. Akliensek véletlenszer¶en választanak portot 1023 fölött. A kliens kapcsolódik a kiszolgálóhoz:a forrás port 1023 fölötti, a célport az 514-es. A kiszolgáló válasza az 514-es portról indul, acélport a kliens egy 1023 fölötti portja.A kapcsolódó RFC-k száma: 3164, 3195.A magyar fejlesztés¶ syslog-ng (http://www.balabit.hu/) képes TCP-n és UDP-n iskommunikálni. TCP fölött ugyanazokat a portokat használja alapértelmezésben, mint UDPfölött (és mint a hagyományos syslog szolgáltatások).

14.14. �r� parancsokTCP alapú szolgáltatások. Négy portot használnak általánosan a kiszolgálók: az rlogin az513-as porton �gyel alapértelmezésben, az rsh / rdump / rcp / rrestore / rdist az 514-esporton, az rexec az 512-es porton, az rsync pedig a 873-as porton. A portszám kivételével akommunikációjuk megegyezik (csomagsz¶rés szempontjából).A kliensek véletlenszer¶en választanak portot 1023 fölött. A kliens kapcsolódik a kiszolgáló-hoz: a forrás port 1023 fölötti, a célport az 514-es. A kiszolgáló válasza az 514-es portról indul,a célport a kliens 1023 fölötti portja.Kivételt képez az rsh, amelynél a kliens egy véletlenszer¶en választott 1023 fölötti portrólnyit egy �hibacsatornát� a kiszolgáló 1023 fölötti portjára, és azon kommunikálnak.Az rlogin-hoz kapcsolódó RFC-k száma: 1258, 1282.

2007. december 22. Kósa Attila <[email protected]>

Page 106: kosa_attila_halozat.pdf

106 Debian GNU/Linux14.15. telnetTCP alapú szolgáltatás. A kiszolgálók a 23-as porton �gyelnek alapértelmezés szerint. A kliensekvéletlenszer¶en választanak portot 1023 fölött. A kliens kapcsolódik a kiszolgálóhoz: a forrás port1023 fölötti, a célport a 23-as. A kiszolgáló válasza a 23-as portról indul, a célport a kliens egy1023 fölötti portja.

A kapcsolódó RFC-k száma: 0097, 0137, 0139, 0158, 0206, 0318, 0328, 0339, 0340, 0393,0435, 0461, 0466, 0495, 0513, 0559, 0560, 0562, 0563, 0581, 0587, 0593, 0595, 0596, 0651, 0652,0653, 0654, 0655, 0656, 0657, 0658, 0659, 0669, 0688, 0698, 0701, 0702, 0703, 0726, 0727, 0727,0728, 0729, 0731, 0732, 0735, 0748, 0749, 0764, 0779, 0818, 0854, 0855, 0856, 0857, 0858, 0859,0860, 0861, 0884, 0885, 0927, 0930, 0933, 0946, 1041, 1043, 1053, 1073, 1079, 1080, 1091, 1096,1097, 1116, 1143, 1184, 1205, 1372, 1408, 1409, 1412, 1416, 1571, 1572, 2066, 2217, 2840, 2877,2941, 2942, 2943, 2944, 2948, 2949, 2950, 2951, 2952, 2953, 4248, 4777.

14.16. SSHTCP alapú szolgáltatás. A kiszolgálók a 22-es porton �gyelnek alapértelmezés szerint. A kliensekvéletlenszer¶en választanak portot 1023 fölött. A kliens kapcsolódik a kiszolgálóhoz: a forrás port1023 fölötti, a célport a 22-es. A kiszolgáló válasza a 22-es portról indul, a célport a kliens egy1023 fölötti portja. El®fordul, hogy a rendszergazdai jogosultsággal rendelkez® felhasználó általindított ssh kliens 1023 alatti portról indítja a kapcsolatot!

A kapcsolódó RFC-k száma: 4250, 4251, 4252, 4253, 4254, 4255, 4256, 4335, 4344, 4345,4419, 4432, 4462, 4716, 4742.

14.17. NNTPTCP alapú szolgáltatás. A kiszolgálók a 119-es porton �gyelnek alapértelmezés szerint. A kli-ensek véletlenszer¶en választanak portot 1023 fölött. A kliens kapcsolódik a kiszolgálóhoz: aforrás port 1023 fölötti, a célport a 119-es. A kiszolgáló válasza a 119-es portról indul, a célporta kliens egy 1023 fölötti portja. Ennél a szolgáltatásnál független az, hogy két kiszolgáló, vagyegy kliens és egy kiszolgáló közötti kapcsolatról van-e szó, mindkét esetben ugyanúgy zajlik lea kapcsolódás.

A kapcsolódó RFC-k száma: 2980, 3977, 4642, 4643, 4644.

14.18. talkTCP és UDP alapú szolgáltatás. Létezik egy régebbi és egy újabb változata. A kett® közöttaz a különbség (csomagsz¶rés szempontjából), hogy a régebbi verzió az 517-es, az újabb pedigaz 518-as portot használja (mármint a kiszolgáló alapértelmezésben). Csak az egyik (az újabb)esetet nézzük végig, akinek a régebbi kiszolgálóra van szüksége, az értelemszer¶en javítsa át aportszámokat.

A kliensek véletlenszer¶en választanak portot 1023 fölött. A kliens kapcsolódik a kiszolgá-lóhoz: a forrás port 1023 fölötti, a célport az 518-as, ez UDP-n történik. A kiszolgáló válaszaaz 518-as portról indul, a célport a kliens egy 1023 fölötti portja, szintén UDP-n. A két kliensközötti kommunikáció viszont már TCP-n történik, mégpedig 1023 fölötti portok igénybevéte-lével. Tehát 1023 fölötti portról 1023 fölötti portra indulnak, illetve érkeznek a csomagok TCPsegítségével.

Kósa Attila <[email protected]> 2007. december 22.

Page 107: kosa_attila_halozat.pdf

Debian GNU/Linux 10714.19. IRCTCP alapú szolgáltatás. A kiszolgálók a 6667-es porton �gyelnek alapértelmezés szerint. Akliensek véletlenszer¶en választanak portot 1023 fölött. A kliens kapcsolódik a kiszolgálóhoz:a forrás port 1023 fölötti, a célport a 6667-es. A kiszolgáló válasza a 6667-es portról indul, acélport a kliens egy 1023 fölötti portja.Két kliens egymás közti kommunikációja az 1023-as port fölötti tartományban zajlik, DCC-thasználva. Amikor egy kliens meghív egy másik klienset, akkor a hívásban elküldi annak a TCPportnak a számát, amelyen fogadni képes a kapcsolatot. Amennyiben a másik kliens elfogadjaa meghívást, akkor nyit egy csatornát a megadott portra.

14.20. SNMPUDP alapú szolgáltatás. Az SNMP-kiszolgáló a 161-es porton �gyel alapértelmezésben, de TCP-n és UDP-n is. Az SNMP trap-kiszolgáló a 162-es porton �gyel alapértelmezés szerint, de TCP-n és UDP-n is. Az SNMP kliens általában egy 1023 fölötti portot használ a kommunikációramindkét kiszolgáló esetén.A kapcsolódó RFC-k száma: 1089, 1098, 1157, 1161, 1187, 1215, 1227, 1228, 1270, 1283,1298, 1303, 1351, 1352, 1353, 1381, 1382, 1418, 1419, 1420, 1442, 1443, 1444, 1445, 1446, 1447,1448, 1449, 1450, 1461, 1503, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1909, 1910, 2011, 2012,2013, 2089, 2261, 2262, 2263, 2264, 2265, 2271, 2272, 2273, 2274, 2275, 2571, 2572, 2573, 2574,2575, 2742, 2962, 3411, 3412, 3413, 3414, 3415, 3416, 3417, 3418, 3512, 3781, 3826, 4088, 4789.

14.21. NFSRPC alapú szolgáltatás. Nagyon nehéz a csomagsz¶r®t megfelel®en beállítani a használatához,mert a kiszolgáló normálisan el®re nem megjósolhatóan választja ki az általa alkalmazott port-számokat. Általában UDP-n történik a kommunikáció (bár létezik TCP-n kommunikálni képesNFS kiszolgáló és kliens is, ám ezek ritkán használatosak). A kapcsolódó rfc-ben azt írják, hogyaz NFS protokoll jelenleg a 2049-es UDP portot használja. Ez azonban nem egy hivatalosanhozzárendelt port, a protokoll kés®bbi verziói a portmap programot használják az alkalmazottportok megbeszélésére.A kapcsolódó RFC száma: 1094, 1813, 2054, 2055, 2224, 2623, 2624, 2755, 3010, 3530.

14.22. NIS/YPRPC alapú szolgáltatás, általában UDP fölötti kommunikációval. Ugyanaz a helyzet vele kap-csolatban, mint amit az NFS-r®l is elmondtunk: el®re nem megjósolható az általa alkalmazottportszám.

14.23. X11TCP alapú szolgáltatás. Az els® X-kiszolgáló alapértelmezésben a 6000-s porton �gyel, a másodika 6001-es porton, és így tovább. Egyes leírások szerint a kliensek az 1023 fölötti tartományközepéb®l választanak portot maguknak � de ez ugye elég megfoghatatlan :). Ezért kénytelenekvagyunk az egész 1023 fölötti porttartományból engedélyezni a bejöv® kéréseket, amelyek afentebb említett portok valamelyikére kívánnak csatlakozni.

2007. december 22. Kósa Attila <[email protected]>

Page 108: kosa_attila_halozat.pdf

108 Debian GNU/Linux14.24. SaMBaMinden Windows hálózat SMB alapú, és NetBIOS-t használ. A SaMBa megvalósításában ezTCP/IP fölötti NetBIOS-t jelent. A NetBIOS alapú hálózatok broadcast üzeneteket használnaka browse lista menedzselésére. Amikor TCP/IP fölött futtatjuk a NetBIOS-t, akkor erre a célraUDP üzeneteket használ (ezek lehetnek broadcast vagy unicast üzenetek). Normálisan csak azunicast UDP üzeneteket továbbítják a routerek.Alapértelmezésben a 137, 138, 139 és 445-ös portokat használják a gépek, függetlenül attól,hogy kliensr®l vagy kiszolgálóról van szó.14.25. lprTCP alapú szolgáltatás. A kiszolgálók az 515-ös porton �gyelnek alapértelmezés szerint. Akliensek véletlenszer¶en választanak portot 1023 fölött. A kliens kapcsolódik a kiszolgálóhoz:a forrás port 1023 fölötti, a célport az 515-ös. A kiszolgáló válasza az 515-ös portról indul, acélport a kliens egy 1023 fölötti portja.

Kósa Attila <[email protected]> 2007. december 22.

Page 109: kosa_attila_halozat.pdf

15. fejezet

T�ZFAL

Egy t¶zfal kon�gurálása nem annyira egyszer¶, hogy mindegyikre rá lehetne húzni egy sémát.Persze vannak alapok, amelyeket nem árt �gyelembe venni a tervezéskor. Ezeket próbálom megfelvázolni ebben a fejezetben, a teljesség igénye nélkül.A bels® hálózat munkaállomásait igyekszem teljes egészében kizárni a t¶zfallal folytatandókommunikációból. Tehát minden forgalom csak valamilyen bels® szerveren keresztül jut el at¶zfalhoz. Közvetlenül csak a kijelölt bels® szerverek fordulhatnak a t¶zfalhoz.15.1. DNSA t¶zfalon futó DNS szolgáltatás beállításának bemutatása ennek a fejezetnek a célja.15.1.1. BIND

Telepítsük fel azt a szoftvert, amely szükséges ahhoz, hogy a BIND9 segítségével megvalósíthassuka DNS szerverünket.# apt-get install bind9Láthatjuk, amint a telepítés végén létrejön egy csoport és egy felhasználói account, illetveegy rndc.key nev¶ fájl a /etc/bind könyvtárban, majd elindul a szolgáltatás:Setting up bind9 (9.3.4-2) ...Adding group `bind' (GID 103) ...Done.Adding system user `bind' (UID 101) ...Adding new user `bind' (UID 101) with group `bind' ...Not creating home directory `/var/cache/bind'.wrote key file "/etc/bind/rndc.key"Starting domain name service...: bind.Állítsunk le a kon�gurálás idejére:# /etc/init.d/bind9 stopA /etc/default könyvtárban található egy bind9 nev¶ állomány, amely mindössze az aláb-biakat tartalmazza:

OPTIONS="-u bind"RESOLVCONF=yesEz azt okozza, hogy a BIND9 a bind nev¶ felhasználó és csoport nevében fog futni, tehátnem root jogosultságokkal.A /etc/bind könyvtárban találhatóak a kon�gurációs állományok:• named.conf � az els®dleges kon�gurációs állomány, a többi ebbe kerül beágyazásra (azinclude opció segítségével);

109

Page 110: kosa_attila_halozat.pdf

110 Debian GNU/Linux• named.conf.local � a lokális zónák megadására szolgáló fájl;• named.conf.options � egyéb opciók megadására szolgáló fájl.A named.conf állományt hagyjuk változatlanul, és csak a másik két fájlra fordítsuk a �-gyelmünket. A named.conf.options fájl felépítése az egyszer¶bb, ezért el®ször azzal kezdjük akon�gurálást.Amikor készen vagyunk, akkor így néz ki a kon�gurációs állomány:

acl belso_halo { 192.168.10.253; 192.168.10.252; };options {directory "/var/cache/bind";check-names response warn;allow-query { localhost; belso_halo; };allow-recursion { localhost; belso_halo; };auth-nxdomain no;listen-on { 127.0.0.1; 192.168.10.254; };listen-on-v6 { none; };};Az acl opciókban el®re felsorolhatjuk az IP címeket, és adhatunk nekik egy-egy nevet, majdezeket a neveket használhatjuk a többi opcióban. Ily módon egyetlen helyen tudjuk karbantar-tani az IP címeket, nem kell minden opciónál külön-külön.A directory opció határozza meg, hogy melyik könyvtárban tárolhatjuk a named.conf.localfájlban megadott zónafájljainkat.A query-source address opció azt határozza meg, hogy melyik interfészen melyik portrólindítsa a lekérdezéseket a BIND9. Amennyiben kikommentezve hagyjuk, akkor a szerverünkúgy fog viselkedni (lekérdezés szempontjából), mint egy egyszer¶ kliens (az 1024-es portjánálmagasabb portról fogja indítani a lekérdezéseket).A check-names opció a kon�gurációs hibákra adott viselkedést szabályozza. Külön lehetszabályozni, hogy mi történjen, ha a saját els®dleges zónáiban (master), ha a másodlagos zó-nákban (slave), illetve egy kérdésre kapott válaszban (response) talál hibát. Három értéket lehetbeállítani mindegyik eseteben:• fail � hibaüzenetet ír a logfájlba, és az adatot nem veszi �gyelembe;• warn � hibaüzenetet ír a logfájlba;• ignore � nem tör®dik a hibával.Az allow-query opció annak korlátozását teszi lehet®vé, hogy kikt®l fogadjon el kérést (illetvemilyen címekr®l, címtartományokból érkez® kérésekre válaszoljon) a szerver.Az allow-recursion opcióval azt tudjuk szabályozni, hogy a szerverünk mely klienseknekválaszoljon a saját zónáin kívül es® adatokkal kapcsolatban.A listen-on opció azt befolyásolja, hogy mely hálózati címeken �gyeljen IPv4-en. Mivel kí-vülr®l nem akarjuk megengedni, hogy meg tudják szólítani (felesleges is lenne, hiszen nincs olyanadat, amelyet szolgáltatni tudna), ezért elég csak a lokális és a bels® interfész címét felvenni.A listen-on-v6 opció azt szabályozza, hogy mely hálózati kártyákon �gyeljen IPv6-on.Létezik egy max-cache-size nev¶ opció, amelynek a segítségével lehet limitálni a gyorsító-tárnak használt memória méretét (byte-ban kell megadni). Ha túl kevés memóriát adunk aszolgáltatásnak, akkor az kihat a kiszolgálás sebességére. Érdemes pár héten keresztül korláto-zás nélkül futtatni a szolgáltatást, annyi id® alatt be fog állni egy megközelít®leg stabil értékrea memóriafoglalás, majd ezt az értéket �gyelembe véve kell beállítani a limitet. Ideális esetbenez a limit magasabbra van állítva, mint a tapasztalt stabil érték.Ezen a gépen a /etc/resolv.conf fájlban célszer¶ saját magát (tehát a 127.0.0.1 IP címet)beírni a nameserver sorba, illetve a search opcióban a bels® hálózat zónáját megadni. Tehát ígynézzen ki a fájl:

Kósa Attila <[email protected]> 2007. december 22.

Page 111: kosa_attila_halozat.pdf

Debian GNU/Linux 111

search akarmi.intranameserver 127.0.0.1A named.conf.local fájlnak kell tartalmaznia azt, hogy az egyes zónákhoz hogyan viszo-nyuljon a DNS szerverünk. Jelen példában nem a t¶zfalunkon van a saját (Interneten beregiszt-rált) zónánk (hanem például a szolgáltatónk kezeli), így semmilyen zónát nem kell felvennünka t¶zfalon futó DNS szerverbe.Végeztünk is az alapvet® kon�gurálással, most már rendelkezünk egy m¶köd® DNS szer-verrel, csak el kell indítanunk a /etc/init.d/bind9 start paranccsal. Az indítást követ®enellen®rizzük a logokban, hogy hibaüzenet nélkül indult el, illetve például a netstat -natp pa-ranccsal, hogy �gyel-e a megfelel® interfészeken.

15.2. NTPA t¶zfalon futó NTP szolgáltatás beállításának bemutatása ennek a fejezetnek a célja.15.2.1. ntp-server

A telepítés egyszer¶:# apt-get install ntp

Nem látható a telepítés alatt (csak a logokban), hogy a csomag létrehoz egy ntp nev¶csoportot, és egy ugyanilyen nev¶ felhasználót is. Elindításakor ezeknek a nevében fog futni aszolgáltatás, nem a root felhasználó jogosultságaival.A kon�gurációs állomány a /etc/ntp.conf fájl, illetve a /etc/default könyvtárban vanegy ntp nev¶ állomány. Ez utóbbi mindössze egyetlen sort tartalmaz a telepítés után:NTPD_OPTS='-g'

Az általunk használt kon�gurációs állomány:driftfile /var/lib/ntp/ntp.driftstatsdir /var/log/ntpstats/statistics loopstats peerstats clockstatsfilegen loopstats file loopstats type day enablefilegen peerstats file peerstats type day enablefilegen clockstats file clockstats type day enableserver 0.debian.pool.ntp.org iburstserver 1.debian.pool.ntp.org iburstserver 2.debian.pool.ntp.org iburstserver 3.debian.pool.ntp.org iburstserver 127.127.1.0fudge 127.127.1.0 stratum 12restrict default kod notrap nomodify nopeer noqueryrestrict 127.0.0.1 nomodify

Ténylegesen sokkal több opció létezik, illetve a szerepl® opcióknak is több kapcsolója van,de most csak a fentiek magyarázatára térünk ki.drift�le Ebben a fájlban tárolja az ntp démon, hogy az els® elindulásakor a számítógép bels®frekvenciájának mennyi a hibája. Körülbelül 1 napig tart az elindítása után, amíg egy jóbecslést kiszámít, és ily módon közel kerül a szinkronizáláshoz használt szerver idejéhez.Ezt a fájlt használja arra, hogy a démon újraindítása esetén újra inicializálja saját magát,és így el tudja kerülni azt, hogy újra 1 napig tartson a becslés kiszámítása.statsdir Egy könyvtár teljes elérési útvonalát határozza meg, ahol a statisztikai fájlokat tárolnifogja a rendszer.statistics Engedéyezi statisztikai adatok írását. Jelenleg 6 különböz® statisztika támogatott.

2007. december 22. Kósa Attila <[email protected]>

Page 112: kosa_attila_halozat.pdf

112 Debian GNU/Linuxclockstats Az óra statisztikai információi.loopstats A loop �lter statisztikai információi.peerstats Az egyéb ntp szerverekkel kapcsolatos statisztikai információk (magában fog-lalja a kon�gurált speciális szignálokat is).

�legen Egy adott sor meghatározza, hogy milyen típusú adatot mikor és hová kell írni. Arégi adatokat (fájlokat) el lehet távolítani, mert csak adminisztrációs szempontból vanjelent®ségük, az ntp csak az aktuális fájlokat használja.server A szinkronizáláshoz használt time szerver neve vagy IP címe.fudge Arra használatos, hogy plusz információt szolgáltasson az egyéni órairányítók számára.A stratum opció használható az eszköz alapértelmezésének felülírására.

Egy referenciaórának a stratum száma alapértelmezésben nulla. Az ntp minden egyesszerver stratumához (amelyekhez ® szinkronizál) hozzáad egyet. 15 fölötti stratum eseténmár nem használják szinkronizálásra, mert túlságosan pontatlan lenne.restrict Az alapértelmezett bejegyzés (IP cím: 0.0.0.0, netmaszk 0.0.0.0) mindig benne van, ésmindig a listának az els® tagja. Tehát az els® restrict bejegyzés mindig erre vonatkozik.A további bejegyzéseknél megadhatjuk (IP címmel vagy DNS névvel) a korlátozandóklistáját. Ha nincs restrict sor a kon�gurációs állományunkban, akkor nincs semmilyenkorlátozás a szolgáltatás elérését tekintve. A korlátozásokat két csoportra lehet osztani,az egyik, amely az id®szolgáltatás elérését korlátozza, a másik pedig a szervert®l kérhet®információkat, valamint a szerver futási id®ben történ® újrakon�gurálását.

ignore Minden csomagot �gyelmen kívül hagy, beleértve az ntpq és az ntpdc lekérdezé-seket is.kod Ha ez a jelz® be van állítva amikor egy szabálytalan elérési próbálkozás történik,akkor egy KoD (kiss-o'-death � a halál csókja) csomagot fog küldeni a szerver. Ezencsomagok száma másodpercenként egyre van korlátozva.nomodify Megakadályozza, hogy az ntpq és az ntpdc segítségével változtatni lehessena kon�gurációs beállításokon, tehát futás közben nem lehet átállítani a szervert. Azezekkel a parancsokkal történ® lekérdezést azonban nem tiltja meg.noquery Letiltja az ntpq és az ntpdc kéréseit. Ez magát a szolgáltatást nem érinti.nopeer Elutasítja azokat a csomagokat, amelyek új szervert vennének fel.notrap A trap szolgáltatás elérését tiltja.

A fentiek ismeretében lássuk, pontosan mit is jelent az elkészített kon�gurációs állományunk.A /var/lib/ntp/ntp.drift fájl van beállítva drift�le-ként (azaz ott tárolja az adatokat). Astatisztikák tárolására a /var/log/ntpstats/ könyvtár van megadva. 3 statisztika készüljön,naponta egy, a statisztikák nevének megfelel® fájlba kerüljenek (az el®z®leg megadott könyv-tárban). 2 szerver van beállítva. A 192.168.10.254 a t¶zfalunk IP címe, ahhoz szinkronizál abels® szerverünk. A 127.127.1.0 cím¶ szerver az saját magát, a lokális gép óráját jelenti. Asaját órájához 13 van beállítva stratumként (az egyszer¶ség kedvéért nevezzük pontosságnak,bár nem egészen fedi ez a kifejezés a valóságot). Ez arra jó, hogy ha nem tud a távoli szerverhezszinkronizálni, akkor is tud id®t szolgáltatni a kliensek (és a szerverek) számára. És végül kétkorlátozás szerepel még a kon�gurációs állományban.

Kósa Attila <[email protected]> 2007. december 22.

Page 113: kosa_attila_halozat.pdf

Debian GNU/Linux 11315.2.2. A szolgáltatás ellen®rzése

Több lehet®ségünk is van a szolgáltatás m¶ködésének az ellen®rzésére. A legegyszer¶bb azntpdate használata (ehhez el®ször természetesen telepítenünk kell az ntpdate csomagot). Ezzelegyszer¶en megpróbáljuk elérni a szervert:# ntpdate -q -v time8 Nov 15:54:39 ntpdate[1213]: ntpdate 4.2.0a@1:4.2.0a+stable-2-r Fri Aug 26 10:30:13 UTC 2005 (1)server 192.168.10.253, stratum 5, offset 0.000004, delay 0.025688 Nov 15:54:39 ntpdate[1213]: adjust time server 192.168.10.253 offset 0.000004 secEgy másik lehet®ség az ntpq használata. Ha úgy indítjuk, hogy ntpq, akkor egy ntpq>promptot kapunk, ahol a ? (kérd®jel) segítségével juthatunk a használható parancsok listájához.Ugyanezeket a parancsokat használhatjuk az ntpq másik indítási módjánál is: ntpq -c ?. Teháta -c parancssori opció után adhatjuk meg a használható parancsokat. Például a readvar opcióhatására a következ® adatokat kapjuk:# ntpq -c readvarassID=0 status=0664 leap_none, sync_ntp, 6 events, event_peer/strat_chg,version="ntpd [email protected] Sun Mar 4 13:21:35 UTC 2007 (1)"processor="i686", system="Linux/2.6.18-4-686", leap=00, stratum=5precision=-20, rootdelay=25.092, rootdispersion=379.947, peer=29110,refid=192.168.10.254,reftime=c9b22e22.81d92a97 Mon, Mar 26 2007 13:33:54.507, poll=6,clock=c9b22fea.083a1008 Mon, Mar 26 2007 13:41:30.032, state=4,offset=122.694, frequency=38.028, jitter=140.360, noise=43.379,stability=13.445, tai=0Itt látható, hogy miért ajánlatos letiltani az NTP szerverünk ntpq segítségével történ® el-érését. Hiszen még a használt szoftver és kernel verziója is megjelenik az üzenetben, amely alegtöbb esetben nem publikus információ.A harmadik lehet®ség az ntpdc használata, amely az ntpq parancshoz hasonlóan m¶ködik.A lekérdezéshez használható opciókat ennél az ntpdc -c ? parancs segítségével kaphatjuk meg.

15.3. ntpdateArra szolgál, hogy a gép óráját egy id®kiszolgálóhoz szinkronizálja.El®ször telepítsük fel:# apt-get install ntpdate

Egyetlen kon�gurációs állománya van, a /etc/default/ntpdate fájl. A fájl a telepítés utánaz alábbiakat tartalmazza (a kommenteket kihagytam):NTPDATE_USE_NTP_CONF=yesNTPSERVERS="0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org"NTPOPTIONS=""

Az NTPOPTIONS opciónál sorolhatjuk fel az ntpdate parancssori kapcsolóit. Ezek közülaz alábbi hármat látom én célszer¶nek használni:s Alapértelmezésben a standard kimenetre küldi üzeneteit az ntpdate, de ett®l a kapcsolótól asyslog-ba fognak bekerülni az üzenetek.u E nélkül a kapcsoló nélkül az ntpdate a 123-as (privilegizált) portot akarja használni. Ha futegy NTP szerver a gépen, akkor ez nem fog neki sikerülni, és az alábbi hibaüzenetet adja:the NTP socket is in use, exiting.v B®beszéd¶bbé válik t®le az ntpdate, kiírja, hogy mennyi volt az id®eltérés a szinkronizálásrahasznált szervert®l.

Végeredményben így fog kinézni a /etc/default/ntpdate állományunk:NTPDATE_USE_NTP_CONF=noNTPSERVERS="time"NTPOPTIONS="-vus"

2007. december 22. Kósa Attila <[email protected]>

Page 114: kosa_attila_halozat.pdf

114 Debian GNU/LinuxAz ntpdate csak a rendszer indulásakor fut le automatikusan. Ha nem csak ilyenkor szeret-nénk futtatni, akkor kénytelenek vagyunk a cron segítségével elindítani. Ehhez a /etc/cron.dkönyvtárba helyezzünk el egy ntpdate1 nev¶ fájlt az alábbi tartalommal:

MAILTO=""15 * * * * root /usr/sbin/ntpdate-debian -s -b >/dev/nullA MAILTO sor hatására a cron nem fog levelet küldeni a parancs végrehajtásáról. A kö-vetkez® sor hatására pedig minden óra 15 perckor fogja futtatni a szinkronizáláshoz szükségesparancsot.

15.4. SMTPA t¶zfalon futó SMTP szolgáltatás beállításának bemutatása ennek a fejezetnek a célja.15.4.1. post�x# apt-get install postfixSetting up postfix (2.3.8-2+b1) ...Adding group `postfix' (GID 104) ...Done.Adding system user `postfix' (UID 101) ...Adding new user `postfix' (UID 101) with group `postfix' ...Not creating home directory `/var/spool/postfix'.Creating /etc/postfix/dynamicmaps.cfAdding tcp map entry to /etc/postfix/dynamicmaps.cfAdding group `postdrop' (GID 105) ...Done.setting myhostname: fw.kulso-domain.husetting alias mapssetting alias databasechanging /etc/mailnamesetting myoriginsetting destinations: fw.kulso-domain.hu, localhost.kulso-domain.hu, localhostsetting relayhost:setting mynetworks: 127.0.0.0/8setting mailbox_size_limit: 0setting recipient_delimiter: +setting inet_interfaces: all/etc/aliases does not exist, creating it.WARNING: /etc/aliases exists, but does not have a root alias.Postfix is now set up with a default configuration. If you needto make changes, edit /etc/postfix/main.cf (and others) asneeded. To view Postfix configuration values, see postconf(1).After modifying main.cf, be sure to run '/etc/init.d/postfix reload'.Running newaliasesStopping Postfix Mail Transport Agent: postfix.Starting Postfix Mail Transport Agent: postfix.

Válaszok a telepítés közben feltett kérdésekre.General type of configuration? Internet with smarthostMail name? fw.kulso-domain.huSMTP relay host? (blank for none)

Érdemes lefuttatni a következ® parancsot, mert így még több dolgot bekon�gurálhatunka kon�gurációs állomány kézi szerkesztése nélkül, és így a debconf is megjegyzi válaszainkat,aminek egy frissítés esetén vehetjük hasznát.# dpkg-reconfigure -plow postfix

Válaszok a kérdésekre.General type of configuration? Internet SiteWhere should mail for root go [email protected] name? fw.kulso-domain.huSMTP relay host? (blank for none)Other destinations to accept mail for? (blank for none) fw.kulso-domain.hu, localhost.kulso-domain.hu, localhostForce synchronous updates on mail queue? NoLocal networks? 127.0.0.0/8 192.168.10.252/32Mailbox size limit 0Local address extension character? +Internet protocols to use? ipv4

1Önkényesen választottam ezt a nevet.

Kósa Attila <[email protected]> 2007. december 22.

Page 115: kosa_attila_halozat.pdf

Debian GNU/Linux 115Állítsuk le a postfix-et amíg be nem állítjuk, nehogy valahogy elveszítsünk leveleket. Akára csomagsz¶r® segítségével is letilthatjuk ideiglenesen, hogy kívülr®l (vagy akár belülr®l is)kapcsolódhassanak hozzá. A csomagsz¶r®s tiltástól még fog tudni kifelé küldeni levelet, tehát azttudjuk majd tesztelni, hogy a kulso-domain.hu címre érkez® leveleket megfelel®en továbbítja-e az általunk kívánt gépre. A kon�gurálás és a teszt végén ne felejtsük el a csomagsz¶r®benengedélyezni a 25-ös portra való kapcsolódást (alapértelmezésben ott �gyel a postfix).A telepítés végén a /etc/postfix/main.cf kon�gurációs állomány a következ® sorokat tar-talmazza (a kommenteket nem írom le):

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)biff = noappend_dot_mydomain = nosmtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pemsmtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.keysmtpd_use_tls=yessmtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scachesmtp_tls_session_cache_database = btree:${queue_directory}/smtp_scachemyhostname = fw.kulso-domain.hualias_maps = hash:/etc/aliasesalias_database = hash:/etc/aliasesmyorigin = /etc/mailnamemydestination = fw.kulso-domain.hu, localhost.kulso-domain.hu, localhostmynetworks = 127.0.0.0/8 192.168.10.252/32mailbox_size_limit = 0recipient_delimiter = +inet_interfaces = allinet_protocols = ipv4Ezt ki kell egészítenünk egy pár opcióval, hogy az Internet fel®l érkez® leveleket továbbítsaa bels® levelez®szerverünknek.

relay_domains = kulso-domain.hutransport_maps = hash:/etc/postfix/transportA /etc/postfix/transport fájl tartalma az alábbi legyen.

kulso-domain.hu smtp:[192.168.10.252]Majd kell egy parancs, amivel a postfix számára szükséges .db kiterjesztés¶ fájlt létrehozzuka transport fájlból.

# cd /etc/postfix# postmap transportEzután már csak el kell indítanunk a postfix-et (ha az elején leállítottuk, ellenkez® eset-ben újra kell indítanunk), és m¶ködni fog � továbbítani fogja a kulso-domain.hu címre érkez®leveleket a bels® levelez®szerverünknek.

15.5. VPNA hálózatunkon kívül lev®knek szeretnénk szabályozott módon biztonságos elérést biztosítania védett hálózatunkban lév® szolgáltatásokhoz. A t¶zfalon futó szerver, valmint a kapcsolódnikívánó kliensek beállításainak bemutatása ezen fejezet célja.15.5.1. OpenVPN

Telepítés szerver oldalonA telepítés egyszer¶. De a használatához kernel-szint¶ támogatás szükséges (legalább modulbakell fordítanunk a Universal TUN/TAP device driver support opciót). Valamint a /dev/netkönyvtárba kell egy tun nev¶ eszközfájl is. Felrakja az openssl csomagot is, ha még nincs fent.# apt-get install openvpn

2007. december 22. Kósa Attila <[email protected]>

Page 116: kosa_attila_halozat.pdf

116 Debian GNU/LinuxBeállítás szerver oldalonExtra biztonságot ad az SSL/TLS kapcsolatok mellett, segítséget nyújt a Dos (Denial of Service)támadások kivédéséhez és az UDP port elárasztása (�ood) ellen.# cd /etc/openvpn# openvpn --genkey --secret ta.key

Di�e-Hellman paraméter2. A Di�e-Hellman protokoll a kulcsegyeztetés feladatát oldja megkét távoli fél között. B®vebben például a bibliográ�ában szerepl® [2] anyagban olvashatunk róla.# cd /etc/openvpn# openssl dhparam -out dh2048.pem 2048Generating DH parameters, 2048 bit long safe prime, generator 2This is going to take a long time...............................................................................+.............................................................................................................++*++*

Az 5.1.2. fejezetben leírtaknak megfelel®en generáljunk tanúsítványt ezen szerver részére is,valamint a vpn-en csatlakozni kívánó kliensek részére is. Ez utóbbiaknál lényegtelen a nevük,mindössze arra kell �gyelnünk, hogy a generált tanúsítvány nevének megfelel® nev¶ fájlba kellmajd beírnunk a szerveren az adott kliensre vonatkozó dolgokat (a /etc/openvpn/client.dkönyvtárban). Az egyszer¶ség és az érthet®ség kedvéért nevezzük vpn001.akarmi.intra névenaz els® kliensünket.Nézzük meg, mit is tartalmazzon a server.conf nev¶ kon�gurációs állomány:local t¶zfal.küls®.ip.címeport 1194proto udpdev tunca /etc/ssl/certs/CA.crtcert /etc/ssl/certs/tuzfal.akarmi.intra.crtkey /etc/ssl/private/tuzfal.akarmi.intra.key.nopassdh /etc/openvpn/dh2048.pemserver 10.10.0.0 255.255.255.248ifconfig-pool-persist /etc/openvpn/ipp.txtclient-config-dir /etc/openvpn/client.dpush "dhcp-options DNS 192.168.10.253"route 10.10.1.0 255.255.255.0keepalive 10 120tls-auth /etc/openvpn/ta.key 0comp-lzomax-clients 100user nobodygroup nogrouppersist-keypersist-tunstatus /var/log/openvpn-status.loglog /var/log/openvpn.logverb 5management localhost 7505

Az opciók magyarázata:local A t¶zfalnak az az IP címe, amelyen �gyelnie kell az openvpn-nek.port Az a portszám, ahol �gyelnie kell az openvpn-nek.proto A kapcsolódáshoz használt protokoll.dev A �tun� beállítás IP tunnelt hoz létre, a �tap� beállítás pedig ethernet tunnelt. Ha bridge-etszeretnénk csinálni, akkor a �tap� beállítást kell használnunk.ca A CA tanúsítványa.cert A t¶zfal részére kiállított tanúsítvány.key A t¶zfal titkos kulcsa.dh A Di�e Hellman paraméter.

2A generálás ideje alatt a beidézettnél jóval több pont és összeadás-jel jelent meg a képerny®n. A gép er®ssé-gét®l függ, hogy mennyi ideig húzódik el a generálás.

Kósa Attila <[email protected]> 2007. december 22.

Page 117: kosa_attila_halozat.pdf

Debian GNU/Linux 117server Itt állítunk be a szervernek egy alhálózatot, amelyb®l majd a klienseknek adhat címet.A szerver fenntartja magának a 10.10.0.1-es IP címet, amely címen minden kliens elérheti.Kommentezzük ki ezt a sort, ha bridge-et szeretnénk beállítani.ifcon�g-pool-persist Ebben a fájlban tartjuk nyilván a kliens � IP cím összerendeléseket.Ha újraindítjuk az openvpn-t, akkor ezáltal lehet®ség nyílik arra, hogy a visszacsatlakozókliensek ugyanazt az IP címet kapják, amit korábban.client-con�g-dir Az a könyvtár, ahol a kliensek (szerver oldali) kon�gurációs állományaittároljuk. Ne felejtsük el létrehozni!push "dhcp-options DNS 192.168.10.253" A klienseknek kiküldi a névfeloldást végz® szer-ver IP címét. Ne felejtsük el odaengedni a csomagsz¶r®ben a klienseket ehhez a címhez!route Ezzel állíthatjuk be, hogy milyen IP tartományokat kezeljen a szerverünk. Több ilyensort is tartalmazhat a kon�gurációs állomány.keepalive Ping-szer¶ üzeneteket küld oda-vissza a linken keresztül, hogy észrevegye, ha a kap-csolat leáll. Minden 10 másodpercben küld csomagot, és ha nem jön válasz, akkor 120másodperc után veszi úgy, hogy leállt a kapcsolat.tls-auth Extra biztonságot ad az SSL/TLS kapcsolatok mellett, segítséget nyújt a Dos (Denialof Service) támadások kivédéséhez és az UDP port elárasztása (�ood) ellen. A szerveren0-t kell beállítani, a klienseken pedig 1-et.comp-lzo Engedélyezi a tömörítést.max-clients Maximum az itt megadott számú kliens kapcsolódhat egyszerre.user Melyik felhasználó nevében fusson az openvpn.group Melyik csoport nevében fusson az openvpn.status Egy fájlnevet kell megadnunk, amelybe percenként rövid statisztika készül, mutatva azaktuális kapcsolatokat.log Alapértelmezésben a syslog-ba kerülnek az openvpn üzenetei, de ezzel az opcióval küldhet-jük külön fájlba.verb Az openvpn �b®beszéd¶ségének� beállítása.management Egy menedzsment interfészt állít be, amelyet a megadott porton lehet elérni(telnet segítségével).

15.1. táblázat: Fájlok jogosultságai

Fájlnév Szükséges Micsoda Titkos

CA.crt a szerver + minden kliens Root CA tanúsítvány Nem

CA.key csak a kulcsgeneráló gépen Root CA kulcs Igen

dh2048.pem csak a szerveren Di�e Hellman paraméter Nem

ta.key szerver + minden kliens Extra biztonság Igen

tuzfal.akarmi.intra.crt csak a szerveren Szerver tanúsítvány Nem

tuzfal.akarmi.intra.key.nopass csak a szerveren Szerver kulcs Igen

vpn001.akarmi.intra.crt csak a kliens1 gépen Kliens1 tanúsítvány Nem

vpn001.akarmi.intra.key.nopass csak a kliens1 gépen Kliens1 klucs Igen

Ilyen párokat lehet kialakítani:

2007. december 22. Kósa Attila <[email protected]>

Page 118: kosa_attila_halozat.pdf

118 Debian GNU/Linux[ 1, 2] [ 5, 6] [ 9, 10] [ 13, 14] [ 17, 18][ 21, 22] [ 25, 26] [ 29, 30] [ 33, 34] [ 37, 38][ 41, 42] [ 45, 46] [ 49, 50] [ 53, 54] [ 57, 58][ 61, 62] [ 65, 66] [ 69, 70] [ 73, 74] [ 77, 78][ 81, 82] [ 85, 86] [ 89, 90] [ 93, 94] [ 97, 98][101,102] [105,106] [109,110] [113,114] [117,118][121,122] [125,126] [129,130] [133,134] [137,138][141,142] [145,146] [149,150] [153,154] [157,158][161,162] [165,166] [169,170] [173,174] [177,178][181,182] [185,186] [189,190] [193,194] [197,198][201,202] [205,206] [209,210] [213,214] [217,218][221,222] [225,226] [229,230] [233,234] [237,238][241,242] [245,246] [249,250] [253,254]

A menedzsment rész viszonylag egyszer¶en m¶ködik:$ telnet localhost 7505Trying 127.0.0.1...Connected to localhost.localdomain.Escape character is '^]'.>INFO:OpenVPN Management Interface Version 1 -- type 'help' for more infohelpManagement Interface for OpenVPN 2.0.9 i386-pc-linux [SSL] [LZO] [EPOLL] built on Dec 2 2006Commands:auth-retry t : Auth failure retry mode (none,interact,nointeract).echo [on|off] [N|all] : Like log, but only show messages in echo buffer.exit|quit : Close management session.help : Print this message.hold [on|off|release] : Set/show hold flag to on/off state, orrelease current hold and start tunnel.kill cn : Kill the client instance(s) having common name cn.kill IP:port : Kill the client instance connecting from IP:port.log [on|off] [N|all] : Turn on/off realtime log display+ show last N lines or 'all' for entire history.mute [n] : Set log mute level to n, or show level if n is absent.net : (Windows only) Show network info and routing table.password type p : Enter password p for a queried OpenVPN password.signal s : Send signal s to daemon,s = SIGHUP|SIGTERM|SIGUSR1|SIGUSR2.state [on|off] [N|all] : Like log, but show state history.status [n] : Show current daemon status info using format #n.test n : Produce n lines of output for testing/debugging.username type u : Enter username u for a queried OpenVPN username.verb [n] : Set log verbosity level to n, or show if n is absent.version : Show current version number.ENDTelepítés windowsos kliensenLe kell tölteni a http://openvpn.net/release/openvpn-2.0.9-install.exe fájlt, majd felkell telepíteni. Alapértelmezésben a C:\Program Files\OpenVPN könyvtárba települ. A kap-csolódáshoz szükséges állományokat az ebben a könyvtárban lév® config nev¶ könyvtárba kellelhelyezni. Az ide kerül® fájlok a következ®k:

• client.ovpn (a kon�gurációs állomány),• CA.crt (a CA-nk tanúsítványa),• ta.key (amelyet a t¶zfalon generáltunk az extra biztonság érdekében),• vpn001.akarmi.intra.crt (a kliens számára kiállított tanúsítvány),• vpn001.akarmi.intra.key.nopass (a kliens titkos kulcsa).Nézzük meg, mit is tartalmazzon a client.ovpn nev¶ kon�gurációs állomány:

clientdev tunproto udpremote t¶zfal.küls®.ip.címe 1194resolv-retry infinitenobindpersist-keypersist-tunca CA.crtcert vpn001.akarmi.intra.crtkey vpn001.akarmi.intra.key.nopasstls-auth ta.key 1comp-lzoverb 3Az opciók magyarázata (csak a szervert®l eltér® opciók magyarázata szerepel):

Kósa Attila <[email protected]> 2007. december 22.

Page 119: kosa_attila_halozat.pdf

Debian GNU/Linux 119client Meghatározza, hogy kliensr®l van szó, és hogy a szervert®l bizonyos kon�gurációs utasí-tásokat fogunk kapni.remote A t¶zfal küls® IP címe, ahová kapcsolódnia kell a kliensnek. Az 1194 a kapcsolódásrahasznált port száma.resolv-retry Azt okozza ezen opció, hogy a kliens korlátlanul próbálja feloldani a szerver nevét.Nagyon hasznos olyan gépek esetén, amelyeknek nincs folyamatos Internet-kapcsolata.nobind Nagyon sok kliensnek nincs szüksége arra, hogy egy speciális helyi porthoz hozzáren-delje a kapcsolódást.cert A kliens részére kiállított tanúsítvány.key A kliens titkos kulcsa.

Ha mindezekkel megvagyunk, akkor elindíthatjuk a kapcsolódást. Az egér jobb gombjávalkattintsunk a client.ovpn fájlon és válasszuk a Start OpenVPN on this con�g �le menüpontot.Amikor a kliens kapcsolódott a szerverhez, akkor egy DOS-ablak jelenik meg a képerny®n,amelyben láthatóak a logok, és az alábbi billenty¶kkel adhatunk parancsokat az openvpn-nek.F1 Feltételes restart (a hálózati interfész bezárása és újra megnyitása nélkül).F2 A kapcsolat statisztikáinak megmutatása.F3 A kapcsolat teljes újraindítása.F4 A kapcsolat bontása.Egy kliens beállítása a szerverenA korábban létrehozott kulcshoz tartozó opciók beállítása következik. Az alábbi tartalommalhozzunk létre a /etc/openvpn/client.d könyvtárban egy vpn001.akarmi.intra nev¶ fájlt.ifconfig-push 10.10.1.1 10.10.1.2push "route 192.168.10.0 255.255.255.0"

Ezzel elértük azt, hogy a vpn001.akarmi.intra névre kiállított kulccsal kapcsolódó kliensmindig a 10.10.1.1 IP címet fogja kapni, valamint a windowsos gépén beállításra kerül egy routebejegyzés, miszerint a 192.168.10.0/24 hálózatot a VPN-en keresztül tudja elérni.A csomagsz¶r® beállítása fontos (121. oldal), ne felejtkezzünk el róla!

15.6. Csomagsz¶résCélom az ebben a fejezetben bemutatott beállításokkal, hogy a bels® hálózatból csak a meg-határozott forgalom juthasson ki az Internetre. De nem csak a forgalom �milyensége� legyenkorlátozva, hanem az is, hogy mely gépek érhetik el egyáltalán a bels® hálózaton kívüli gé-peket. Valamint az, hogy a VPN-en kapcsolódó felhasználók csak a számukra engedélyezettszolgáltatásokat tudják használni. Nagyon hasznos, alapos és jó (bár angol nyelv¶) olvasmánya csomagsz¶rés témában: [4], amely többféle formátumban is letölthet® az oldalról.Egy szkriptben készítettem el a csomagsz¶r®nk beállításait, hogy egyszer¶en használhas-sak változóneveket is. Viszont semmi sem akadályoz meg bennünket abban, hogy ha egyszerbetöltöttük a szabályainkat, akkor az iptables-save parancs segítségével kimentsük azokategy fájlba, és a rendszer indulásakor az iptables-restore parancs segítségével abból a fájlbóltöltsük ®ket vissza.

2007. december 22. Kósa Attila <[email protected]>

Page 120: kosa_attila_halozat.pdf

120 Debian GNU/LinuxÖnkényesen választott elnevezéseket használok a saját láncok neveként, illetve a változókneveiként, de bízom benne, hogy érthet®. A feltételezés az, hogy a t¶zfal egy dhcp szervert®lkapja az IP címét, amely dinamikusan változik, tehát nem �x a cím.3 Ha ftp elérést is sze-retnénk a t¶zfalon keresztül engedélyezni, akkor javasolt a megfelel® kernelmodulok betöltése(a 2.6-os sorozatnál az ip_conntrack_ftp és az ip_nat_ftp modulok). Az alábbi szkriptet amagyarázatok feldarabolták, de egyetlen fájlba kell beírnunk!A kés®bb használt változókat de�niáltam a szkript elején.

#!/bin/shBelsoInterface=eth1KulsoInterface=eth0KulsoIPCim=a.tuzfal.kulso.cimeBELSO_PROXY=192.168.10.251BELSO_MAIL=192.168.10.252BELSO_SLAVEDNS=192.168.10.252BELSO_DNS=192.168.10.253BELSO_NTP=192.168.10.253BELSO_WEB=192.168.10.247ADMIN=192.168.10.10VPN1NET=10.10.1.0Itt az látható, hogy el®ször kitöröljük a jelenlegi szabályokat a �lter és nat táblákat, majdtöröljük az általunk létrehozott láncokat. Ezekre a sorokra azért van szükség, hogy ha újralefuttatjuk ezt a szkriptet, akkor nulláról jöjjenek létre a szabályaink, ne maradhasson bent régiszabály. A szkript els® futtatásakor emiatt hibaüzenet fogunk kapni, mely szerint nem létezneka törölni kívánt láncok, de ez természetes, hiszen valóban nem léteznek, a törlés után fogjuk®ket létrehozni.

iptables -t nat -Fiptables -t filter -Fiptables -X icmpkiptables -X belsoiptables -X kulsoiptables -X DROPINVALIDEzen sorok segítségével beállítjuk a �lter és nat táblák alapértelmezett szabályait.

iptables -t filter -P INPUT DROPiptables -t filter -P FORWARD DROPiptables -t filter -P OUTPUT ACCEPTiptables -t nat -P PREROUTING ACCEPTiptables -t nat -P POSTROUTING ACCEPTiptables -t nat -P OUTPUT ACCEPTAnnak biztosítása, hogy a bels® hálózat proxy-jától érkez® csomagok úgy jussanak ki azInternetre, hogy a t¶zfal címével látszódjanak. Megtehetjük, hogy ezt a szabályt úgy írjuk meg,hogy csak megadott portokra men® csomagokra legyen érvényes, de a FORWARD láncban isszabályozhatjuk, hogy mit engedünk át magunkon. Most ez utóbbit mutatom be.3

iptables -t nat -A POSTROUTING -s $BELSO_PROXY -o eth0 -j MASQUERADE#iptables -t nat -A POSTROUTING -s $BELSO_PROXY -o eth0 -j SNAT --to-source $KulsoIPCimAz alábbi két szabály a t¶zfal két megadott küls® portjára érkez® kapcsolatokat berakja abels® hálózat megadott gépeire. Ne felejtsük, hogy a FORWARD lánc erre vonatkozó szabályaiis szükségesek ahhoz, hogy a bels® gépeink a megadott portokon valóban elérhet®ek legyenek akülvilág számára!

iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination $BELSO_WEB:80iptables -t nat -A PREROUTING -p tcp --dport 993 -j DNAT --to-destination $BELSO_MAIL:993A saját láncaink létrehozása.

iptables -N icmpkiptables -N belsoiptables -N kulsoiptables -N DROPINVALID3Fix IP cím esetén a MASQUERADE helyett érdemesebb az SNAT megoldást használni.

Kósa Attila <[email protected]> 2007. december 22.

Page 121: kosa_attila_halozat.pdf

Debian GNU/Linux 121Az els® szabály azt biztosítja, hogy a loopback interfészen minden forgalom lehetséges le-gyen. A második szabály a t¶zfalra érkez® ICMP csomagok sorsáról rendelkezik (betereli ®ketaz icmpk néven létrehozott saját láncunkba). A harmadik szabály az iptables állapottartólehet®ségét használja ki. Ily módon arról �értesítettük� a kernelünket, hogy a már kiépült kap-csolatokhoz tartozó csomagokat engedélyezze. A negyedik szabály a DROPINVALID nev¶ sajátláncunkba tereli a kernel által INVALID állapotúnak érzékelt csomagokat. Az utolsó sor szinténa DROPINVALID láncba küldi a csomagokat, de csak azokat, amelyek NEW állapotúak ugyan,de nincs bekapcsolva bennük a SYN bit.

iptables -A INPUT -i lo -j ACCEPTiptables -A INPUT -p icmp -j icmpkiptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPTiptables -A INPUT -m state --state INVALID -j DROPINVALIDiptables -A INPUT -p tcp -m state --state NEW ! --syn -j DROPINVALIDA forgalom átirányítása a saját láncainkra attól függ®en, hogy a t¶zfal melyik hálózatikártyáján érkezik.

iptables -A INPUT -i $BelsoInterface -j belsoiptables -A INPUT -i $KulsoInterface -j kulsoAzt a forgalmat, amely a szabályainkon kívül esik, azt logoljuk, majd eldobjuk.

iptables -A INPUT -j LOG --log-prefix "INPUT DROP: "iptables -A INPUT -j DROPAz els® szabály ismer®s lehet, hiszen az INPUT láncban már kiadtunk egy hasonlót. Ittis ugyanaz a feladata, mint ott. A második, harmadik és negyedik szabállyal azt állítjuk be,hogy a bels® hálózaton lév® proxyszerverünk az általában használatos portokra (ftp � 21, http� 80, https � 443) kimehessen (és persze rajta keresztül a proxy-n engedélyezett egyéb bels®gépek is). Az utolsó két sor a külvilág számára teszi lehet®vé a két megadott bels® gépünkmegfelel® portjának az elérését. Ne felejtsük, hogy ezek a szabályok összefüggésben állnak aPREROUTING láncban meghatározott DNAT szabályokkal!

iptables -A FORWARD -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPTiptables -A FORWARD -p tcp -m state --state NEW --syn -s $BELSO_PROXY --dport 21 -j ACCEPTiptables -A FORWARD -p tcp -m state --state NEW --syn -s $BELSO_PROXY --dport 80 -j ACCEPTiptables -A FORWARD -p tcp -m state --state NEW --syn -s $BELSO_PROXY --dport 443 -j ACCEPTiptables -A FORWARD -p tcp -m state --state NEW --syn -d $BELSO_WEB --dport 80 -j ACCEPTiptables -A FORWARD -p tcp -m state --state NEW --syn -d $BELSO_MAIL --dport 993 -j ACCEPTItt szabályozzuk a 10.10.1.0/24-es VPN hálózatunkból érkez® kapcsolatokat. Az els® szabálya névfeloldást végz® bels® szerverünk elérését engedélyezi UDP protokollon, a második szabálypedig minden bels® hálózaton lév® gép elérését lehet®vé teszi TCP protokollon keresztül.

iptables -A FORWARD -p udp -m state --state NEW --syn -s VPN1NET -d $BELSO_DNS --dport 53 -j ACCEPTiptables -A FORWARD -p tcp -m state --state NEW --syn -s VPN1NET -j ACCEPTAzt a forgalmat, amely a szabályainkon kívül esik, azt logoljuk, majd eldobjuk.

iptables -A FORWARD -j LOG --log-prefix "FORWARD DROP: "iptables -A FORWARD -j DROPAzokat az ICMP típusokat soroltam fel itt, amelyek eljuthatnak a t¶zfalhoz. Ezeket általábanérdemes engedélyezni, bár a ping-r®l megoszlanak a vélemények.

iptables -A icmpk -p icmp --icmp-type destination-unreachable -j ACCEPTiptables -A icmpk -p icmp --icmp-type time-exceeded -j ACCEPTiptables -A icmpk -p icmp --icmp-type parameter-problem -j ACCEPTiptables -A icmpk -p icmp --icmp-type source-quench -j ACCEPTiptables -A icmpk -p icmp --icmp-type echo-request -j ACCEPTiptables -A icmpk -p icmp --icmp-type echo-reply -j ACCEPTAzt a forgalmat, amely a szabályainkon kívül esik, azt logoljuk, majd eldobjuk.

2007. december 22. Kósa Attila <[email protected]>

Page 122: kosa_attila_halozat.pdf

122 Debian GNU/Linux

iptables -A icmpk -j LOG --log-prefix "Icmpk DROP: "iptables -A icmpk -j DROPKorlátozzuk, hogy a bels® hálózatból mely gépek a t¶zfal melyik portját érhetik el. Így érvé-nyesítjük azt az elvet4, hogy a t¶zfallal a munkaállomások nem léphetnek közvetlen kapcsolatba,csak valamelyik bels® szerveren keresztül csinálhatnak bármit is (levelet csak a bels® mailszerverküldhet a t¶zfalnak, névfeloldásért csak a két dns szerver fordulhat a t¶zfalhoz, a t¶zfal id®-szolgáltatását csak a bels® ntp szerver veheti igénybe, és csak az adminisztrátor gépér®l lehetelérni a t¶zfalat ssh-val).

iptables -A belso -p tcp -s $BELSO_MAIL --dport 25 -j ACCEPTiptables -A belso -p udp -s $BELSO_DNS --dport 53 -j ACCEPTiptables -A belso -p tcp -s $BELSO_DNS --dport 53 -j ACCEPTiptables -A belso -p udp -s $BELSO_SLAVEDNS --dport 53 -j ACCEPTiptables -A belso -p tcp -s $BELSO_SLAVEDNS --dport 53 -j ACCEPTiptables -A belso -p udp -s $BELSO_NTP --dport 123 -j ACCEPTiptables -A belso -p tcp -s $ADMIN --dport 22 -j ACCEPTAzt a forgalmat, amely a szabályainkon kívül esik, azt logoljuk, majd eldobjuk.

iptables -A belso -j LOG --log-prefix "belso DROP: "iptables -A belso -j DROPA küls® portjaink elérésére vonatkozó szabályok. Az els® a dinamikus IP cím miatt van,a második azért, hogy tudjanak nekünk levelet küldeni. A harmadik pedig azért, mert egyeslevelez®szerverek megpróbálják elérni az identd démont, hogy információhoz jussanak a leveletküld®r®l, és amíg ez nem sikerül nekik (vagy az erre szánt id® le nem jár), addig nem veszik elt®lünk a levelet. A REJECT szabálynak köszönhet®en azonnal elutasító választ kap a kérdez®,így nem kell az id®túllépést megvárnunk, gyorsabb lesz a levél elküldése.

iptables -A kulso -p udp --sport 67 --dport 68 -j ACCEPTiptables -A kulso -p tcp --dport 25 -j ACCEPTiptables -A kulso -p tcp --dport 113 -j REJECTAzt a forgalmat, amely a szabályainkon kívül esik, azt logoljuk, majd eldobjuk.

iptables -A kulso -j LOG --log-prefix "kulso DROP: "iptables -A kulso -j DROPAz összes érvénytelen csomagot logoljuk, majd eldobjuk.

iptables -A DROPINVALID -j LOG --log-prefix "INVALID packet: "iptables -A DROPINVALID -j DROP

4Azt hiszem, hogy ebben sincs teljes egyetértés a biztonsággal foglalkozó szakemberek között, ezért minden-kinek saját belátása szerint kell döntenie.

Kósa Attila <[email protected]> 2007. december 22.

Page 123: kosa_attila_halozat.pdf

GNU Szabad Dokumentációs Licenc1.1 verzió, 2000 március

Copyright c©2000 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA02111-1307 USAJelen licenc szó szerinti sokszorosítása és terjesztése bárki számára megengedett, változtatnirajta ugyanakkor nem lehet.0. EL�SZÓJelen Licenc célja egy olyan kézikönyv, tankönyv, vagy e�ajta írott dokumentum megalkotása,mely a szó szoros értelmében �szabad�: annak érdekében, hogy mindenkinek biztosítsa a szö-veg sokszorosításának és terjesztésének teljes szabadságát, módosításokkal, vagy anélkül, akárkereskedelmi, akár nem-kereskedelmi úton. Másfel®l, e Licenc meg®rzi a szerz®, vagy kiadó mun-kája elismeréséhez f¶z®d® jogát, s egyúttal mentesíti ®t a mások által beiktatott módosításokkövetkezményei alól.Jelen Licenc egyfajta �etalonnak� tekinthet®, ami nem jelent mást, mint hogy a dokumen-tumból származtatott munkák maguk is szabad min®sítést kell, hogy kapjanak. E dokumentumegyben a GNU Általános Felhasználói Licenc kiegészít®jeként is szolgál, mely egy a szabadszoftverekre vonatkozó etalon licenc.E Licencet a szabad szoftverek kézikönyveiben való használatra alkottuk, hiszen a szabadszoftver egyben szabad dokumentációt is igényel: egy szabad programot olyan kézikönyvvelkell ellátni, mely ugyanazon szabadságokat biztosítja, mint maga a program. Jelen Licenc,mindazonáltal, nem korlátozódik pusztán kézikönyvekre; feltételei tetsz®leges tárgykör¶ írottdokumentumra alkalmazhatók, függetlenül attól, hogy az könyvformában valaha megjelent-e.Mindamellett e Licencet f®ként olyan munkákhoz ajánljuk, melyek els®dleges célja az útmutatás,vagy a tájékoztatás.1. ALKALMAZHATÓSÁG ÉS DEFINÍCIÓKE Licenc minden olyan kézikönyvre, vagy más jelleg¶ munkára vonatkozik, melyen megtalál-ható a szerz®i jogtulajdonos által feltüntetett �gyelmeztetés, miszerint a dokumentum terjesz-tése jelen Licenc feltételei alapján lehetséges. A �Dokumentum� alább bármely ilyen jelleg¶kézikönyvre, vagy egyéb munkára vonatkozik. A lakosság minden tagja potenciális licenctulaj-donosnak tekinthet®, és mindegyikük megszólítása egyaránt �ön�.A Dokumentum �Módosított Változata� bármely olyan munkára vonatkozik, mely tartal-mazza a Dokumentumot, vagy annak elemeit akár szó szerint, akár módosításokkal, és/vagymás nyelvre lefordítva.A �Másodlagos Szakasz� egy egyedi névvel bíró függelék, esetleg a Dokumentum egy megel®z®szakasza, mely kizárólag a kiadóknak, vagy az alkotóknak a Dokumentum átfogó tárgyköréhez

123

Page 124: kosa_attila_halozat.pdf

124 Debian GNU/Linux(vagy kapcsolódó témákhoz) f¶z®d® viszonyáról szól, és nem tartalmaz semmi olyat, ami köz-vetlenül ezen átfogó témakör alá eshet. (Ha például a Dokumentum részben egy matematikatankönyv, úgy a Másodlagos Szakaszban nincs lehet®ség matematikai tárgyú magyarázatokra.)A fenti kapcsolat tárgya lehet a témakörrel, vagy a kapcsolódó témákkal való történelmi viszony,illetve az azokra vonatkozó jogi, kereskedelmi, �lozó�ai, etikai, vagy politikai felfogás.

A �Nem Változtatható Szakaszok� olyan speciális Másodlagos Szakasznak számítanak, me-lyek ilyetén való meghatározását az a közlemény tartalmazza, miszerint a Dokumentum jelenLicenc hatálya alatt lett kiadva.A �Borítószövegek� olyan rövid szövegrészek, melyek Címlap-szövegként, illetve Hátlap-szövegként kerülnek felsorolásra abban a közleményben, miszerint a Dokumentum jelen Licenchatálya alatt lett kiadva.A Dokumentum �Átlátszó� példánya olyan géppel-olvasható változatot jelöl, mely a nyilvá-nosság számára hozzáférhet® formátumban kerül terjesztésre, továbbá melynek tartalma szok-ványos szövegszerkeszt®-programokkal, illetve (pixelekb®l álló képek esetén) szokványos kép-megjelenít®-programokkal, vagy (rajzok esetén) általánosan hozzáférhet® rajzprogramok segít-ségével azonnal és közvetlenül megtekinthet®, vagy módosítható; továbbá olyan formátumbanmely alkalmas a szövegszerkeszt®kbe való bevitelre, vagy a szövegszerkeszt®k által kezelt formá-tumokba való automatikus átalakításra. Egy olyan, egyébként Átlátszó formátumban készültpéldány, melynek markupja úgy lett kialakítva, hogy megakadályozza, vagy eltántorítsa az ol-vasókat minden további módosítástól, nem tekinthet® Átlátszónak. A nem �Átlátszó� példányokaz �Átlátszatlan� megnevezést kapják.Az Átlátszóság kritériumainak megfelel® formátumok között megtalálható például a markupnélküli egyszer¶ ASCII, a Texinfo beviteli formátum, a LATEX beviteli formátum, az SGML vagyaz XML egy általánosan hozzáférhet® DTD használatával, és a standardnak megfelel®, emberimódosításra tervezett egyszer¶ HTML. Az Átlátszatlan formátumok közé sorolható a Post-Script, a PDF, a szabadalmaztatott és csak �zet®s szövegszerkeszt®kkel olvasható formátumok,az olyan SGML vagy XML, melyhez a szükséges DTD és/vagy egyéb feldolgozó eszközök nemáltalánosan hozzáférhet®k, és az olyan gépileg-generált HTML formátum, melyet egyes szöveg-szerkeszt®k hoznak létre, kizárólag kiviteli célra.Egy nyomtatott könyv esetében a �Címlap� magát a címlapot, illetve bármely azt kiegészít®további oldalt jelöl, amely a jelen Licencben de�niált címlap-tartalmak közzétételéhez szükséges.Az olyan formátumú munkáknál, melyek nem rendelkeznek e�ajta címlappal, a �Címlap� amunka címéhez legközelebb es®, ám a szöveg törzsét megel®z® szövegrészeket jelöli.

2. SZÓ SZERINTI SOKSZOROSÍTÁSÖnnek lehet®sége van a dokumentum kereskedelmi, vagy nem-kereskedelmi jelleg¶ sokszorosí-tására és terjesztésére, bármely médiumon keresztül, feltéve, hogy jelen Licenc, a szerz®i jogi�gyelmeztetés, továbbá a Dokumentumot jelen Licenc hatálya alá rendel® közlemény mindenpéldányban egyaránt megjelenik, és hogy e feltételeken kívül semmi mást nem tesz hozzá aszöveghez. Nem alkothat olyan technikai korlátokat, melyek megakadályozhatják, vagy szabá-lyozhatják az ön által terjesztett példányok elolvasását, vagy sokszorosítását. Mindazonáltalelfogadhat bizonyos összeget a másolatok fejében. Amennyiben az ön által terjesztett példányokszáma meghalad egy bizonyos mennyiséget, úgy a 3. szakasz feltételeinek is eleget kell tennie.

A fenti kritériumok alapján kölcsönbe adhat egyes példányokat, de akár nyilvánosan is köz-zéteheti a szöveget.

Kósa Attila <[email protected]> 2007. december 22.

Page 125: kosa_attila_halozat.pdf

Debian GNU/Linux 125

3. SOKSZOROSÍTÁS NAGYOBB MENNYISÉGBENAmennyiben 100-nál több nyomtatott változatot tesz közzé a Dokumentumból, és annak Licencefeltételül szabja a Borítószövegek meglétét, úgy minden egyes példányt köteles ellátni olyan bo-rítólapokkal, melyeken a következ® Borítószövegek tisztán és olvashatóan fel vannak tüntetve:Címlap-szövegek a címlapon, illetve Hátlap-szövegek a hátlapon. Mindkét borítólapra egyér-telm¶en és olvashatóan rá kell vezetnie a kiadó, vagyis jelen esetben az ön nevét. A címlapona Dokumentum teljes címének jól láthatóan, továbbá minden egyes szónak azonos szedésbenkell megjelennie. Ezen felül, belátása szerint, további részleteket is hozzáadhat a borítólapok-hoz. Amennyiben az esetleges módosítások kizárólag a borítólapokat érintik, és feltéve, hogy aDokumentum címe változatlan marad, továbbá a borítólapok megfelelnek minden egyéb köve-telménynek, úgy a sokszorosítás ett®l eltekintve szó szerinti reprodukciónak min®sül.Abban az esetben, ha a borítólapok bármelyikén megkövetelt szövegrészek túl hosszúnakbizonyulnának az olvasható közzétételhez, úgy csak az els®ként felsoroltakat kell feltüntetnie(amennyi józan belátás szerint elfér) a tényleges borítón, a továbbiak pedig átkerülhetnek akövetkez® oldalakra.Amennyiben 100-nál több Átlátszatlan példányt tesz közzé, vagy terjeszt a Dokumentumból,úgy köteles vagy egy géppel-olvasható Átlátszó példányt mellékelni minden egyes Átlátszatlanpéldányhoz, vagy leírni minden egyes Átlátszatlan példányban egy a módosítatlan Átlátszópéldányt tartalmazó nyilvános hozzáférés¶ számítógép-hálózat elérhet®ségét, ahonnan bárki,anonim módon, térítésmentesen letöltheti azt, egy közismert hálózati protokoll használatával. Haaz utóbbi lehet®séget választja, köteles gondoskodni arról, hogy attól a naptól kezdve, amikor azutolsó Átlátszatlan példány is terjesztésre került (akár közvetlenül ön által, akár kiskereskedelmiforgalomban), a fenti helyen közzétett Átlátszó példány még legalább egy évig hozzáférhet®legyen a felhasználók számára.Megkérjük, ámde nem kötelezzük önt arra, hogy minden esetben, amikor nagyobb példány-számú terjesztésbe kezd, már jóval ezt megel®z®en lépjen kapcsolatba a Dokumentum szerz®ivel,annak érdekében, hogy megkaphassa t®lük a Dokumentum esetleges felújított változatát.4. MÓDOSÍTÁSÖnnek lehet®sége van a Dokumentum Módosított Változatának sokszorosítására és terjesztésérea 2. és 3. szakaszok fenti rendelkezései alapján, feltéve, hogy a Módosított Változatot kizárólagjelen Licenc feltételeivel összhangban teszi közzé, ahol a Módosított Változat a Dokumentumszerepét tölti be, ezáltal lehet®séget biztosítva annak terjesztésére és módosítására bárkinek,aki csak hozzájut egy példányához. Mindezen felül, a Módosított Változat az alábbi követelmé-nyeknek is meg kell, hogy feleljen:

• A Címlapon (és ha van, a borítókon) tüntessen fel egy a Dokumentumétól, illetve bármelykorábbi változatétól eltér® címet (melyeknek, ha vannak, a Dokumentum El®zményekszakaszában kell szerepelniük). Egy korábbi változat címét csak akkor használhatja, haannak szerz®je engedélyezte azt.• A Címlapon szerz®kként sorolja fel a Módosított Változatban elvégzett változtatásokértfelel®s személyeket, vagy entitásokat, továbbá a Dokumentum f® szerz®i közül legkevesebbötöt (vagy mindet, ha nincsenek öten).• A Címlapon a Módosított Változat közzétételéért felel®s személyt tüntesse fel kiadóként.• A Dokumentum összes szerz®i jogi �gyelmeztetését hagyja érintetlenül.• Saját módosításaira vonatkozóan is tegyen közzé egy szerz®i jogi megjegyzést, a többiilyen jelleg¶ �gyelmeztetés mellett.

2007. december 22. Kósa Attila <[email protected]>

Page 126: kosa_attila_halozat.pdf

126 Debian GNU/Linux• Rögtön a szerz®i jogi �gyelmeztetéseket követ®en tüntessen fel egy közleményt, az alábbiFüggelék mintájára, melyben engedélyezi a Módosított Változat felhasználását jelen Li-cenc feltételei alapján.• A fenti közleményben hagyja érintetlenül a Nem Változtatható Szakaszok és a szükségesBorítószövegek jelen Dokumentum licencében el®írt teljes listáját.• Mellékelje jelen Licenc egy eredeti példányát.• Az �El®zmények� szakaszt, illetve annak címét szintén hagyja érintetlenül, emellett adjonhozzá egy új elemet, amely minimálisan tartalmazza a Módosított Változat címét, kiadásiévét, továbbá az új szerz®k, illetve a kiadó nevét, a Címlapon láthatókhoz hasonlóan.Amennyiben a Dokumentum nem tartalmaz semmiféle �El®zmények� elnevezés¶ szakaszt,úgy hozzon létre egyet, mely tartalmazza a Dokumentum címét, kiadási évét, továbbá aszerz®k, illetve a kiadó nevét, a Címlapon láthatókhoz hasonlóan; majd ezt követ®en adjonhozzá egy új, a Módosított Változatra vonatkozó elemet, a fentiekkel összhangban.• Ne tegyen változtatásokat a Dokumentumban megadott Átlátszó példány nyilvános háló-zati elérhet®ségét (ha van ilyen) illet®en, vagy hasonlóképp, a Dokumentum alapjául szol-gáló korábbi változatok hálózati helyére vonatkozóan. Ezek az �El®zmények� szakaszbanis szerepelhetnek. Csak abban az esetben hagyhatja el egyes korábbi változatok hálózatielérhet®ségét, ha azok legkevesebb négy évvel a Dokumentum el®tt készültek, vagy hamaga az alkotó engedélyezi azt.• Bármely �Köszönetnyilvánítás�, vagy �Ajánlások� szakasz címét hagyja érintetlenül, to-vábbá gondoskodjon arról, hogy azok tartalma és hangvétele az egyes hozzájárulókat,és/vagy az ajánlásokat illet®en változatlan maradjon.• A Dokumentum összes Nem Változtatható Szakaszát hagyja érintetlenül, úgy címüket,mint tartalmukat illet®en. A szakaszok számozása, vagy bármely azzal egyenérték¶ jelölésnem tartozik a szakaszcímek közé.• Töröljön minden �Jóváhagyás� elnevezés¶ szakaszt. E�ajta szakaszok nem képezhetik ré-szét a Módosított Változatnak.• Ne nevezzen át semmilyen létez® szakaszt �Jóváhagyás�-ra, vagy olyasmire, mely címébena Nem Változtatható Szakaszokkal ütközhet.Ha a Módosított Változat új megel®z® szakaszokat tartalmaz, vagy olyan függelékeket, me-lyek Másodlagos Szakasznak min®sülnek, ám nem tartalmaznak a Dokumentumból származóanyagot, abban az esetben, belátása szerint, e szakaszok némelyikét, vagy akár az összeset nemváltoztathatóként sorolhatja be. Ehhez nem kell mást tennie, mint felsorolni a szóban forgócímeket a Módosított Változat licencének Nem Változtatható Szakaszok listájában. E címeknekhatározottan el kell különülnie minden egyéb szakaszcímt®l.�Jóváhagyás� elnevezés¶ szakaszt csak akkor adhat a Dokumentumhoz, ha az kizárólag a Mó-dosított Változatra utaló megjegyzéseket tartalmaz � például mások recenzióira vonatkozóan,vagy hogy egy szervezet a szöveget egy standard mérvadó de�níciójaként ismerte el.Címlap-szöveg gyanánt egy legfeljebb öt szóból álló szövegrészt adhat meg, a Hátlap-szövegesetén pedig 25 szót f¶zhet a Módosított Változat Borítószövegeinek végéhez. Bármely entitáscsak és kizárólag egy Címlap- és egy Hátlap-szövegrészt adhat (akár közvetít®n keresztül) aDokumentumhoz. Ha a dokumentum már eleve rendelkezik Borítószöveggel, akár azért, mertazt korábban ön adta hozzá, vagy mert valaki más önön keresztül gondoskodott err®l, abbanaz esetben nincs lehet®ség újabb Borítószöveg hozzáadására; a régit mindazonáltal lecserélheti,abban az esetben, ha annak kiadója egyértelm¶en engedélyezi azt.

Kósa Attila <[email protected]> 2007. december 22.

Page 127: kosa_attila_halozat.pdf

Debian GNU/Linux 127A Dokumentum szerz®je/i és kiadója/i jelen Licenc alapján nem teszik lehet®vé nevük nyil-vános felhasználását egyetlen Módosított Változat támogatása, vagy támogatottsága érdekébensem.

5. KOMBINÁLT DOKUMENTUMOKÖnnek lehet®sége van a Dokumentum egyéb, e Licenc hatálya alatt kiadott dokumentumokkalvaló kombinálására a 4. szakasz módosított változatokra vonatkozó rendelkezései alapján, fel-téve, hogy a kombináció módosítás nélkül tartalmazza az eredeti dokumentumok összes NemVáltoztatható Szakaszát, és hogy azok mind Nem Változtatható Szakaszként kerülnek felsoro-lásra a kombinált munka licencében.A kombinált munkának jelen Licenc mindössze egy példányát kell tartalmaznia, az egymás-sal átfedésben lév® Nem Változtatható Szakaszok pedig kiválthatók egy összegzett példánnyal.Amennyiben több Nem Változtatható Szakasz szerepelne ugyanazon címmel, ám eltér® tarta-lommal, úgy alakítsa át minden egyes szakasz címét olyan módon, hogy mögéírja zárójelbenaz eredeti szerz® és kiadó nevét (ha ismeri), vagy egy egyedi sorszámot. Ha szükséges, a NemVáltoztatható Szakaszok címeivel is végezze el a fenti módosításokat a kombinált munka licen-cében.A kombinált munkában az eredeti dokumentumok összes �El®zmények� elnevezés¶ szaka-szát össze kell olvasztania, miáltal egy összefügg® �El®zmények� szakasz jön létre; hasonlóképpkell eljárnia a �Köszönetnyilvánítás�, illetve az �Ajánlások� szakaszok tekintetében. Ugyanakkorminden �Jóváhagyás� elnevezés¶ szakaszt törölnie kell.

6. DOKUMENTUMGY�JTEMÉNYEKÖnnek lehet®sége van a Dokumentumból, illetve bármely egyéb, e Licenc hatálya alatt kiadottdokumentumból gy¶jteményt létrehozni, és az egyes dokumentumokban található licenceketegyetlen példánnyal kiváltani, feltéve, hogy a gy¶jteményben szerepl® összes dokumentum ese-tén minden más tekintetben követi jelen Licenc feltételeit, azok szó szerinti sokszorosításáravonatkozóan.Tetszése szerint ki is emelhet egy meghatározott dokumentumot a gy¶jteményb®l, továbbáterjesztheti azt jelen Licenc feltételei alapján, feltéve, hogy a szóban forgó dokumentumhozmellékeli e Licenc egy példányát, és minden egyéb tekintetben betartja jelen Licenc el®írásait adokumentum szó szerinti sokszorosítására vonatkozóan.

7. ÖSSZEF�ZÉS FÜGGETLEN MUNKÁKKALA Dokumentum és annak származékainak különálló, vagy független dokumentumokkal, illetvemunkákkal való összef¶zése egy közös tárolási, vagy terjesztési egységen, egészében nem tekint-het® a Dokumentum Módosított Változatának, feltéve, hogy az összef¶zés nem lesz szerz®i jog-védett. Az e�ajta összef¶zés eredményeként �összegzés� jön létre, ám jelen Licenc nem érvényesaz abban a Dokumentummal együtt szerepl® önálló munkákra, hacsak azok nem a Dokumentumszármazékai.Amennyiben a 3. szakasz Borítószövegekre vonatkozó rendelkezései alkalmazhatók a Doku-mentum e példányaira, és a Dokumentum a teljes összegzésnek kevesebb, mint egynegyedét tesziki, úgy a Dokumentum Borítószövegeit olyan módon is el lehet helyezni, hogy azok csak magáta Dokumentumot fogják át. Minden más esetben a teljes összegzés borítólapjain kell feltüntetnia fenti szövegeket.

2007. december 22. Kósa Attila <[email protected]>

Page 128: kosa_attila_halozat.pdf

128 Debian GNU/Linux

8. FORDÍTÁSA fordítás egyfajta módosításnak tekinthet®, így hát a Dokumentum lefordított példányai a 4.szakasz rendelkezései alapján terjeszthet®k. A Nem Változtatható Szakaszok lefordítása különengedélyt igényel a szerz®i jogtulajdonostól, mindazonáltal közzéteheti a lefordított változatokatis abban az esetben, ha az eredeti Nem Változtatható Szakaszokat is belefoglalja a munkába. ELicenc lefordítására ugyanezek a feltételek érvényesek, vagyis a lefordított változat csak akkorjelenhet meg, ha mellette ott van az eredeti, angol nyelv¶ Licenc szövege is. Amennyiben eltérésmutatkozna az eredeti változat, illetve a fordítás között, úgy a Licenc angol nyelv¶ eredetijetekintend® mérvadónak.

9. MEGSZ�NÉSA jelen Licencben egyértelm¶en kijelölt kereteken kívül tilos a Dokumentum bárminem¶ sok-szorosítása, módosítása, allicencelése, vagy terjesztése. Minden ezzel szembeni sokszorosítási,módosítási, allicencelési, vagy terjesztési kísérlet a jelen Licencben meghatározott jogok auto-matikus megsz¶nését vonja maga után. Azok a felek, ugyanakkor, akik önön keresztül jutottakmásolathoz, vagy jogosultságokhoz, nem veszítik el azokat, amíg maradéktalanul betartják eLicenc el®írásait.

10. JELEN LICENC JÖV�BENI JAVÍTÁSAIMegtörténhet, hogy a Szabad Szoftver Alapítvány id®r®l id®re felülvizsgált és/vagy új verziókatbocsát ki a GNU Szabad Dokumentációs Licencb®l. E verziók szellemisége hasonló lesz jelenváltozatéhoz, ám részleteikben eltérhetnek, új problémák, új aggályok felmerülése okán. Vö.:http://www.gnu.org/copyleft/A Licenc minden változata egyedi verziószámmal van ellátva. Ha a Dokumentum jelen Li-cenc egy konkrét, számozott verziójára, �vagy bármely újabb verzióra� hivatkozik, úgy önnek aszóban forgó változat, vagy bármely újabb a Szabad Szoftver Alapítvány által (nem vázlatként)publikált verzió feltételeinek követésére lehet®sége van. Ha a Dokumentum nem ad meg sem-milyen verziószámot, úgy bármely, a Szabad Szoftver Alapítvány által valaha (nem vázlatként)publikált változat megfelel.

FÜGGELÉK: A Licenc alkalmazása saját dokumentumairaHa e Licencet egy ön által írt dokumentumban kívánja használni, akkor mellékelje hozzá aLicenc egy példányát, továbbá vezesse rá az alábbi szerz®i jogi és licenc közleményeket, rögtöna címlapot követ®en:

Copyright c© ÉV AZ ÖN NEVE.E közlemény felhatalmazást ad önnek jelen dokumentum sokszorosítására, terjeszté-sére és/vagy módosítására a Szabad Szoftver Alapítvány által kiadott GNU SzabadDokumentációs Licenc 1.1-es, vagy bármely azt követ® verziójának feltételei alap-ján. A Nem Változtatható Szakaszok neve SOROLJA FEL A CÍMÜKET, a Címlap-szövegek neve LISTA, a Hátlap-szövegek neve pedig LISTA. E licenc egy példányáta �GNU Szabad Dokumentációs Licenc� elnevezés¶ szakasz alatt találja.

Ha a szövegben nincsenek Nem Változtatható Szakaszok, úgy írjon �nincs Nem VáltoztathatóSzakasz�-t, ahelyett, hogy egyenként felsorolná azokat. Ha nincsenek Címlap-szövegek, akkor

Kósa Attila <[email protected]> 2007. december 22.

Page 129: kosa_attila_halozat.pdf

Debian GNU/Linux 129írjon �nincs Címlap-szöveg�-et, ahelyett, hogy �a Címlap-szövegek neve LISTA�, és hasonlóképpjárjon el a Hátlap-szövegek esetében is.Amennyiben a dokumentum haladó programkód-példákat is tartalmaz, úgy azt javasoljuk,hogy e példákat egy választása szerinti szabad szoftver licenc alatt közölje � mint például aGNU Általános Felhasználói Licenc �, hogy lehet®vé tegye a kódok szabad szoftverekben valóalkalmazását.

2007. december 22. Kósa Attila <[email protected]>

Page 130: kosa_attila_halozat.pdf

Tárgymutató

�r� parancsok, 105Amanda, 89Amanda beállítás, 91, 92, 96Amanda kliens, 89Amanda szerver, 90Amanda visszaállítás, 98amrecover, 98amrestore, 98Apache, 79, 80Apache telepítés, 79AUTH, 103BIND, 109BIND8, 13BIND9, 18CA létrehozása, 38csomagsz¶rés, 119dig, 25DNS, 101DNS lekérdezés, 102DNS zónatranszfer, 102dovecot, 71dovecot beállítás, 71dovecot telepítés, 71FDL, 123�nger, 105FTP, 104host, 25HTTP, 104HTTPS, 104ICMP, 102IMAP, 71, 103IMAP tesztelés, 72IMAPS, 103IRC, 107logcheck, 83logrotate, 84

lpr, 108named-checkconf, 23named-checkzone, 24NFS, 107NIS/YP, 107NNTP, 106node-type, 62normál ftp, 104nslookup, 25NTP, 102ntp, 31ntp-server, 111ntpdate, 33, 113OpenLDAP, 45OpenLDAP feltöltése, 49OpenLDAP replika, 48OpenLDAP telepítése, 45OpenVPN, 115OpenVPN szerver, 116OpenVPN telepítés, 115OpenVPN Windows alatt, 118passzív ftp, 104p�ogsumm, 85POP2, 103POP3, 103POP3S, 103post�x, 67, 114post�x beállítás, 68post�x telepítés, 67rndc, 24SaMBa, 57, 108SaMBa telepítés, 57SaMBa tesztelés, 60SMTP, 67, 103SMTP tesztelés, 69SNMP, 107Squid, 75SSH, 106

130

Page 131: kosa_attila_halozat.pdf

Debian GNU/Linux 131ssh, 40ssh beállítás, 41ssh kulcsgenerálás, 40ssh kulcsmásolás, 41ssh-agent, 42SSL, 37syslog, 105syslog-ng, 86syslog-ng kliensen, 86syslog-ng szerveren, 86talk, 106tanúsítvány létrehozása, 38tanúsítványok aláírása, 39telnet, 106TFTP, 104traceroute, 103UUCP, 103whois, 105wpad, 77X11, 107

2007. december 22. Kósa Attila <[email protected]>

Page 132: kosa_attila_halozat.pdf

132 Debian GNU/Linux

Kósa Attila <[email protected]> 2007. december 22.

Page 133: kosa_attila_halozat.pdf

Irodalomjegyzék

[1] D. RICHARD KUHN � VINCENT C. HU � W. TIMOTHY POLK � SHU-JEN CHANG:Introduction to Public Key Technology and the Federal PKI Infrastrukture U.S. Govern-ment Publication. 2001. február 26. http://csrc.nist.gov/publications/nistpubs/index.htmlhttp://www.itktb.hu/resource.aspx/?ResourceID=Publikus_Kulcsu_Technologia_V1[2] ENDR�DI CSILLA: Dif�e-Hellman kulcsegyeztet® protokoll. 2004. 10. 22. http://www.biztostu.hu/mod/resource/view.php?id=241[3] JELMER R. VERNOOIJ � JOHN H. TERPSTRA � GERALD (JERRY) CARTER: TheOf�cial Samba-3 HOWTO and Reference Guide. É.n. http://us4.samba.org/samba/docs/man/Samba-HOWTO-Collection/[4] OSKAR ANDREASSON: Iptables Tutorial. É.n. http://iptables-tutorial.frozentux.net/iptables-tutorial.html[5] PÁSZTOR MIKLÓS: Az internet DNS � Elv és kon�guráció. É.n. http://szabilinux.hu/dns/index.html[6] WETTL FERENC � MAYER GYULA � SUDÁR CSABA: LATEX kezd®knek és haladók-nak. Budapest, Panem., 1998.[7] WETTL FERENC � MAYER GYULA � SZABÓ PÉTER: LATEX kézikönyv. Budapest,Panem Kft., 2004.[8] N.N. BSD System Manager's Manual (man 8 sshd) 1999. 09. 25.[9] N.N. Name-based Virtual Host Support. É.n. http://httpd.apache.org/docs/1.3/vhosts/name-based.html[10] N.N. Navigator Proxy Auto-Con�g File Format. 1996. március http://wp.netscape.com/eng/mozilla/2.0/relnotes/demo/proxy-live.html

133