You are on page 1of 58

A GNU/Linux karbantartsa 1.0.1 A Mithrandir Kft.

nyelvi ellenorzsvel
Balsai Pter Ksa Attila 2002. jnius 19.

Copyright c 2001-2002 Linux-felhasznlk Magyarorszgi Egyeslete E kzlemny felhatalmazst ad nnek jelen dokumentum sokszorostsra, terjesztsre s/vagy mdostsra a Szabad Szoftver Alaptvny ltal kiadott GNU Szabad Dokumentcis Licensz 1.1-es, vagy brmely azt kveto verzijnak felttelei alapjn. Nem Vltoztathat Szakaszok nincsenek, Cmlap-szvegek nincsenek, a Htlapszvegek neve pedig htlapszveg. E licensz egy pldnyt a GNU Szabad Dokumentcis Licensz elnevezs szakasz alatt tallja. u A mdostott vltozat kzzttelrt felelos szemlyek: Sri Gbor saga@lme.linux.hu Javtsok: Sri Gbor

Szerz o
Vitz Gbor gabor@swszl.szkp.uni-miskolc.hu

Szakmai lektor
Szalay Attila sasa@lme.linux.hu

Nyelvi ellen rzs o


Sri Gbor saga@tux.hu Ksa Attila atkosa@shinwa.hu A Formzs (LTEX) Ksa Attila atkosa@shinwa.hu

El zmnyek o
A GNU/Linux karbantartsa A Mithrandir Kft. nyelvi ellen rzsvel o
A kiads ve: 2002.

Szerz o
Vitz Gbor gabor@swszl.szkp.uni-miskolc.hu

Szakmai lektor
Szalay Attila sasa@lme.linux.hu

Nyelvi ellen rzs o


Sri Gbor saga@tux.hu Ksa Attila atkosa@shinwa.hu A Formzs (LTEX) Ksa Attila atkosa@shinwa.hu

Az LME ltal elkszttetett Pingvin fzeteken a Mithrandir Kft. az olvashatsg rdekben nyelvi, helyesrsi javtsokat vgzett. A Mithrandir Kft. valamint a nyelvi javtst vgzo termszetes szemlyek szakmai ellen rzst, javtst nem vgeztek. o Nem tettk ezt (szakmai javts), akkor sem a szerzok s a szakmai lektorok mun o kja irnti tiszteletb l , ha a lertak nem feleltek meg szakmai meggyoz dsknek. o A Mithrandir Kft. javtst vgz szakemberei, illetve a Mithrandir Kft. mint jogi o szemly a lertak helyessgrt, esetleges avultsgrt semmilyen felel ossget nem vllal. 2

Tartalomjegyzk
1. A GNU/Linux rendszer karbantartsa 1.1. Hlzati belltsok . . . . . . . . . . . . . . . . . 1.2. Hlzati szolgltatsok . . . . . . . . . . . . . . . 1.3. Egyb szolgltatsok . . . . . . . . . . . . . . . . 1.4. Behvszerver kongurlsa . . . . . . . . . . . . 1.5. Felhasznli er forrsok korltozsa . . . . . . . . o 1.6. Teljestmny javtsa . . . . . . . . . . . . . . . . 1.7. Megfelel hardver . . . . . . . . . . . . . . . . . . o 1.8. Szoftveres teljestmnyjavts . . . . . . . . . . . . 1.9. Logical Volume Manager s naplzott fjlrendszer . 1.10. Naplzott fjlrendszerek . . . . . . . . . . . . . . 1.11. Naplelemzs . . . . . . . . . . . . . . . . . . . . 1.12. Alapvet biztonsgi belltsok . . . . . . . . . . . o 1.13. Ments s helyrellts . . . . . . . . . . . . . . . 5 5 8 9 18 24 33 33 34 37 38 39 43 45

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

brk jegyzke
1.1. A hlzat felptse . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2. Egy msik hlzat felptse . . . . . . . . . . . . . . . . . . . . . . 5 7

1. fejezet

A GNU/Linux rendszer karbantartsa


1.1. Hlzati belltsok
1.1.1. Hlzati interfszek kongurlsa
Linux alatt a szmtgp hlzati csatlakozsi pontjait hlzati interfszek reprezentljk. Az interfsz neve, amit a kernel hasznl, egy szimbolikus dolog, mint pldul az eszkzvezrl fjlok, de rdemes megjegyezni, hogy a hlzati interfszek nem o eszkzvezrl fjlok, ok mshol lnek. Az interfszeknek klnbzo tulajdonsgai o lehetnek, pldul a maximlis csomagmret amit kezelni tud. Most ezek belltsrl lesz sz. A belltsoknl TCP/IP hlzati protokollt s Ethernetes krnyezetet feltteleznk. Manapsg ezek a legelterjedtebbek. A hlzat felptst az 1.1. bra mutatja.

Belso hlzat (pldul 192.168.10.0/255.255.255.0)

gp 1

linux 1

router
gp 2

klvilg (minden ms)

1.1. bra. A hlzat felptse 5

A hlzati interfszeket (tbbek kztt) az ifconfig paranccsal kongurlhatjuk. Bellthatjuk vele a hlzati cmet amire az interfsz hallgatni fog, a hlzati maszkot, s egyb paramtereket, mint pldul a maximlis csomagmretet, hogy pont-pont kapcsolatunk van-e, stb. A kongurci lekrdezst egy paramterezetlen ifconfig paranccsal oldhatjuk meg:
$ ifconfig eth0 Link encap:Ethernet HWaddr 00:50:BA:EA:D6:FA inet addr:192.168.10.3 Bcast:192.168.10.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:60127 errors:0 dropped:0 overruns:0 frame:0 TX packets:64215 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 Interrupt:3 Base address:0xb800 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:3904 Metric:1 RX packets:144794 errors:0 dropped:0 overruns:0 frame:0 TX packets:144794 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0

A listn lthatjuk, hogy kt interfsznk van: egy eth0 nev , ez az els o ethernet u krtya, az lo pedig a loopback interfsz, ez egy tisztn szoftveres interfsz, amivel egy gpen bell is lehet hlzati szolgltatsokat hasznlni. A listbl egyszer , forgau lommal kapcsolatos mutatkat is kiolvashatunk, mint a kldtt s fogadott csomagok szma, az tkzsek szma, s a hibs csomagok szma. A belltsokat szintn az ifconfig paranccsal vgezhetjk, ez ethernet esetn tipikusan gy nz ki:
ifconfig eth0 192.168.10.1 netmask 255.255.255.0 up

Ezzel felkongurltuk az interfsznket, 192.168.10.1-es IP cmet kapott, 255.255.255.0 hlzati maszkkal. Ez azt jelenti, hogy egy olyan ethernet hlzat ban van a gp, ahol az IP cmek 192.168.10.1-tol 192.168.10.254-ig terjednek, a 192.168.10.0 cm magnak a hlzatnak a cme, mg a 192.168.10.255 cm a broadcast cm, azaz ha erre a cmre kldnk csomagokat, akkor azt mindegyik gp megkapja a hlzaton. Ezek utn, hogy az interfsszel megvagyunk, jhet a routeols. Meg kell mondanunk a kernelnek, hogy egy clgp (vagy clhlzat) elrse rdekben melyik csomagot merrefel tovbbtsa (ez jabb rendszereken felesleges lehet, mert automatikusan megtrtnik az ifconfig hatsra). Ezt a route paranccsal tehetjk meg, ehhez hasonl mdon:
route add -net 192.168.10.0 netmask 255.255.255.0 eth0

Ennek hatsra a 192.168.10.0/255.255.255.0 hlzatra men o csomagokat a rend szer az eth0 interfsz fel fogja kldeni. Innentol mr ltjuk a loklis hlzatot, elkezdhetnk rajta forgalmazni, de a vilgba mg nem ltunk ki. Ehhez kell mg egy default route, amin keresztl az sszes, explicit mdon meg nem adott hlzatot elrhetjk. Ehhez szksgnk lesz a mi hlzatunkat a vilggal sszekt o router IP cmre. Ha ez mondjuk a 192.168.10.254, akkor a
route add default gw 192.168.10.254 eth0

paranccsal llthatjuk ezt be. Ha tbb interfsz van a szmtgpnkben, akkor termszetesen az sszes interfsznket be kell gy lltanunk. Default route csak egy kell. Ha a gpnk router, akkor az 6

echo 1 >/proc/sys/net/ipv4/ip_forward

paranccsal be kell kapcsolnunk az interfszek kzti csomagtovbbtst. Az 1.2. bra egy ilyen felllst mutat.

192.168.11.0/255.255.255.0

gp3

linux

klvilg(minden ms)
gp2

192.168.10.0/255.255.255.0

router
gp1

bels hlzat (192.168.10.0/255.255.255.0 s 192.168.11.0/255.255.255.0)

1.2. bra. Egy msik hlzat felptse Ha gy t nik, hogy minden rendben van, akkor (vagy akr kongurls kzben is) u a ping paranccsal tesztelhetjk le a hlzatunkat. A ping paramterknt egy gp nevt, vagy IP cmt vrja. A clgpnek olyan (icmp echo request) csomagokat kld, amelyekre az vlaszol (icmp echo replyekkel), gy le lehet tesztelni, hogy az adott gpet ltja-e a mink. Elkpzelhet ek bonyolultabb routeolst hasznl kongurcik, pldul dinamikus o routeols, policy routing, de ezekkel most terjedelmi okok miatt nem foglalkozunk.

1.1.2. Egyb interfszekkel kapcsolatos belltsok


A /proc alatt tallhat klnleges proc fjlrendszer segtsgvel tovbb nomthatjuk belltsainkat. Ez egy olyan fjlrendszer, amiben a fjlok a rendszer llapott tkrzik, klnbz lekrdezseket s belltsokat hajthatunk vgre a segtsgvel, a szoksos o fjlkezel parancsokat hasznlva. Most csak a hlzat szempontjbl foglalkozunk ezo zel. Itt bellthatjuk, hogy a gpnk ne vlaszoljon a broadcast cmre kldtt ping csomagokra (vagy hogy egyltaln ne vlaszoljon rjuk), megadhatjuk, hogy milyen s r n adjon vlaszt a ping csomagokra (mondjuk szzadmsodpercenknt kett ore vuu laszoljon), hogy ne routeoljon az interfszei kzt, s hogy prblja kisz rni a hamis IP u csomagokat. Ezeket a kvetkezo parancsokkal llthatjuk be: echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

A broadcastra ne vlaszoljon. 1 engedlyezi a tiltst, a 0 tiltja a tiltst, azaz engedlyezi a broadcast pingre trtno vlaszt. echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all 7

Egyltaln ne vlaszoljon a pingre. A szmok jelentse ugyanaz, mint a broadcastos belltsnl. echo 2 >/proc/sys/net/ipv4/icmp_echoreply_rate

Szzadmsodpercenknt kt ping csomagra vlaszol. echo 0 >/proc/sys/net/ipv4/ip_forward A 0 letiltja a csomagok tovbbtst az interfszek kztt. echo 1 >/proc/sys/net/ipv4/conf/all/rp_filter Az 1 engedlyezi a hamis csomagok sz rst. u Termszetesen ezeken a belltsokon az ignyektol fgg en vltoztatni kell, plo dul egy routeren nem j tlet az interfszek kzti csomagtovbbtst letiltani. Mivel ezek a belltsok rendszerlelltskor elvesznek, rdemes oket valamelyik indulskor lefut szkriptbe beletenni, a hlzati interfszeket bekongurl szkript el.

1.1.3. Egyb, magasabb szintu belltsok


Hogy jl tudjuk hasznlni a hlzatunkat, be kell lltanunk, hogy a gpnk milyen nameservereket hasznljon a szmtgpnvIP cm feloldshoz. Az interneten a szmtgpeknek az IP cm mellett nevk is van, ez a cmtr hi erarchikus felpts . A nv IP cm oda-vissza trtno lekpezst nameserverek u szolgltatjk. Ezek az adatbzisuk alapjn meg tudjk csinlni a lekpezst, vagy ha nem, akkor a krst tovbbtjk egy msik szervernek, ami vlaszol majd. A gpek nevt gp (host) s domain nevekre lehet osztani. Pldul a www.ceg.hu nvben a www a gp neve, a ceg.hu pedig a domain. Ennek a szolgltatsnak a hasznlathoz a /etc/resolv.conf fjlt kell megfelel en kitlteni. Itt a szerverek IP cme mellett azt is bellthatjuk, hogy a gpnk o milyen domainekben keresse a gpeket, ha nem a teljes nevkkel keressk oket. Egy konkrt plda: a nameszervereink 192.168.100.22, 192.168.22.33; a domain nevnk proba.hu, s a masik.hu domain-beli gpeket is hasznlni szeretnnk gy, hogy nem a teljes (pldul gepneve.masik.hu) nevkkel, hanem csak a gp nevvel hivatkozunk rjuk.
# /etc/resolv.conf domain proba.hu search masik.hu nameserver 192.168.100.22 nameserver 192.168.22.33

Ezek utn a hlzatos programokban pldul az alma.proba.hu gpre hivatkozhatunk alma nven, a korte.msik.hu gpre pedig korte nven.

1.2. Hlzati szolgltatsok


1.2.1. Inetdb l fut szolgltatsok o
Az inetd egy klnleges szerver program, egyetlen feladata, hogy ms programokat indtson a megfelel krsek hatsra, pldul ftp, telnet, pop3 szervereket lehet o vele futtatni. A kongurcijt a /etc/inetd.conf fjlban tartja, ami UNIX-os szoksokhoz hven egy sima szveges fjl. 8

A futtatand szolgltatsokat soronknt lehet megadni a kongurcis fjlban, a # jellel kezd d sorok megjegyzst jelentenek, ezeket gyelmen kvl hagyja a program. o o Az inetd kongurcis fjljban a sorok szerkezete a kvetkez o:
szolgltatsport sockettpus protokoll wait/nowait szerver-program program argumentumok

Ahol a szolgltatsport egy a /etc/services fjlban megtallhat port szimbolikus neve, a sockettpus tipikusan stream vagy dgram lehet aszerint, hogy az illet szolgltats TCP vagy UDP kapcsolatokat hasznl-e. A protokoll tcp vagy udp o lehet, hasonlan az el bbi meggondolsokhoz. A wait/nowait azt jelenti, hogy az o inetd indtson-e j kiszolgl processzt ha j krs fut be, vagy a mr fut szerver kpes egyszerre tbb klienst kezelni. Ezek alapjn nhny plda inetd szolgltatsokra:
# Az ftp dmon, az ftp portrl rootknt fut, egy # pldny csak egy kapcsolatot tud kiszolglni. ftp stream tcp nowait root /usr/sbin/in.ftpd in.ftpd # Az ident dmon identd felhasznli azonostval fut, s egy pldny # tbb krst is ki tud szolglni. Mindkt program TCP-t hasznl. ident stream tcp wait identd /usr/sbin/identd identd

Manapsg egyre kevesebb programot szoktak inetd segtsgvel futtatni, rdemes minden olyan szolgltatst kikommentezni amire nincs szksgnk. Ennek ellenre az inetd olyan szempontbl rdekes, hogy jval egyszer bb egy u inetd-t hasznl szerverprogramot megrni, mint egy nllt.

1.3. Egyb szolgltatsok


1.3.1. SSH
Az SSH titkostott terminlkapcsolatot s sok minden mst tud szolgltatni, ezrt rdemes vele foglalkozni. Mi az OpenSSHval fogunk foglalkozni, mert ez ingyenes, szabadon felhasznlhat. Az ssh nagy vonalakban gy m kdik, hogy a kliens s u szerver oldal egy ktkulcsos titkosts segtsgvel megegyezik egy egykulcsos titkostsban, aztn minden kommunikcit e felett a titkostott csatorna felett vgeznek. gy az adataink biztonsgban vannak a hlzat lehallgatstl, a TCP kapcsolatok eltrtst l. o A szerver a kongurcis fjljt ltalban a /etc/ssh/sshd_config fjlban, vagy a /usr/local/etc/ alatt tartja. A kongurcis fjl egyszer opci-rtk u prokbl ll. Plda egy felkommentezett kongurcis fjlra:
# A 22-es alaprtelmezett ssh porton fog hallgatni a szerver. Port 22 # A kettes verzij protokollt fogja elszr o # megprblni, aztn a rgi egyest. Protocol 2,1 # Alaprtelmezs szerint az sszes hlzati # interfszen vrja a krseket. # ListenAddress 0.0.0.0 # A host kulcsok, ezek alapjn tudnak a kliensek meggyzdni, o o # hogy a szerver az, akinek gondoljk. Ha a szerver kulcsa # megvltozik, a kliensek panaszkodni fognak, mert lehet, # hogy a szervert feltrtk. HostKey /etc/ssh/ssh_host_key HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_dsa_key # A kapcsolatoknl hasznlt RSA kulcs 768 bit hossz. # Aki paranoid, az magasabb rtket is megadhat itt. ServerKeyBits 768

# A szerver lezrja a kapcsolatot, ha a kliensnek 600 # msodperc alatt sem sikerlt az authentikci. LoginGraceTime 600 # A szerver 3600 msodpercenknt generlja jra a # kapcsolatokhoz hasznlt RSA kulcsot. Esetleg le # lehet cskkenteni kisebb rtkre, a mai modern # processzorok nagyon gyorsan tudnak kulcsot generlni. KeyRegenerationInterval 3600 # Rootknt nem lehet tvolrl bejelentkezni. # Ez nem minden esetben szerencss. PermitRootLogin no # A felhasznlk fjljainak hozzfrsi jogt # szigoran ellenrizzk. o StrictModes yes # Az X tirnytst bekapcsoljuk, ennek segtsgvel # titkostott csatornn hozhatjuk t a grafikt a hlzaton. X11Forwarding yes X11DisplayOffset 10 # A nap zenett s az utols bejelentkezst nem rjuk ki. o # Ezt PAM segtsgvel is el lehet intzni, errl o # ksbb lesz sz. #PrintMotd no #PrintLastLog no KeepAlive yes # Naplrs o o # A kvetkez kett az 1.11. rsz o # elolvassa utn teljesen rthet lesz. SyslogFacility AUTH LogLevel INFO # A .rhosts-os authentikcit letiltjuk, # mert nem biztonsgos. RhostsAuthentication no # # A .rhosts fjl s a tvoli gpek host-kulcsaival # trtn authentikcit is letiltjuk. o RhostsRSAAuthentication no # Az RSA kulcsos authentikcit engedjk, az j. o # Ehhez kulcsokat kell generlni, errl is lesz sz. RSAAuthentication yes # Az egyszer jelszavas authentikcit is engedjk. u PasswordAuthentication yes PermitEmptyPasswords no # A kerberosos belltsok most nem rdekelnek minket. #KerberosTgtPassing yes # Ezt kommentezhetnnk ki, hogy az sshd # bejelentkezskor kirja, hogy jtt-e levelnk. # A PAM ezt gyis elintzi neknk. #CheckMail yes o # A kvetkez bekapcsolsa esetn az interaktv # bejelentkezsekhez a login programot hasznlhatnnk. #UseLogin no # Az sftp-t szintn engedjk. Ezzel ftp-szer, de u # titkostott adattvitelt valsthatunk meg. Subsystem sftp /usr/lib/sftp-server

A kongurls utn az sshd paranccsal indthatjuk el az ssh dmont. A fenti belltsok valszn leg a legtbb esetben jk lesznek, de azrt rdemes jl tgondolni, u hogy minden megfelel-e az ignyeinknek. Az ssh parancsot alapvet en az o
ssh tvolifelhasznl@tvoli.gp [parancs]

mdon hasznlhatjuk, ennek hatsra az ssh megprbl bejelentkezni a tvoli gpre, ott vgrehajtani a parancsot gy, hogy a tvoli parancs kimenete s bemenete a loklis gpen fut ssh kimenetre s bemenetre kerl. Pldul: 10

# A debi nev gpen az ls parancsot akarom futtatni u $ ssh debi ls gabor@debis password: GNUstep NetPIPE.out ... $

Az ssh parancsnak rengeteg kapcsolja van, ezek kzl egyel ore a -v-t rdemes megemlteni, ennek hatsra bobeszd lesz az ssh. Ez segti a hibakeresst. A u tbbir l menet kzben lesz sz. o Az ssh csomagban van egy scp parancs, ezzel biztonsgos tvoli fjltvitel valsthat meg. Az scp parancsot
scp tvolifelhasznl@tvoli.gp:tvolifjl loklisfjl

