You are on page 1of 58

A GNU/Linux karbantartsa 1.0.1 rzsvel A Mithrandir Kft.

nyelvi elleno
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 verzijnak felttelei alapDokumentcis Licensz 1.1-es, vagy brmely azt kveto jn. Nem Vltoztathat Szakaszok nincsenek, Cmlap-szvegek nincsenek, a Htlapszvegek neve pedig htlapszveg. E licensz egy pldnyt a GNU Szabad Dokumentcis Licensz elnevezs u szakasz alatt tallja. s szemlyek: A mdostott vltozat kzzttelrt felelo 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 orzs


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

El ozmnyek
A GNU/Linux karbantartsa A Mithrandir Kft. nyelvi ellen orzsvel
A kiads ve: 2002.

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

Szakmai lektor
Szalay Attila sasa@lme.linux.hu

Nyelvi ellen orzs


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

Az LME ltal elkszttetett Pingvin fzeteken a Mithrandir Kft. az olvashatsg rdekben nyelvi, helyesrsi javtsokat vgzett. termszetes szemlyek szakA Mithrandir Kft. valamint a nyelvi javtst vgzo mai ellen orzst, javtst nem vgeztek. k s a szakmai lektorok munNem tettk ezt (szakmai javts), akkor sem a szerzo z kja irnti tiszteletb ol , ha a lertak nem feleltek meg szakmai meggyo odsknek. A Mithrandir Kft. javtst vgz o szakemberei, illetve a Mithrandir Kft. mint jogi ssget nem vlszemly a lertak helyessgrt, esetleges avultsgrt semmilyen felel o lal. 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 oforrsok korltozsa . . . . . . . . 1.6. Teljestmny javtsa . . . . . . . . . . . . . . . . 1.7. Megfelel o hardver . . . . . . . . . . . . . . . . . . 1.8. Szoftveres teljestmnyjavts . . . . . . . . . . . . 1.9. Logical Volume Manager s naplzott fjlrendszer . 1.10. Naplzott fjlrendszerek . . . . . . . . . . . . . . 1.11. Naplelemzs . . . . . . . . . . . . . . . . . . . . 1.12. Alapvet o biztonsgi belltsok . . . . . . . . . . . 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 o fjlok, de rdemes megjegyezni, hogy a hlzati interfszek nem k mshol lnek. Az interfszeknek klnbzo tulajdonsgai eszkzvezrl o fjlok, 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

ethernet A listn lthatjuk, hogy kt interfsznk van: egy eth0 nev u, ez az els o krtya, az lo pedig a loopback interfsz, ez egy tisztn szoftveres interfsz, amivel egy gpen bell is lehet hlzati szolgltatsokat hasznlni. A listbl egyszer u, forgalommal 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 l 192.168.10.254-ig terjednek, a ban van a gp, ahol az IP cmek 192.168.10.1-to 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

csomagokat a rendEnnek hatsra a 192.168.10.0/255.255.255.0 hlzatra men o l mr ltjuk a loklis hlzatot, elkezdszer az eth0 interfsz fel fogja kldeni. Innento hetnk 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. router IP cmre. Ha ez Ehhez szksgnk lesz a mi hlzatunkat a vilggal sszekt o 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 unik, hogy minden rendben van, akkor (vagy akr kongurls kzben is) 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 oek bonyolultabb routeolst hasznl kongurcik, pldul dinamikus 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 o lekrdezseket s belltsokat hajthatunk vgre a segtsgvel, a szoksos fjlkezel o parancsokat hasznlva. Most csak a hlzat szempontjbl foglalkozunk ezzel. Itt bellthatjuk, hogy a gpnk ne vlaszoljon a broadcast cmre kldtt ping csomagokra (vagy hogy egyltaln ne vlaszoljon rjuk), megadhatjuk, hogy milyen re vs ur un adjon vlaszt a ping csomagokra (mondjuk szzadmsodpercenknt kett o laszoljon), hogy ne routeoljon az interfszei kzt, s hogy prblja kisz urni a hamis IP parancsokkal llthatjuk be: csomagokat. Ezeket a kvetkezo

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

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 urst.

l fgg Termszetesen ezeken a belltsokon az ignyekto oen vltoztatni kell, pldul egy routeren nem j tlet az interfszek kzti csomagtovbbtst letiltani. Mivel ket valamelyik indulskor ezek a belltsok rendszerlelltskor elvesznek, rdemes o 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 lekpezst nameserverek erarchikus felpts u. A nv IP cm oda-vissza trtno 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 oen kitlteni. Itt a szerverek IP cme mellett azt is bellthatjuk, hogy a gpnk ket. Egy milyen domainekben keresse a gpeket, ha nem a teljes nevkkel keressk o 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 ol fut szolgltatsok
Az inetd egy klnleges szerver program, egyetlen feladata, hogy ms programokat indtson a megfelel o krsek hatsra, pldul ftp, telnet, pop3 szervereket lehet 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 od o sorok megjegyzst jelentenek, ezeket gyelmen kvl hagyja a program. : 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 o szolgltats TCP vagy UDP kapcsolatokat hasznl-e. A protokoll tcp vagy udp lehet, hasonlan az el obbi meggondolsokhoz. A wait/nowait azt jelenti, hogy az 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 ubb egy 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 OpenSSH val fogunk foglalkozni, mert ez ingyenes, szabadon felhasznlhat. Az ssh nagy vonalakban gy m ukdik, hogy a kliens s 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 ol. A szerver a kongurcis fjljt ltalban a /etc/ssh/sshd_config fjlban, vagy a /usr/local/etc/ alatt tartja. A kongurcis fjl egyszer u opci-rtk prokbl ll. Plda egy felkommentezett kongurcis fjlra:
# A 22-es alaprtelmezett ssh porton fog hallgatni a szerver. Port 22 # A kettes verzij protokollt fogja el oszr # 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 meggy oz odni, # 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 ellen orizzk. 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. ol # Ezt PAM segtsgvel is el lehet intzni, err obb lesz sz. # ks #PrintMotd no #PrintLastLog no KeepAlive yes # Naplrs o az 1.11. rsz o kett # A kvetkez o lesz. # elolvassa utn teljesen rthet SyslogFacility AUTH LogLevel INFO # A .rhosts-os authentikcit letiltjuk, # mert nem biztonsgos. RhostsAuthentication no # # A .rhosts fjl s a tvoli gpek host-kulcsaival # trtn o authentikcit is letiltjuk. RhostsRSAAuthentication no # Az RSA kulcsos authentikcit engedjk, az j. ol is lesz sz. # Ehhez kulcsokat kell generlni, err RSAAuthentication yes # Az egyszer u jelszavas authentikcit is engedjk. 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 bekapcsolsa esetn az interaktv # A kvetkez # bejelentkezsekhez a login programot hasznlhatnnk. #UseLogin no # Az sftp-t szintn engedjk. Ezzel ftp-szer u, de # 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 uleg a legtbb esetben jk lesznek, de azrt rdemes jl tgondolni, hogy minden megfelel-e az ignyeinknek. Az ssh parancsot alapvet oen az
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 u gpen az ls parancsot akarom futtatni $ ssh debi ls gabor@debis password: GNUstep NetPIPE.out ... $

re a -v-t rdemes Az ssh parancsnak rengeteg kapcsolja van, ezek kzl egyel o beszd megemlteni, ennek hatsra bo u lesz az ssh. Ez segti a hibakeresst. A tbbir ol menet kzben lesz sz. 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 u elfelejteni. Plda a kt hasznlati mdra:

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 o" zsh promptja, innent ol hasznlhatjuk az # ssh-agent szolgltatsait. ol, az agent is kilp. ol a shellb # Ha kilpnk ebb $

a msodik:
# Ilyenkor gy kell elindtani. $ eval ssh-agent # Kirja, hogy elindult. Agent pid 1312 ol hasznlhatjuk is. # s innent $ # De el ne felejtsk lel oni! $ 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