vagy a
scp loklisfjl tvolifelhasznl@tvoli.gp:tvolifjl

paramterekkel hvhatjuk meg. Az utbbi esetben tbb loklis fjlt is megadhatunk, de ekkor a tvoli gpen egy knyvtrat kell megadnunk. Ha az scp parancsnak a -r kapcsolt adjuk meg, akkor rekurzv fjlmsolst fog csinlni. Az alapvet o
ssh tvolifelhasznl@tvoli.gp

s a
scp file felhasznl@tvoli.gp:tvoli/file

parancsokon kvl rdemes megismerkedni az RSA kulcsok hasznlatval. Az RSA kulcsok segtsgvel knyelmesebb, s jobban automatizlhatv lehet tenni az ssh-t. A kliensen az ssh_keygen parancs segtsgvel tudunk kulcsot gene rlni, majd a kulcs publikus felt a tvoli gpen a home knyvtrunkban lv o .ssh/authorized_keys vagy .ssh/authorized_keys2 fjlba msoljuk aszerint, hogy milyen verzij ssh csomagot hasznlunk. Ezek utn az authentikcihoz tudjuk majd hasznlni ezt a kulcsprt, azaz ezzel tudjuk azonostani magunkat a szervernek.
# RSA tpus kulcsot generlunk. [gabor@debi:~]$ ssh-keygen -t rsa # Most dolgozik az ssh-keygen. Generating public/private rsa key pair. # Megkrdezi, hogy hova tegye le a kulcsot. Enter file in which to save the key (/home/gabor/.ssh/id_rsa): /home/gabor/.ssh/ujkulcs # Megkrdezi ktszer a jelszt a kulcshoz. Enter passphrase (empty for no passphrase): Enter same passphrase again: # Elmondja, hogy hova fogja lerakni a kulcs # titkos s nyilvnos felt. Your identification has been saved in /home/gabor/.ssh/ujkulcs. Your public key has been saved in /home/gabor/.ssh/ujkulcs.pub. The key fingerprint is: 5f:d2:e0:68:15:de:49:a7:3d:93:19:c7:45:9e:bf:9f gabor@tonhal # Vgl shell tirnytsokkal s ssh hasznlattal # letesszk a kulcs nyilvnos felt a szerveren. [gabor@debi:~]$ ssh tonhal cat >>.ssh/authorized_keys2 <.ssh/ujkulcs.pub gabor@tonhals password: [gabor@debi:~]$

11

Ezutn mr hasznlhatjuk a kulcsunkat, vagy gy, hogy az ssh parancsnak a -i kapcsol utn megadjuk a ~/.ssh/ujkulcs fjlnevet, vagy hogy az ssh-agent programot hasznljuk. Az ssh-agent egy olyan program, ami trolni tudja a kulcsokat s a hozzjuk tartoz jelszt. gy a jelszt csak egyszer kell megadni (egy kulcshoz). Ugyanakkor rdemes belegondolni, hogy mivel a jelszt s a kulcsot is trolja az gynk, ezrt ha a gpnket feltrik, s pont fut az ssh-agent, knnyen tovbb tudnak menni a tbbi gpre is. Az ssh-agent parancsot ktflekppen lehet hasznlni: vagy megadjuk neki egy futtathat program nevt, amit elindt, s addig fut amg a program is, vagy pedig a shell eval parancst hvjuk segtsgl, de ekkor explicit mdon kill-ezni kell az ssh-agent-et, s ezt knny elfelejteni. Plda a kt hasznlati mdra: u az els : o

# Azt akarjuk, hogy az ssh-agent addig fusson, amg az # j zsh shellnk fut. $ ssh-agent zsh -l # Elindult a zsh, fut az ssh-agent, # a fortune is lefutott. "This generation may be the one that will face Armageddon." -- Ronald Reagan, "People" magazine, December 26, 1985 # Ez a "bels" zsh promptja, innentl hasznlhatjuk az o o # ssh-agent szolgltatsait. o o # Ha kilpnk ebbl a shellbl, az agent is kilp. $

a msodik:
# Ilyenkor gy kell elindtani. $ eval ssh-agent # Kirja, hogy elindult. Agent pid 1312 o # s innentl hasznlhatjuk is. $ # De el ne felejtsk lelni! o $ eval ssh-agent -k Agent pid 1312 killed

Ezutn egy sszetettebb plda: elindtjuk az ssh-agent-et, megadjuk neki az j kulcsunkat (ezt az ssh-add paranccsal tehetjk meg), s megnzzk mi trtnik, ha a tvoli gpen akarunk valamit futtatni:
# Szoksos ssh-agent indts. [gabor@debi:~]$ ssh-agent zsh -l # Megadjuk neki a kulcsunkat. [gabor@debi:~]$ ssh-add .ssh/ujkulcs # Az ssh-add kri a jelszt a kulcshoz. Need passphrase for .ssh/ujkulcs Enter passphrase for .ssh/ujkulcs: # A kulcs tadsa az ssh-agentnek sikeres. Identity added: .ssh/ujkulcs (.ssh/ujkulcs) # Kiprbjuk, mit csinl az ssh. [gabor@debi:~]$ ssh tonhal uname -a # Nem kr jelszt. Linux tonhal 2.4.2 #5 Mon Feb 26 22:13:40 CET 2001 i686 unknown

Az RSA kulcsokat hasznlhatjuk klnbzo automatikus dolgok vgrehajtsra is, ha nem adunk meg nekik jelszt a generlskor. Ekkor minden jelszkrs nlkl lpkedhetnk a gpek kztt. Ez gy persze veszlyes. Hogy a veszlyt cskkentsk, a

12

tvoli gp .ssh/authorized_keys2 fjljban megadhatjuk, hogy honnan hasznlhatjk azt a kulcsot, s hogy milyen programot futtathatnak (s mg sok minden mst). Pldul az ujkulcs nev kulcsunkat csak a debi nev gpr ol engedjk be, s csak u u az uptime parancsot lehet vele futtatni:
# Megnzzk, hogy milyen az .ssh/authorized_keys2 fjl. [gabor@tonhal:~]$ cat .ssh/authorized_keys2 from="debi",command="uptime" ssh-rsa AAAAB3N... # Csak a debi gprl lehet hasznlni, csak az uptime o # parancsot lehet futtatni. Utna az "ssh-rsa AAAAB3N.." # mr maga a kulcs. [gabor@debi:~]$ ssh tonhal /bin/true 10:51pm up 1:40, 5 users, load average: 0.02, 0.02, 0.00

Mint ltjuk a /bin/true helyett az uptime parancs futott le. Egy sszetett plda: a fentieket kombinljuk gy, hogy az adott kulccsal csak egy fjlt tudjunk t msolni a tvoli gpre, ami a tvoli gpen /tmp/p nven fog megjelenni. Els o lps: dntsk el, hogy milyen parancsnak kell lefutnia a tvoli gpen. Erre egyszer en rju hetnk, ha az scp parancsot -v kapcsolval futtatjuk, s egy command tartalm sorra keresnk benne:
# Kiprbls. [gabor@debi:~]$ scp -v valami.ps tonhal:/tmp/p # Itt van ami kell neknk, a scp -v -t /tmp/p # fut le a msik oldalon. Executing: program /usr/bin/ssh host tonhal, user (unspecified), command scp -v -t /tmp/p Sending file modes: C0664 26632 valami.ps valami.ps 100% |*****************************| 26632 00:00

Lthatjuk, hogy a tvoli gpen az scp -t /tmp/p parancs fog lefutni. Ezutn megfelel en trjuk a tvoli gpen a .ssh/authorized_keys2 fjlt, s mr o m kdik is. A -v opcit kihagyjuk, azt a bobeszd md miatt kldte. u u
# Leellenrizzk a .ssh/authorized_keys2 tartalmt. o [gabor@tonhal:~]$ cat .ssh/authorized_keys2 from="debi",command="scp -t /tmp/p" ssh-rsa AAAAB3... # Ezzel a kulccsal tnyleg csak a megfelel o # parancsot lehet hasznlni. # Most megprblunk mst futtatni a tloldalon, # de ez nem fog sikerlni. [gabor@debi:~]$ scp proba tonhal:/tmp/a proba 100% |*****************************|

259

00:00

Nyilvnvalan tonhal nev gpen /tmp/a helyett /tmp/p fjlban fog megjelenni u a proba fjl tartalma.

1.3.2. Qmail
Mirt pont a qmail? A qmail egyszer en kongurlhat, biztonsgos, s elgg u j teljestmny . Ugyanakkor rdemes megjegyezni, hogy van egy-kt hinyossga, u pldul tl ks n ellen rzi, hogy van-e adott nev felhasznl vagy alias a rendszerno o u kn; minden egyes kimen levlhez j kapcsolatot nyit; a licence pedig lehetne kicsit o bartsgosabb. rdemes megnzni a postfix programot (http://www.postx.org/), de annak jval bonyolultabb a kongurlsa. A qmail biztonsgi okok miatt tbb, klnbzo felhasznl azonostval fut processzre van felosztva, gy ha netaln valamelyik rszvel valami baj trtnne, az akkor sem lesz komoly hatssal a teljes rendszerre. Az MTAk kzt ritka a hasonlan biztonsgos tervezs.

13

Telepts: a qmail csomagot le lehet tlteni a http://www.qmail.org/ oldalrl, vagy feltelepthetjk disztribcink rszeknt, .deb, .rpm vagy egyb csomagbl. Ha van ilyen csomag, rdemesebb azt hasznlni, mint magunknak szerezni. A qmail licence miatt valszn leg csak forrsnyelv csomagot fogunk tallni, benne az utastsokkal u u a fordtshoz. Az egyetlen paramter, amire a fordtskor rdemes odagyelni, az a conf-split fjlban lv szm, ez befolysolja, hogy a mail queue hny knyvo trra lesz sztbontva. Nagyon nagy forgalom esetn ezt rdemes lehet felemelni. Mivel a qmail hashelssel dnti el, hogy melyik levl melyik knyvtrba fog kerlni, ezrt itt rdemes prmszmot megadni, a hashels hatkonysgnak nvelsre. Ezek utn, ha sikerlt lefordtani s feltelepteni, akkor a kongurci ellen orzse kvetkezhet, mivel a kongurcis llomnyok is a fordts sorn, a helyi sajtossgoknak megfelel en jnnek ltre. o A qmail a kongurcijt eredetileg a /var/qmail/control alatt tartja, mindent kln fjlban az egyszer sg kedvrt. A knyvtron a disztribcik vlu toztatni szoktak, a Debian pldul a /etc/qmail knyvtrba teszi a kongurcis fjlokat. A fontosabb kongurcis fjlok sorban: A me a legfontosabb kongurcis fjl, ez lltja be a gp nevt, ezt a nevet fogja alaprtelmezett rtkknt hasznlni elgg sok (de nem mindegyik) kongurcis fjl helyett (teht ennek a kitltsvel mr szinte m kdokpes a levelez szerver). u o A defaultdomain fjlba kell beletenni a gp domain nevt. Pldul ha a gp neve mail.ceg.hu, akkor ebbe a fjlba ceg.hu kerl. A plusdomain fjlba a domain nv domain nevt kell tenni, a fenti pldnl maradva a hu szt. Az rcpthosts fjlban felsorolt hostnevekre jvo leveleket fogja az smtp szerver processz elfogadni, hogy ezutn a queue-ba bekerlve azokat valahogy kzbestse a rendszer. A locals fjlban felsorolt hostnevekre jvo leveleket fogja loklisknt kezelni a szerver, teht ebben benne kell lennie az sszes olyan nvnek, amire loklis kzbestst akarunk krni. A qmail a concurrencyremote fjlban megadott szm processzt fog futtatni a tvoli levelek kzbestshez, azaz ez hatrozza meg, hogy egyszerre hny levelet fog prhuzamosan tvolra kzbesteni. Ez nagyban befolysolhatja a szervernk teljestmnyt. rdemes kiksrletezni, hogy mennyi illik legjobban a hardverhez s a terhelshez, de hetven-nyolcvanat valszn leg elbr a hardver. u A qmail a concurrencylocal fjlban megadott szm processzt fog hasznlni a loklis kzbestshez. Ezzel mr jobban kell vigyzni, mert pldul egy sok pldnyban fut nagy levelezolistaszoftver er sen megfoghatja a gpet. o J esetben a disztribcinkkal jvo csomagok kzt volt a qmail, s akkor van hozz indtszkript is, de ha nem, akkor neknk kell megrnunk egyet. El kell in dtanunk a szerver programot, s a hlzatra hallgat SMTP dmont is. Az els ot a /var/qmail/bin/qmail-start programmal tehetjk meg, ami elso paramter knt az alaprtelmezett loklis kzbestsnek megfelelo clt vrja, mg a tbbi paramter a logolst befolysolja. Egy konkrt plda:
exec env - PATH="/var/qmail/bin:$PATH" \ qmail-start |preline procmail splogger qmail

Az els sor csak trli a felesleges krnyezeti vltozkat, a msodik sor elindtja o a qmail-startot gy, hogy a loklis kzbestshez a procmailt fogja hasznlni, a logolshoz pedig az sploggert, ami a sima syslog programon keresztl logol. A preline azrt kell, mert a qmail sok helyen krnyezeti vltozkat hasznl ahol ms program 14

a standard inputrl vrn az adatot, a preline pedig a krnyezeti vltozk tartalmt megfelel en kikldi a program (itt a procmail) inputjra. o Ezek utn jn a qmail-smtpd futtatsa. Ezt legegyszer bben az ucspi-tcp u csomag segtsgvel tehetjk meg. Ez is letltheto a http://www.qmail.org/ oldalrl, de rdemesebb a disztribcink csomagkezelojvel feltelepteni. Ez a csomag egyszer u hlzatos szolgltatsokat knl.
/usr/bin/tcpserver \ -u id -u qmaild -g id -g nobody -x /etc/tcp.smtp.cdb 0 smtp \ /usr/sbin/qmail-smtpd 2>&1 | splogger qmail -t qmail -p mail.notice &

Ez elindtja a tcpserver programot, megmondja neki, hogy futtassa a qmail-smtpdt a qmaild felhasznl azonostjval, s nobody csoportazonostval, a /etc/tcp.smtp.cdb fjlban lv szablyokat hasznlja, a gp brmelyik IP cmre fogadjon el kapcsolatot o (a 0 az), s az smtp porton hallgasson. A relay-ezst a qmail-smtpd programnak a RELAYCLIENT krnyezeti vl toz belltsval engedlyezhetjk, akr inetd-bol tcpwrapper segtsgvel, akr a tcpserver segtsgvel. Az utbbi hasznlathoz ki kell tlteni egy tetsz oleges fjlt, pldul gy:
127.0.0.1:allow,RELAYCLIENT="" 192.168.20.:allow,RELAYCLIENT=""

Ennek hatsra a loklis gpr l s a 192.168.20.0/255.255.255.0 hlzaton lv o o gpekr l kldhetnek levelet a szerveren keresztl, a szerver rcpthosts fjljban o nem szerepl gpnek. Ebb l a fjlbl mg egy binris .cdb adatbzist kell csinlni: o o
tcprules /etc/tcp.smtp.cdb temporaryfile < szovegesfile

Ahol a temporaryle egy ideiglenes fjl neve, a szovegesle pedig annak a fjlnak a neve, amibe a fenti kt sort betettk. Aliasok kezelse: a qmail az aliasokat a /var/qmail/aliases knyvtrban tartja, mindegyiket kln fjlban. A fjlok neve .qmail-aliasneve, teht a /var/qmail/aliases/.qmail-postmaster fjlba kell tennnk, ha pldul o van egy postmaster aliasunk. A .qmail fjlokban a pipe jellel kezd od sor hatsra a qmail a pipe jel utn lv program standard inputjra fogja kldeni a bejvo leveo leket. /-rel kezd d sor hatsra az adott mailboxba vagy Maildirbe fogja tenni a o o bejv leveleket. Az utbbiba akkor, ha megint csak egy / jel van a sor vgn. o Ide jnne egy pldakongurci, ha szksges.

1.3.3. vsftpd
Az ftp nem egy biztonsgos szolgltats, de sajnos a felhasznlk nagyon ragaszkodnak hozz annak ellenre, hogy az ssh csomagnak van Secure FTPje, titkostott adatvitellel, grakus klienssel Windowshoz. Az ftp problmja, hogy bizonyos m u veletekhez az egyszer felhasznltl magasabb privilgium-szint kell, s radsul a u forgalmat sem titkostja (azaz a hlzat lehallgatsval ssze lehet gy jteni a felhaszu nlk jelszavait). Tovbbi problma, hogy kevs igazn biztonsgos ftp szerver ltezik. Egy j ftp szerver a vsftpd, a Very Secure FTP Daemon. A nv termszetesen semmit sem garantl, csak azt, hogy az rja mindent megtesz a biztonsg rdekben. Szmomra ez a szerver biztonsgosabbnak t nik a tbbinl, ezrt ezt ismertetem. u

15

A szerver inetd-b l fut, minden kapcsolathoz kt processzt indt, egy privilo gizltat a klnbz hlzati m veletek elvgzshez (amikhez a norml privilgiumo u szint kevs lenne), s egy msikat, ami az pp bejelentkezett felhasznl azonostjval fut. A privilgizlt processz sem rootknt fut, hanem a Linux capabilities nev mechau nizmust hasznlva egy egyszer felhasznlknt gy, hogy kzben a jogot az 1024u t l kisebb hlzati portok megnyitsra megtartja. Radsul egy msra nem hasznlt o knyvtrba chroot-olja magt, gy onnan nem lt ki. A kt processz Unix Domain Socketen keresztl kommunikl egymssal gy, hogy a privilgizlt processz nem bzik a privilgizlatlan ltal kldtt zenetekben. Ehhez hasonlan tervezett ftp dmonok ritkk. Egy kt klienst kiszolgl szervert gy kpzelhetnk el: Telepts: a vsftpd csomagot a ftp://ferret.lmh.ox.ac.uk/pub/linux/ oldalon lehet megtallni, de rdemesebb a disztribcinkbl feltenni, ha ott van a csomagok kzt. A szoftver pldul rsze a Debian Woody disztribcinak. Hozz kpest a kzzel for dtott, vagy ms disztribcik rszt kpezo vltozatok esetben csak a fjlok elrsi tvonalban vrhat vltozs. Inetd belltsa: a /etc/inetd.conf fjlba rjuk be a kvetkezo sort, majd a killall -HUP inetd parancsot kiadva olvastassuk jra az inetd-vel a kongurcis fjljt.
ftp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/vsftpd

A program egyetlen paramtert vr, a kongurcis fjljnak az elrsi tvonalt, ha az nem a /etc/vsftpd.conf fjlban van. Ezek utn termszetesen a tcpwrapper csomagot is be kell kongurlni, a /etc/hosts.allow s a /etc/hosts.deny fjlok megfelel kitltsvel. o A /etc/hosts.allow fjlba pldul anonymous ftp esetn ilyesmit lehet rni:
# Beengednk mindenkit, akinek feloldhat az IP cme, kivve ha a # a nv visszaellenrzsnl nem egyeznek az IP cmek. o vsftpd: KNOWN EXCEPT PARANOID

A kongurcis fjl: /etc/vsftpd.conf. Ez egyszer opci=rtk prou sokbl ll. Fontos tudni, hogy nem lehet szkz az egyenl osgjel kt oldaln. A fjlban a megjegyzseket a szoksos soreleji # jel jelzi. Elg sok opci logikai rtk , ezeket u YES-re illetve NO-ra llthatjuk, ezt nem fogom mindegyiknl kln megemlteni. anonymous_enable Ezzel lehet engedlyezni az anonymous ftpt. Az anonymous ftphez szksg van egy ftp nev felhasznlra. Ennek a felhasznlnak a home u knyvtra lesz az anonymous ftp terlet. local_enable A norml felhasznlkat engedjk-e bejelentkezni vagy sem. A fenti opcival egytt lehet csak anonymous, csak norml felhasznlkat beenged o, vagy mindkett t enged re kongurlni az ftp szervert. o o write_enable Engedi-e az rst az ftp szerver (feltlts, stb.). local_umask Ez nem logikai rtk , azt mondja meg, hogy milyen umaskot hasznlu jon az j fjlok ltrehozsakor. Az alaprtelmezett 077 esetn pldul csak a tulajdonos fogja tudni elrni az ltala letett fjlokat. anon_upload_enable Anonymousknt lehet-e feltlteni a szerverre. Kell hozz a write_enable is.

16

anon_mkdir_write_enable Anonymousknt lehet-e j knyvtrat ltrehozni. Kell hozz a write_enable is. xferlog_enable Az xfer logot rja-e a dmon. connect_from_port_20 A szoksos 20-as (ftp-data) portrl menjen-e ki az adatkapcsolat. Erre rdemes igent mondani. chown_uploads Az anonymousknt feltlttt fjlok tulajdonost megvltoztassa-e a szerver. chown_username Kinek a tulajdonv chown-olja a szerver az anonymousknt feltlttt dolgokat. Ez nem logikai tpus, az alaprtelmezett rtk a root. idle_session_timeout A szerver mennyi ido mlva bontsa a ttlen kapcsolatokat. Nem rdemes se tl nagyra, se tl kicsire lltani. A hasznlhat rtkek valahol 60 s 600 msodperc kzt lehetnek. data_connection_timeout Az adatkapcsolatokat mennyi ido mlva bontsa a szerver, ha nincs rajta forgalom. (Az utbbi kt paramtert msodpercben kell megadni.) nopriv_user Egy nem privilgizlt, az ftp dmon m kdtetshez fenntartott felu hasznl neve. Nem rdemes nobodyt megadni, inkbb j felhasznlt kell hozz ltrehozni. ascii_upload_enable, ascii_download_enable Engedlyezzk-e az ASCII fel/letltst. Ez j tletnek t nik, de pldul egy ilyen mdban trtn o u fjlmret-lekrdezshez karakterenknt vgig kell olvasnia a szervernek a fjlt. ls_recurse_enable Engedlyezzk-e a rekurzv knyvtrlistzst. Ez nagyon megterhelheti a szervert, de ugyanakkor a mirroroz programoknak szksgk lehet r. Nmelyik gy gy jti ssze a lehozand fjlok listjt. u

1.3.4. stunnel
Az stunnel segtsgvel titkostott SSL (Secure Socket Layer) kapcsolatba csomagolhatunk klnbz protokollokat, mint pldul POP3, vagy IMAP. gy pldul SSLes o POP3 szerver valsthat meg, egy SSLt nem ismero szerverprogram segtsgvel. Ezzel lehet vdekezni a hlzatlehallgats ellen. Az stunnel-t lehet inetd-b l vagy nmagban futtatni. A kt md csak egy o kapcsolban tr el egymstl. Az stunnel leggyakrabban hasznlt kapcsoli: -l segtsgvel lehet megadni, hogy milyen programot futtasson, amikor csatlakoznak hozz. Itt egy inetd segtsgvel is futtathat programot vr (pldul egy pop3 szerver). -N segtsgvel adhatjuk meg, hogy a hosts.allow s a hosts.deny fjlt milyen szolgltatsnv szerint vizsgljon meg. -p utn adhatjuk meg az stunnel-nek a PEM fjljt. Ezzel igazolja a szerver, hogy o valban az, akinek lltja magt. -d segtsgvel llthatjuk t az stunnel m kdsi mdjt inetd-srol klnllra. u Ez egy hlzati port nevt vrja paramterknt. 17

Ezek utn mr ki is lehet prblni az stunnel-t, pldul inetd-bol, gy:


# /etc/inetd.conf rszlet # A pop3s porton stunnelt futtatunk. A processz neve pop3d lesz. # A tcpwrapper szolgltatsnv solid-pop3d-s, a PEM fjl a # /etc/ssl/certs/pop3.pem, a futtatott program pedig # /usr/sbin/solid-pop3d. pop3s stream tcp nowait root.mail /usr/sbin/stunnel pop3d -N solid-pop3d-s \ -p /etc/ssl/certs/pop3.pem -l /usr/sbin/solid-pop3d

Ha ugyanezt nllan fut stunnel-lel szeretnnk megoldani, akkor egy ilyen paranccsal indthatjuk el az stunnel-t:
/usr/sbin/stunnel -d pop3s -N solid-pop3d-s \ -p /etc/ssl/certs/pop3.pem -l /usr/sbin/solid-pop3d

Mindkt esetben a hosts.allow fjlban egy hasonl bejegyzsre lesz szksgnk:


solid-pop3d-s: localhost, .domain.hu

Vgl telnet-ssl segtsgvel letesztelhetjk, hogy jl m kdik-e: u


$ telnet-ssl -z ssl szerverneve pop3s +OK Solid POP3 server ready <22458.996136614@szerverneve> USER gabor +OK username accepted PASS titok LIST +OK scan listing follows . QUIT +OK session ended Connection closed by foreign host.

A PEM fjlt az azonossgnak az igazolsra hasznlja az stunnel. Teleptskor generl egyet, de lehet, hogy ksobb szksgnk lesz arra, hogy magunknak generljunk egyet. Ezt az
openssl req -new -x509 -days 365 -nodes -config stunnel.cnf \ -out stunnel.pem -keyout stunnel.pem

paranccsal tehetjk meg. Ennek hatsra az openssl egy jelsz nlkli, 365 napig rvnyes PEM fjlt generl, az stunnel.cnf kongurcis fjl segtsgvel. A kimenetet az stunnel.pem fjlba fogja tenni. Amikre oda kell gyelni: az openssl Common Name: krdsre a szerver gpnevt kell megadni. Nmelyik disztribci elfelejti az stunnel.cnf fjlt az stunnel csomagba beletenni, ekkor letlthetjk magunknak a http://www.stunnel.org/ oldalrl. Lehet, hogy szksgnk lesz DifeHellman paramterekre a PEM fjlunkhoz, ezt az
openssl gendh 512 >> stunnel.pem

paranccsal generlhatunk hozz.

1.4. Behvszerver kongurlsa


Behvszerverre akkor lehet szksgnk, ha valakiknek modemes internet-elrst szeretnnk biztostani. Behvszerver fellltshoz szksgnk lesz a pppd s az mgetty csomagokra. Ezek ltalban a disztribcik rszt kpezik, nem lesz szksgnk arra, hogy magunk nak fordtsuk le oket. El szr az mgetty kongurcijval fogunk foglalkozni. o 18

1.4.1. Mgetty
Az mgetty egy getty-szer program, de modemekhez terveztk. Valamelyik termiu nleszkzn egy felhasznlnvre vr, s utna meghvja a login, vagy valamilyen ms, bejelentkezst kezel programot. Ezen kvl kezelni tudja a modemek klno bz funkciit, pldul modem inicializls, kicsrgsek szma miel ott felvenn, fax o fogadsa. Clunk az lesz, hogy a modem valahny csrgs utn fogadja a hvst, majd az mgetty elindtson egy pppd-t a soros vonalon. Az mgettyt a getty parancshoz hasonlan init-bol szoktk futtatni, ehhez egy hasonl sor kell a /etc/inittab fjlba:
T1:23:respawn:/sbin/mgetty -x0 -s 115200 ttyS1

Ez azt jelenti, hogy az init processz a kettes s hrmas futsi szinten mindig indt o egy mgetty programot a ttyS1 soros portra, ha az eloz mgetty kilp. Lthat, hogy az mgetty parancsnak klnbzo parancssori paramterei lehetnek, de ezek kzl csak azokkal fogunk foglalkozni, amelyek neknk fontosak. Ezek a kvetkez k: -s, ezzel adhatjuk meg a modem sebessgt, ezt rdemes 115200-ra lo ltani; a -n, ezzel lehet majd megmondani az mgettynek, hogy hny kicsrgs utn fogadja a hvst; a -x, ezzel llthatjuk a debug levelt, ami fontos lehet a bellts kzben. Ezen kvl mg van nhny kongurcis fjlja, amik szintn fontosak. /etc/mgetty/login.config: ebben a fjlban llthatjuk be, hogy milyen felhasznl nvhez milyen login programot futtasson az mgetty. Ennek a formtuma
felhasznlnv felhasznlazonost utmpbejegyzs loginprogram argumentumok...

gy ha az adott nev felhasznl jelentkezik be, akkor az adott felhasznlazonou stval az adott program fog lefutni, s az mgetty lerak egy megfelel o bejegyzst az utmp fjlba. Az mgetty programnak van egy autoppp mdja, ez hasznos, mert szre tudja venni, ha ppp dmon van a vonal msik oldaln, s el lehet vele indttatni a ppp dmont ezen az oldalon. Ez a sor krlbell gy nz ki:
/AutoPPP/ a_ppp /usr/sbin/pppd auth -chap +pap login debug

Ennek hatsra az mgetty az /AutoPPP/ felhasznl rzkelsekor (azaz ha ppp dmon van a msik oldalon) letesz egy a_ppp bejegyzst az utmp fjlba, s meghvja a pppd parancsot a megadott paramterekkel. A - felhasznlazonost hatsra az mgetty nem fog felhasznlazonostt vltani, teht a pppd is root-knt fog futni, mint az mgetty. /etc/mgetty/mgetty.config: itt krlbell ugyanazokat lehet belltani mint a parancssorban, megadhatjuk a debug levelt, a modem sebessgt, stb. rdemes odagyelni, hogy a modemnket csak adatmodemknt kongurljuk, s a fax-idt kapcsoljuk ki. Ha van fax-id sorunk, kommentezzk ki. A debug levelt egy debug X sorral llthatjuk, 0 s 9 kztt. speed XXXX opcival llthatjuk be a modem sebessgt, a data-only yes vagy modem-type data opcival llthatjuk be, hogy nem akarunk faxot kezelni. Ha klnbzo tpus modemjeink vannak, akkor portonknt bellthatjuk ezeket, port portneve (pldul port ttyS1) sorokkal vlaszthatjuk el egymstl a klnbzo portokra vonatkoz bejegyzseket. Plda egy minimlis mgetty.config fjlra:

19

# Ngyes szint nyomkvets. u debug 4 # 115200 bauddal kommuniklunk a modemmel. speed 115200 # A bejelentkezs eltt a /etc/issue.mgetty o # fjlt kldi ki a soros vonalon. issue-file /etc/issue.mgetty # Adatmodemnk van, faxot nem akarunk. modem-type data

Ha azt akarjuk, hogy az mgetty ne mindig vegye fel a telefont, cron segts gvel egy /etc/nologin.ttyS1 (vagy ms, a soros portnak megfelelo nev ) fjl u ltrehozsval s trlsvel ezt szablyozhatjuk. Ehhez, s a kicsrgsek szmnak megadshoz a modem automatikus hvsfogadsnak a kikapcsolshoz lehet, hogy t kell kongurlnunk a modemet. Ehhez fel kell raknunk valamilyen terminlkezel o szoftvert, mint pldul a minicom. Ha a minicom csomagot sikerlt teleptennk s belltanunk, akkor a
# A modemet bbeszdre lltjuk. o u ATV1 # Nem akarjuk, hogy a modem automatikusan # felvegye a telefont. AT&M1 # Elmentjk a modem konfigurcijt. AT&W

parancsokkal ki tudjuk kapcsolni az automatikus telefonfelvtelt, be tudjuk kapcsolni a modem b beszd mdjt, hogy az mgetty tudja, hogy mikor csrg ki a modem, o u s vgl elmentjk a belltsokat. Az AT&M1 helyett lehet, hogy az AT&M3 parancsra lesz szksgnk az automatikus telefonfelvtel letiltsra.

1.4.2. PPPD
A PPP (Point to Point Protocol) segtsgvel lehet soros, vagy ms pont-pont felpts u vonalon hlzati kommunikcit megvalstani. A pppd egy PPP vonal menedzselshez szksges klnbz szolgltatsokat nyjtja, mint pldul a vgpontok kzti o authentikci, kommunikcis paramterek, tmrts, stb. belltsa. Ahhoz, hogy a modemes behvszervernk m kdjn, minimlisan a ku vetkez szoftverekre lesz szksg: egy kernel soros port s ppp tmogao tssal, mgetty s pppd. Az utbbi kt szoftver verzijt rdemes a kernel-forrs/Documentation/Changes fjlban lert verziszmhoz igaztani, klnben problmkba tkzhetnk. A pppd a kongurcijt a /etc/ppp/options, a ~/.ppprc s a /etc/ppp/options.terminlnv fjlokbl szedi, ahol a terminlnv a terminl neve, amit a pppd parancsnak a parancssorban megadtunk. A fjlok megvizsglsa utn a parancssort nzi meg. A kongurls elgg egyszer lesz. Kitltjk a /etc/ppp/options fjlt, jelu szavakat adunk a felhasznlknak, krlbell ennyi az egsz.
# Az /etc/ppp/options krlbell gy nz ki: ### # Sima soros vonalunk van, nem kell semmilyen karaktert # klnlegesen kezelni. asyncmap 0 # A kliensnek authentiklnia kell magt, ha pppt akar # hasznlni. auth # Csak chap ("kihvsos") authentikcit hasznlunk,

20

# a papot ("jelsz authentikci") tiltjuk. # Ezen persze az ignyeknek megfelelen lehet o # vltoztatni. refuse-pap require-chap # Hardware flow controlt hasznlunk. crtscts # Uucp-s lockolst hasznlunk a sorosporti # eszkzn, nehogy ms is hasznlni prblja. lock # Nem akarjuk, hogy a naplfjlokban # megjelenjenek a jelszavak. hide-password # A sorosvonalon egy modem l. modem # Proxyarp-ot hasznlunk a csomagok routolsnl, # errl ksbb mg lesz sz. o o proxyarp # Echo-requesteket kldnk a msik # oldalnak 30 msodpercenknt, ha # nem jn vlasz, valami baj van. lcp-echo-interval 30 # Ha a msik oldal 4 ilyenre nem vlaszol, mert valami # rossz trtnt vele, akkor bontjuk a kapcsolatot. # Nagyon rossz vonalnl lehet, hogy megri nagyobbra venni. lcp-echo-failure 4 # Ipxet nem akarunk. noipx # Megadjuk a ppp link tvoli s loklis felnek IP cmt. # A loklis fele a 192.168.10.10, ez egy tetszleges, o # az adott szerver gpen s a hozz kapcsold # hlzatokon nem hasznlt cm lehet, ezzel nem # fognak csomagok kikerlni a hlzatra. # # A tvoli felnek egy olyan IP cmnek kell lennie, ami # a szerver gp bels loklis hlzatnak egy nem o # hasznlt IP cme. Ebben az esetben pldul a szerver # eth0 interfsze a 192.168.22.0/255.255.255.0 # hlzatra csatlakozik, s 192.168.22.33 egy nem # hasznlt IP ezen a hlzaton. # # Ez a proxyarphez kell. # # Tbb ilyen IP cm prost is megadhatunk itt. # # Ha tbb modemnk van, akkor rdemes vonalanknt # egy-egy egyni IP cm prost megadni, a # megfelel options.ttySxx fjlokban. o 192.168.10.10:192.168.22.33 # A kvetkez kt sorban szinte az sszes o # lehetsges tmrtst bekapcsoljuk. Ez # nagyban megyorstja pldul a html fjlok # letltst. bsdcomp 15,15 deflate 15,15

Ezek utn fel kell vennnk a felhasznlkat a /etc/ppp/chap-secrets fjlba:


kliens szerver titkosjelsz IPcm

Ahol rtelemszer en a kliens a kliens neve, a szerver a szervernk neve, a titkosu jelsz a kliens jelszava, az IPcm pedig az az IP cm, amit a kliens hasznlhat, vagy *, ha brmilyen IP-t hasznlhat, amit megadtunk a pppd options fjljaiban. Itt gy felvehetjk a felhasznlinkat. Mit csinl a proxyarp? A proxyarp kulcssz hatsra a pppd tesz egy bejegyzst a szerver els ethernet interfsznek arp tbljba, hogy ha a kliens hardvero cmt szeretn tudni valamelyik gp a szerver hlzatn, akkor a szerver hardver cmt

21

kapja meg hozz. Ennek hatsra a kliensnek sznt hlzati csomagok el oszr eljut nak a szerverhez, majd az tovbbroutolja oket a klienshez. A routols jl fog m kdni, u mert a kernel mindig a pontosabban megadott tvonal fel fogja kldeni a csomagokat, teht a 255.255.255.255-s hlzati maszk ppp linkrl a csomagok jl tjutnak a (mondjuk) 255.255.255.0-s klso hlzat fel, annak ellenre, hogy a kliens IP cme a kls hlzatnak is rszt kpezi. o IP cm hozzrendelse soros vonalakhoz: tegyk fel, hogy kt soros vonalunk van, ttyS0 s ttyS1. Ekkor az inittab pldul gy fog kinzni:
... T0:23:respawn:/sbin/mgetty -x0 -s 115200 ttyS0 T1:23:respawn:/sbin/mgetty -x0 -s 115200 ttyS1 ...

Ekkor a megfelel opci fjlok kitltsvel elrhetjk, hogy a kt soros vonalon o fut pppd ms IP cmet kapjon:
#/etc/ppp/options.ttyS0 # 192.168.10.10:192.168.22.33 #/etc/ppp/options.ttyS1 # 192.168.10.11:192.168.22.34

A pppd klnbz szkripteket futtat a ppp kapcsolat kezdetekor s vgekor, ezeko kel sok mindent meg lehet oldani, pldul t zfal tkongurls, forgalommrs. A u pppd a /etc/ppp/ip-up szkriptet futtatja amikor a ppp link hasznlhatv vlik, s az /etc/ppp/ip-down szkriptet, amikor a kapcsolatnak vge szakad. Hasonlan futtatja le az /etc/ppp/auth-up s a /etc/ppp/auth-down szkripteket, ha volt authentikci. Ezeket a programokat klnbzo paramterekkel s krnyezettel futtatja le, amikb l a ppp link klnbz paramtereit tudhatjuk meg: o o Krnyezeti vltozk, amiket a szkriptek megkapnak: DEVICE A terminleszkz neve amit a pppd hasznl. IFNAME Az interfsz neve amit a pppd hasznl. Pldul ppp0, ppp1. IPLOCAL A link loklis felnek IP cme. IPREMOTE A link tvoli felnek IP cme. PEERNAME A msik oldal neve, ha trtnt authentikci. SPEED A vonal sebessge. ORIG_UID, PPPLOGNAME A ppp dmont futtat felhasznl eredeti felhasznlazonostja s felhasznlneve. Az ip-down s ip-up szkriptek mg ngy vltozt kapnak: CONNECT_TIME A kapcsolat hossza msodpercben. BYTES_SENT A soros porton elkldtt byte-ok szma. BYTES_RCVD A soros vonalon fogadott byte-ok szma. LINKNAME A link logikai neve. A linkname kulcsszval lehet valamelyik opcifjlban belltani. 22

Parancssori argumentumok, amiket a szkriptek a pppd parancstl kapnak: a /etc/ppp/auth-up s a auth-down szkriptek az interfsz-nv, msikoldal-neve, felhasznl-nv, terminl-eszkz, sebessg paramtereket kapjk, a /etc/ppp/ip-up s ip-down szkriptek pedig az interfsz-nv, terminl-eszkz, sebessg, loklis IP cm, tvoli IP cm, ipparam paramtereket kapjk meg. Az ipparam egy sztring, amit valamelyik opcifjlban adhatunk meg, de ez nem ktelez . o

1.4.3. PPP ssh felett


Nha szksg lehet arra, hogy kt vagy tbb tvoli gp kztt biztonsgos adatforgalmat bonyolthassunk gy, hogy az egy nem megbzhat hlzaton megy t. Ezzel gynevezett VPNt (Virtual Private Network) alakthatunk ki pldul kt iroda kzt. Ilyenek kialaktst sokflekppen meg lehet oldani, s sok szoftvermegolds ltezik erre, pldul a tunnelv, a vpnd, a vtun, vagy akr pppt is tkldhetnk ssh felett. Mivel mr a pppr l s az ssh csomagrl is volt sz, most ezt ismertetem. A kono gurci jval egyszer bb lesz, mint a behvszerver esetben. Nem kell tr odni a ppp u authentikcival, vagy hogy melyik soros vonalat hasznlja majd a ppp. A link kt vgt az rthet sg kedvrt hvjuk kliensnek s szervernek. A kliens o oldal fog ssh parancsot hvni, amit a szerver oldali sshd fogad. A dolog gy fog m kdni, hogy a pppd a kliensen indulskor ssh segtsgvel u bejelentkezik a szerverre, s ott elindt egy msik pppd parancsot. Ezzel meg is van a ppp link kt vge. A routolson, csomagsz rsen (ha erre szksg van) a kt oldalon a u /etc/ppp/ip-up s a /etc/ppp/ip-down segtsgvel lehet mg nomtani. El szr mindkt oldalon be kell kongurlni a pppd csomagot. Ehhez egy o /etc/ppp/peers/partnerneve opci-fjlt kell kitltennk, ehhez hasonlan:
# A kliens konfigurcija. # # Amg teszteljk, addig rdekelnek az zenetek. debug # Authentikci nem kell. noauth # Nem akarjuk, hogy a pppd a httrbe forkoljon. nodetach # A "soros vonalon" nem modem l, hanem egy ssh. local # Megadjuk a link loklis s tvoli IP cmt. 192.168.22.23:192.168.23.23 # Kikapcsoljuk az sszes tmrtst. bsdcomp 0 novj novjccomp deflate 0 nopredictor1 # Kikapcsoljuk a proxy arp-t. noproxyarp # Terminlnv helyett a pty opci # segtsgvel egy program nevt adjuk meg. # # Ennek hatsra a pppd lefoglal egy terminlt gy, hogy # a terminl egyik vgn a pppd, a msikon a program # (itt az ssh) lesz. gy a pppd az sshn keresztl # fogja a Point-to-Point protokollt megvalstani. pty "/usr/bin/ssh -e none -t -i /root/.ssh/szerverppp root@szerver" # Az ssh a -t kapcsol hatsra lefoglal egy terminlt # a msik oldalon, a -e none hatsra pedig letiltja # a ~. karakterkombincival trtn kapcsolatbontst. o

A fjl neve legyen mondjuk /etc/ppp/peers/proba1. 23

A szerveren a pppd kongurcija ehhez nagyon hasonl. A klnbsg annyi, hogy az IP cmeket fell kell cserlni, s nem kell a pty. . . sor. A fjl neve itt /etc/ppp/peers/proba2 legyen. Ezek utn jhet az ssh kongurlsa. Generlnunk kell egy jelsz nlkli RSA kulcsot a kliensen, legyen ennek a neve /root/.ssh/szerverppp. Ha ez megvan, a kulcs publikus felt t kell vinni a szerverre. A szerveren a kulcs publikus felt le kell tenni a /root/.ssh/authorized_keys2 fjlba a mr korbban ismertetett mdon. A fjlt ezutn kzzel mdostjuk, hogy csak pppt lehessen futtatni ezzel a kulccsal:
from="szerver_neve",command="/usr/sbin/pppd call proba2" AAAAB3NzaC1yc2EAAA... # Ezt a kulcsot csak a szerverrl engedjk, o # csak /usr/sbin/pppd call proba2-t futtathat.

A szerveren a PAMot rdemes gy belltani, hogy bejelentkezskor semmit se rjon ki, mert az megzavarja a pppt. Ehhez a /etc/pam.d/ssh fjlbl ki kell kommenteznnk a session optional pam_lastlog.so,

session optional pam_motd.so, s a session optional pam_mail.so

sorokat, ha van benne ilyen. Ezeknek a jelentsrol ks bb lesz sz. o Vgl, ha minden megvan, a kliensen pppd call proba1 paranccsal indthatjuk a pppt. Ennek hatsra a kliensen a pppd a /etc/ppp/peers/proba1 fjlbl fogja felszedni a parancsokat, meghvja az ssh parancsot, s a szerver oldalon elindtja a pppd call proba2 parancsot. A kapcsolat bontshoz HUP szignlt kldhetnk a pppd-nek, a kill parancs segtsgvel. Ha azt akarjuk, hogy a ppp linknk mindig biztosan menjen, a /etc/inittab fjlba tehetnk egy bejegyzst, hogy az init mindig jraindtsa, ha lell. Ez a bejegyzs pldul gy nzhet ki:
# A 2-es s 3-as futsi szinten, P0 azonostval # menjen a pppd, s induljon jra ha meghal. A P0 # helyett ms, tetszleges azonostt is hasznlhatunk. o P0:23:respawn:/usr/sbin/pppd call proba1

Ezutn egy killall -HUP init parancsot kiadva mr megy is a pppd.

1.5. Felhasznli er forrsok korltozsa o


1.5.1. Ulimit
Az ulimit egy shell interfsz a kernel eroforrs-korltoz hvsaihoz. Az ulimit segtsgvel klnbz er forrsokat korltozhatunk, mint pldul o o a maximlisan felhasznlhat CPU idot, maximlisan felhasznlhat memrit. Az ulimit funkcionalitst vagy shellbol az ulimit hvssal lehet hasznlni, vagy setrlimit() rendszerhvssal a programjainkban. Mivel az ulimit shell parancs, shellenknt vltozhat a szintaxisa. Bash ulimit hasznlata: az ulimit paranccsal lehet belltani a klnbzo paramtereket. Kemny s puha korltokat klnbztethetnk meg, a kemnyet 24

nem lehet nagyobbra mdostani ha egyszer belltottuk, a puht a kemny hatr elrsig mdosthatjuk felfel is. A legfontosabb hatrok valszn leg a hasznlhat memria mennyisgt korltozu zk, ezek a kvetkez k: o -l segtsgvel megadhatjuk, hogy mennyi memrit jellhet nem swapelhet onek a processz; -m segtsgvel megadhatjuk a munkahalmaz maximlis mrett (azaz krlbell azt, hogy egy processznek mennyi zikai memria jut); -s segtsgvel a maximlis stack mretet adhatjuk meg; -v a maximlis virtulis memria mretet szablyozhatjuk. Ezek kzl sajnos nem mindegyik m kdik gy, ahogy az ember vrn, j vigyzni u velk, s letesztelni oket, miel tt lesben hasznlnnk. Ennek ellenre rdemes foglalo kozni velk, ilyen korltozsok nlkl loklis felhasznlk knnyen lefoghatnak egy gpet. Msik hrom fontos kapcsol a -n ezzel korltozhatjuk a nyitva tarhat fjlok maximlis szmt; -t ezzel korltozhatjuk, hogy egy processz mennyi gpid ot kap, ha ezt tllpi, akkor egy szignlt kap, amit l kilp; o -u az egy felhasznlra jut processzek maximlis szmt hatrozhatjuk meg. Egy plda a CPU id korltozsra: o
# Indtunk egy bash shellt. $ bash # 10 msodperc gpidt adunk neki. o $ ulimit -t 10 # Shell vgtelen ciklus, hogy felzablja # a 10 msodperct. $ while :; do :; done # Kifutott az idbl, a rendszer leltte. o o o zsh: killed bash

1.5.2. PAM
A PAM (Pluggable Authentication Modules) egy szoftverrendszer, aminek a segtsgvel rugalmas felhasznl-authentikcit lehet megvalstani Linuxon (s ms rendszereken). A hangsly a rugalmassgon van, PAM segtsgvel ugyanaz az alkalmazs authentiklhat a szoksos password fjlbl, LDAP adatbzisbl, mysql adatbzisbl, stb. anlkl, hogy az alkalmazson brmit is vltoztatni kellene. Pldul az ftp, pop3, ssh dmonok ltalban mind PAMot hasznlnak az authentikci elvgzshez. A PAM a bejelentkezssel kapcsolatos klnbzo funkcikat valstja meg, ezek az authentikci, a felhasznl kiltnek megllaptsa, az account menedzsels (ezzel egyb korltozsokat lehet mg az authentikci mell denilni), a session mene dzsels (ez a session megkezdse elott s utn fut le, s klnbz adminisztrcis o funkcikat lt el, mint pldul naplbejegyzsek rsa). A negyedik ilyen funkci a jelszmenedzsels.

25

A PAM rendszer a kongurcijt a /etc/pam.d knyvtrban tartja, minden szolgltatshoz egy megadott nev fjl tartozik. Hogy egy szolgltatshoz mi tartou zik, az ltalban fordtsi id ben d l el. o o A fjl felptse:
modultpus fontossg-jelz o modulneve modulparamterek

A modultpus a fent emltett funkcik szerint auth, account, session, password lehet. Egy modultpushoz tbb ilyen sor is tartozhat, ezeket a fjl elejt ol a vge fel haladva fogja vgigjrni a PAM, a ksobb lert szablyoknak megfeleloen. Ez fontos a PAM m kdse szempontjbl. u A fontossg-jelz azt jelzi, hogy mi trtnjen, ha a PAM az adott sornl sikeresen o vagy sikertelenl hajtotta vgre a feladatt. Ez a kvetkezok kzl lehet egy: required Az adott modul sikertelensge esetn a m velet (amit a modultpus hatroz u meg) sikertelen lesz, de a rendszer a tbbi modult is vgig fogja prblni. requisite Az adott modul sikertelensge esetn a m velet sikertelen lesz, de a rendu szer a tbbi modult nem fogja vgigprblni, egybol visszatr a PAMot hasznl alkalmazshoz. sufcient Ha az gy jellt modul sikeresen elvgzi a funkcijt, akkor a teljes m velet u is sikeres lesz, s a tbbi required-knt megjellt modult nem fogja vgigjrni (ha egy msik required sem volt sikertelen e modul elott). Ha a modul nem vgezte el sikeresen a funkcijt, azt a PAM rendszer nem tekinti fatlis hibnak. optional Ez egy opcionlis elem a listban, sikeressge vagy sikertelensge nem befolysolja a teljes m velet sikeressgt, kivve, ha ez az egyetlen modul ami u alapjn el lehet dnteni a teljes m velet sikeressgt. u Van egy jabb md is a modulok fontossgnak jelzsre, de ez nincs elg jl dokumentlva, s jval sszetettebb a fent lert mdnl. Modulparamterek: a moduloknak klnbzo paramtereket lehet tadni. Vannak modulonknt vltoz s ltalnos paramterek, ezek kzl a leggyakoribbak: debug A modul hibakeresst segt zeneteket fog kldeni a syslog dmonon keo resztl. no_warn A modul nem fog gyelmezteto zeneteket kldeni az alkalmazsnak. use_rst_pass A modul a mr egy korbbi modulnak megadott jelszt fogja hasznlni az authentikcihoz. Ezt az opcit csak az auth s a password funkciknl lehet hasznlni. try_rst_pass A modul a mr egy korbbi modulnak megadott jelszt prblja hasznlni az authentikcihoz. Ha sikertelen a felhasznl azonostsa, akkor j jelszt fog krni. Ezt az opcit csak az auth funkcival lehet hasznlni. expose_account A modul a felhasznlhoz kapcsold klnbz o informcikat tesz elrhet v, pldul kirja a nevt amikor a jelszt kri. Ez bartsgos, de nem tl o biztonsgos.

26

Alaprtelmezett belltsok: a PAM az alaprtelmezett belltsait a /etc/pam.d/other fjlban tartja. Ha egy szolgltatsnak nem adunk kln kongurcis fjlt, akkor ezt fogja hasznlni. Ezt rdemes gy belltani, hogy senkit se engedjen be:
auth account session password required required required required pam_deny.so pam_deny.so pam_deny.so pam_deny.so

Majd ki lehet egszteni pam_warn.so modulokkal, mert a pam_deny nem kld semmilyen hibazenetet. Ha kizrtuk magunkat. . . , a szmtgpet single user mdban jraindtva ki tudjuk javtani a hibt. A leggyakrabban hasznlt modulok: pam_access Ez a modul a /etc/security/access.conf kongurcis fjl alapjn, a felhasznli nv s a terminl nv, vagy a tvoli gp (ahonnan pldul az ssh parancsot indtottk) alapjn enged vagy nem enged be felhasznlkat. Tipikus felhasznls:
account required pam_access.so

pam_cracklib Ez a modul a cracklib knyvtr segtsgvel megprblja feltrni a jelszt, hogy ellen rizze, elg er s-e. Klnbz ellen rzseket hajt vgre a o o o o jelszn. Tipikus hasznlata:
password password required required pam_cracklib.so retry=3 minlen=6 difok=3 pam_unix.so use_authtok nullok md5

Paramterei: retry= megadja, hogy hnyszor fog megprblni j jelszt krni a felhasznltl. minlen= a jelsz minimlis hosszt adja meg. dcredit=, ucredit=, lcredit=, ocredit=: ezek azt adjk meg, hogy mennyit szmt, ha szmjegy, nagybet , kisbet , vagy egyb karakter van a jelszban. Plu u dul nagybet k esetben plusz eggyel szmt az sszes nagybet , amg a megu u adott szmtl kevesebb nagybet van a jelszban. A difok= paramter azt u mondja meg, hogy legalbb hny karakternek kell msnak lennie az j s rgi jelszban (de ha a karaktereknek legalbb a fele klnbz o, azt mindenkppen elfogadja). Ez a modul tmogatja az erosebb MD5s jelszavak hasznlatt. pam_deny Ez a modul minden krst visszautast, nem enged bejelentkezni, jelszt vltoztatni, stb. Hasznlata:
account required pam_deny.so

pam_env Ez a modul krnyezeti vltozkat tud belltani. Ehhez a /etc/environment vagy a /etc/security/pam_env.conf fjlt hasznlja. A /etc/environment egyszer vltoznv=rtk proku bl ll, ezzel szemben a /etc/security/pam_env.conf sszetettebb vltozbelltst enged meg: egy krnyezeti vltozhoz megadhatunk DEFAULT s OVERRIDE rtkeket. A vltoz a DEFAULT rtket veszi fel, kivve, ha az OVERRIDEknt megadott sztring nem res. Ebben az esetben a vltoz rtke az adott sztring lesz. Tipikus hasznlata: 27

auth

required

pam_env.so

Minimlis plda kongurcis fjl:


# /etc/security/pam_env.conf DISPLAY DEFAULT=${REMOTEHOST}:0.0 OVERRIDE=${DISPLAY}

Megjegyzsek: megadhatunk ms fjlokat a /etc/environment s a /etc/security/pam_env.conf fjl helyett az envfile=fjlnv s a conffile=fjlnv modulparamterekkel. pam_ftp Ezen modul segtsgvel anonymous ftp, vagy ms hasonl szolgltatst valsthatunk meg. Ha anonymous vagy ftp felhasznlknt prblunk belpni, akkor a felhasznlnevet ftpre lltja s beenged. Egybknt a megadott felhasznlnevet s jelszt bkn hagyja, s hibajelzssel tr vissza (aminek hatsra egy msik modul folytathatja az authentikcit mondjuk a szoksos /etc/password fjlbl.) Tipikus hasznlata:
# /etc/pam.d/ftp auth sufficient auth required pam_ftp.so pam_unix.so use_first_pass

pam_group Ez a modul a felhasznl ltal hasznlt terminl, a felhasznl neve s az id alapjn extra csoportazonostkat ad a felhasznl processzeinek. A kono gurcis fjlja a /etc/security/groups.conf. A fjl szerkezete:
szolgltatsnv;terminlok;felhasznlk;id;csoportok o

Ahol a szolgltatsnv a PAMot hasznl szolgltats neve, a terminlok a hasznlt terminl neve, a felhasznlk a felhasznlk listja, a csoportok pedig az extra csoportazonostk, amiket a felhasznl megkap, ha az el obb emltett fel ttelek teljeslnek. A listk logikai listk, az idot kivve &, |, ! opertorokkal lehet bel lk logikai kifejezseket alkotni. Az idot intervallumknt lehet mego adni, ahol a napokat az angol nevk szerint Mo Tu We Th Fr Sa Su jelli, Al jelenti a ht minden napjt, Wk a htkznapokat, Wd a htvgt. Ha egy napot ktszer adunk meg, akkor az tagadst jelent. Pldul ha minden loklis felhasznlnak oppy s hangkrtya hasznlati jogot akarunk adni akkor a /etc/security/groups.conf fjlba egy ilyen bejegyst tehetnk:
login|gdm;tty*&!ttyp*;*;Al0000-2400;floppy, audio

Ez azt jelenti, hogy a gdm s login szolgltatsokra, a tty* portrl (de nem a ttyp* portokrl) jv felhasznlk mindig megkapjk az extra oppy s audio o csoportazonostkat. Tipikus PAM bejegyzs:
auth required pam_group.so

pam_issue Ez a modul hozzadja a /etc/issue fjlt a felhasznlnevet krdez o prompthoz. Hasznlata:


auth required pam_issue.so

28

pam_lastlog Ez a modul kezeli a /var/log/lastlog fjlt, a sessionk elejn s vgn letesz egy-egy bejegyzst ebbe a fjlba, illetve bejelentkezskor ki tudja rni, hogy honnan trtnt az utols bejelentkezs. Hasznlata:
session required pam_lastlog.so

Paramterei: debug debug informci rsa a syslog dmonon keresztl; nodate, noterm, nohost ne rja ki az utols bejelentkezs idejt, a hozz tartoz terminlt, s/vagy a tvoli hostot; silent semmit se rjon ki; never ha a lastlog fjl alapjn gy ltja, hogy a felhasznl mg egyszer sem volt bejelentkezve, akkor egy dvzlo szveget fog kirni neki. pam_limits Ezzel az ulimit parancsnl megismert korltozsokat lehet felhasznlnknt automatikusan belltani. Hasznlata:
session required pam_limits.so

Ez a modul a kongurcijt a /etc/security/limits.conf fjlban tartja. A fjl szerkezete:


kit_korltozunk felhasznlnv/@csoportnv/* hard_vagy_szoft soft/hard/mit_korltozunk korltozandk korlt_rtke rtk

Ahol a kit_korltozunk egy felhasznl neve, egy @csoportnvvel megadott csoport neve, vagy * esetn mindenki lehet, a hard_vagy_szoft hard, soft vagy -lehet, ha a kt korltot egyszerre akarjuk belltani, a mit_korltozunk pedig core, data, fsize, memlock, nole, rss, stack, cpu, nproc, as, maxlogins, priority kzl lehet egy aszerint, hogy mit akarunk korltozni. A korlt_rtke az er oforrshasznlat fels korltjt adja meg. Teht az adott nev vagy adott csoportba o u tartoz felhasznl (vagy * esetn mindenki) soft, hard limitjt (vagy mindkett ot a -- esetn) llthatjuk gy be. Az egyni limitek fellbrljk a csoportlimite ket. Ha nem adjuk meg a korltozand eroforrs nevt s rtkt, s a soft vagy hard helyn egy -- van, akkor az adott felhasznlk semmilyen korltozst nem fognak kapni. Fontos tudni, hogy ezek a limitek bejelentkezsenknti limitek, ha ktszer jelentkezik be a felhasznl prhuzamosan, akkor pldul dupla annyi processzt futtathat egyszerre. pam_nologin A /etc/nologin fjl ltezse esetn csak a root felhasznlt fogja beengedni, a tbbieknek csak megmutatja a /etc/nologin tartalmt. A helyes m kds rdekben ennek a modulnak az auth sufficient ... mou dulok el tt kell szerepelnie. Hasznlata: o
auth required pam_nologin.so

pam_securetty Ez a modul a root felhasznlt csak a /etc/securetty fjlban felsorolt terminlokrl engedi bejelentkezni. Hasznlata:
auth required pam_securetty.so

29

pam_time Ennek a modulnak a segtsgvel a felhasznlk bejelentkezst id ohz, terminlhoz s szolgltatshoz kthetjk. A modul kongurcis fjlja a /etc/security/time.conf, melynek hasonl a szerkezete, mint a /etc/security/groups.conf fjl. A klnbsg annyi, hogy itt nem adhatunk meg extra csoportokat, s ha a felttelek nem teljeslnek, akkor a felhasznl egyltaln nem tud bejutni. Egy plda a kongurcis fjlbl:
su;tty* & !ttyp*;you|me;!Al0000-2400

Ezzel a you s me felhasznlk a tty* terminlokon sosem hasznlhatjk a su szolgltatst. Hasznlata:


account required pam_time.so

pam_unix Ez a modul a szoksos UNIX /etc/password s /etc/shadow fjlbl authentiklja a felhasznlkat; ezt minden rendszeren hasznlni szoktk. Bejelentkezskor ellen rizni tudja a klnbz shadow-paramtereket, mint plo o dul utols jelsz vlts. Ehhez az account ellenorzshez tipikusan egy ilyen bejegyzs kell:
account required pam_unix.so

Authentikci esetn a modul kezelni tudja a mr korbban emltett try_first_pass s use_first_pass paramtereket, illetve van mg egy nodelay paramtere, aminek hatsra nem fog vrni az ismtelt prblkozssal, ha a felhasznl jelszava vagy felhasznli neve nem volt megfelel . o Authentikcinl tipikusan gy szoktk hasznlni: auth required pam_unix.so Jelszvltskor a modulnak elg sok paramtere lehet, kztk ott van a szoksos try_first_pass s a use_first_pass, a tbbi fontosabb paramter: md5 ennek hatsra a modul md5tel fogja titkostani a jelszt, a gyengbb UNIX-os crypt() helyett. Ezt rdemes hasznlni, de kompatibilitsi problmkat okozhat pldul heterogn NIS hlzat esetn. A use_authtok hatsra a modul minden esetben az ot megel z modul ltal belltott jelszt fogja hasznlni. A not_set_pass hao o tsra a modul gyelmen kvl hagyja a korbbi modulok ltal belltott jelszt, s az ltala beolvasott jelszt sem fogja tovbbkldeni a kvetkez o moduloknak. A remember= paramter hatsra a modul a /etc/security/opasswd fjlba visszamen leg adott szm jelszt eltrol, s megakadlyozza, hogy a felo hasznl ezek kzl vlasszon jra egyet. Vgl a nullok paramter hatsra engedni fogja a jelszvltoztatst akkor is, ha a rgi jelsz res volt. A jelszmenedzsel md hasznlata ezek utn valami ilyesmi lehet: o
password required pam_unix.so md5 nullok

Vgl a session menedzsmentr l: a pam_unix modul egyszer en csak logolja o u a session elejt s vgt a syslog dmonon keresztl. Hasznlata:
session required pam_unix.so

lljon itt egy plda egy egyszer PAM belltsra az ssh parancshoz: u 30

#%PAM-1.0 ### Authentikci. # A /etc/nologin ellenrzse. o auth required pam_nologin.so # Authentikci a szoksos UNIX-os password fjlokbl. auth required pam_unix.so # Krnyezeti vltozk belltsa. auth required pam_env.so ### Account ellenrzs. o o # Jelsz s account lejrat ellenrzse. account required pam_unix.so ### Session adminisztrci. # A bejelenetkezs logolsa. session required pam_unix.so o # A kvetkezk sikeressge nem olyan fontos: # utols bejelentkezs kirsa session optional pam_lastlog.so # a "nap zenett" kirja, session optional pam_motd.so # kirja, hogy jtt-e a felhasznlnak levele, session optional pam_mail.so standard o o # vgl belltja a klnbz erforrs-korltokat. session required pam_limits.so ### Jelszmendzsels. # Cracklib segtsgvel # erssgt, o password required # ha az sikeres volt, a # password fjlba. password required

ellenrizzk az j jelsz o pam_cracklib.so retry=3 minlen=6 difok=3 pam_unix leteszi az j bejegyzst a pam_unix.so use_authtok nullok md5

1.5.3.

Quota

Mi a quota? A quota egy olyan szolgltats Linux s ms UNIX rendszerek alatt, mely megakadlyozza, hogy a felhasznl (vagy csoport) egy bizonyos fjl- (inode), vagy trolhelykorltot (block) tllpjen. gy a felhasznlk csak a sajt quota-jukon bell tudnak adatokat trolni, ellen rztt krlmnyek kztt tevkenykedhetnek, nem tudjk teleo tlteni a fjlrendszereket, nem veszik el egymstl a helyet. A quota lehet ov teszi, hogy a felhasznlk vagy csoportok ezen belltsai fjlrendszerenknt klnbz oek legyenek, teht szemlyenknt (csoportonknt) vltozhat az egy fjlrendszeren belli block, illetve inode korlt. A quota belltsa A quota m kdshez el szr is meg kell gy z dnnk rla, hogy a kernelnkbe vanu o o o e quota tmogats fordtva, ha nincs, ezt meg kell tennnk. Ezek utn disztribcink csomagkezelojnek segtsgvel fel kell teleptennk a quota csomagot, majd a /etc/fstab fjlban t kell rnunk a quotzni kvnt fjlrendszerek bejegyzst:
# block eszkz /dev/hda7 knyvtr /home fs_tpus ext2 opcik defaults,rw,usrquota,grpquota 0 2

Az usrquota s a grpquota kzl csak az egyikre lesz szksgnk, ha csak felhasznl-quott, vagy csak csoport-quott akarunk kezelni. Hogy biztosra menjnk, hozzuk ltre a megfelel fjlrendszereken a quota.user s quota.group fjloo kat: 31

touch /home/quota.user /home/quota.group; chmod 600 /home/quota.user /home/quota.group

Ezutn ha minden megvan (a kernel tudja a quott, az fstab rendben van, s a quota.* fjlokat is megcsinltuk), elindthatjuk a fjlrendszerek quota ellen orzst a quotacheck -avug paranccsal. Ez kitlti a quota.user s quota.group fjlokat. Ezt rdemes olyankor futtatni, amikor a rendszer msra nem hasznlja az adott fjlrendszereket, klnben az adatok pontatlanok lesznek. Ezek utn bekapcsolhatjuk a quott a quotaon -avug paranccsal. Ezeknl a parancsoknl a kapcsolk a kvetkezoket jelentik: -a az adott parancs nzze vgig az sszes quotzott fjlrendszert; -v legyen b beszd , futs kzben informljon arrl, hogy mit csinl; o u -u a felhasznlk quotjval (is) foglalkozzon (kapcsolja ki, be, vagy pedig ellen orizze azt); -g a csoportok quotjval (is) foglalkozzon. Shutdownkor a rendszer automatikusan le fogja futtatni a quotaoff -aug parancsot, hogy kikapcsolja a quott. Enlkl a quota.* fjlok lehet, hogy nem a legfrissebb adatokat fogjk tartalmazni. Ezt a quotacheck futtatsval korriglhatjuk. A felhasznlk quotjnak belltsa A felhasznlk quotjt az edquota paranccsal llthatjuk, interaktvan vagy automatikusan. Interaktv bellts esetn edquota -u felhasznlnv ... segtsgvel llthatjuk be a felhasznlk quotit, edquota -g csoportnv ... segtsgvel pedig a csoportok quotit. Tbb felhasznl s csoportnevet is megadhatunk egy parancssorban. Megadhatjuk a soft s hard hatrokat, illetve a grace timeot. A soft limit tlpse esetn a rendszer gyelmezteti a felhasznlkat, hogy tl sok helyet foglalnak, de engedi, hogy tovbb folytassk a helyfoglalst egszen a hard limitig, vagy amg grace time-nyi id el nem telik a soft limit tlpst l kezdve. o o A hatrokat megadhatjuk kln a blockok szmra (egy block 1024 byte), illetve a fjlok (inodeok) szmra. Interaktv mdban az EDITOR krnyezeti vltoz megfelel o belltsval vlaszthatunk szvegszerkesztot a munkhoz. Nem interaktv mdban az
edquota -p prototpusfelhasznl -u felhasznlnv ...

s az
edquota -p prototpuscsoport -g csoportnv ...

parancsokkal egy prototpus felhasznl vagy csoport quotjval inicializlhatjuk a tbbi felhasznl vagy csoport quotjt. Quota lekrdezsek A quota paranccsal le lehet krdezni a felhasznlk vagy csoportok quotjt, -u kapcsolval a felhasznlkt, a -g-vel a csoportokt. A repquota paranccsal fjlrendszerenknt lehet lekrdezseket csinlni; ez jval gyorsabb, mint ha a felhasznlkat egyesvel krdezgetnnk le. 32

Egyb megjegysek u Jelenleg quott a (hasznlhat minosg ) linuxos fjlrendszerek kzl csak az XFS s az ext2 tmogat, ReiserFShez elrhetok kiegsztsek.

1.6. Teljestmny javtsa


1.6.1. A teljestmny mrse
Miel tt elkezdennk hangolni a rendszernket, fell kell derteni, hogy mivel lehet o (majd) problma. Ehhez vannak klnbz benchmark programok, amivel j esetben hasonl tero helst tudunk el lltani, mint amilyennel a rendszernknek meg kell majd birkzo nia. Apachehoz van Apachebench (ab, ltalban az apache csomag rsze), a Postfix csomaggal is jn benchmark program, illetve ilyeneket a hlzatrl is le lehet tlteni. Alacsonyabb szint merevlemez benchmark rengeteg van, ilyenek a bonnie, u bonnie++, iozone. Velk vigyzni kell, nem biztos, hogy a rendszer azon paramtereit mrjk meg, amelyekre kvncsiak vagyunk. Mikzben benchmarkoljuk a rendszernket, vmstat-tal, ps-sel illetve top-pal gyelhetjk, hogy mit is csinl, milyen clra mennyi gpidot hasznl el. A vmstat segtsgvel elg jl el lehet dnteni, hogy a rendszernknek hol van a sz k keresztmetszete, mit rdemes bovteni ahhoz, hogy javtsunk a teljestmu nyn. A hlzat terhelst akr ifconfig segtsgvel is nzhetjk, vagy inkbb a /proc/net/dev elemzsvel. Ha a hlzat 100%-ig terhelve van, a processzor s a diszk viszont nincs annyira, akkor azon kell vltoztatnunk, stb. Amire rdemes mg odagyelni, az a swap. Egy fjlszervernek nem szabad aktvan swapelnie.

1.7. Megfelel hardver o


1.7.1. A merevlemezek
Ha a szervernk I/O intenzv feladatokat fog vgezni, mint pldul egy fjlszerver (ebbe a kategriba sorolhat a statikus lapokat kiszolgl www szerver, ftp szerver, samba s az elektronikus levelezs is), akkor a vrt forgalomtl fgg oen rdemes SCSI merevlemezeket hasznlni. Az IDE s SCSI merevlemezek sebessge kzt manapsg egyre cskken a klnbsg, de alapvet en ms architektrjuk miatt az IDE merevlemezek kezelse tbb go pid t eszik, mint az SCSIk, ami egy nagy forgalm szerveren problmt jelenthet. o A forgalmat nagyon nehz el re megbecslni, nem lehet tudni, hogy pldul egy o www szerver sikeres lesz-e, ezrt ha csak a legkisebb eslyt is ltjuk, hogy a forgalom megn het, vegynk SCSIt. o Az SCSI tovbbi el nye, hogy egy SCSI vezrlo tbb eszkzt tud meghajtani mint o egy IDE vezrl , ezt is rdemes gyelembe venni. Ha mg tbb pnznk van, vehetnk o vegszlon kommunikl, Fibre Channel merevlemezeket, de ezek nagyon drgk. Ha lehet tbb merevlemezt vegynk, s szervezzk gy az adatainkat, hogy a terhels megosztdjon a lemezek kzt. Legalbb hrom rszre sztbonthatjuk az adatainkat: a / s egyb olyan fjlrendszerekre, amikhez nem nagyon nyl hozz a rendszer, a fjlrendszerre, ahov a naplbejegyzsek kerlnek, s vgl a fjlrendszerre, ahonnan

33

az adatokat szolgltatjuk. Ezek kzl az utbbi kt fjlrendszer lesz I/O intenzv, rde mes oket kln merevlemezekre tenni.

1.7.2. Hlzati krtya


Hlzati krtyknl nagyon fontos a megbzhatsg. Mindenkppen olyan krtyt vegynk, aminek j neve van a linuxozk krben. Nem rdemes NE2000 klnnal nagy terhels szervert zemeltetni. u o rdemes olyan krtyt venni, ami tud hardveres ellenorz sszeg-szmtst csinlni, s ezt a linux kernel ki is hasznlja, mert nagy forgalom esetn ez komoly terhet vesz le a processzorrl. Ezekkel megvalsthat olyan halzatkezels, hogy a hlzatra kikerl adatok egyszer sem mennek t a processzor buszn. Ilyen pldul a 3Com 905C, o s a gigabit ethernet krtyk. A hlzati krtyk ezen kpessgeinek kihasznlshoz megfelel o, a sendle rendszerhvst tmogat szoftver kell. Az ftp szerver szoftverek kzl ilyen pldul a vsftpd s a proftpd.

1.7.3. Processzor
Terhelst l fgg en er s processzorra lehet szksg. Sima statikus fjlszerver esetn, a o o o megfelel hardveres krtssel egy gyengbb processzor is nyugodtan brni fogja a tero helst, de pldul dinamikus lapokat kiszolgl www szerver esetn a hatr a csillagos g. rdemes lehet tbb processzorban gondolkozni. Oda kell gyelni a processzor cache mretre, s a processzorbusz sebessgre. Ha ezek tl kicsik, a rendszer nem lesz j teljestmny . Negatv pldaknt rdemes u megemlteni a rgi, msodszint cache nlkli Celeronokat. u

1.7.4. Memria
Memribl rdemes annyit venni, hogy boven elfrjenek benne a futtatott alkalmazsok, fjlszerver esetn pedig rengeteg fjlt tudjon a memriban tartani, a gyors elrs rdekben. A memria sebessgt rdemes a processzorhoz igaztani. Egy 1 Gi gabyte/msodperces processzor-busszal rendelkezo (Intel Pentium III) processzorhoz teljesen felesleges mregdrga, 3.2 Gigabyte/msodperces Rambus RAMot venni.

1.8. Szoftveres teljestmnyjavts


1.8.1. Megfelel fjlrendszer-tpus kivlasztsa o
Elg sok fajta linuxos fjlrendszer van, ezek kzl legalbb hrom hasznlhat min osg : a rgi ext2, a Reiserfs, s az SGI-fle XFS. u Az ext2 nagyon j teljestmny nagy fjlok esetn, illetve amg a knyvtrakban u kevs fjl van. Nagyon kevs gpidot fogyaszt. J blokklefoglal algoritmusa miatt nem nagyon tredeznek a fjlok. Htrnya, hogy ha sok fjl kerl egy knyvtrba nagyon lelassul, illetve nem naplzott, azaz ramsznet vagy rendszersszeomls esetn fsck-zni kell. Adatbzisokhoz valszn leg ez a legjobb. u A Reiserfs egy jabb fjlrendszer, nagyon jl kezeli a sok fjl egy knyvtrban esetet, naplzott, rendszersszeomls utn nem kell fsck-zni (ennek ellenre

34

van hozz fsck, arra az esetre, ha szoftverhiba miatt korruptldna a fjlrendszer). Htrnya, hogy tbb gpid t eszik az ext2 fjlrendszernl. El nys lehet levelez o o o szervereknl.

1.8.2. Megfelel szerverszoftver hasznlata o


rdemes olyan szoftvert keresni, ami minl kevesebb processz felhasznlsval oldja meg a feladatot, mert a processzek kzti kapcsolgats kltsges. Statikus lapok kiszolglsra j pldul a boa, vagy a thttpd, ami egy szlon fut, vagy a Tux nev kernelben fut www szerver. Ez utbbi mr tud anonymous ftpt u is kiszolglni.

1.8.3. Kernel paramterezs


A kernelnek rengeteg menet kzben llthat paramtere van, ezekkel nagyban javthat a rendszer teljestmnye. Ezeket a kernelparamtereket vagy a sysctl paranccsal, vagy a /proc alatt lv o fjlok rsval lehet lltani. Mi ez utbbival fogunk foglalkozni. ltalban ezekb l a fjlokbl cat segtsgvel kiolvashatk az rvnyben lv o o rtkek, s egy tirnytott echo paranccsal egyszer en megvltoztathatk. u Megnyithat fjlok maximlis szma: ha a rendszernk nagyon sok krst szolgl ki egyszerre, szksg lehet ennek a megemelsre. Ehhez az
echo 16384 > /proc/sys/fs/file-max

parancsot adjuk ki, ha pldul 16384-re szeretnnk lltani a nyitva tartott fjlok maximlis szmt. Hogy szksgnk van-e ennek a megemelsre, azt a /proc/sys/fs/file-nr fjlbl tudhatjuk meg. Ebben az elso szm a lefoglalt fjl-azonostk szmt jeleneti; ha ez kezd kzel kerlni a harmadik szmhoz (ami ugyanaz, mint ami a file-max fjlban van), akkor ideje megemelni a megnyithat fjlok szmt. Mountolhat fjlrendszerek szma: ha nagyon sok fjlrendszert akarunk mountolni, az
echo 512 > /proc/sys/fs/super-max

paranccsal fel tudjuk emelni pldul 512-re a mountolhat fjlrendszerek szmt. Maximlis processz-szm: ha nagyon sok programot akarunk egyszerre futtatni, akkor az
echo 16384 > /proc/sys/kernel/threads-max

paranccsal 16384-re emelhetjk ezt a korltot. Hlzati kapcsolatok szma: ha sok kapcsolatot szeretnnk nyitni, akkor rdemes megnvelni a /proc/sys/net/ipv4/ip_local_port_range fjl ban tallhat hlzati-port intervallum felso hatrt. Vannak egyb, a memriamenedzselst befolysol paramterek, de ezek nincsenek elg jl dokumentlva. 35

1.8.4. IDE merevlemez nomhangolsa


A hdparm program segtsgvel sok belltst elvgezhetnk IDE merevlemezeken. Bekapcsolhatjuk a DMA mdokat, stb. Ugyanakkor elrontott bellts adatvesztst okozhat, vatosnak kell lenni vele. A hdparm -Tt /dev/hda parancs segtsgvel lemrhetjk a merevlemez t viteli sebessgt, ezt hasznlhatjuk vltoztatsaink hatsnak mrshez. Az els o szm a rendszer fjl-cachnek a sebessge, ez nem fog vltozni. A msodik a merevlemez maximlis tviteli sebessge, ezen tudunk vltoztatni. A kimenete vrhatan gy fog kinzni:
$ hdparm -Tt /dev/hdc /dev/hdc: Timing buffer-cache reads: Timing buffered disk reads:

128 MB in 0.77 seconds =166.23 MB/sec 64 MB in 3.46 seconds = 18.50 MB/sec

A hdparm segtsgvel a merevlemez belltsait, s egyb merevlemez informcit is lekrdezhetnk. Ha a hdparm kapcsolihoz nem adunk paramtert, akkor az ltalban a belltsok lekrdezst jelenti. A -i kapcsolval a merevlemez bootolskor kiolvasott belltsait nzhetjk meg, ennek segtsgvel dnthetjk el, hogy egyltaln mit tud a merevlemeznk.
$ hdparm -i /dev/hda /dev/hda: Model=QUANTUM FIREBALLlct10 10, FwRev=A03.0900, SerialNo=872012259666 Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs } RawCHS=16383/16/63, TrkSize=32256, SectSize=21298, ECCbytes=4 BuffType=3(DualPortCache), BuffSize=418kB, MaxMultSect=16, MultSect=16 DblWordIO=no, OldPIO=2, DMA=yes, OldDMA=2 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=20044080 tDMA={min:120,rec:120}, DMA modes: mword0 mword1 mword2 IORDY=on/off, tPIO={min:120,w/IORDY:120}, PIO modes: mode3 mode4 UDMA modes: mode0 mode1 mode2 mode3 *mode4

Az gy kapott informcit felhasznlhatjuk a ksobbi belltsoknl. A -m kapcsolval bellthatjuk, hogy hny blokkot olvasson be a merevlemez egyszerre. A maximlis bellthat rtket kiolvashatjuk a hdparm -i parancs kimenetnek MaxMultSect mez jb l. A lineris tviteli sebessget nvelhetjk ennek a o o kapcsolnak a hasznlatval. A -c kapcsol segtsgvel lehet az I/O mdot 32 bitesre lltani. Ez megduplzhatja az tviteli sebessget. A -c utn 1-et rva bekapcsolhatjuk ezt az zemmdot, 3-mat rva ehhez mg egy szinkronizl szekvencit krhetnk, ha az 1-gyel nem m kdne jl a merevlemeznk. u A -u kapcsolval engedlyezhetjk, hogy a kernel ms megszaktsokat is kiszolgljon az IDE megszakts kzben. Ez javthat a hlzat s a soros port teljestmnyn, s jobb interaktivitst biztost. A -d kapcsolval bekapcsolhatjuk a merevlemez DMA mdjt. Ezek egytt:
$ hdparm -u1 -m8 -c1 /dev/hdc /dev/hdc: setting 32-bit I/O support flag to 1 setting multcount to 8 setting unmaskirq to 1 (on) multcount = 8 (on) I/O support = 1 (32-bit) unmaskirq = 1 (on)

36

Fontos tudni, hogy a kapcsolk nmelyike hibs hardverrel adatkorrupcit okozhat. Ne les rendszeren ksrletezgessnk a hdparm hasznlatval.

1.9. Logical Volume Manager s naplzott fjlrendszer


1.9.1. A Logical Volume Manager
A Logical Volume Manager mg kt absztrakcis szintet tesz a szoksos merevlemez partcik fl. Az els , a Logical Volume Group szint a partcik (vagy egyb blokkos eszkzk) o felett egy egyestett rteget kpez, azaz tbb blokkos eszkzt sszevonhatunk egy Volume Groupba (ezentl csak VG-be). A VGket menet kzben lehet jabb blokkos eszkzkkel b ovteni, gy tmretezni, stb. A VGket tovbb lehet bontani Logical Volumeokra (innentol csak LVknt fogunk hivatkozni rjuk), ezekre lehet majd fjlrendszert tenni, vagy mshogy blokkos esz kzknt hasznlni. Az LVket is t lehet mretezni menet kzben, s ha megfelel o fjlrendszert tesznk r, ami szintn tmogatja a menet kzbeni tmretezst, akkor egy rugalmas, menet kzben tmretezheto httrtr-rendszert kap az ember. A Logical Volume Manager (LVM) hasznlathoz a kernelnket Logical Volume Manager tmogatssal kell fordtani, illetve szksgnk lesz az LVM segdprogramjaira. Ezeket pldul a http://www.sistina.com/lvm/ oldalon meg lehet tallni, de az LVM hasznlathoz szksges programok mr megtallhatk a legtbb disztribciban. A hasznlt segdprogramok verzijt a kernelben hasznlt meghajt verzijhoz kell igaztani. A Logical Volume Manager hasznlathoz eloszr el kell kszteni a partciinkat o erre: fdisk segtsgvel (vagy valami ms partcionl programmal) a partci tpust hexadecimlis 8e-re kell lltani. Ezek utn a
pvcreate /dev/blokkeszkznv

segtsgvel gynevezett Physical Volumeot (PV) lehet belole kszteni, majd a PVkb l o VGt:
vgcreate proba /dev/blokkeszkznv1 ...

Ennek hatsra ltrejn egy proba nev VG, aminek a mrete megegyezik az alatta u lv partci mretvel. Ezek utn egy LVt kell ltrehoznunk rajta, s mr hasznlhato juk is:
lvcreate -L200M -n elsolv proba mkfs.ext2 /dev/proba/elsolv mount ...

Ennek hatsra a rendszer ltrehoz egy 200 MB-os elsolv nev LVt, a proba nev u u VGre. Ezek utn jhetnek az rdekesebb dolgok: az lvextend segtsgvel tmretezhetjk az LVnket. Arra vigyzzunk, hogy ha nagyobbra mretezzk, akkor mindig el szr az LVt lltsuk nagyobbra, s csak aztn a fjlrendszert rajta, ha pedig kisebbre o vesszk, akkor el szr a fjlrendszert, aztn az LVt mdostsuk. Az LV mdosto shoz az lvextend s az lvreduce programokat hasznlhatjuk. Pldul egy LV nagyobbra vtelhez (250 MB-ra) az 37

lvextend -L250M /dev/proba/elsolv

parancsot hasznlhatjuk. Egy VG al a vgextend paranccsal rakhatunk be jabb PVket, illetve a vgreduce paranccsal vehetnk ki alla PVket. A vgreduce parancsot csak akkor hasznlhatjuk, ha az adott PVt nem hasznlja a rendszer. A pvmove parancs segt sgvel egy PVr l mshov kltztethetjk az adatokat, gy akr egy merevlemezr ol o egy msikra tkltzhetnk anlkl, hogy a rendszert e miatt le kellene lltani. Persze merevlemez cserjhez, vagy ms kongurcival kapcsolatos munkk elvgzshez ett l mg lehet, hogy le kell llni. Ha pldul a /dev/hda3 partcin lvo proba nev o u VGnket t akarjuk kltztetni a /dev/hdc3 partcira, akkor azt a kvetkez okppen tehetjk meg:
# Kibvtjk a VG-t a hdc3-mal. o vgextend proba /dev/hdc3 # A hda3-rl tvisszk az adatokat a hdc3-ra. # (Ez sokig tarthat.) pvmove /dev/hda3 /dev/hdc3 # A proba VG all kivehetjk a hda3-mat. vgreduce proba /dev/hda3

Bootols, shutdown Bootolskor a


vgscan vgchange -a y

parancsokkal lehet detektlni s aktivlni, shutdownkor pedig a


vgchange -a n

paranccsal lehet deaktivlni a VGket.

1.10. Naplzott fjlrendszerek


A naplzott fjlrendszerek olyan fjlrendszerek, amelyeknl tranzakcikezelsi technikk segtsgvel mindig konzisztens adat van a diszken. Ez nem azt jelenti, hogy ramsznet esetn nem vesztnk adatot, hanem azt, hogy nem kell sokig tart fsckra vrni. A naplzott fjlrendszerek nem vdenek a merevlemezek meghibsodstl sem. Linux alatt egyre tbb naplz fjlrendszer vlt elrhetov az utbbi vekben, mindegyik ms min sg , ms tuds. Emlts szintjn ezek a Reiserfs, az SGIo u fle XFS, az IBM-fle JFS, az ext2 leszrmazottja az ext3, illetve a Tux2 nev , u szintn ext2 fjlrendszerb l szrmaz failsafe fjlrendszer. o Ezek kzl a leghasznlhatbb a Reiserfs, s az XFS. Itt az elsovel fogok foglalkozni. A Reiserfs egy kiegyenslyozott fkon alapul fjlrendszer, emiatt f oleg kis fjlok kezelsnl gyorsabb trsainl. Ezen tulajdonsgt kihasznlva nagy teljestmny u fjl, s levelez szerver pthet vele. Tovbbi el nys tulajdonsga, hogy tmogatja a o o o lemountols nlkli tmretezst, ami jl prosthat az LVM LV tmretezsvel. A Reiserfs htrnya, hogy tbb gpidot eszik, mint pldul az ext2, illetve 32 MB-ot lefoglal magnak a naplzshoz. Ezrt ha egy 32 MB-os fjlrendszerre van szksgnk, akkor 64 MB-os partci kell hozz. 38

A Reiserfs a 2.4-es kernelsorozat rszt kpezi, esetleg hibajavtsokrt rdemes elnzni a http://www.namesys.org/ oldalra. Onnan letlthetjk a Reiserfs-hez tartoz programokat is, de valszn leg kedvenc disztribcinkban is megtalljuk ezeu ket. Ha sikerlt a kernelnket Reiserfs tmogatssal lefordtani s a segdprogramok is megvannak, akkor az mkreiserfs vagy mkfs.reiserfs paranccsal hozhatunk ltre ilyen fjlrendszert egy blokk-eszkzre, amit aztn a szoksos mount paranccsal kezdhetnk el hasznlni. A reiserfs extra mount opcii a notail s a resize=. Az elso segtsgvel kikapcsolhatjuk a kis fjlok s a fjlvgek klnleges kezelst. Ez gyorsthatja a fjlm veleteket, illetve rgi lilo-nl szksg van erre, klnben nem fogunk tudni u bootolni a fjlrendszernkr l. A helyes bootolshoz ezt az opcit a kernel helyrettele o s a lilo futtatsa el tt kell bekapcsolni. o A resize opci segtsgvel menet kzben tmretezhetnk egy fjlrendszert, nem kell lemountolni se. Arra kell gyelni, hogy a fjlrendszer j mrete ne legyen nagyobb az alatta lv blokkos eszkzt l. A resize hasznlatval csak nvelni lehet o o a fjlrendszer mrett. Ha cskkenteni akarjuk, akkor a resize_reiserfs programot kell hasznlnunk, miutn lemountoltuk a fjlrendszert. A resize opci 4 kB-os blokkmretben vrja az j mretet. Ezek alapjn egyszer en megrhatunk egy olyan szkriptet, aminek a segtsgvel u egyszerre mretezhetjk t a fjlrendszert, s az LVt, amin a fjlrendszer l:
#!/bin/sh # hasznlat resize blokkeszkz-tvonala jmret (MB-ban) # # $0 $1 $2 # # Hiba esetn egybl kilpnk. o set -e # Ha pontosan kt paramternk van, akkor megynk tovbb. if [ $# = 2 ] ; then # Nagyobbra hzzuk t a LV-t. /sbin/lvextend -L${2}M "${1}" # tszmtjuk a MB-ot ngy kB-os blokkokra. FOURKBLOCKS=/usr/bin/expr ${2} * 256 # Megcsinljuk az tmretezst. /bin/mount -n "${1}" -oremount,resize=${FOURKBLOCKS} # Ha eddig eljutottunk, akkor minden jl ment. /bin/echo ++++ tmretezs sikeres ++++ # Mg kirjuk, hogy mennyi helynk is van az tmretezs utn. /bin/df -k "${1}" else /bin/echo "Hasznlat: ${0} blokkeszkz-tvonala j mret (MB-ban)" fi

A mount opcikkal kapcsolatban mg annyit rdemes megjegyezni, hogy ha csak olvashatknt mountoljuk a fjlrendszert, a Reiserfs akkor is rni fog r, amikor a napljt ellen rzi. o

1.11. Naplelemzs
1.11.1. A syslog megfelel belltsa o
A syslog, a rendszer naplr dmonjnak helyes belltsa nagyon fontos a megfelel naplzshoz. o Syslog dmon tbbfle van, ilyenek a rgi syslog, az jabb, tbbet tud syslog-ng, illetve vannak adatbzisba naplz dmonok is. 39

A rgi unixos syslog dmonnal fogunk foglalkozni, az tallhat meg a legtbb rendszeren. A UNIX-os syslog dmonnl a naplzeneteket ktfle szempont szerint szoktk csoportostani: az egyik a facility, ez krlbell meghatrozza, hogy ki kldte az zenetet, a msik a priority, ami az zenetek fontossgt hatrozza meg. A facility lehet auth, authpriv biztonsggal kapcsolatos bejegyzsek esetben; cron a cron s at dmon bejegyzseinek; daemon az egyb dmonok bejegyzseinek; kern a kernel bejegyzseinek; local0, local1, . . . local7 tetszoleges loklis bejegyzseknek; lpr a nyomtat-alrendszer bejegyzseinek; mail a levelez szerver bejegyzseinek; o news a news szerver bejegyzseinek; user ltalnos, felhasznli bejegyzseknek. A priority lehetsges rtkei, jelentsk: emerg valami komoly problmt jelez, pldul valamelyik alrendszer hasznlhatatlann vlst; alert olyan hibt jelez, amit azonnal korriglni kell; crit valamelyik alrendszer llapota kritikus; err valamelyik alrendszer hibjt jelzi; warning mindssze gyelmeztetst jelent; notice ezt a prioritst normlis, de fontos esemnyek esetn szoktk hasznlni; info informcikzlsre szoktk hasznlni, nem jelez problmt; debug a programok a hibk megtallst segto zeneteknl szoktk hasznlni. A naplbejegyezsek sztvlogatsnl az zenet ezen kt tulajdonsgt lehet hasznlni. A syslog dmon tmogatja az zenetek fjlba, FIFOba, terminlra, tvoli gpre vagy loklisan bejelentkezett felhasznlknak trtno tovbbtst. A syslog dmon kongurcis fjlja a /etc/syslog.conf, ez szelektorzenet cl prosokat tartalmaz, ahol a szelektor az zenet tpust hatrozza meg, a cl pedig azt, hogy hova kerljn az zenet. A szelektorok alapvet en facilitymeghatrozs.prioritsmeghatrozs o felpts ek, ahol a facilitymeghatrozs (egy vagy) tbb facility vessz ovel elu vlasztott listja, ez vagy kapcsolatot jelez kztk, illetve a * lehet, ez illeszkedik minden facility-re.

40

A prioritsmeghatrozs egy egyedlll prioritst tartalmazhat, ebben az esetben az sszes, az adottal egyez , s attl nagyobb priorits zenetre illeszkedni fog. A o formja lehet tovbb =priorits, ez rtelemszer en pontos egyezst jelent. A ! u segtsgvel lehet tagadst kifejezni. Ha prioritsknt none-t adunk meg, az semmire sem fog illeszkedni. o Az zenet cljnak meghatrozsa ettol jval egyszer bb. Egy / jellel kezdod cl u merevlemezen lv fjlt jelent, -/ szintn fjlt jelent, de ebben az esetben az zenetet o nem szinkron mdon rja ki a diszkre, hanem hagyja, hogy a kernel azt majd ks obb elintzze (ez gyorsabb mint az el z mdszer, de sszeomls esetn adatot vesztheo o tnk). A | jellel kezd d cl merevlemezen lv FIFOt jelent, ezzel akr sajt kez leg o o o u is feldolgozhatjuk az zeneteket. A @ jel utn egy tvoli gp nevt vrja a syslog, oda fogja tovbb kldeni a naplbejegyzseket (hogy ez m kdjn, a tvoli rendszeren u -r kapcsolval kell indtani a syslog dmont). A * jellel, illetve az egyb karakterekkel kezd d clkijells hatsra a rendszer minden felhasznlnak, vagy az adott o o felhasznlk terminljra fogja kldeni az zenetet. Pldaknt egy rszlet egy syslog kongurcis fjlbl:
*.=debug;\ auth,authpriv.none;\ news.none;mail.none

-/var/log/debug

Ennek hatsra teht a syslog dmon az auth, authpriv, news, mail facilityken kvl minden debug priorits zenetet aszinkron mdon a /var/log/debug fjlba r. Tovbbi meggondolsok: a biztonsgos naplzs rdekben rdemes egy *.debug bejegyzst is hasznlni, hogy biztosan ne hagyjunk ki egy facility-priorits prost se. Ugyancsak rdemes egy tvoli gpre is kldeni a logokat, hogy pldul egy betrs, vagy komoly rendszersszeomls esetn megtudhassuk mi trtnt.

1.11.2. A naplfjlok elemzse


A syslog rendszer egyik problmja, hogy az zenetek, amiket a programok kldenek, bizonyos szempontbl nem standardizltak, pldul az ssh, ftp, telnet, stb. dmonok mshogy naplzzk, ha egy bejelentkezs sikertelen volt. Ezrt lesz szksg kln naplelemzsre. Bizonyos forgalomig kzzel is vgignzhetjk a naplbejegyzseinket, de ez pldul napi 10 MB-nyi naplnl is lehetetlen. Ilyenkor valamilyen programot kell hasznlnunk. A ksz programok kzl valszn leg a logcheck nev a legelterjedtebb, de ru u hatunk magunknak is egyet. o Ha magunknak akarunk rni logellenorz programot, akkor azt egyszer shell szku riptekkel megtehetjk. Nagyon jl lehet egytt hasznlni a cut, a sed, a sort s a uniq segdprogramokat. Kiindulsknt hasznlhatunk valami ilyesmi rendszert: a cut segtsgvel levghatjuk a dtum mezot a naplbejegyzsekr l (az az els 16 o o karakter), aztn a sed paranccsal tovbbi feldolgozst csinlhatunk (felesleges sorok trlse, a naplba r processzek processzazonostjnak trlse, stb.), vgl a sort s a uniq segsgvel ha tbb megegyezo sorunk van, abbl egyet csinlhatunk. Teht a shell szkriptben valami ilyesmi fog szerepelni:
cut -b16- /var/log/syslog |sed -f sedparancsfile |sort |uniq

A sed parancsfjlja pedig ilyesmi lesz (ez csak egy plda!):

41

/^ debi pppd\[.*$/d /^ debi automount\[[0-9]*\]:.*$/d s/CRON\[[0-9]*\]:/CRON:/ s/watchdog\[[0-9]*\]:/watchdog:/ ...

Azaz a debi nev gpr l jv pppd illetve automount zeneteire nem vagyunk ku o o vncsiak, trljk oket, a cron s watchdog dmon zeneteirol pedig leszedjk a processzazonost szmot, hogy majd a sort s a uniq tbb sort ssze tudjon egyre hzni. Ezt a programkt hasonl elveket kvetve kibovthetjk. Ezek utn a feldolgozott naplbejegyzseket elkldhetjk magunknak levlben, kinyomtathatjuk, stb. Ez termszetesen csak egy plda volt, vannak hinyossgai, de kezdetnek nem rossz. Innen tovbblpve jval bonyolultabb naplelemz o programokat is megrhatunk magunknak. o Ha nem akarunk magunknak naplellenorz programot rni, akkor hasznlhatjuk pldul a logcheck nev programot. Ezt telepthetjk csomagbl, ha a disztribu cink rszt kpezi, vagy letlthetjk a http://www.psionic.com/tools/ cmr ol. Ez a program mintailleszts segtsgvel prblja meg megmondani egy-egy naplbejegy zsr l, hogy betrsi ksrlet-e, rendszerbiztonsg srlst jelzo bejegyzs-e, vagy o csak valamilyen szokatlan sor a naplfjlban. A program egyszer en kongurlhat, a logcheck.sh fjlban kell trni a u megfelel tvonalakat, amik a klnbzo mintkat tartalmaz fjlokra mutatnak. o A HACKING_FILE=, VIOLATIONS_FILE=, VIOLATIONS_IGNORE_FILE= s az IGNORE_FILE= sorokat kell trni aszerint, hogy hov tettk a logcheck.hacking, logcheck.violations, stb. fjlokat. Ezek utn a
$LOGTAIL /var/log/messages >> $TMPDIR/check.$$

sorokat kell trni, hogy megmondjuk neki, hogy melyik fjlokban ellen orizze a naplbejegyzseket. Ha van olyan fjlunk ahov a *.debug bejegyzseket kldjk, rdemes azt megadni. Most mr akr le is futtathatnnk a logcheck.sh fjlt, de elobb nzzk t a mintkat tartalmaz fjlokat. A logcheck.hacking fjl tartalmazza a betrsi ksrletekre utal mintkat. Ha ezek kzl egy is illeszkedik a naplfjl egy sorra, akkor azt a program egy ideiglenes fjlban eltrolja. A logcheck.violations s logcheck.violations.ignore fjlt egytt hasznlja a program; ha a naplfjl egy sora illeszkedik egy mintra a logcheck.violations fjlbl, de egyre sem a logcheck.violations.ignore fjlbl, akkor ezt a sort is beteszi egy tmeneti fjlba. Vgl az sszes olyan sort, ami nem illeszkedik a logcheck.ignore mintira, szintn eltrolja. Ha tallt tmadsra utal jeleket, az elmentett adatokat egy gpnv dtum ACTIVE SYSTEM ATTACK! cm levlben elkldi a rendszergazdnak. u Ha nem tallt tmadsra utal bejegyzseket, akkor a levl cme egyszer en gpnv u dtum system check lesz. Ha gy ltjuk, hogy minden rendben van, akkor a cron dmonra bzhatjuk a logcheck.sh rendszeres lefuttatst.

42

1.12. Alapvet biztonsgi belltsok o


1.12.1. Szolgltatsok
Ne futtassunk felesleges szolgltatsokat. A fut processzek listjt pldul a ps axu paranccsal nzhetjk meg. Nzzk vgig a listt, s prbljuk minden processzr ol megtudni, hogy mit csinl, a man parancs s a disztribcival jtt egyb dokumentcik alapjn. Ha gy dntttnk, hogy az adott processzre nincs szksgnk, akkor rdemes azt leszedni disztribcink csomagkezelojvel. Ilyen tipikusan felesleges szolgltatsok kz tartozhat pldul a portmap s az lpd. Ezek utn nzzk vgig a nyitott hlzati portokat. Ezt a netstat -a parancs segtsgvel tehetjk meg. Az outputbl minket most csak a LISTEN, azaz hlzati krsre vr portok rdekelnek. Ezt a listt pldul a
$ netstat -a |fgrep LISTEN

paranccsal krhetjk a rendszertol. Plda kimenet:


tcp tcp tcp tcp tcp ... 0 0 0 0 0 0 0 0 0 0 *:shell *:ldap *:time *:discard *:font-service *:* *:* *:* *:* *:* LISTEN LISTEN LISTEN LISTEN LISTEN

A pldn ltszik, hogy a shell, ldap, time, discard, font-service TCP portok vannak nyitva. Azt, hogy melyik port milyen processzhez tartozik, az fuser paranccsal tudhatjuk meg. Plda:
# A font-service tcp port hasznljra vagyunk # kvncsiak, bbeszd kimenetet krnk. o u $ fuser -v -n tcp font-service USER root PID ACCESS COMMAND 323 f.... xfs

font-service/tcp

Teht a font-service porton az xfs processz vrja a berkezo krseket. Most, hogy megvan a processznk, a fentebb lertak alapjn dnthetnk arrl, hogy szksgnk van-e r. Nyitott UDP portok: ezek a netstat -a kimenetben gy ltszanak:
udp 0 0 *:talk *:*

Ezekre is m kdik az fuser parancs, a tcp kulcsszt rtelemszer en udpre cseu u rlve.

1.12.2. inetd
Az inetd az Internet Superserver Daemon, igny szerint tbbfajta hlzati szolgltatst tud nyjtani segdprogramok felhasznlsval. Kongurcis fjlja a /etc/inetd.conf. Rla mr volt sz korbban. Ha nincs szksgnk egy inetd-bol fut szolgltatsra, akkor a sor elejre # jelet rva letilthatjuk azt. Ezutn az inetd programnak HUP szignlt kell kldeni, hogy jraolvassa a kongurcis fjljt. Plda letiltott telnet szolgltatsra:
#telnet stream tcp nowait telnetd.telnetd /usr/sbin/tcpd /usr/sbin/in.telnetd

43

1.12.3. /etc/hosts.allow, /etc/hosts.deny


A /etc/hosts.allow s a /etc/hosts.deny fjlokkal tovbb lehet nomtani a hlzati szolgltatsok listjt. A host.allow/deny fjlokat a tcpwrapper libraryval fordtott programokkal vagy a tcpd-t hasznl inetd-s programokkal hasznlhatjuk. A hosts.deny fjlba kerl bele a tiltand szolgltatsok listja, a hosts.allow fjlba pedig az engedlyezettek. A fjlok formja durvn:
szolgltats1,szolgltats2 : host1, host2, .domain.pelda, ipcm/netmask

Kirtkelsi sorrend hosts.allow, hosts.deny. Ha egy szolgltats-kliens pros egyikben sem szerepel, akkor a hozzfrst engedlyezni fogja. Ajnlott a host.deny fjlba a ALL: ALL sort rni, s a hosts.allow fjlban engedlyezni a megfelel hostokat. Plda hosts.allow fjlra: o
ALL: 192.168.10.0/255.255.255.0 in.telnetd: .ilyen.nincs.hu

Ennek hatsra a 192.168.10.0/255.255.255.0 hlzatrl minden tcpwrapperes szolgltats, s az .ilyen.nincs.hu domainbl a telnet szolgltats lesz elrhet o.

1.12.4. Mount opcik


Megfelel en megvlasztott mount opcikkal nagyban javthatjuk rendszernk bizo tonsgt. Amit mount opcikkal befolysolhatunk: rhat-e az adott fjlrendszer, futtathatunk-e rla programokat, lehet-e hasznlni eszkzfjlokat rajta, illetve hasznlhatunk-e setuid bitet. Ennek megfelel en az rdekes mount opcik: o ro read only, csak olvashat lesz az adott fjlrendszer; nodev eszkzfjlokat nem lehet hasznlni az adott fjlrendszeren; nosuid setuid-os fjlokat nem a tulajdonos felhasznli azonostjval fogja futtatni, hanem a hv processzvel, mintha a setuid bit nem lenne rajta belltva; noexec az adott fjlrendszeren levo fjlokat nem lehet futtatni (mg ha klnben fut tathatk is lennnek). Ez a kapcsol jelen pillanatban megkerlhet o az albbi mdon:
ldd /mnt/noexec_drive/bin/bash

A fenti parancs elindtja a szndkunk szerint nem futtathat llapot partci /bin/ knyvtrbl a bash binrist. Emiatt bnjunk vatosan a noexec kapcsolval! A mount opcikat a remount mount opcival vltoztathatjuk meg. Pldk:
mount /dev/hda3 /tmp -onosuid,nodev mount /dev/hda2 /usr -oro

Remountra:
mount /tmp -oremount,nosuid,nodev,noexec

Termszetesen itt is rdemes csak a minimlisan szksges jogokat meghagyni (/usr read-only, /tmp s /home nosuid, nodev s esetleg noexec). 44

1.12.5. Egyebek: lilo, jelsz biztonsg


A kernelnek lilo-n keresztl meg lehet adni, hogy az init helyett milyen programot indtson els knt. Pldul: o
LILO: linux init=/bin/bash

Ez azonnali root shellt eredmnyez a szmtgphez kzvetlenl hozzfr o felhasznlknak. Ez ellen segt a restricted lilo.conf opci, ennek hatsra a lilo jelszt fog krni, ha a kernelnek valamilyen paramtert akarunk tadni a lilo parancssorban. Plda:
# /etc/lilo.conf # ... image=/boot/vmlinuz restricted=Ezittajelszo! label=Linux read-only

Termszetesen kell mg egy chmod 600 /etc/lilo.conf is, illetve a lilo program futtatsa. ltalnos jelszbiztonsg: sose hasznljunk sztri szt jelszknt, inkbb generljunk egyet a pwgen programmal. A jelszavakat cserljk rendszeresen. r demes lehet nha a John the Ripper programot futtatni a jelszfjlra (letlthet o a http://www.openwall.com/ oldalrl).

1.13. Ments s helyrellts


1.13.1. tar
A GNU tar segtsgvel teljes knyvtr-hierarchikat lehet egy vagy tbb eszkzre sszecsomagolni, gy pldul egy fjlba lerakni, vagy szalagra rni. A tar a parancsokat a parancssorban vrja. Egy, s csak egy parancsot meg kell neki adni. A parancsokon kvl vannak mg nem ktelezo jelleg paramterei. u A tar leggyakrabban hasznlt parancsai: a --create egy j archvum ltrehozshoz, a --extract egy ltez archvum kibontshoz, azaz a fjlok visszlltso hoz. Egy archvum tartalmt a --list paranccsal tudjuk kilistzni. Ha j archvumot hozunk ltre, akkor a tar parancsnak meg kell mondanunk, hogy miket tegyen bele. Ehhez az archivland fjlokat fel kell sorolni a tar parancsai s kapcsoli utn. Archvum kibontsa esetn hasonlan adhatjuk meg az archvumbl kibontand fjlok listjt. Gyakori opcionlis kapcsolk a --file=, az archv fjl nevt lehet gy megadni; a tar ezt fogja hasznlni a parancsok elvgzsnl, pldul ebbe fogja tenni az archivland fjlokat. Ha nem hasznljuk a --file= kapcsolt, akkor a tar a standard outputot fogja hasznlni. Fontos kapcsol mg a --verbose, ennek hatsra a tar b beszd lesz. o u Ezek utn mr ki is lehet prblni a tar parancsot:
# $ $ $ # # Csinlunk egy knyvtrstruktrt a prbhoz. mkdir proba echo hello >proba/a echo hello2 >proba/b A proba nev knyvtrat elmentjk az u elso.tar nev fjlba. u

45

$ tar --create --file=elso.tar --verbose proba proba/ proba/a proba/b # Kilistzzuk az archvum tartalmt. $ tar --list --file=elso.tar --verbose drwxrwxr-x root/root 0 2001-07-19 13:55:07 proba/ -rw-rw-r-- root/root 6 2001-07-19 13:55:02 proba/a -rw-rw-r-- root/root 7 2001-07-19 13:55:07 proba/b # Elvesztjk a proba knyvtrunkat. $ rm -rf proba # Aztn a mentsbl visszalltjuk. o $ tar --extract --verbose --file=elso.tar proba/ proba/a proba/b # Aztn mg egyszer kibontjuk, de most csak a # proba/a nev fjlra vagyunk kvncsiak. u $ tar --extract --verbose --file=elso.tar proba/a proba/a

Ezek utn az egyszer pldk utn jhetnek az rdekesebb dolgok: a tar u --update parancsa segtsgvel egy archv fjl tartalmt frissthetjk. Ez egyszer en gy m kdik, hogy a tar vgignzi az archv fjlt, s az archivland knyvtru u struktrt, s ha valamelyik fjl jabb, mint az archvumban tallhat, akkor az j fjlt hozzf zi az archvumhoz. Emiatt az archv fjl mrete llandan n oni fog. Az archv u fjl kibontsa esetn csak az utoljra hozzf ztt fjl fog a lemezen maradni. Szalagos u egysgeken ezt nem lehet hasznlni. Pldul:
$ echo megegy >proba/k $ tar --update --file=elso.tar --verbose proba proba/ proba/k

A tar --delete parancsa segtsgvel trlhetnk egy fjlt az archvumbl. Ez nem m kdik szalagos egysgek esetn. u
# Kitrljk a proba/a fjlt az archvumbl. $ tar --delete --file=elso.tar proba/a

A tar segtsgvel inkrementlis mentsek is kszthetok, ehhez a --listed-incremental= opcit kell hasznlni. Ez az opci egy fjl nevt vrja, a tar ezt a fjlt fogja hasznlni a knyvtr-hierarchiban trtnt vltozsok kvetsre, teht ms-ms knyvtrak mentshez ms fjlt kell megadnunk. Pldul:
# Csinlunk egy j mentst. $ tar --create --file=masodik.tar --verbose --listed-incremental=/tmp/lista proba proba/ proba/a proba/b proba/k # Ezutn ltrehozunk egy j fjlt a proba knyvtr alatt, # s arrl csinlunk egy inkrementlis mentst. # Az inkrementlis ments j tar fjlba kerl. $ touch proba/ujfile $ tar --create --file=harmadik.tar --verbose --listed-incremental=/tmp/lista proba proba/ proba/ujfile # Ezek utn, ha vissza akarjuk lltani a proba knyvtr # tartalmt, akkor azt kt tar segtsgvel megtehetjk. $ tar --extract --file=masodik.tar $ tar --extract --file=harmadik.tar

A tar parancsnak van mg egy fontos opcija, a --multi-volume, ennek segtsgvel pldul tbb szalagra lehet menteni az adatokat. A kazettavltsok kzt a tar jelez. 46

A tar klnbz eszkzkre tud menteni, ezek tipikusan fjl s mgnesszalag (a tar-t eredetileg szalagos eszkzkhz terveztk), de tud tvoli eszkzkre is mentst vgezni rsh vagy ssh hasznlatval. Ha tvoli eszkzt szeretnnk hasznlni, akkor a --file= opcinl ezt a gpnv:tvonal vagy a felhasznl@gpnv:tvonal paramterekkel rhetjk el.
$ tar --create --verbose --file=debi:/tmp/proba.tar --rsh-command=/usr/bin/ssh . ./ ./index.html ...

A tvoli gpen kell lennie egy /etc/rmt programnak, ez biztostja a tvoli eszkzk elrst. A visszallts tvolrl hasonlkppen trtnik. A tar tud klnbz tmrtseket kezelni, de rdemesebb egyszer en pipe-ot o u hasznlva rkldeni egy tmrtoprogramra, mert azt gy knnyebb paramterezni. Pldul ha er sebb tmrtst szeretnnk alkalmazni, hogy kisebb llomnyt kapjunk, o akkor azt gy oldhatjuk meg:
$ tar --create --verbose . | gzip -9 >/tmp/proba.tar.gz ./ ./index.html ...

1.13.2. rsync
Az rsync egy f leg mirrorozsra hasznlt program, gy pldul kt gp (vagy csak o egy gpen bell) kztt tud knyvtr-hierarchikat mozgatni. Az rsync el nye pldul az ftp parancsot hasznl mirrorokkal szemben az, o hogy eleve mirrorozsra terveztk. A kt knyvtr-hierarchia kzt csak a klnbsgeket viszi t, ezekkel egytt alkalmas pldul egy szerver s egy tartalk szerver kzti adatszinkronizlsra. Az rsync parancsot ltalban
rsync opcik forrsmeghatrozs clmeghatrozs

mdon szoktk hasznlni, ahol az opcik hatrozzk meg a fjltvitel klnbz o paramtereit, a forrs s a cl pedig rtelemszer en a forrs- s clknyvtrat hatrozzk u meg. Az rsync elgg sok opcit ismer, ezek kzl a legfontosabbakkal foglalkozunk itt. A -v s a -q opcik a b beszd s a csendes zemmd kzt vltanak. Tbb -v o u hatsra az rsync egyre tbb zenetet fog kirni, ezzel segti a hibakeresst. A -a opci az archv mdot kapcsolja be. Ez azt jelenti, hogy az rsync rekurzvan msolja a fjlokat s a knyvtrakat, s megtartja a tulajdonosokat, a fjlok jogosultsgait, linkeket, s az eszkzfjlokat, feltve, hogy van ehhez joga. Ezek utn mr ki is lehet prblni az rsync-et:
# Ltrehozunk egy knyvtrat a prbhoz. $ mkdir /tmp/proba # Elindtjuk az rsyncet, a public_html knyvtrat # visszk t a /tmp/proba knyvtrba. $ rsync -av public_html/ /tmp/proba building file list ... done ./ index.html ...

47

wrote 4782961 bytes read 576 bytes 9567074.00 bytes/sec total size is 4780153 speedup is 1.00 # Vgl megnzzk az eredmnyt. $ ls /tmp/proba index.html ...

Ezek utn, ha megint rsync-et futtatnnk, akkor az mr csak a klnbsgeket vinn t. Oda kell gyelni a forrs meghatrozsnl a forrs vgn ll / jelre; ez befolysolja, hogy az rsync hogyan pti fel a knyvtrstruktrt a clon. Ezt egy pldn keresztl lehet a legjobban megrteni:
# Ltrehozunk egy knyvtrat a prbhoz. $ mkdir /tmp/proba # Elindtjuk az rsyncet, a public_html knyvtrat # visszk t a /tmp/proba knyvtrba. $ rsync -av public_html /tmp/proba building file list ... done public_html/ public_html/index.html ... wrote 4782998 bytes read 576 bytes 9567148.00 bytes/sec total size is 4780153 speedup is 1.00 # Megnzzk mit tett le. $ ls /tmp/proba public_html

Egy ilyen mentsb l a helyrellts rtelemszer en a forrs s a cl megfelelo felo u cserlsvel elrhet . o Mint mr korbban volt rla sz, az rsync hasznlhat tvoli szinkronizlsra vagy mentsre is. Ez ktflekppen valsthat meg: vagy egy inetd-bol futtatott rsync szerver rel, vagy pedig rsh vagy ssh segtsgvel. Biztonsgi okok miatt az utbbi lehet osggel fogunk foglalkozni. Ezzel tvzni lehet az rsync s az ssh kpessgeit. Ezt a mdot gy lehet hasznlni, ha az rsync parancsnak clknt vagy forrsknt egy tvoli gpen tallhat knyvtrat adunk meg, tvolifelhasznl@tvoligp:tvoliknyvtr formban, s a -e kapcsol segtsgvel megmondjuk neki, hogy ssh parancsot hasznljon az alaprtelmezett rsh helyett.
# Elindtjuk az rsync-et ssh-n keresztl. $ rsync -e "ssh" -av public_html tonhal:/tmp/proba # Az ssh kri a jelszt. gabor@tonhals password: # Ezutn a szoksos rsync kimenetet lthatjuk. building file list ... done created directory /tmp/proba public_html/ public_html/index.html ... wrote 4782998 bytes read 576 bytes 289913.58 bytes/sec total size is 4780153 speedup is 1.00

Ezt persze kombinlni lehet az ssh klnbzo kapcsolival, pldul ha ms porton (mondjuk az 1678-ason) fut a tvoli ssh szerver, akkor a parancssor ilyen lesz:
$ rsync -e "ssh -p 1678" -av public_html tonhal:/tmp/proba

Egyb fontos rsync opcik: a -z kapcsol hatsra az rsync rptmrteni fogja az tjv adatokat. Ez cskkenti a hlzat terhelst, de nveli a kt gp o processzorterhelst. A --delete kapcsol hatsra az rsync trlni fogja a cl oldaln azokat a fjlokat, amelyek a forrs oldalon (mr) nincsenek meg. A 48

--numeric-ids hatsra az rsync numerikusan fogja tvinni a felhasznl s csoportazonostkat. Ez el nys lehet, pldul ha a home knyvtrakat mentjk msik o gpre, s a tvoli gpen a felhasznlink nincsenek felvve.

49

GNU Szabad Dokumentcis Licensz 1.1 verzi, 2000 mrcius


Copyright c 2000 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Jelen licensz sz szerinti sokszorostsa s terjesztse brki szmra megengedett, vltoztatni rajta ugyanakkor nem lehet.

0. ELOSZ
Jelen Licensz clja egy olyan kziknyv, tanknyv, vagy effajta rott dokumentum megalkotsa, mely a sz szoros rtelmben szabad: annak rdekben, hogy mindenkinek biztostsa a szveg sokszorostsnak s terjesztsnek teljes szabadsgt, mdost sokkal, vagy anlkl, akr kereskedelmi, akr nem-kereskedelmi ton. Msfel ol, e Licensz meg rzi a szerz , vagy kiad munkja elismershez f zod jogt, s egyttal o o u o mentesti ot a msok ltal beiktatott mdostsok kvetkezmnyei all. Jelen Licensz egyfajta etalonnak tekintheto, ami nem jelent mst, mint hogy a dokumentumbl szrmaztatott munkk maguk is szabad min ostst kell, hogy kapja nak. E dokumentum egyben a GNU ltalnos Felhasznli Licensz kiegszt ojeknt is szolgl, mely egy a szabad szoftverekre vonatkoz etalon licensz. E Licenszet a szabad szoftverek kziknyveiben val hasznlatra alkottuk, hiszen a szabad szoftver egyben szabad dokumentcit is ignyel: egy szabad programot olyan kziknyvvel kell elltni, mely ugyanazon szabadsgokat biztostja, mint maga a program. Jelen Licensz, mindazonltal, nem korltozdik pusztn kziknyvekre; felttelei tetsz leges trgykr rott dokumentumra alkalmazhatk, fggetlenl attl, hogy az o u knyvformban valaha megjelent-e. Mindamellett e Licenszet f oknt olyan munkkhoz ajnljuk, melyek els dleges clja az tmutats, vagy a tjkoztats. o

1. ALKALMAZHATSG S DEFINCIK
E Licensz minden olyan kziknyvre, vagy ms jelleg munkra vonatkozik, melyen u megtallhat a szerz i jogtulajdonos ltal feltntetett gyelmeztets, miszerint a doo kumentum terjesztse jelen Licensz felttelei alapjn lehetsges. A Dokumentum albb brmely ilyen jelleg kziknyvre, vagy egyb munkra vonatkozik. A lakossg u minden tagja potencilis licensztulajdonosnak tekintheto, s mindegyikk megszltsa egyarnt n.

50

A Dokumentum Mdostott Vltozata brmely olyan munkra vonatkozik, mely tartalmazza a Dokumentumot, vagy annak elemeit akr sz szerint, akr mdostsokkal, s/vagy ms nyelvre lefordtva. A Msodlagos Szakasz egy egyedi nvvel br fggelk, esetleg a Dokumentum egy megel z szakasza, mely kizrlag a kiadknak, vagy az alkotknak a Dokumeno o tum tfog trgykrhez (vagy kapcsold tmkhoz) f z od viszonyrl szl, s nem u o tartalmaz semmi olyat, ami kzvetlenl ezen tfog tmakr al eshet. (Ha pldul a Dokumentum rszben egy matematika tanknyv, gy a Msodlagos Szakaszban nincs lehet sg matematikai trgy magyarzatokra.) A fenti kapcsolat trgya lehet a tmao krrel, vagy a kapcsold tmkkal val trtnelmi viszony, illetve az azokra vonatkoz jogi, kereskedelmi, lozai, etikai, vagy politikai felfogs. A Nem Vltoztathat Szakaszok olyan specilis Msodlagos Szakasznak szmtanak, melyek ilyetn val meghatrozst az a kzlemny tartalmazza, miszerint a Dokumentum jelen Licensz hatlya alatt lett kiadva. A Bortszvegek olyan rvid szvegrszek, melyek Cmlap-szvegknt, illetve Htlap-szvegknt kerlnek felsorolsra abban a kzlemnyben, miszerint a Dokumentum jelen Licensz hatlya alatt lett kiadva. A Dokumentum tltsz pldnya olyan gppel-olvashat vltozatot jell, mely a nyilvnossg szmra hozzfrheto formtumban kerl terjesztsre, tovbb melynek tartalma szokvnyos szvegszerkeszto-programokkal, illetve (pixelekbol ll kpek esetn) szokvnyos kpmegjelento-programokkal, vagy (rajzok esetn) ltalnosan hozzfrhet rajprogramok segtsgvel azonnal s kzvetlenl megtekinthet o, vagy o mdosthat; tovbb olyan formtumban mely alkalmas a szvegszerkeszt okbe val bevitelre, vagy a szvegszerkesztok ltal kezelt formtumokba val automatikus talaktsra. Egy olyan, egybknt tltsz formtumban kszlt pldny, melynek markupja gy lett kialaktva, hogy megakadlyozza, vagy eltntortsa az olvaskat minden tovbbi mdoststl, nem tekintheto tltsznak. A nem tltsz pldnyok az tltszatlan megnevezst kapjk. Az tltszsg kritriumainak megfelelo formtumok kztt megtallhat pldul A a markup nlkli egyszer ASCII, a Texinfo beviteli formtum, a L TEX beviteli foru mtum, az SGML vagy az XML egy ltalnosan hozzfrheto DTD hasznlatval, s a standardnak megfelel , emberi mdostsra tervezett egyszer HTML. Az tltszato u lan formtumok kz sorolhat a PostScript, a PDF, a szabadalmaztatott s csak zet os szvegszerkeszt kkel olvashat formtumok, az olyan SGML vagy XML, melyhez a o szksges DTD s/vagy egyb feldolgoz eszkzk nem ltalnosan hozzfrhet ok, s az olyan gpileg-generlt HTML formtum, melyet egyes szvegszerkeszt ok hoznak ltre, kizrlag kiviteli clra. Egy nyomtatott knyv esetben a Cmlap magt a cmlapot, illetve brmely azt kiegszt tovbbi oldalt jell, amely a jelen Licenszben denilt cmlap-tartalmak o kzzttelhez szksges. Az olyan formtum munkknl, melyek nem rendelkez nek effajta cmlappal, a Cmlap a munka cmhez legkzelebb es o, m a szveg trzst megel z szvegrszeket jelli. o o

2. SZ SZERINTI SOKSZOROST S
nnek lehet sge van a dokumentum kereskedelmi, vagy nem-kereskedelmi jelleg o u sokszorostsra s terjesztsre, brmely mdiumon keresztl, feltve, hogy jelen Licensz, a szerz i jogi gyelmeztets, tovbb a Dokumentumot jelen Licensz hatlya o 51

al rendel kzlemny minden pldnyban egyarnt megjelenik, s hogy e feltteleken o kvl semmi mst nem tesz hozz a szveghez. Nem alkothat olyan technikai korltokat, melyek megakadlyozhatjk, vagy szablyozhatjk az n ltal terjesztett pldnyok elolvasst, vagy sokszorostst. Mindazonltal elfogadhat bizonyos sszeget a msolatok fejben. Amennyiben az n ltal terjesztett pldnyok szma meghalad egy bizonyos mennyisget, gy a 3. szakasz feltteleinek is eleget kell tennie. A fenti kritriumok alapjn klcsnbe adhat egyes pldnyokat, de akr nyilvnosan is kzzteheti a szveget.

3. SOKSZOROST S NAGYOBB MENNYISGBEN


Amennyiben 100-nl tbb nyomtatott vltozatot tesz kzz a Dokumentumbl, s annak Licensze felttell szabja a Bortszvegek megltt, gy minden egyes pldnyt kteles elltni olyan bortlapokkal, melyeken a kvetkez o Bortszvegek tisztn s olvashatan fel vannak tntetve: Cmlap-szvegek a cmlapon, illetve Htlap-szvegek a htlapon. Mindkt bortlapra egyrtelm en s olvashatan r kell vezetnie a kiad, u vagyis jelen esetben az n nevt. A cmlapon a Dokumentum teljes cmnek jl lthatan, tovbb minden egyes sznak azonos szedsben kell megjelennie. Ezen fell, beltsa szerint, tovbbi rszleteket is hozzadhat a bortlapokhoz. Amennyiben az esetleges mdostsok kizrlag a bortlapokat rintik, s feltve, hogy a Dokumentum cme vltozatlan marad, tovbb a bortlapok megfelelnek minden egyb kve telmnynek, gy a sokszorosts ettol eltekintve sz szerinti reprodukcinak minosl. Abban az esetben, ha a bortlapok brmelyikn megkvetelt szvegrszek tl hossznak bizonyulnnak az olvashat kzzttelhez, gy csak az els oknt felsoroltakat kell feltntetnie (amennyi jzan belts szerint elfr) a tnyleges bortn, a tovb biak pedig tkerlhetnek a kvetkezo oldalakra. Amennyiben 100-nl tbb tltszatlan pldnyt tesz kzz, vagy terjeszt a Dokumentumbl, gy kteles vagy egy gppel-olvashat tltsz pldnyt mellkelni minden egyes tltszatlan pldnyhoz, vagy lerni minden egyes tltszatlan pldnyban egy a mdostatlan tltsz pldnyt tartalmaz nyilvnos hozzfrs szmtgpu hlzat elrhet sgt, ahonnan brki, anonim mdon, trtsmentesen letltheti azt, o egy kzismert hlzati protokoll hasznlatval. Ha az utbbi lehet osget vlasztja, kteles gondoskodni arrl, hogy attl a naptl kezdve, amikor az utols tltszatlan pldny is terjesztsre kerlt (akr kzvetlenl n ltal, akr kiskereskedelmi forga lomban), a fenti helyen kzztett tltsz pldny mg legalbb egy vig hozzfrhet o legyen a felhasznlk szmra. Megkrjk, mde nem ktelezzk nt arra, hogy minden esetben, amikor nagyobb o pldnyszm terjesztsbe kezd, mr jval ezt megeloz en lpjen kapcsolatba a Doku mentum szerz ivel, annak rdekben, hogy megkaphassa tolk a Dokumentum esetleo ges feljtott vltozatt.

4. MDOST S
nnek lehet sge van a Dokumentum Mdostott Vltozatnak sokszorostsra s tero jesztsre a 2. s 3. szakaszok fenti rendelkezsei alapjn, feltve, hogy a Mdostott

52

Vltozatot kizrlag jelen Licensz feltteleivel sszhangban teszi kzz, ahol a M dostott Vltozat a Dokumentum szerept tlti be, ezltal lehetosget biztostva annak terjesztsre s mdostsra brkinek, aki csak hozzjut egy pldnyhoz. Mindezen fell, a Mdostott Vltozat az albbi kvetelmnyeknek is meg kell, hogy feleljen: A Cmlapon (s ha van, a bortkon) tntessen fel egy a Dokumentumtl, illetve brmely korbbi vltozattl eltro cmet (melyeknek, ha vannak, a Dokumentum El zmnyek szakaszban kell szerepelnik). Egy korbbi vltozat cmt o csak akkor hasznlhatja, ha annak szerzoje engedlyezte azt.

A Cmlapon szerz kknt sorolja fel a Mdostott Vltozatban elvgzett vltoztao tsokrt felel s szemlyeket, vagy entitsokat, tovbb a Dokumentum f o szero z i kzl legkevesebb tt (vagy mindet, ha nincsenek ten). o A Cmlapon a Mdostott Vltozat kzzttelrt felelos szemlyt tntesse fel kiadknt. A Dokumentum sszes szerz i jogi gyelmeztetst hagyja rintetlenl. o Sajt mdostsaira vonatkozan is tegyen kzz egy szerz oi jogi megjegyzst, a tbbi ilyen jelleg gyelmeztets mellett. u Rgtn a szerz i jogi gyelmeztetseket kvet en tntessen fel egy kzlemnyt, o o az albbi Fggelk mintjra, melyben engedlyezi a Mdostott Vltozat felhasznlst jelen Licensz felttelei alapjn. A fenti kzlemnyben hagyja rintetlenl a Nem Vltoztathat Szakaszok s a szksges Bortszvegek jelen Dokumentum licenszben el ort teljes listjt. Mellkelje jelen Licensz egy eredeti pldnyt. Az El zmnyek szakaszt, illetve annak cmt szintn hagyja rintetlenl, o emellett adjon hozz egy j elemet, amely minimlisan tartalmazza a Mdo stott Vltozat cmt, kiadsi vt, tovbb az j szerzok, illetve a kiad nevt, a Cmlapon lthatkhoz hasonlan. Amennyiben a Dokumentum nem tartalmaz semmifle El zmnyek elnevezs szakaszt, gy hozzon ltre egyet, mely taro u talmazza a Dokumentum cmt, kiadsi vt, tovbb a szerz ok, illetve a kiad nevt, a Cmlapon lthatkhoz hasonlan; majd ezt kvetoen adjon hozz egy j, a Mdostott Vltozatra vonatkoz elemet, a fentiekkel sszhangban. Ne tegyen vltoztatsokat a Dokumentumban megadott tltsz pldny nyilvnos hlzati elrhet sgt (ha van ilyen) illet en, vagy hasonlkpp, a Dokumeno o tum alapjul szolgl korbbi vltozatok hlzati helyre vonatkozan. Ezek az El zmnyek szakaszban is szerepelhetnek. Csak abban az esetben hagyhatja el o egyes korbbi vltozatok hlzati elrhetosgt, ha azok legkevesebb ngy vvel a Dokumentum el tt kszltek, vagy ha maga az alkot engedlyezi azt. o Brmely Ksznetnyilvnts, vagy Ajnlsok szakasz cmt hagyja rintetlenl, tovbb gondoskodjon arrl, hogy azok tartalma s hangvtele az egyes hozzjrulkat, s/vagy az ajnlsokat illetoen vltozatlan maradjon. A Dokumentum sszes Nem Vltoztathat Szakaszt hagyja rintetlenl, gy cmket, mint tartalmukat illet en. A szakaszok szmozsa, vagy brmely azzal o egyenrtk jells nem tartozik a szakaszcmek kz. u 53

Trljn minden Jvhagys elnevezs szakaszt. Effajta szakaszok nem ku pezhetik rszt a Mdostott Vltozatnak.

Ne nevezzen t semmilyen ltez szakaszt Jvhagys-ra, vagy olyasmire, o mely cmben a Nem Vltoztathat Szakaszokkal tkzhet.

Ha a Mdostott Vltozat j megel z szakaszokat tartalmaz, vagy olyan fggelo o keket, melyek Msodlagos Szakasznak minoslnek, m nem tartalmaznak a Dokumentumbl szrmaz anyagot, abban az esetben, beltsa szerint, e szakaszok nmelyikt, vagy akr az sszeset nem vltoztathatknt sorolhatja be. Ehhez nem kell mst tennie, mint felsorolni a szban forg cmeket a Mdostott Vltozat licensznek Nem Vltoztathat Szakaszok listjban. E cmeknek hatrozottan el kell klnlnie minden egyb szakaszcmt l. o Jvhagys elnevezs szakaszt csak akkor adhat a Dokumentumhoz, ha az kiu zrlag a Mdostott Vltozatra utal megjegyzseket tartalmaz pldul msok recenziira vonatkozan, vagy hogy egy szervezet a szveget egy standard mrvad dencijaknt ismerte el. Cmlap-szveg gyannt egy legfeljebb t szbl ll szvegrszt adhat meg, a Htlap-szveg esetn pedig 25 szt f zhet a Mdostott Vltozat Bortszvegeinek u vghez. Brmely entits csak s kizrlag egy Cmlap- s egy Htlap-szvegrszt adhat (akr kzvett n keresztl) a Dokumentumhoz. Ha a dokumentum mr eleve o rendelkezik Bortszveggel, akr azrt, mert azt korbban n adta hozz, vagy mert valaki ms nn keresztl gondoskodott errol, abban az esetben nincs lehetosg jabb Bortszveg hozzadsra; a rgit mindazonltal lecserlheti, abban az esetben, ha annak kiadja egyrtelm en engedlyezi azt. u A Dokumentum szerz je/i s kiadja/i jelen Licensz alapjn nem teszik lehetov o nevk nyilvnos felhasznlst egyetlen Mdostott Vltozat tmogatsa, vagy tmogatottsga rdekben sem.

5. KOMBINLT DOKUMENTUMOK
nnek lehet sge van a Dokumentum egyb, e Licensz hatlya alatt kiadott dokumeno tumokkal val kombinlsra a 4. szakasz mdostott vltozatokra vonatkoz rendelkezsei alapjn, feltve, hogy a kombinci mdosts nlkl tartalmazza az eredeti dokumentumok sszes Nem Vltoztathat Szakaszt, s hogy azok mind Nem Vltoztathat Szakaszknt kerlnek felsorolsra a kombinlt munka licenszben. A kombinlt munknak jelen Licensz mindssze egy pldnyt kell tartalmaz nia, az egymssal tfedsben lvo Nem Vltoztathat Szakaszok pedig kivlthatk egy sszegzett pldnnyal. Amennyiben tbb Nem Vltoztathat Szakasz szerepelne ugyanazon cmmel, m eltr tartalommal, gy alaktsa t minden egyes szakasz cmt o olyan mdon, hogy mgrja zrjelben az eredeti szerzo s kiad nevt (ha ismeri), vagy egy egyedi sorszmot. Ha szksges, a Nem Vltoztathat Szakaszok cmeivel is vgezze el a fenti mdostsokat a kombinlt munka licenszben. A kombinlt munkban az eredeti dokumentumok sszes El ozmnyek elneve zs szakaszt ssze kell olvasztania, miltal egy sszefgg o El zmnyek szakasz u o jn ltre; hasonlkpp kell eljrnia a Ksznetnyilvnts, illetve az Ajnlsok szakaszok tekintetben. Ugyanakkor minden Jvhagys elnevezs szakaszt trlnie u kell.

54

6. DOKUMENTUMGYUJTEMNYEK
nnek lehet sge van a Dokumentumbl, illetve brmely egyb, e Licensz hatlya alatt o kiadott dokumentumbl gy jtemnyt ltrehozni, s az egyes dokumentumokban tallu hat licenszeket egyetlen pldnnyal kivltani, feltve, hogy a gy jtemnyben szerepl o u sszes dokumentum esetn minden ms tekintetben kveti jelen Licensz feltteleit, azok sz szerinti sokszorostsra vonatkozan. Tetszse szerint ki is emelhet egy meghatrozott dokumentumot a gy jtemnyb ol, u tovbb terjesztheti azt jelen Licensz felttelei alapjn, feltve, hogy a szban forg dokumentumhoz mellkeli e Licensz egy pldnyt, s minden egyb tekintetben betartja jelen Licensz el rsait a dokumentum sz szerinti sokszorostsra vonatkozan. o

7. SSZEFUZS FGGETLEN MUNKKKAL


A Dokumentum s annak szrmazkainak klnll, vagy fggetlen dokumentumokkal, illetve munkkkal val sszef zse egy kzs trolsi, vagy terjesztsi egysgen, u egszben nem tekinthet a Dokumentum Mdostott Vltozatnak, feltve, hogy az o sszef zs nem lesz szerz i jogvdett. Az effajta sszef zs eredmnyeknt sszegu o u zs jn ltre, m jelen Licensz nem rvnyes az abban a Dokumentummal egytt szerepl nll munkkra, hacsak azok nem a Dokumentum szrmazkai. o Amennyiben a 3. szakasz Bortszvegekre vonatkoz rendelkezsei alkalmazhatk a Dokumentum e pldnyaira, s a Dokumentum a teljes sszegzsnek kevesebb, mint egynegyedt teszi ki, gy a Dokumentum Bortszvegeit olyan mdon is el lehet helyezni, hogy azok csak magt a Dokumentumot fogjk t. Minden ms esetben a teljes sszegzs bortlapjain kell feltntetni a fenti szvegeket.

8. FORDT S
A fordts egyfajta mdostsnak tekintheto, gy ht a Dokumentum lefordtott pld nyai a 4. szakasz rendelkezsei alapjn terjeszthetok. A Nem Vltoztathat Szakaszok lefordtsa kln engedlyt ignyel a szerzoi jogtulajdonostl, mindazonltal kzzteheti a lefordtott vltozatokat is abban az esetben, ha az eredeti Nem Vltoztathat Szakaszokat is belefoglalja a munkba. E Licensz lefordtsra ugyanezek a felttelek rvnyesek, vagyis a lefordtott vltozat csak akkor jelenhet meg, ha mellette ott van az eredeti, angol nyelv Licensz szvege is. Amennyiben eltrs mutatkozna az ereu deti vltozat, illetve a fordts kztt, gy a Licensz angol nyelv eredetije tekintend o u mrvadnak.

9. MEGSZUNS
A jelen Licenszben egyrtelm en kijellt kereteken kvl tilos a Dokumentum bru minem sokszorostsa, mdostsa, allicenszelse, vagy terjesztse. Minden ezzel u szembeni sokszorostsi, mdostsi, allicenszelsi, vagy terjesztsi ksrlet a jelen Licenszben meghatrozott jogok automatikus megsz nst vonja maga utn. Azok a feu

55

lek, ugyanakkor, akik nn keresztl jutottak msolathoz, vagy jogosultsgokhoz, nem vesztik el azokat, amg maradktalanul betartjk e Licensz elorsait.

10. JELEN LICENSZ JVOBENI JAVT SAI


o o Megtrtnhet, hogy a Szabad Szoftver Alaptvny idor l id re fellvizsglt s/vagy j verzikat bocst ki a GNU Szabad Dokumentcis Licenszbol. E verzik szellemisge hasonl lesz jelen vltozathoz, m rszleteikben eltrhetnek, j problmk, j agglyok felmerlse okn. V.: http://www.gnu.org/copyleft/ A Licensz minden vltozata egyedi verziszmmal van elltva. Ha a Dokumentum jelen Licensz egy konkrt, szmozott verzijra, vagy brmely jabb verzira hivatkozik, gy nnek a szban forg vltozat, vagy brmely jabb a Szabad Szoftver Alaptvny ltal (nem vzlatknt) publiklt verzi feltteleinek kvetsre lehet osge van. Ha a Dokumentum nem ad meg semmilyen verziszmot, gy brmely a Szabad Szoftver Alaptvny ltal valaha (nem vzlatknt) publiklt vltozat megfelel.

FGGELK: A Licensz alkalmazsa sajt dokumentumaira


Ha e Licenszet egy n ltal rt dokumentumban kvnja hasznlni, akkor mellkelje hozz a Licensz egy pldnyt, tovbb vezesse r az albbi szerz oi jogi s licensz kzlemnyeket, rgtn a cmlapot kvetoen: Copyright c V AZ N NEVE. E kzlemny felhatalmazst ad nnek jelen dokumentum sokszorostsra, terjesztsre s/vagy mdostsra a Szabad Szoftver Alaptvny ltal kiadott GNU Szabad Dokumentcis Licensz 1.1-es, vagy brmely azt kvet verzijnak felttelei alapjn. A Nem Vltoztathat Szakaszok neve o SOROLJA FEL A CMKET , a Cmlap-szvegek neve LISTA, a Htlapszvegek neve pedig LISTA. E licensz egy pldnyt a GNU Szabad Dokumentcis Licensz elnevezs szakasz alatt tallja. u Ha a szvegben nincsenek Nem Vltoztathat Szakaszok, gy rjon nincs Nem Vltoztathat Szakasz-t, ahelyett, hogy egyenknt felsoroln azokat. Ha nincsenek Cmlap-szvegek, akkor rjon nincs Cmlap-szveg-et, ahelyett, hogy a Cmlapszvegek neve LISTA, s hasonlkpp jrjon el a Htlap-szvegek esetben is. Amennyiben a dokumentum halad programkd-pldkat is tartalmaz, gy azt javasoljuk, hogy e pldkat egy vlasztsa szerinti szabad szoftver licensz alatt kzlje mint pldul a GNU ltalnos Felhasznli Licensz , hogy lehet ov tegye a kdok szabad szoftverekben val alkalmazst.

56

Htlapszveg
Ezen dokumentum eredetije kszlt 2001-2002-ben a Linux-Felhasznlk Magyarorszgi Egyeslete gondozsban a MEH IKB pnzgyi tmo gatsval. A dokumentum szabadon terjesztheto s msolhat a GNU Szabad Dokumentcs Licensz felttelei alapjn.

57

You might also like