automatikus dolgok vgrehajtsra is, Az RSA kulcsokat hasznlhatjuk klnbzo 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 l engedjk be, s csak mst). Pldul az ujkulcs nev u kulcsunkat csak a debi nev u gpr o 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 gpr ol lehet hasznlni, csak az uptime # 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 lps: msolni a tvoli gpre, ami a tvoli gpen /tmp/p nven fog megjelenni. Els o dntsk el, hogy milyen parancsnak kell lefutnia a tvoli gpen. Erre egyszer uen rjhetnk, 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 oen trjuk a tvoli gpen a .ssh/authorized_keys2 fjlt, s mr beszd m ukdik is. A -v opcit kihagyjuk, azt a bo u md miatt kldte.
# Leellen orizzk a .ssh/authorized_keys2 tartalmt. [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 u gpen /tmp/a helyett /tmp/p fjlban fog megjelenni a proba fjl tartalma.

1.3.2. Qmail
Mirt pont a qmail? A qmail egyszer uen kongurlhat, biztonsgos, s elgg j teljestmny u. Ugyanakkor rdemes megjegyezni, hogy van egy-kt hinyossga, pldul tl ks on ellen orzi, hogy van-e adott nev u felhasznl vagy alias a rendszernkn; minden egyes kimen o levlhez j kapcsolatot nyit; a licence pedig lehetne kicsit bartsgosabb. rdemes megnzni a postfix programot (http://www.postx.org/), de annak jval bonyolultabb a kongurlsa. felhasznl azonostval fut proA qmail biztonsgi okok miatt tbb, klnbzo cesszre 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 uleg csak forrsnyelv u csomagot fogunk tallni, benne az utastsokkal a fordtshoz. Az egyetlen paramter, amire a fordtskor rdemes odagyelni, az a conf-split fjlban lv o szm, ez befolysolja, hogy a mail queue hny knyvtrra 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, rzse kvetkezhet, ha sikerlt lefordtani s feltelepteni, akkor a kongurci ellen o mivel a kongurcis llomnyok is a fordts sorn, a helyi sajtossgoknak megfelel oen jnnek ltre. A qmail a kongurcijt eredetileg a /var/qmail/control alatt tartja, mindent kln fjlban az egyszer usg kedvrt. A knyvtron a disztribcik vltoztatni 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 kpes a levelez helyett (teht ennek a kitltsvel mr szinte m ukdo o szerver). 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. leveleket fogja az smtp szerver Az rcpthosts fjlban felsorolt hostnevekre jvo processz elfogadni, hogy ezutn a queue-ba bekerlve azokat valahogy kzbestse a rendszer. leveleket fogja loklisknt kezelni a A locals fjlban felsorolt hostnevekre jvo 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 uleg elbr a hardver. A qmail a concurrencylocal fjlban megadott szm processzt fog hasznlni a loklis kzbestshez. Ezzel mr jobban kell vigyzni, mert pldul egy sok listaszoftver er pldnyban fut nagy levelezo osen megfoghatja a gpet. csomagok kzt volt a qmail, s akkor van J esetben a disztribcinkkal jvo hozz indtszkript is, de ha nem, akkor neknk kell megrnunk egyet. El kell int a dtanunk a szerver programot, s a hlzatra hallgat SMTP dmont is. Az els o paramter/var/qmail/bin/qmail-start programmal tehetjk meg, ami elso clt vrja, mg a tbbi paramknt az alaprtelmezett loklis kzbestsnek megfelelo ter a logolst befolysolja. Egy konkrt plda:
exec env - PATH="/var/qmail/bin:$PATH" \ qmail-start |preline procmail splogger qmail

Az els o sor csak trli a felesleges krnyezeti vltozkat, a msodik sor elindtja 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 oen kikldi a program (itt a procmail) inputjra. Ezek utn jn a qmail-smtpd futtatsa. Ezt legegyszer ubben az ucspi-tcp a http://www.qmail.org/ oldalrl, de csomag segtsgvel tehetjk meg. Ez is letltheto jvel feltelepteni. Ez a csomag egyszer rdemesebb a disztribcink csomagkezelo 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 o szablyokat hasznlja, a gp brmelyik IP cmre fogadjon el kapcsolatot (a 0 az), s az smtp porton hallgasson. A relay-ezst a qmail-smtpd programnak a RELAYCLIENT krnyezeti vl l tcpwrapper segtsgvel, akr toz belltsval engedlyezhetjk, akr inetd-bo leges a tcpserver segtsgvel. Az utbbi hasznlathoz ki kell tlteni egy tetsz o fjlt, pldul gy:
127.0.0.1:allow,RELAYCLIENT="" 192.168.20.:allow,RELAYCLIENT=""

Ennek hatsra a loklis gpr ol s a 192.168.20.0/255.255.255.0 hlzaton lv o gpekr ol kldhetnek levelet a szerveren keresztl, a szerver rcpthosts fjljban nem szerepl o gpnek. Ebb ol a fjlbl mg egy binris .cdb adatbzist kell csinlni:
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 d van egy postmaster aliasunk. A .qmail fjlokban a pipe jellel kezd o o sor hatsra levea qmail a pipe jel utn lv o program standard inputjra fogja kldeni a bejvo leket. /-rel kezd od o sor hatsra az adott mailboxba vagy Maildirbe fogja tenni a bejv o leveleket. Az utbbiba akkor, ha megint csak egy / jel van a sor vgn. 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 uveletekhez az egyszer u felhasznltl magasabb privilgium-szint kell, s radsul a forgalmat sem titkostja (azaz a hlzat lehallgatsval ssze lehet gy ujteni a felhasznlk 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 unik a tbbinl, ezrt ezt ismertetem.

15

A szerver inetd-b ol fut, minden kapcsolathoz kt processzt indt, egy privilgizltat a klnbz o hlzati m uveletek elvgzshez (amikhez a norml privilgiumszint kevs lenne), s egy msikat, ami az pp bejelentkezett felhasznl azonostjval fut. A privilgizlt processz sem rootknt fut, hanem a Linux capabilities nev u mechanizmust hasznlva egy egyszer u felhasznlknt gy, hogy kzben a jogot az 1024t ol kisebb hlzati portok megnyitsra megtartja. Radsul egy msra nem hasznlt 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 vltozatok esetben csak a fjlok elrsi dtott, vagy ms disztribcik rszt kpezo tvonalban vrhat vltozs. sort, majd Inetd belltsa: a /etc/inetd.conf fjlba rjuk be a kvetkezo 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 o kitltsvel. A /etc/hosts.allow fjlba pldul anonymous ftp esetn ilyesmit lehet rni:
# Beengednk mindenkit, akinek feloldhat az IP cme, kivve ha a # a nv visszaellen orzsnl nem egyeznek az IP cmek. vsftpd: KNOWN EXCEPT PARANOID

A kongurcis fjl: /etc/vsftpd.conf. Ez egyszer u opci=rtk pro sgjel kt oldaln. A fjlban sokbl ll. Fontos tudni, hogy nem lehet szkz az egyenl o a megjegyzseket a szoksos soreleji # jel jelzi. Elg sok opci logikai rtk u, ezeket 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 u felhasznlra. Ennek a felhasznlnak a home 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 ot enged ore kongurlni az ftp szervert. write_enable Engedi-e az rst az ftp szerver (feltlts, stb.). local_umask Ez nem logikai rtk u, azt mondja meg, hogy milyen umaskot hasznljon 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. mlva bontsa a ttlen kapcsolatokat. Nem idle_session_timeout A szerver mennyi ido rdemes se tl nagyra, se tl kicsire lltani. A hasznlhat rtkek valahol 60 s 600 msodperc kzt lehetnek. mlva bontsa a szerver, data_connection_timeout Az adatkapcsolatokat mennyi ido ha nincs rajta forgalom. (Az utbbi kt paramtert msodpercben kell megadni.) nopriv_user Egy nem privilgizlt, az ftp dmon m ukdtetshez fenntartott felhasznl 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 unik, de pldul egy ilyen mdban trtn o 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 ujti ssze a lehozand fjlok listjt.

1.3.4. stunnel
Az stunnel segtsgvel titkostott SSL (Secure Socket Layer) kapcsolatba csomagolhatunk klnbz o protokollokat, mint pldul POP3, vagy IMAP. gy pldul SSLes szerverprogram segtsgvel. EzPOP3 szerver valsthat meg, egy SSLt nem ismero zel lehet vdekezni a hlzatlehallgats ellen. Az stunnel-t lehet inetd-b ol vagy nmagban futtatni. A kt md csak egy 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 valban az, akinek lltja magt. o l klnllra. -d segtsgvel llthatjuk t az stunnel m ukdsi mdjt inetd-sro Ez egy hlzati port nevt vrja paramterknt. 17

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


# /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 ukdik-e:


$ 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 bb szksgnk lesz arra, hogy magunknak generlgenerl egyet, de lehet, hogy kso junk 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 ket. El nak fordtsuk le o oszr az mgetty kongurcijval fogunk foglalkozni. 18

1.4.1. Mgetty
Az mgetty egy getty-szer u program, de modemekhez terveztk. Valamelyik terminleszkzn egy felhasznlnvre vr, s utna meghvja a login, vagy valamilyen ms, bejelentkezst kezel o programot. Ezen kvl kezelni tudja a modemek kln tt felvenn, fax bz o funkciit, pldul modem inicializls, kicsrgsek szma miel o fogadsa. Clunk az lesz, hogy a modem valahny csrgs utn fogadja a hvst, majd az mgetty elindtson egy pppd-t a soros vonalon. l szoktk futtatni, ehhez Az mgettyt a getty parancshoz hasonlan init-bo 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 z egy mgetty programot a ttyS1 soros portra, ha az elo o mgetty kilp. parancssori paramterei lehetLthat, hogy az mgetty parancsnak klnbzo nek, de ezek kzl csak azokkal fogunk foglalkozni, amelyek neknk fontosak. Ezek a kvetkez ok: -s, ezzel adhatjuk meg a modem sebessgt, ezt rdemes 115200-ra lltani; 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 u felhasznl jelentkezik be, akkor az adott felhasznlazono bejegyzst az stval az adott program fog lefutni, s az mgetty lerak egy megfelel o 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, tpus modemjeink vannak, akkor hogy nem akarunk faxot kezelni. Ha klnbzo portonknt bellthatjuk ezeket, port portneve (pldul port ttyS1) sorokkal portokra vonatkoz bejegyzseket. vlaszthatjuk el egymstl a klnbzo Plda egy minimlis mgetty.config fjlra:

19

# Ngyes szint u nyomkvets. debug 4 # 115200 bauddal kommuniklunk a modemmel. speed 115200 # A bejelentkezs el ott a /etc/issue.mgetty # 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 nev gvel egy /etc/nologin.ttyS1 (vagy ms, a soros portnak megfelelo u) fjl 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 b obeszd ure lltjuk. 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 obeszd u mdjt, hogy az mgetty tudja, hogy mikor csrg ki a modem, 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 o szolgltatsokat nyjtja, mint pldul a vgpontok kzti authentikci, kommunikcis paramterek, tmrts, stb. belltsa. Ahhoz, hogy a modemes behvszervernk m ukdjn, minimlisan a kvetkez o szoftverekre lesz szksg: egy kernel soros port s ppp tmogatssal, 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 u lesz. Kitltjk a /etc/ppp/options fjlt, jelszavakat 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 megfelel oen lehet # 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, # err ol ks obb mg lesz sz. 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 tetsz oleges, # 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 o loklis hlzatnak egy nem # 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 o options.ttySxx fjlokban. 192.168.10.10:192.168.22.33 # A kvetkez o kt sorban szinte az sszes # 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 uen a kliens a kliens neve, a szerver a szervernk neve, a titkosjelsz 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 o ethernet interfsznek arp tbljba, hogy ha a kliens hardvercmt szeretn tudni valamelyik gp a szerver hlzatn, akkor a szerver hardver cmt

21

szr eljutkapja meg hozz. Ennek hatsra a kliensnek sznt hlzati csomagok el o ket a klienshez. A routols jl fog m nak a szerverhez, majd az tovbbroutolja o ukdni, 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 hlzat fel, annak ellenre, hogy a kliens IP cme a (mondjuk) 255.255.255.0-s klso kls o hlzatnak is rszt kpezi. 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 o opci fjlok kitltsvel elrhetjk, hogy a kt soros vonalon 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 o szkripteket futtat a ppp kapcsolat kezdetekor s vgekor, ezekkel sok mindent meg lehet oldani, pldul t uzfal tkongurls, forgalommrs. A 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, paramterekkel s krnyezettel ha volt authentikci. Ezeket a programokat klnbzo futtatja le, amikb ol a ppp link klnbz o paramtereit tudhatjuk meg: 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 VPN t (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 ol s az ssh csomagrl is volt sz, most ezt ismertetem. A kon dni a ppp gurci jval egyszer ubb lesz, mint a behvszerver esetben. Nem kell tr o authentikcival, vagy hogy melyik soros vonalat hasznlja majd a ppp. A link kt vgt az rthet osg kedvrt hvjuk kliensnek s szervernek. A kliens oldal fog ssh parancsot hvni, amit a szerver oldali sshd fogad. A dolog gy fog m ukdni, hogy a pppd a kliensen indulskor ssh segtsgvel bejelentkezik a szerverre, s ott elindt egy msik pppd parancsot. Ezzel meg is van a ppp link kt vge. A routolson, csomagsz ursen (ha erre szksg van) a kt oldalon a /etc/ppp/ip-up s a /etc/ppp/ip-down segtsgvel lehet mg nomtani. El oszr mindkt oldalon be kell kongurlni a pppd csomagot. Ehhez egy /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 o kapcsolatbontst.

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 szerverr ol engedjk, # csak /usr/sbin/pppd call proba2-t futtathat.

A szerveren a PAM ot 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

l ks sorokat, ha van benne ilyen. Ezeknek a jelentsro obb lesz sz. 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, tetsz oleges azonostt is hasznlhatunk. P0:23:respawn:/usr/sbin/pppd call proba1

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

1.5. Felhasznli er oforrsok korltozsa


1.5.1. Ulimit
forrs-korltoz hvsaihoz. Az ulimit egy shell interfsz a kernel ero Az ulimit segtsgvel klnbz o er oforrsokat korltozhatunk, mint pldul t, maximlisan felhasznlhat memrit. Az a maximlisan felhasznlhat CPU ido l az ulimit hvssal lehet hasznlni, vagy ulimit funkcionalitst vagy shellbo 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 uleg a hasznlhat memria mennyisgt korltozzk, ezek a kvetkez ok: nek a -l segtsgvel megadhatjuk, hogy mennyi memrit jellhet nem swapelhet o 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 ukdik gy, ahogy az ember vrn, j vigyzni ket, miel velk, s letesztelni o ott lesben hasznlnnk. Ennek ellenre rdemes foglalkozni 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 kap, ha ezt tllpi, akkor -t ezzel korltozhatjuk, hogy egy processz mennyi gpid o egy szignlt kap, amit ol kilp; -u az egy felhasznlra jut processzek maximlis szmt hatrozhatjuk meg. Egy plda a CPU id o korltozsra:
# Indtunk egy bash shellt. $ bash # 10 msodperc gpid ot adunk neki. $ ulimit -t 10 # Shell vgtelen ciklus, hogy felzablja # a 10 msodperct. $ while :; do :; done # Kifutott az id ob ol, a rendszer lel otte. 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 PAM ot hasznlnak az authentikci elvgzshez. funkcikat valstja meg, ezek az A PAM a bejelentkezssel kapcsolatos klnbzo authentikci, a felhasznl kiltnek megllaptsa, az account menedzsels (ezzel egyb korltozsokat lehet mg az authentikci mell denilni), a session mene tt s utn fut le, s klnbz dzsels (ez a session megkezdse elo o adminisztrcis 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 u fjl tartozik. Hogy egy szolgltatshoz mi tartozik, az ltalban fordtsi id oben d ol el. A fjl felptse:
modultpus fontossg-jelz o modulneve modulparamterek

A modultpus a fent emltett funkcik szerint auth, account, session, l password lehet. Egy modultpushoz tbb ilyen sor is tartozhat, ezeket a fjl elejt o bb lert szablyoknak megfelelo en. a vge fel haladva fogja vgigjrni a PAM, a kso Ez fontos a PAM m ukdse szempontjbl. A fontossg-jelz o azt jelzi, hogy mi trtnjen, ha a PAM az adott sornl sikeresen k kzl lehet egy: vagy sikertelenl hajtotta vgre a feladatt. Ez a kvetkezo required Az adott modul sikertelensge esetn a m uvelet (amit a modultpus hatroz meg) sikertelen lesz, de a rendszer a tbbi modult is vgig fogja prblni. requisite Az adott modul sikertelensge esetn a m uvelet sikertelen lesz, de a rend l visszatr a PAM ot hasznl szer a tbbi modult nem fogja vgigprblni, egybo alkalmazshoz. sufcient Ha az gy jellt modul sikeresen elvgzi a funkcijt, akkor a teljes m uvelet is sikeres lesz, s a tbbi required-knt megjellt modult nem fogja vgigjrni tt). Ha a modul nem (ha egy msik required sem volt sikertelen e modul elo 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 uvelet sikeressgt, kivve, ha ez az egyetlen modul ami alapjn el lehet dnteni a teljes m uvelet sikeressgt. Van egy jabb md is a modulok fontossgnak jelzsre, de ez nincs elg jl dokumentlva, s jval sszetettebb a fent lert mdnl. paramtereket lehet tadni. Vannak Modulparamterek: a moduloknak klnbzo modulonknt vltoz s ltalnos paramterek, ezek kzl a leggyakoribbak: debug A modul hibakeresst segt o zeneteket fog kldeni a syslog dmonon keresztl. zeneteket kldeni az alkalmazsnak. no_warn A modul nem fog gyelmezteto 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. informcikat tesz expose_account A modul a felhasznlhoz kapcsold klnbz o elrhet ov, pldul kirja a nevt amikor a jelszt kri. Ez bartsgos, de nem tl 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 orizze, elg er os-e. Klnbz o ellen orzseket hajt vgre a 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 u, kisbet u, vagy egyb karakter van a jelszban. Pldul nagybet uk esetben plusz eggyel szmt az sszes nagybet u, amg a megadott szmtl kevesebb nagybet u van a jelszban. A difok= paramter azt mondja meg, hogy legalbb hny karakternek kell msnak lennie az j s rgi , azt mindenkppen jelszban (de ha a karaktereknek legalbb a fele klnbz o sebb MD5s jelszavak hasznlatt. elfogadja). Ez a modul tmogatja az ero 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 u vltoznv=rtk prokbl 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 o alapjn extra csoportazonostkat ad a felhasznl processzeinek. A kongurcis fjlja a /etc/security/groups.conf. A fjl szerkezete:
szolgltatsnv;terminlok;felhasznlk;id o;csoportok

Ahol a szolgltatsnv a PAM ot hasznl szolgltats neve, a terminlok a hasznlt terminl neve, a felhasznlk a felhasznlk listja, a csoportok pedig az bb emltett felextra csoportazonostk, amiket a felhasznl megkap, ha az el o t kivve &, |, ! opertorokkal ttelek teljeslnek. A listk logikai listk, az ido t intervallumknt lehet meglehet bel olk logikai kifejezseket alkotni. Az ido 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 o felhasznlk mindig megkapjk az extra oppy s audio 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 szveget fog kirni neki. volt bejelentkezve, akkor egy dvzlo 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 forrslehet egy aszerint, hogy mit akarunk korltozni. A korlt_rtke az er o hasznlat fels o korltjt adja meg. Teht az adott nev u vagy adott csoportba t tartoz felhasznl (vagy * esetn mindenki) soft, hard limitjt (vagy mindkett o a -- esetn) llthatjuk gy be. Az egyni limitek fellbrljk a csoportlimite forrs nevt s rtkt, s a soft vagy ket. Ha nem adjuk meg a korltozand ero 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 ukds rdekben ennek a modulnak az auth sufficient ... modulok el ott kell szerepelnie. Hasznlata:
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 o hz, 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 orizni tudja a klnbz o shadow-paramtereket, mint pl rzshez tipikusan egy ilyen dul utols jelsz vlts. Ehhez az account elleno 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 t NIS hlzat esetn. A use_authtok hatsra a modul minden esetben az o megel oz o modul ltal belltott jelszt fogja hasznlni. A not_set_pass hatsra a modul gyelmen kvl hagyja a korbbi modulok ltal belltott jelszt, moduloknak. s az ltala beolvasott jelszt sem fogja tovbbkldeni a kvetkez o A remember= paramter hatsra a modul a /etc/security/opasswd fjlba visszamen oleg adott szm jelszt eltrol, s megakadlyozza, hogy a felhasznl ezek kzl vlasszon jra egyet. Vgl a nullok paramter hatsra engedni fogja a jelszvltoztatst akkor is, ha a rgi jelsz res volt. A jelszmenedzsel o md hasznlata ezek utn valami ilyesmi lehet:
password required pam_unix.so md5 nullok

Vgl a session menedzsmentr ol: a pam_unix modul egyszer uen csak logolja a session elejt s vgt a syslog dmonon keresztl. Hasznlata:
session required pam_unix.so

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

#%PAM-1.0 ### Authentikci. # A /etc/nologin ellen orzse. 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 ellen orzs. orzse. # Jelsz s account lejrat ellen account required pam_unix.so ### Session adminisztrci. # A bejelenetkezs logolsa. session required pam_unix.so ok sikeressge nem olyan fontos: # A kvetkez # 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 oforrs-korltokat. o er # vgl belltja a klnbz session required pam_limits.so ### Jelszmendzsels. # Cracklib segtsgvel # er ossgt, password required # ha az sikeres volt, a # password fjlba. password required

ellen orizzk az j jelsz 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 orztt krlmnyek kztt tevkenykedhetnek, nem tudjk tele v teszi, tlteni a fjlrendszereket, nem veszik el egymstl a helyet. A quota lehet o ek hogy a felhasznlk vagy csoportok ezen belltsai fjlrendszerenknt klnbz o legyenek, teht szemlyenknt (csoportonknt) vltozhat az egy fjlrendszeren belli block, illetve inode korlt. A quota belltsa A quota m ukdshez el oszr is meg kell gy oz odnnk rla, hogy a kernelnkbe vane quota tmogats fordtva, ha nincs, ezt meg kell tennnk. jnek segtsgvel fel kell teleptennk a Ezek utn disztribcink csomagkezelo 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 o fjlrendszereken a quota.user s quota.group fjlokat: 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 rzst a quota.* fjlokat is megcsinltuk), elindthatjuk a fjlrendszerek quota ellen o 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. ket jelentik: Ezeknl a parancsoknl a kapcsolk a kvetkezo -a az adott parancs nzze vgig az sszes quotzott fjlrendszert; -v legyen b obeszd u, futs kzben informljon arrl, hogy mit csinl; rizze -u a felhasznlk quotjval (is) foglalkozzon (kapcsolja ki, be, vagy pedig ellen o 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 o el nem telik a soft limit tlpst ol kezdve. A hatrokat megadhatjuk kln a blockok szmra (egy block 1024 byte), illetve a fjlok (inodeok) szmra. Interaktv mdban az EDITOR krnyezeti vltoz megfelel o t a munkhoz. belltsval vlaszthatunk szvegszerkeszto 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 sg Jelenleg quott a (hasznlhat mino u) linuxos fjlrendszerek kzl csak az XFS s k kiegsztsek. az ext2 tmogat, ReiserFShez elrheto

1.6. Teljestmny javtsa


1.6.1. A teljestmny mrse
Miel ott elkezdennk hangolni a rendszernket, fell kell derteni, hogy mivel lehet (majd) problma. Ehhez vannak klnbz o benchmark programok, amivel j esetben hasonl terhelst tudunk el olltani, mint amilyennel a rendszernknek meg kell majd birkznia. 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 u merevlemez benchmark rengeteg van, ilyenek a bonnie, 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 t hasznl el. gyelhetjk, hogy mit is csinl, milyen clra mennyi gpido A vmstat segtsgvel elg jl el lehet dnteni, hogy a rendszernknek hol vteni ahhoz, hogy javtsunk a teljestmvan a sz uk keresztmetszete, mit rdemes bo 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 o hardver


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, en rdemes SCSI samba s az elektronikus levelezs is), akkor a vrt forgalomtl fgg o merevlemezeket hasznlni. Az IDE s SCSI merevlemezek sebessge kzt manapsg egyre cskken a klnbsg, de alapvet oen ms architektrjuk miatt az IDE merevlemezek kezelse tbb gpid ot eszik, mint az SCSI k, ami egy nagy forgalm szerveren problmt jelenthet. A forgalmat nagyon nehz el ore megbecslni, nem lehet tudni, hogy pldul egy www szerver sikeres lesz-e, ezrt ha csak a legkisebb eslyt is ltjuk, hogy a forgalom megn ohet, vegynk SCSI t. tbb eszkzt tud meghajtani mint Az SCSI tovbbi el onye, hogy egy SCSI vezrlo egy IDE vezrl o, ezt is rdemes gyelembe venni. Ha mg tbb pnznk van, vehetnk 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 ket kln merevlemezekre tenni. mes o

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 u szervert zemeltetni. rz rdemes olyan krtyt venni, ami tud hardveres elleno osszeg-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 o adatok egyszer sem mennek t a processzor buszn. Ilyen pldul a 3Com 905C, s a gigabit ethernet krtyk. , a sendle rendA hlzati krtyk ezen kpessgeinek kihasznlshoz megfelel o szerhvst tmogat szoftver kell. Az ftp szerver szoftverek kzl ilyen pldul a vsftpd s a proftpd.

1.7.3. Processzor
Terhelst ol fgg oen er os processzorra lehet szksg. Sima statikus fjlszerver esetn, a megfelel o hardveres krtssel egy gyengbb processzor is nyugodtan brni fogja a terhelst, 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 u. Negatv pldaknt rdemes megemlteni a rgi, msodszint u cache nlkli Celeronokat.

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

1.8. Szoftveres teljestmnyjavts


1.8.1. Megfelel o fjlrendszer-tpus kivlasztsa
Elg sok fajta linuxos fjlrendszer van, ezek kzl legalbb hrom hasznlhat min o sg u: a rgi ext2, a Reiserfs, s az SGI-fle XFS. Az ext2 nagyon j teljestmny u nagy fjlok esetn, illetve amg a knyvtrakban t fogyaszt. J blokklefoglal algoritmusa miatt kevs fjl van. Nagyon kevs gpido 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 uleg ez a legjobb. 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 ot eszik az ext2 fjlrendszernl. El onys lehet levelez o szervereknl.

1.8.2. Megfelel o szerverszoftver hasznlata


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 u kernelben fut www szerver. Ez utbbi mr tud anonymous ftpt 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 ol a fjlokbl cat segtsgvel kiolvashatk az rvnyben lv o rtkek, s egy tirnytott echo paranccsal egyszer uen megvltoztathatk. 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 szm a a /proc/sys/fs/file-nr fjlbl tudhatjuk meg. Ebben az elso 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 hatrt. ban tallhat hlzati-port intervallum felso 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 szm viteli sebessgt, ezt hasznlhatjuk vltoztatsaink hatsnak mrshez. Az els o 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

bbi belltsoknl. Az gy kapott informcit felhasznlhatjuk a kso A -m kapcsolval bellthatjuk, hogy hny blokkot olvasson be a merevlemez egyszerre. A maximlis bellthat rtket kiolvashatjuk a hdparm -i parancs kimenetnek MaxMultSect mez ojb ol. A lineris tviteli sebessget nvelhetjk ennek a 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 ukdne jl a merevlemeznk. 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 o, a Logical Volume Group szint a partcik (vagy egyb blokkos eszkzk) felett egy egyestett rteget kpez, azaz tbb blokkos eszkzt sszevonhatunk egy Volume Groupba (ezentl csak VG-be). vteni, gy tmretezni, A VGket menet kzben lehet jabb blokkos eszkzkkel b o stb. l csak LV knt fogunk A VGket tovbb lehet bontani Logical Volumeokra (innento hivatkozni rjuk), ezekre lehet majd fjlrendszert tenni, vagy mshogy blokkos esz fjlkzknt hasznlni. Az LV ket is t lehet mretezni menet kzben, s ha megfelel o rendszert tesznk r, ami szintn tmogatja a menet kzbeni tmretezst, akkor egy httrtr-rendszert kap az ember. rugalmas, menet kzben tmretezheto 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. szr el A Logical Volume Manager hasznlathoz elo o kell kszteni a partciinkat erre: fdisk segtsgvel (vagy valami ms partcionl programmal) a partci tpust hexadecimlis 8e-re kell lltani. Ezek utn a
pvcreate /dev/blokkeszkznv

le kszteni, majd a PV kb segtsgvel gynevezett Physical Volumeot (PV ) lehet belo ol VGt:
vgcreate proba /dev/blokkeszkznv1 ...

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

Ennek hatsra a rendszer ltrehoz egy 200 MB-os elsolv nev u LV t, a proba nev u VGre. Ezek utn jhetnek az rdekesebb dolgok: az lvextend segtsgvel tmretezhetjk az LV nket. Arra vigyzzunk, hogy ha nagyobbra mretezzk, akkor mindig el oszr az LV t lltsuk nagyobbra, s csak aztn a fjlrendszert rajta, ha pedig kisebbre vesszk, akkor el oszr a fjlrendszert, aztn az LV t mdostsuk. Az LV mdostshoz 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 PV ket, illetve a vgreduce paranccsal vehetnk ki alla PV ket. A vgreduce parancsot csak akkor hasznlhatjuk, ha az adott PV t nem hasznlja a rendszer. A pvmove parancs segtl sgvel egy PV r ol mshov kltztethetjk az adatokat, gy akr egy merevlemezr o egy msikra tkltzhetnk anlkl, hogy a rendszert e miatt le kellene lltani. Persze merevlemez cserjhez, vagy ms kongurcival kapcsolatos munkk elvgzshez proba nev ett ol mg lehet, hogy le kell llni. Ha pldul a /dev/hda3 partcin lvo u kppen VGnket t akarjuk kltztetni a /dev/hdc3 partcira, akkor azt a kvetkez o tehetjk meg:
# Kib ovtjk a VG-t a hdc3-mal. 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. v az utbbi vekben, Linux alatt egyre tbb naplz fjlrendszer vlt elrheto mindegyik ms min osg u, ms tuds. Emlts szintjn ezek a Reiserfs, az SGIfle XFS, az IBM-fle JFS, az ext2 leszrmazottja az ext3, illetve a Tux2 nev u, szintn ext2 fjlrendszerb ol szrmaz failsafe fjlrendszer. vel fogok fogEzek kzl a leghasznlhatbb a Reiserfs, s az XFS. Itt az elso lalkozni. leg kis fjA Reiserfs egy kiegyenslyozott fkon alapul fjlrendszer, emiatt f o lok kezelsnl gyorsabb trsainl. Ezen tulajdonsgt kihasznlva nagy teljestmny u fjl, s levelez oszerver pthet o vele. Tovbbi el onys tulajdonsga, hogy tmogatja a lemountols nlkli tmretezst, ami jl prosthat az LVM LV tmretezsvel. t eszik, mint pldul az ext2, illetve A Reiserfs htrnya, hogy tbb gpido 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 uleg kedvenc disztribcinkban is megtalljuk ezeket. 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. segtsgA reiserfs extra mount opcii a notail s a resize=. Az elso vel kikapcsolhatjuk a kis fjlok s a fjlvgek klnleges kezelst. Ez gyorsthatja a fjlm uveleteket, illetve rgi lilo-nl szksg van erre, klnben nem fogunk tudni bootolni a fjlrendszernkr ol. A helyes bootolshoz ezt az opcit a kernel helyrettele s a lilo futtatsa el ott kell bekapcsolni. 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 o blokkos eszkzt ol. A resize hasznlatval csak nvelni lehet 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 uen megrhatunk egy olyan szkriptet, aminek a segtsgvel egyszerre mretezhetjk t a fjlrendszert, s az LV t, amin a fjlrendszer l:
#!/bin/sh # hasznlat resize blokkeszkz-tvonala jmret (MB-ban) # # $0 $1 $2 # # Hiba esetn egyb ol kilpnk. 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 orzi.

1.11. Naplelemzs
1.11.1. A syslog megfelel o belltsa
A syslog, a rendszer naplr dmonjnak helyes belltsa nagyon fontos a megfelel o naplzshoz. 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; leges loklis bejegyzseknek; local0, local1, . . . local7 tetszo lpr a nyomtat-alrendszer bejegyzseinek; mail a levelez o szerver bejegyzseinek; 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; zeneteknl szoktk hasznlni. debug a programok a hibk megtallst segto A naplbejegyezsek sztvlogatsnl az zenet ezen kt tulajdonsgt lehet hasznlni. A syslog dmon tmogatja az zenetek fjlba, FIFOba, terminlra, tvoli gpre tovbbtst. vagy loklisan bejelentkezett felhasznlknak trtno 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 oen facilitymeghatrozs.prioritsmeghatrozs vel elfelpts uek, ahol a facilitymeghatrozs (egy vagy) tbb facility vessz o 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 o, s attl nagyobb priorits zenetre illeszkedni fog. A formja lehet tovbb =priorits, ez rtelemszer uen pontos egyezst jelent. A ! segtsgvel lehet tagadst kifejezni. Ha prioritsknt none-t adunk meg, az semmire sem fog illeszkedni. l jval egyszer d Az zenet cljnak meghatrozsa etto ubb. Egy / jellel kezdo o cl merevlemezen lv o fjlt jelent, -/ szintn fjlt jelent, de ebben az esetben az zenetet bb nem szinkron mdon rja ki a diszkre, hanem hagyja, hogy a kernel azt majd ks o elintzze (ez gyorsabb mint az el oz o mdszer, de sszeomls esetn adatot veszthetnk). A | jellel kezd od o cl merevlemezen lv o FIFOt jelent, ezzel akr sajt kez uleg is feldolgozhatjuk az zeneteket. A @ jel utn egy tvoli gp nevt vrja a syslog, oda fogja tovbb kldeni a naplbejegyzseket (hogy ez m ukdjn, a tvoli rendszeren -r kapcsolval kell indtani a syslog dmont). A * jellel, illetve az egyb karakterekkel kezd od o clkijells hatsra a rendszer minden felhasznlnak, vagy az adott 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 uleg a logcheck nev u a legelterjedtebb, de rhatunk magunknak is egyet. rz Ha magunknak akarunk rni logelleno o programot, akkor azt egyszer u shell szkriptekkel megtehetjk. Nagyon jl lehet egytt hasznlni a cut, a sed, a sort s a uniq segdprogramokat. Kiindulsknt hasznlhatunk valami ilyesmi rendszert: t a naplbejegyzsekr a cut segtsgvel levghatjuk a dtum mezo ol (az az els o 16 karakter), aztn a sed paranccsal tovbbi feldolgozst csinlhatunk (felesleges sorok trlse, a naplba r processzek processzazonostjnak trlse, stb.), vgl a sort sorunk van, abbl egyet csinlhatunk. s a uniq segsgvel ha tbb megegyezo 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 u gpr ol jv o pppd illetve automount zeneteire nem vagyunk k ket, a cron s watchdog dmon zeneteiro l pedig leszedjk a provncsiak, trljk o cesszazonost szmot, hogy majd a sort s a uniq tbb sort ssze tudjon egyre vthetjk. Ezek utn a feldolgohzni. Ezt a programkt hasonl elveket kvetve kibo zott naplbejegyzseket elkldhetjk magunknak levlben, kinyomtathatjuk, stb. Ez termszetesen csak egy plda volt, vannak hinyossgai, de kezdetnek nem programokat is megrhatunk rossz. Innen tovbblpve jval bonyolultabb naplelemz o magunknak. rz Ha nem akarunk magunknak naplelleno o programot rni, akkor hasznlhatjuk pldul a logcheck nev u programot. Ezt telepthetjk csomagbl, ha a disztrib l. Ez a cink rszt kpezi, vagy letlthetjk a http://www.psionic.com/tools/ cmr o program mintailleszts segtsgvel prblja meg megmondani egy-egy naplbejegy bejegyzs-e, vagy zsr ol, hogy betrsi ksrlet-e, rendszerbiztonsg srlst jelzo csak valamilyen szokatlan sor a naplfjlban. A program egyszer uen kongurlhat, a logcheck.sh fjlban kell trni a mintkat tartalmaz fjlokra mutatnak. megfelel o tvonalakat, amik a klnbzo 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.$$

rizze a naplsorokat kell trni, hogy megmondjuk neki, hogy melyik fjlokban ellen o bejegyzseket. Ha van olyan fjlunk ahov a *.debug bejegyzseket kldjk, rdemes azt megadni. bb nzzk t a Most mr akr le is futtathatnnk a logcheck.sh fjlt, de elo 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 u levlben elkldi a rendszergazdnak. Ha nem tallt tmadsra utal bejegyzseket, akkor a levl cme egyszer uen gpnv 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 o biztonsgi belltsok


1.12.1. Szolgltatsok
Ne futtassunk felesleges szolgltatsokat. A fut processzek listjt pldul a ps axu l megparanccsal nzhetjk meg. Nzzk vgig a listt, s prbljuk minden processzr o tudni, hogy mit csinl, a man parancs s a disztribcival jtt egyb dokumentcik alapjn. Ha gy dntttnk, hogy az adott processzre nincs szksgnk, akkor rdemes jvel. Ilyen tipikusan felesleges szolgltatazt leszedni disztribcink csomagkezelo sok 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

l. Plda kimenet: paranccsal krhetjk a rendszerto


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, b obeszd u kimenetet krnk. $ fuser -v -n tcp font-service USER root PID ACCESS COMMAND 323 f.... xfs

font-service/tcp

krseket. Teht a font-service porton az xfs processz vrja a berkezo 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 ukdik az fuser parancs, a tcp kulcsszt rtelemszer uen udpre cserlve.

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. l fut szolgltatsra, akkor a sor elejre # jelet Ha nincs szksgnk egy inetd-bo 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 o hostokat. Plda hosts.allow fjlra:
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 oen megvlasztott mount opcikkal nagyban javthatjuk rendszernk biztonsgt. 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 oen az rdekes mount opcik: 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; fjlokat nem lehet futtatni (mg ha klnben futnoexec az adott fjlrendszeren levo az albbi tathatk is lennnek). Ez a kapcsol jelen pillanatban megkerlhet o 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 oknt. Pldul:
LILO: linux init=/bin/bash

felEz azonnali root shellt eredmnyez a szmtgphez kzvetlenl hozzfr o hasznlknak. 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 a demes lehet nha a John the Ripper programot futtatni a jelszfjlra (letlthet o 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. jelleg A parancsokon kvl vannak mg nem ktelezo u paramterei. A tar leggyakrabban hasznlt parancsai: a --create egy j archvum ltrehozshoz, a --extract egy ltez o archvum kibontshoz, azaz a fjlok visszlltshoz. 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 obeszd u lesz. 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 u knyvtrat elmentjk az elso.tar nev u fjlba.

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 mentsb ol visszalltjuk. $ tar --extract --verbose --file=elso.tar proba/ proba/a proba/b # Aztn mg egyszer kibontjuk, de most csak a # proba/a nev u fjlra vagyunk kvncsiak. $ tar --extract --verbose --file=elso.tar proba/a proba/a

Ezek utn az egyszer u pldk utn jhetnek az rdekesebb dolgok: a tar --update parancsa segtsgvel egy archv fjl tartalmt frissthetjk. Ez egyszer uen gy m ukdik, hogy a tar vgignzi az archv fjlt, s az archivland knyvtrstruktrt, s ha valamelyik fjl jabb, mint az archvumban tallhat, akkor az j fjlt ni fog. Az archv hozzf uzi az archvumhoz. Emiatt az archv fjl mrete llandan n o fjl kibontsa esetn csak az utoljra hozzf uztt fjl fog a lemezen maradni. Szalagos 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 ukdik szalagos egysgek esetn.
# Kitrljk a proba/a fjlt az archvumbl. $ tar --delete --file=elso.tar proba/a

k, ehhez a A tar segtsgvel inkrementlis mentsek is ksztheto --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 o tmrtseket kezelni, de rdemesebb egyszer uen pipe-ot programra, mert azt gy knnyebb paramterezni. hasznlva rkldeni egy tmrto Pldul ha er osebb tmrtst szeretnnk alkalmazni, hogy kisebb llomnyt kapjunk, akkor azt gy oldhatjuk meg:
$ tar --create --verbose . | gzip -9 >/tmp/proba.tar.gz ./ ./index.html ...

1.13.2. rsync
Az rsync egy f oleg mirrorozsra hasznlt program, gy pldul kt gp (vagy csak egy gpen bell) kztt tud knyvtr-hierarchikat mozgatni. Az rsync el onye pldul az ftp parancsot hasznl mirrorokkal szemben az, 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

paramdon szoktk hasznlni, ahol az opcik hatrozzk meg a fjltvitel klnbz o mtereit, a forrs s a cl pedig rtelemszer uen a forrs- s clknyvtrat hatrozzk meg. Az rsync elgg sok opcit ismer, ezek kzl a legfontosabbakkal foglalkozunk itt. A -v s a -q opcik a b obeszd u s a csendes zemmd kzt vltanak. Tbb -v 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

felEgy ilyen mentsb ol a helyrellts rtelemszer uen a forrs s a cl megfelelo cserlsvel elrhet o. Mint mr korbban volt rla sz, az rsync hasznlhat tvoli szinkronizlsra vagy mentsre is. l futtatott rsync szerverEz ktflekppen valsthat meg: vagy egy inetd-bo rel, vagy pedig rsh vagy ssh segtsgvel. Biztonsgi okok miatt az utbbi lehet o sggel 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

kapcsolival, pldul ha ms porton Ezt persze kombinlni lehet az ssh klnbzo (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 o adatokat. Ez cskkenti a hlzat terhelst, de nveli a kt gp 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 onys lehet, pldul ha a home knyvtrakat mentjk msik 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 l, e sokkal, vagy anlkl, akr kereskedelmi, akr nem-kereskedelmi ton. Msfel o d Licensz meg orzi a szerz o, vagy kiad munkja elismershez f uzo o jogt, s egyttal t a msok ltal beiktatott mdostsok kvetkezmnyei all. mentesti o , ami nem jelent mst, mint hogy a Jelen Licensz egyfajta etalonnak tekintheto stst kell, hogy kapjadokumentumbl szrmaztatott munkk maguk is szabad min o jeknt nak. E dokumentum egyben a GNU ltalnos Felhasznli Licensz kiegszt o 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 oleges trgykr u rott dokumentumra alkalmazhatk, fggetlenl attl, hogy az knt olyan munkkknyvformban valaha megjelent-e. Mindamellett e Licenszet f o hoz ajnljuk, melyek els odleges clja az tmutats, vagy a tjkoztats.

1. ALKALMAZHATSG S DEFINCIK
E Licensz minden olyan kziknyvre, vagy ms jelleg u munkra vonatkozik, melyen megtallhat a szerz oi jogtulajdonos ltal feltntetett gyelmeztets, miszerint a dokumentum terjesztse jelen Licensz felttelei alapjn lehetsges. A Dokumentum albb brmely ilyen jelleg u kziknyvre, vagy egyb munkra vonatkozik. A lakossg , s mindegyikk megszlminden tagja potencilis licensztulajdonosnak tekintheto tsa 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 oz o szakasza, mely kizrlag a kiadknak, vagy az alkotknak a Dokumen d tum tfog trgykrhez (vagy kapcsold tmkhoz) f uz o o viszonyrl szl, s nem tartalmaz semmi olyat, ami kzvetlenl ezen tfog tmakr al eshet. (Ha pldul a Dokumentum rszben egy matematika tanknyv, gy a Msodlagos Szakaszban nincs lehet osg matematikai trgy magyarzatokra.) A fenti kapcsolat trgya lehet a tmakrrel, 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 formtumban kerl terjesztsre, tovbb melynek a nyilvnossg szmra hozzfrheto -programokkal, illetve (pixelekbo l ll kpek tartalma szokvnyos szvegszerkeszto -programokkal, vagy (rajzok esetn) ltalnosan esetn) szokvnyos kpmegjelento , vagy hozzfrhet o rajprogramok segtsgvel azonnal s kzvetlenl megtekinthet o kbe val mdosthat; tovbb olyan formtumban mely alkalmas a szvegszerkeszt o k ltal kezelt formtumokba val automatikus tabevitelre, vagy a szvegszerkeszto laktsra. Egy olyan, egybknt tltsz formtumban kszlt pldny, melynek markupja gy lett kialaktva, hogy megakadlyozza, vagy eltntortsa az olvaskat minden tltsznak. A nem tltsz pldnyok az tovbbi mdoststl, nem tekintheto tltszatlan megnevezst kapjk. formtumok kztt megtallhat pldul Az tltszsg kritriumainak megfelelo A a markup nlkli egyszer u ASCII, a Texinfo beviteli formtum, a L TEX beviteli for DTD hasznlatval, s mtum, az SGML vagy az XML egy ltalnosan hozzfrheto a standardnak megfelel o, emberi mdostsra tervezett egyszer u HTML. Az tltszats lan formtumok kz sorolhat a PostScript, a PDF, a szabadalmaztatott s csak zet o szvegszerkeszt okkel olvashat formtumok, az olyan SGML vagy XML, melyhez a k, s szksges DTD s/vagy egyb feldolgoz eszkzk nem ltalnosan hozzfrhet o k hoznak az olyan gpileg-generlt HTML formtum, melyet egyes szvegszerkeszt o ltre, kizrlag kiviteli clra. Egy nyomtatott knyv esetben a Cmlap magt a cmlapot, illetve brmely azt kiegszt o tovbbi oldalt jell, amely a jelen Licenszben denilt cmlap-tartalmak kzzttelhez szksges. Az olyan formtum munkknl, melyek nem rendelkez , m a szveg nek effajta cmlappal, a Cmlap a munka cmhez legkzelebb es o trzst megel oz o szvegrszeket jelli.

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

al rendel o kzlemny minden pldnyban egyarnt megjelenik, s hogy e feltteleken 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 Bortszvegek tisztn s kteles elltni olyan bortlapokkal, melyeken a kvetkez o olvashatan fel vannak tntetve: Cmlap-szvegek a cmlapon, illetve Htlap-szvegek a htlapon. Mindkt bortlapra egyrtelm uen s olvashatan r kell vezetnie a kiad, 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 l eltekintve sz szerinti reprodukcinak mino sl. telmnynek, gy a sokszorosts etto Abban az esetben, ha a bortlapok brmelyikn megkvetelt szvegrszek tl knt felsorolhossznak bizonyulnnak az olvashat kzzttelhez, gy csak az els o takat kell feltntetnie (amennyi jzan belts szerint elfr) a tnyleges bortn, a tovb oldalakra. biak pedig tkerlhetnek a kvetkezo 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 u szmtgphlzat elrhet osgt, ahonnan brki, anonim mdon, trtsmentesen letltheti azt, sget vlasztja, egy kzismert hlzati protokoll hasznlatval. Ha az utbbi lehet o 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 z pldnyszm terjesztsbe kezd, mr jval ezt megelo oen lpjen kapcsolatba a Doku lk a Dokumentum esetlementum szerz oivel, annak rdekben, hogy megkaphassa to ges feljtott vltozatt.

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

52

Vltozatot kizrlag jelen Licensz feltteleivel sszhangban teszi kzz, ahol a M sget biztostva annak dostott Vltozat a Dokumentum szerept tlti be, ezltal leheto 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 cmet (melyeknek, ha vannak, a Dokumenbrmely korbbi vltozattl eltro tum El ozmnyek szakaszban kell szerepelnik). Egy korbbi vltozat cmt je engedlyezte azt. csak akkor hasznlhatja, ha annak szerzo

A Cmlapon szerz okknt sorolja fel a Mdostott Vltozatban elvgzett vltozta szertsokrt felel os szemlyeket, vagy entitsokat, tovbb a Dokumentum f o z oi kzl legkevesebb tt (vagy mindet, ha nincsenek ten).

s szemlyt tntesse fel A Cmlapon a Mdostott Vltozat kzzttelrt felelo kiadknt.

A Dokumentum sszes szerz oi jogi gyelmeztetst hagyja rintetlenl.

i jogi megjegyzst, Sajt mdostsaira vonatkozan is tegyen kzz egy szerz o a tbbi ilyen jelleg u gyelmeztets mellett.

Rgtn a szerz oi jogi gyelmeztetseket kvet oen tntessen fel egy kzlemnyt, 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 rt teljes listjt. szksges Bortszvegek jelen Dokumentum licenszben el o

Mellkelje jelen Licensz egy eredeti pldnyt.

Az El ozmnyek szakaszt, illetve annak cmt szintn hagyja rintetlenl, emellett adjon hozz egy j elemet, amely minimlisan tartalmazza a Mdo k, illetve a kiad nevt, stott Vltozat cmt, kiadsi vt, tovbb az j szerzo a Cmlapon lthatkhoz hasonlan. Amennyiben a Dokumentum nem tartalmaz semmifle El ozmnyek elnevezs u szakaszt, gy hozzon ltre egyet, mely tar k, illetve a kiad talmazza a Dokumentum cmt, kiadsi vt, tovbb a szerz o en adjon hozz egy j, nevt, a Cmlapon lthatkhoz hasonlan; majd ezt kveto a Mdostott Vltozatra vonatkoz elemet, a fentiekkel sszhangban.

Ne tegyen vltoztatsokat a Dokumentumban megadott tltsz pldny nyilvnos hlzati elrhet osgt (ha van ilyen) illet oen, vagy hasonlkpp, a Dokumentum alapjul szolgl korbbi vltozatok hlzati helyre vonatkozan. Ezek az El ozmnyek szakaszban is szerepelhetnek. Csak abban az esetben hagyhatja el sgt, ha azok legkevesebb ngy vvel egyes korbbi vltozatok hlzati elrheto a Dokumentum el ott kszltek, vagy ha maga az alkot engedlyezi azt.

Brmely Ksznetnyilvnts, vagy Ajnlsok szakasz cmt hagyja rintetlenl, tovbb gondoskodjon arrl, hogy azok tartalma s hangvtele az egyes en vltozatlan maradjon. hozzjrulkat, s/vagy az ajnlsokat illeto

A Dokumentum sszes Nem Vltoztathat Szakaszt hagyja rintetlenl, gy cmket, mint tartalmukat illet oen. A szakaszok szmozsa, vagy brmely azzal egyenrtk u jells nem tartozik a szakaszcmek kz. 53

Trljn minden Jvhagys elnevezs u szakaszt. Effajta szakaszok nem kpezhetik rszt a Mdostott Vltozatnak.

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

Ha a Mdostott Vltozat j megel oz o szakaszokat tartalmaz, vagy olyan fggel slnek, m nem tartalmaznak a Dokumenkeket, melyek Msodlagos Szakasznak mino tumbl 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 ol. Jvhagys elnevezs u szakaszt csak akkor adhat a Dokumentumhoz, ha az kizrlag 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 uzhet a Mdostott Vltozat Bortszvegeinek vghez. Brmely entits csak s kizrlag egy Cmlap- s egy Htlap-szvegrszt adhat (akr kzvett on keresztl) a Dokumentumhoz. Ha a dokumentum mr eleve rendelkezik Bortszveggel, akr azrt, mert azt korbban n adta hozz, vagy mert l, abban az esetben nincs leheto sg jabb valaki ms nn keresztl gondoskodott erro Bortszveg hozzadsra; a rgit mindazonltal lecserlheti, abban az esetben, ha annak kiadja egyrtelm uen engedlyezi azt. v A Dokumentum szerz oje/i s kiadja/i jelen Licensz alapjn nem teszik leheto nevk nyilvnos felhasznlst egyetlen Mdostott Vltozat tmogatsa, vagy tmogatottsga rdekben sem.

5. KOMBINLT DOKUMENTUMOK
nnek lehet osge van a Dokumentum egyb, e Licensz hatlya alatt kiadott dokumentumokkal 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 Nem Vltoztathat Szakaszok pedig kivlthatk nia, az egymssal tfedsben lvo egy sszegzett pldnnyal. Amennyiben tbb Nem Vltoztathat Szakasz szerepelne ugyanazon cmmel, m eltr o tartalommal, gy alaktsa t minden egyes szakasz cmt s kiad nevt (ha ismeri), olyan mdon, hogy mgrja zrjelben az eredeti szerzo vagy egy egyedi sorszmot. Ha szksges, a Nem Vltoztathat Szakaszok cmeivel is vgezze el a fenti mdostsokat a kombinlt munka licenszben. zmnyek elneveA kombinlt munkban az eredeti dokumentumok sszes El o El zs u szakaszt ssze kell olvasztania, miltal egy sszefgg o ozmnyek szakasz jn ltre; hasonlkpp kell eljrnia a Ksznetnyilvnts, illetve az Ajnlsok szakaszok tekintetben. Ugyanakkor minden Jvhagys elnevezs u szakaszt trlnie kell.

54

6. DOKUMENTUMGYUJTEMNYEK
nnek lehet osge van a Dokumentumbl, illetve brmely egyb, e Licensz hatlya alatt kiadott dokumentumbl gy ujtemnyt ltrehozni, s az egyes dokumentumokban tall hat licenszeket egyetlen pldnnyal kivltani, feltve, hogy a gy ujtemnyben szerepl o sszes dokumentum esetn minden ms tekintetben kveti jelen Licensz feltteleit, azok sz szerinti sokszorostsra vonatkozan. l, Tetszse szerint ki is emelhet egy meghatrozott dokumentumot a gy ujtemnyb o 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 orsait a dokumentum sz szerinti sokszorostsra vonatkozan.

7. SSZEFUZS FGGETLEN MUNKKKAL


A Dokumentum s annak szrmazkainak klnll, vagy fggetlen dokumentumokkal, illetve munkkkal val sszef uzse egy kzs trolsi, vagy terjesztsi egysgen, egszben nem tekinthet o a Dokumentum Mdostott Vltozatnak, feltve, hogy az sszef uzs nem lesz szerz oi jogvdett. Az effajta sszef uzs eredmnyeknt sszegzs jn ltre, m jelen Licensz nem rvnyes az abban a Dokumentummal egytt szerepl o nll munkkra, hacsak azok nem a Dokumentum szrmazkai. 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
, gy ht a Dokumentum lefordtott pldA fordts egyfajta mdostsnak tekintheto k. A Nem Vltoztathat Szakaszok nyai a 4. szakasz rendelkezsei alapjn terjesztheto i jogtulajdonostl, mindazonltal kzzlefordtsa kln engedlyt ignyel a szerzo teheti 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 u Licensz szvege is. Amennyiben eltrs mutatkozna az ere deti vltozat, illetve a fordts kztt, gy a Licensz angol nyelv u eredetije tekintend o mrvadnak.

9. MEGSZUNS
A jelen Licenszben egyrtelm uen kijellt kereteken kvl tilos a Dokumentum brminem u sokszorostsa, mdostsa, allicenszelse, vagy terjesztse. Minden ezzel szembeni sokszorostsi, mdostsi, allicenszelsi, vagy terjesztsi ksrlet a jelen Licenszben meghatrozott jogok automatikus megsz unst vonja maga utn. Azok a fe-

55

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

10. JELEN LICENSZ JVOBENI JAVT SAI


r Megtrtnhet, hogy a Szabad Szoftver Alaptvny ido ol id ore fellvizsglt s/vagy j l. E verzik szellemiverzikat bocst ki a GNU Szabad Dokumentcis Licenszbo sge 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 sge Alaptvny ltal (nem vzlatknt) publiklt verzi feltteleinek kvetsre lehet o 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 i jogi s licensz hozz a Licensz egy pldnyt, tovbb vezesse r az albbi szerz o en: kzlemnyeket, rgtn a cmlapot kveto

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 o verzijnak felttelei alapjn. A Nem Vltoztathat Szakaszok neve SOROLJA FEL A CMKET , a Cmlap-szvegek neve LISTA, a Htlapszvegek neve pedig LISTA. E licensz egy pldnyt a GNU Szabad Dokumentcis Licensz elnevezs u szakasz alatt tallja. 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 v tegye a kdok mint pldul a GNU ltalnos Felhasznli Licensz , hogy lehet o szabad szoftverekben val alkalmazst.

56

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

57

You might also like