You are on page 1of 58

A GNU/Linux karbantartsa

1.0.1
A Mithrandir Kft. nyelvi elleno rzsvel
Balsai Pter
Ksa Attila
2002. jnius 19.

Copyright c 2001-2002 Linux-felhasznlk Magyarorszgi Egyeslete


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

Szerzo
Vitz Gbor gabor@swszl.szkp.uni-miskolc.hu

Szakmai lektor
Szalay Attila sasa@lme.linux.hu

Nyelvi ellenorzs
Sri Gbor saga@tux.hu
Ksa Attila atkosa@shinwa.hu

Formzs (LATEX)
Ksa Attila atkosa@shinwa.hu

Elozmnyek
A GNU/Linux karbantartsa
A Mithrandir Kft. nyelvi ellenorzsvel
A kiads ve: 2002.

Szerzo
Vitz Gbor gabor@swszl.szkp.uni-miskolc.hu

Szakmai lektor
Szalay Attila sasa@lme.linux.hu

Nyelvi ellenorzs
Sri Gbor saga@tux.hu
Ksa Attila atkosa@shinwa.hu

Formzs (LATEX)
Ksa Attila atkosa@shinwa.hu

Az LME ltal elkszttetett Pingvin fzeteken a Mithrandir Kft. az olvashatsg


rdekben nyelvi, helyesrsi javtsokat vgzett.
A Mithrandir Kft. valamint a nyelvi javtst vgzo termszetes szemlyek szakmai ellenorzst, javtst nem vgeztek.
Nem tettk ezt (szakmai javts), akkor sem a szerzo k s a szakmai lektorok munkja irnti tiszteletbol , ha a lertak nem feleltek meg szakmai meggyo zodsknek.
A Mithrandir Kft. javtst vgzo szakemberei, illetve a Mithrandir Kft. mint jogi
szemly a lertak helyessgrt, esetleges avultsgrt semmilyen felel o ssget nem vllal.
2

Tartalomjegyzk
1. A GNU/Linux rendszer karbantartsa
1.1. Hlzati belltsok . . . . . . . . . . . . . . . . .
1.2. Hlzati szolgltatsok . . . . . . . . . . . . . . .
1.3. Egyb szolgltatsok . . . . . . . . . . . . . . . .
1.4. Behvszerver konfigurlsa . . . . . . . . . . . .
1.5. Felhasznli eroforrsok korltozsa . . . . . . . .
1.6. Teljestmny javtsa . . . . . . . . . . . . . . . .
1.7. Megfelelo hardver . . . . . . . . . . . . . . . . . .
1.8. Szoftveres teljestmnyjavts . . . . . . . . . . . .
1.9. Logical Volume Manager s naplzott fjlrendszer .
1.10. Naplzott fjlrendszerek . . . . . . . . . . . . . .
1.11. Naplelemzs . . . . . . . . . . . . . . . . . . . .
1.12. Alapveto 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 konfigurlsa
Linux alatt a szmtgp hlzati csatlakozsi pontjait hlzati interfszek reprezentljk. Az interfsz neve, amit a kernel hasznl, egy szimbolikus dolog, mint pldul
az eszkzvezrlo fjlok, de rdemes megjegyezni, hogy a hlzati interfszek nem
eszkzvezrlo fjlok, o k mshol lnek. Az interfszeknek klnbzo tulajdonsgai
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)

linux 1

gp 1

router
gp 2

1.1. bra. A hlzat felptse


5

klvilg (minden ms)

A hlzati interfszeket (tbbek kztt) az ifconfig paranccsal konfigurlhatjuk. 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 konfigurci lekrdezst egy paramterezetlen ifconfig paranccsal oldhatjuk meg:
$ ifconfig
eth0
Link encap:Ethernet HWaddr 00:50:BA:EA:D6:FA
inet addr:192.168.10.3 Bcast:192.168.10.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:60127 errors:0 dropped:0 overruns:0 frame:0
TX packets:64215 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
Interrupt:3 Base address:0xb800
lo

Link encap:Local Loopback


inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:3904 Metric:1
RX packets:144794 errors:0 dropped:0 overruns:0 frame:0
TX packets:144794 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0

A listn lthatjuk, hogy kt interfsznk van: egy eth0 nevu, ez az els o ethernet
krtya, az lo pedig a loopback interfsz, ez egy tisztn szoftveres interfsz, amivel
egy gpen bell is lehet hlzati szolgltatsokat hasznlni. A listbl egyszeru, 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 felkonfigurltuk az interfsznket, 192.168.10.1-es IP cmet kapott,


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

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

paranccsal llthatjuk ezt be.


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

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

paranccsal be kell kapcsolnunk az interfszek kzti csomagtovbbtst.


Az 1.2. bra egy ilyen felllst mutat.

192.168.11.0/255.255.255.0

gp3

linux

192.168.10.0/255.255.255.0

klvilg(minden ms)
gp2

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 tunik, hogy minden rendben van, akkor (vagy akr konfigurls 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.
Elkpzelhetoek bonyolultabb routeolst hasznl konfigurcik, 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 finomthatjuk
belltsainkat. Ez egy olyan fjlrendszer, amiben a fjlok a rendszer llapott tkrzik,
klnbzo lekrdezseket s belltsokat hajthatunk vgre a segtsgvel, a szoksos
fjlkezelo 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
surun adjon vlaszt a ping csomagokra (mondjuk szzadmsodpercenknt kett o re vlaszoljon), hogy ne routeoljon az interfszei kzt, s hogy prblja kiszurni a hamis IP
csomagokat. Ezeket a kvetkezo parancsokkal llthatjuk be:
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
A broadcastra ne vlaszoljon. 1 engedlyezi a tiltst, a 0 tiltja a tiltst, azaz
engedlyezi a broadcast pingre trtno vlaszt.
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
7

Egyltaln ne vlaszoljon a pingre. A szmok jelentse ugyanaz, mint a broadcastos belltsnl.


echo 2 >/proc/sys/net/ipv4/icmp_echoreply_rate
Szzadmsodpercenknt kt ping csomagra vlaszol.
echo 0 >/proc/sys/net/ipv4/ip_forward
A 0 letiltja a csomagok tovbbtst az interfszek kztt.
echo 1 >/proc/sys/net/ipv4/conf/all/rp_filter
Az 1 engedlyezi a hamis csomagok szurst.
Termszetesen ezeken a belltsokon az ignyekto l fggoen vltoztatni kell, pldul egy routeren nem j tlet az interfszek kzti csomagtovbbtst letiltani. Mivel
ezek a belltsok rendszerlelltskor elvesznek, rdemes o ket valamelyik indulskor
lefut szkriptbe beletenni, a hlzati interfszeket bekonfigurl 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 hierarchikus felptsu. A nv IP cm oda-vissza trtno lekpezst nameserverek
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 megfeleloen kitlteni. Itt a szerverek IP cme mellett azt is bellthatjuk, hogy a gpnk
milyen domainekben keresse a gpeket, ha nem a teljes nevkkel keressk o ket. Egy
konkrt plda: a nameszervereink 192.168.100.22, 192.168.22.33; a domain nevnk
proba.hu, s a masik.hu domain-beli gpeket is hasznlni szeretnnk gy, hogy nem
a teljes (pldul gepneve.masik.hu) nevkkel, hanem csak a gp nevvel hivatkozunk
rjuk.
# /etc/resolv.conf
domain proba.hu
search masik.hu
nameserver 192.168.100.22
nameserver 192.168.22.33

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

1.2. Hlzati szolgltatsok


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

A futtatand szolgltatsokat soronknt lehet megadni a konfigurcis fjlban, a #


jellel kezdodo sorok megjegyzst jelentenek, ezeket figyelmen kvl hagyja a program.
Az inetd konfigurcis 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
illeto szolgltats TCP vagy UDP kapcsolatokat hasznl-e. A protokoll tcp vagy udp
lehet, hasonlan az elobbi 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 egyszerubb 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 OpenSSHval fogunk foglalkozni, mert ez ingyenes,
szabadon felhasznlhat. Az ssh nagy vonalakban gy mukdik, 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 eltrtstol.
A szerver a konfigurcis fjljt ltalban a /etc/ssh/sshd_config fjlban,
vagy a /usr/local/etc/ alatt tartja. A konfigurcis fjl egyszeru opci-rtk
prokbl ll. Plda egy felkommentezett konfigurcis 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 konfigurls utn az sshd paranccsal indthatjuk el az ssh dmont. A fenti


belltsok valsznuleg a legtbb esetben jk lesznek, de azrt rdemes jl tgondolni,
hogy minden megfelel-e az ignyeinknek.
Az ssh parancsot alapvetoen 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
...
$

Az ssh parancsnak rengeteg kapcsolja van, ezek kzl egyel o re a -v-t rdemes
megemlteni, ennek hatsra bo beszdu lesz az ssh. Ez segti a hibakeresst. A
tbbirol 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 alapveto
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 generlni, 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 knnyu elfelejteni. Plda a kt hasznlati mdra:
az elso:
# 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

Az RSA kulcsokat hasznlhatjuk klnbzo automatikus dolgok vgrehajtsra is,


ha nem adunk meg nekik jelszt a generlskor. Ekkor minden jelszkrs nlkl lpkedhetnk a gpek kztt. Ez gy persze veszlyes. Hogy a veszlyt cskkentsk, a

12

tvoli gp .ssh/authorized_keys2 fjljban megadhatjuk, hogy honnan hasznlhatjk azt a kulcsot, s hogy milyen programot futtathatnak (s mg sok minden
mst). Pldul az ujkulcs nevu kulcsunkat csak a debi nevu gpr o l engedjk be, s csak
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 tmsolni a tvoli gpre, ami a tvoli gpen /tmp/p nven fog megjelenni. Els o lps:
dntsk el, hogy milyen parancsnak kell lefutnia a tvoli gpen. Erre egyszeruen 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 megfeleloen trjuk a tvoli gpen a .ssh/authorized_keys2 fjlt, s mr
mukdik is. A -v opcit kihagyjuk, azt a bo beszdu 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 nevu gpen /tmp/a helyett /tmp/p fjlban fog megjelenni
a proba fjl tartalma.

1.3.2. Qmail
Mirt pont a qmail? A qmail egyszeruen konfigurlhat, biztonsgos, s elgg
j teljestmnyu. Ugyanakkor rdemes megjegyezni, hogy van egy-kt hinyossga,
pldul tl kson ellenorzi, hogy van-e adott nevu felhasznl vagy alias a rendszernkn; minden egyes kimeno levlhez j kapcsolatot nyit; a licence pedig lehetne kicsit
bartsgosabb. rdemes megnzni a postfix programot (http://www.postfix.org/),
de annak jval bonyolultabb a konfigurlsa.
A qmail biztonsgi okok miatt tbb, klnbzo felhasznl azonostval fut processzre van felosztva, gy ha netaln valamelyik rszvel valami baj trtnne, az akkor
sem lesz komoly hatssal a teljes rendszerre. Az MTAk kzt ritka a hasonlan biztonsgos tervezs.

13

Telepts: a qmail csomagot le lehet tlteni a http://www.qmail.org/ oldalrl, vagy


feltelepthetjk disztribcink rszeknt, .deb, .rpm vagy egyb csomagbl. Ha van
ilyen csomag, rdemesebb azt hasznlni, mint magunknak szerezni. A qmail licence
miatt valsznuleg csak forrsnyelvu csomagot fogunk tallni, benne az utastsokkal
a fordtshoz. Az egyetlen paramter, amire a fordtskor rdemes odafigyelni, az a
conf-split fjlban lvo 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,
ha sikerlt lefordtani s feltelepteni, akkor a konfigurci ellen o rzse kvetkezhet,
mivel a konfigurcis llomnyok is a fordts sorn, a helyi sajtossgoknak megfeleloen jnnek ltre.
A qmail a konfigurcijt eredetileg a /var/qmail/control alatt tartja,
mindent kln fjlban az egyszerusg kedvrt. A knyvtron a disztribcik vltoztatni szoktak, a Debian pldul a /etc/qmail knyvtrba teszi a konfigurcis
fjlokat. A fontosabb konfigurcis fjlok sorban:
A me a legfontosabb konfigurcis fjl, ez lltja be a gp nevt, ezt a nevet fogja
alaprtelmezett rtkknt hasznlni elgg sok (de nem mindegyik) konfigurcis fjl
helyett (teht ennek a kitltsvel mr szinte mukdo kpes a levelezo 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.
Az rcpthosts fjlban felsorolt hostnevekre jvo leveleket fogja az smtp szerver
processz elfogadni, hogy ezutn a queue-ba bekerlve azokat valahogy kzbestse a
rendszer.
A locals fjlban felsorolt hostnevekre jvo leveleket fogja loklisknt kezelni a
szerver, teht ebben benne kell lennie az sszes olyan nvnek, amire loklis kzbestst
akarunk krni.
A qmail a concurrencyremote fjlban megadott szm processzt fog futtatni a tvoli levelek kzbestshez, azaz ez hatrozza meg, hogy egyszerre hny levelet fog prhuzamosan tvolra kzbesteni. Ez nagyban befolysolhatja a szervernk
teljestmnyt. rdemes kiksrletezni, hogy mennyi illik legjobban a hardverhez s a
terhelshez, de hetven-nyolcvanat valsznuleg 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
pldnyban fut nagy levelezo listaszoftver erosen megfoghatja a gpet.
J esetben a disztribcinkkal jvo csomagok kzt volt a qmail, s akkor van
hozz indtszkript is, de ha nem, akkor neknk kell megrnunk egyet. El kell indtanunk a szerver programot, s a hlzatra hallgat SMTP dmont is. Az els o t a
/var/qmail/bin/qmail-start programmal tehetjk meg, ami elso paramterknt az alaprtelmezett loklis kzbestsnek megfelelo clt vrja, mg a tbbi paramter a logolst befolysolja. Egy konkrt plda:
exec env - PATH="/var/qmail/bin:$PATH" \
qmail-start |preline procmail splogger qmail

Az elso 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


megfeleloen kikldi a program (itt a procmail) inputjra.
Ezek utn jn a qmail-smtpd futtatsa. Ezt legegyszerubben az ucspi-tcp
csomag segtsgvel tehetjk meg. Ez is letltheto a http://www.qmail.org/ oldalrl, de
rdemesebb a disztribcink csomagkezelo jvel feltelepteni. Ez a csomag egyszeru
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 lvo 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 vltoz belltsval engedlyezhetjk, akr inetd-bo l tcpwrapper segtsgvel, akr
a tcpserver segtsgvel. Az utbbi hasznlathoz ki kell tlteni egy tetsz o leges
fjlt, pldul gy:
127.0.0.1:allow,RELAYCLIENT=""
192.168.20.:allow,RELAYCLIENT=""

Ennek hatsra a loklis gprol s a 192.168.20.0/255.255.255.0 hlzaton lv o


gpekrol kldhetnek levelet a szerveren keresztl, a szerver rcpthosts fjljban
nem szereplo gpnek. Ebbol a fjlbl mg egy binris .cdb adatbzist kell csinlni:
tcprules /etc/tcp.smtp.cdb temporaryfile < szovegesfile

Ahol a temporaryfile egy ideiglenes fjl neve, a szovegesfile 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
van egy postmaster aliasunk. A .qmail fjlokban a pipe jellel kezd o do sor hatsra
a qmail a pipe jel utn lvo program standard inputjra fogja kldeni a bejvo leveleket. /-rel kezdodo sor hatsra az adott mailboxba vagy Maildirbe fogja tenni a
bejvo leveleket. Az utbbiba akkor, ha megint csak egy / jel van a sor vgn.
Ide jnne egy pldakonfigurci, 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, grafikus klienssel Windowshoz. Az ftp problmja, hogy bizonyos muveletekhez az egyszeru felhasznltl magasabb privilgium-szint kell, s radsul a
forgalmat sem titkostja (azaz a hlzat lehallgatsval ssze lehet gyujteni 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 tunik a tbbinl, ezrt ezt ismertetem.

15

A szerver inetd-bol fut, minden kapcsolathoz kt processzt indt, egy privilgizltat a klnbzo hlzati muveletek 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 nevu mechanizmust hasznlva egy egyszeru felhasznlknt gy, hogy kzben a jogot az 1024tol 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 fordtott, vagy ms disztribcik rszt kpezo vltozatok esetben csak a fjlok elrsi
tvonalban vrhat vltozs.
Inetd belltsa: a /etc/inetd.conf fjlba rjuk be a kvetkezo sort, majd
a killall -HUP inetd parancsot kiadva olvastassuk jra az inetd-vel a konfigurcis fjljt.
ftp

stream

tcp

nowait

root

/usr/sbin/tcpd

/usr/sbin/vsftpd

A program egyetlen paramtert vr, a konfigurcis fjljnak az elrsi tvonalt, ha az nem a /etc/vsftpd.conf fjlban van. Ezek utn termszetesen
a tcpwrapper csomagot is be kell konfigurlni, a /etc/hosts.allow s a
/etc/hosts.deny fjlok megfelelo 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 konfigurcis fjl: /etc/vsftpd.conf. Ez egyszeru opci=rtk prosokbl ll. Fontos tudni, hogy nem lehet szkz az egyenl o sgjel kt oldaln. A fjlban
a megjegyzseket a szoksos soreleji # jel jelzi. Elg sok opci logikai rtku, 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 nevu 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 mindkettot engedore konfigurlni az ftp szervert.
write_enable Engedi-e az rst az ftp szerver (feltlts, stb.).
local_umask Ez nem logikai rtku, 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.
idle_session_timeout A szerver mennyi ido mlva bontsa a ttlen kapcsolatokat. Nem
rdemes se tl nagyra, se tl kicsire lltani. A hasznlhat rtkek valahol 60 s
600 msodperc kzt lehetnek.
data_connection_timeout Az adatkapcsolatokat mennyi ido mlva bontsa a szerver,
ha nincs rajta forgalom. (Az utbbi kt paramtert msodpercben kell megadni.)
nopriv_user Egy nem privilgizlt, az ftp dmon mukdtetshez 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 tunik, 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 gyujti ssze a lehozand fjlok listjt.

1.3.4. stunnel
Az stunnel segtsgvel titkostott SSL (Secure Socket Layer) kapcsolatba csomagolhatunk klnbzo protokollokat, mint pldul POP3, vagy IMAP. gy pldul SSLes
POP3 szerver valsthat meg, egy SSLt nem ismero szerverprogram segtsgvel. Ezzel lehet vdekezni a hlzatlehallgats ellen.
Az stunnel-t lehet inetd-bol 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
o valban az, akinek lltja magt.
-d segtsgvel llthatjuk t az stunnel mukdsi mdjt inetd-sro l klnllra.
Ez egy hlzati port nevt vrja paramterknt.
17

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


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

Ha ugyanezt nllan fut stunnel-lel szeretnnk megoldani, akkor egy ilyen


paranccsal indthatjuk el az stunnel-t:
/usr/sbin/stunnel -d pop3s -N solid-pop3d-s \
-p /etc/ssl/certs/pop3.pem -l /usr/sbin/solid-pop3d

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


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

Vgl telnet-ssl segtsgvel letesztelhetjk, hogy jl mukdik-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


generl egyet, de lehet, hogy kso bb szksgnk lesz arra, hogy magunknak generljunk egyet. Ezt az
openssl req -new -x509 -days 365 -nodes -config stunnel.cnf \
-out stunnel.pem -keyout stunnel.pem

paranccsal tehetjk meg. Ennek hatsra az openssl egy jelsz nlkli, 365 napig rvnyes PEM fjlt generl, az stunnel.cnf konfigurcis fjl segtsgvel. A kimenetet
az stunnel.pem fjlba fogja tenni.
Amikre oda kell figyelni: 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 DiffieHellman paramterekre a PEM fjlunkhoz, ezt
az
openssl gendh 512 >> stunnel.pem

paranccsal generlhatunk hozz.

1.4. Behvszerver konfigurlsa


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 magunknak fordtsuk le o ket. Eloszr az mgetty konfigurcijval fogunk foglalkozni.
18

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

Ez azt jelenti, hogy az init processz a kettes s hrmas futsi szinten mindig indt
egy mgetty programot a ttyS1 soros portra, ha az elo zo mgetty kilp.
Lthat, hogy az mgetty parancsnak klnbzo parancssori paramterei lehetnek, de ezek kzl csak azokkal fogunk foglalkozni, amelyek neknk fontosak. Ezek
a kvetkezok: -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 konfigurcis 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 nevu felhasznl jelentkezik be, akkor az adott felhasznlazonostval az adott program fog lefutni, s az mgetty lerak egy megfelel o bejegyzst az
utmp fjlba.
Az mgetty programnak van egy autoppp mdja, ez hasznos, mert szre tudja
venni, ha ppp dmon van a vonal msik oldaln, s el lehet vele indttatni a ppp dmont
ezen az oldalon. Ez a sor krlbell gy nz ki:
/AutoPPP/ -

a_ppp

/usr/sbin/pppd auth -chap +pap login debug

Ennek hatsra az mgetty az /AutoPPP/ felhasznl rzkelsekor (azaz ha ppp


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

19

# Ngyes szint
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 segtsgvel egy /etc/nologin.ttyS1 (vagy ms, a soros portnak megfelelo nevu) fjl
ltrehozsval s trlsvel ezt szablyozhatjuk. Ehhez, s a kicsrgsek szmnak
megadshoz a modem automatikus hvsfogadsnak a kikapcsolshoz lehet, hogy
t kell konfigurlnunk 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 bobeszdu 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 felptsu
vonalon hlzati kommunikcit megvalstani. A pppd egy PPP vonal menedzselshez szksges klnbzo szolgltatsokat nyjtja, mint pldul a vgpontok kzti
authentikci, kommunikcis paramterek, tmrts, stb. belltsa.
Ahhoz, hogy a modemes behvszervernk mukdjn, minimlisan a kvetkezo 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 konfigurcijt 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 konfigurls elgg egyszeru 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 rtelemszeruen 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 elso ethernet interfsznek arp tbljba, hogy ha a kliens hardvercmt szeretn tudni valamelyik gp a szerver hlzatn, akkor a szerver hardver cmt

21

kapja meg hozz. Ennek hatsra a kliensnek sznt hlzati csomagok el o szr eljutnak a szerverhez, majd az tovbbroutolja o ket a klienshez. A routols jl fog mukdni,
mert a kernel mindig a pontosabban megadott tvonal fel fogja kldeni a csomagokat, teht a 255.255.255.255-s hlzati maszk ppp linkrl a csomagok jl tjutnak a
(mondjuk) 255.255.255.0-s klso hlzat fel, annak ellenre, hogy a kliens IP cme a
klso 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 megfelelo 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 klnbzo szkripteket futtat a ppp kapcsolat kezdetekor s vgekor, ezekkel sok mindent meg lehet oldani, pldul tuzfal tkonfigurls, 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,
ha volt authentikci. Ezeket a programokat klnbzo paramterekkel s krnyezettel
futtatja le, amikbol a ppp link klnbzo 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 ktelezo.

1.4.3. PPP ssh felett


Nha szksg lehet arra, hogy kt vagy tbb tvoli gp kztt biztonsgos adatforgalmat bonyolthassunk gy, hogy az egy nem megbzhat hlzaton megy t. Ezzel
gynevezett VPNt (Virtual Private Network) alakthatunk ki pldul kt iroda kzt.
Ilyenek kialaktst sokflekppen meg lehet oldani, s sok szoftvermegolds ltezik erre, pldul a tunnelv, a vpnd, a vtun, vagy akr pppt is tkldhetnk ssh
felett.
Mivel mr a ppprol s az ssh csomagrl is volt sz, most ezt ismertetem. A konfigurci jval egyszerubb lesz, mint a behvszerver esetben. Nem kell tr o dni a ppp
authentikcival, vagy hogy melyik soros vonalat hasznlja majd a ppp.
A link kt vgt az rthetosg kedvrt hvjuk kliensnek s szervernek. A kliens
oldal fog ssh parancsot hvni, amit a szerver oldali sshd fogad.
A dolog gy fog mukdni, 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, csomagszursen (ha erre szksg van) a kt oldalon a
/etc/ppp/ip-up s a /etc/ppp/ip-down segtsgvel lehet mg finomtani.
Eloszr mindkt oldalon be kell konfigurlni 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 konfigurcija 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 konfigurlsa. 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 PAMot rdemes gy belltani, hogy bejelentkezskor semmit se


rjon ki, mert az megzavarja a pppt. Ehhez a /etc/pam.d/ssh fjlbl ki kell kommenteznnk a
session optional pam_lastlog.so,
session optional pam_motd.so, s a
session optional pam_mail.so
sorokat, ha van benne ilyen. Ezeknek a jelentsro l ksobb 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 eroforrsok korltozsa


1.5.1. Ulimit
Az ulimit egy shell interfsz a kernel ero forrs-korltoz hvsaihoz.
Az ulimit segtsgvel klnbzo eroforrsokat korltozhatunk, mint pldul
a maximlisan felhasznlhat CPU ido t, maximlisan felhasznlhat memrit. Az
ulimit funkcionalitst vagy shellbo l az ulimit hvssal lehet hasznlni, vagy
setrlimit() rendszerhvssal a programjainkban. Mivel az ulimit shell parancs, shellenknt vltozhat a szintaxisa.
Bash ulimit hasznlata: az ulimit paranccsal lehet belltani a klnbzo
paramtereket. Kemny s puha korltokat klnbztethetnk meg, a kemnyet
24

nem lehet nagyobbra mdostani ha egyszer belltottuk, a puht a kemny hatr


elrsig mdosthatjuk felfel is.
A legfontosabb hatrok valsznuleg a hasznlhat memria mennyisgt korltozzk, ezek a kvetkezok:
-l segtsgvel megadhatjuk, hogy mennyi memrit jellhet nem swapelhet o nek a
processz;
-m segtsgvel megadhatjuk a munkahalmaz maximlis mrett (azaz krlbell azt,
hogy egy processznek mennyi fizikai memria jut);
-s segtsgvel a maximlis stack mretet adhatjuk meg;
-v a maximlis virtulis memria mretet szablyozhatjuk.
Ezek kzl sajnos nem mindegyik mukdik gy, ahogy az ember vrn, j vigyzni
velk, s letesztelni o ket, mielott 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 ezzel korltozhatjuk, hogy egy processz mennyi gpid o t kap, ha ezt tllpi, akkor
egy szignlt kap, amitol kilp;
-u az egy felhasznlra jut processzek maximlis szmt hatrozhatjuk meg.
Egy plda a CPU ido 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 PAMot hasznlnak az authentikci elvgzshez.
A PAM a bejelentkezssel kapcsolatos klnbzo funkcikat valstja meg, ezek az
authentikci, a felhasznl kiltnek megllaptsa, az account menedzsels (ezzel
egyb korltozsokat lehet mg az authentikci mell definilni), a session menedzsels (ez a session megkezdse elo tt s utn fut le, s klnbzo adminisztrcis
funkcikat lt el, mint pldul naplbejegyzsek rsa). A negyedik ilyen funkci a
jelszmenedzsels.

25

A PAM rendszer a konfigurcijt a /etc/pam.d knyvtrban tartja, minden


szolgltatshoz egy megadott nevu fjl tartozik. Hogy egy szolgltatshoz mi tartozik, az ltalban fordtsi idoben dol el.
A fjl felptse:
modultpus

fontossg-jelz
o

modulneve

modulparamterek

A modultpus a fent emltett funkcik szerint auth, account, session,


password lehet. Egy modultpushoz tbb ilyen sor is tartozhat, ezeket a fjl elejt o l
a vge fel haladva fogja vgigjrni a PAM, a kso bb lert szablyoknak megfelelo en.
Ez fontos a PAM mukdse szempontjbl.
A fontossg-jelzo azt jelzi, hogy mi trtnjen, ha a PAM az adott sornl sikeresen
vagy sikertelenl hajtotta vgre a feladatt. Ez a kvetkezo k kzl lehet egy:
required Az adott modul sikertelensge esetn a muvelet (amit a modultpus hatroz
meg) sikertelen lesz, de a rendszer a tbbi modult is vgig fogja prblni.
requisite Az adott modul sikertelensge esetn a muvelet sikertelen lesz, de a rendszer a tbbi modult nem fogja vgigprblni, egybo l visszatr a PAMot hasznl
alkalmazshoz.
sufficient Ha az gy jellt modul sikeresen elvgzi a funkcijt, akkor a teljes muvelet
is sikeres lesz, s a tbbi required-knt megjellt modult nem fogja vgigjrni
(ha egy msik required sem volt sikertelen e modul elo tt). Ha a modul nem
vgezte el sikeresen a funkcijt, azt a PAM rendszer nem tekinti fatlis hibnak.
optional Ez egy opcionlis elem a listban, sikeressge vagy sikertelensge nem befolysolja a teljes muvelet sikeressgt, kivve, ha ez az egyetlen modul ami
alapjn el lehet dnteni a teljes muvelet sikeressgt.
Van egy jabb md is a modulok fontossgnak jelzsre, de ez nincs elg jl
dokumentlva, s jval sszetettebb a fent lert mdnl.
Modulparamterek: a moduloknak klnbzo paramtereket lehet tadni. Vannak
modulonknt vltoz s ltalnos paramterek, ezek kzl a leggyakoribbak:
debug A modul hibakeresst segto zeneteket fog kldeni a syslog dmonon keresztl.
no_warn A modul nem fog figyelmezteto zeneteket kldeni az alkalmazsnak.
use_first_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_first_pass A modul a mr egy korbbi modulnak megadott jelszt prblja hasznlni az authentikcihoz. Ha sikertelen a felhasznl azonostsa, akkor j jelszt fog krni. Ezt az opcit csak az auth funkcival lehet hasznlni.
expose_account A modul a felhasznlhoz kapcsold klnbz o informcikat tesz
elrhetov, 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
konfigurcis 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 konfigurcis 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 ellenorizze, elg eros-e. Klnbzo ellenorzseket 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, nagybetu, kisbetu, vagy egyb karakter van a jelszban. Pldul nagybetuk esetben plusz eggyel szmt az sszes nagybetu, amg a megadott szmtl kevesebb nagybetu van a jelszban. A difok= paramter azt
mondja meg, hogy legalbb hny karakternek kell msnak lennie az j s rgi
jelszban (de ha a karaktereknek legalbb a fele klnbz o , azt mindenkppen
elfogadja). Ez a modul tmogatja az ero sebb MD5s jelszavak hasznlatt.
pam_deny Ez a modul minden krst visszautast, nem enged bejelentkezni, jelszt
vltoztatni, stb. Hasznlata:
account

required

pam_deny.so

pam_env Ez a modul krnyezeti vltozkat tud belltani.


Ehhez a
/etc/environment vagy a /etc/security/pam_env.conf fjlt
hasznlja. A /etc/environment egyszeru 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 konfigurcis 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


ido alapjn extra csoportazonostkat ad a felhasznl processzeinek. A konfigurcis fjlja a /etc/security/groups.conf. A fjl szerkezete:
szolgltatsnv;terminlok;felhasznlk;id
o;csoportok

Ahol a szolgltatsnv a PAMot hasznl szolgltats neve, a terminlok a hasznlt terminl neve, a felhasznlk a felhasznlk listja, a csoportok pedig az
extra csoportazonostk, amiket a felhasznl megkap, ha az el o bb emltett felttelek teljeslnek. A listk logikai listk, az ido t kivve &, |, ! opertorokkal
lehet belolk logikai kifejezseket alkotni. Az ido t intervallumknt lehet megadni, 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 floppy 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) jvo felhasznlk mindig megkapjk az extra floppy 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
volt bejelentkezve, akkor egy dvzlo szveget fog kirni neki.
pam_limits Ezzel az ulimit parancsnl megismert korltozsokat lehet felhasznlnknt automatikusan belltani. Hasznlata:
session

required

pam_limits.so

Ez a modul a konfigurcijt 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, nofile, rss, stack, cpu, nproc, as, maxlogins, priority kzl
lehet egy aszerint, hogy mit akarunk korltozni. A korlt_rtke az er o forrshasznlat felso korltjt adja meg. Teht az adott nevu vagy adott csoportba
tartoz felhasznl (vagy * esetn mindenki) soft, hard limitjt (vagy mindkett o t
a -- esetn) llthatjuk gy be. Az egyni limitek fellbrljk a csoportlimiteket. Ha nem adjuk meg a korltozand ero forrs nevt s rtkt, s a soft vagy
hard helyn egy -- van, akkor az adott felhasznlk semmilyen korltozst nem
fognak kapni. Fontos tudni, hogy ezek a limitek bejelentkezsenknti limitek,
ha ktszer jelentkezik be a felhasznl prhuzamosan, akkor pldul dupla annyi
processzt futtathat egyszerre.
pam_nologin A /etc/nologin fjl ltezse esetn csak a root felhasznlt fogja
beengedni, a tbbieknek csak megmutatja a /etc/nologin tartalmt. A helyes mukds rdekben ennek a modulnak az auth sufficient ... modulok elott 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 konfigurcis 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 konfigurcis 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 ellenorizni tudja a klnbzo shadow-paramtereket, mint pldul utols jelsz vlts. Ehhez az account elleno rzshez tipikusan egy ilyen
bejegyzs kell:
account

required

pam_unix.so

Authentikci esetn a modul kezelni tudja a mr korbban emltett


try_first_pass s use_first_pass paramtereket, illetve van mg
egy nodelay paramtere, aminek hatsra nem fog vrni az ismtelt prblkozssal, ha a felhasznl jelszava vagy felhasznli neve
nem volt megfelelo.
Authentikcinl tipikusan gy szoktk hasznlni:
auth required pam_unix.so Jelszvltskor a modulnak elg sok
paramtere lehet, kztk ott van a szoksos try_first_pass s a
use_first_pass, a tbbi fontosabb paramter: md5 ennek hatsra a modul md5tel fogja titkostani a jelszt, a gyengbb UNIX-os crypt() helyett. Ezt
rdemes hasznlni, de kompatibilitsi problmkat okozhat pldul heterogn
NIS hlzat esetn. A use_authtok hatsra a modul minden esetben az o t
megelozo modul ltal belltott jelszt fogja hasznlni. A not_set_pass hatsra a modul figyelmen kvl hagyja a korbbi modulok ltal belltott jelszt,
s az ltala beolvasott jelszt sem fogja tovbbkldeni a kvetkez o moduloknak.
A remember= paramter hatsra a modul a /etc/security/opasswd
fjlba visszamenoleg 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 jelszmenedzselo md hasznlata ezek utn valami ilyesmi lehet:
password

required

pam_unix.so

md5

nullok

Vgl a session menedzsmentrol: a pam_unix modul egyszeruen csak logolja


a session elejt s vgt a syslog dmonon keresztl. Hasznlata:
session

required

pam_unix.so

lljon itt egy plda egy egyszeru 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

1.5.3.

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

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, ellenorztt krlmnyek kztt tevkenykedhetnek, nem tudjk teletlteni a fjlrendszereket, nem veszik el egymstl a helyet. A quota lehet o v teszi,
hogy a felhasznlk vagy csoportok ezen belltsai fjlrendszerenknt klnbz o ek
legyenek, teht szemlyenknt (csoportonknt) vltozhat az egy fjlrendszeren belli
block, illetve inode korlt.
A quota belltsa
A quota mukdshez eloszr is meg kell gyozodnnk rla, hogy a kernelnkbe vane quota tmogats fordtva, ha nincs, ezt meg kell tennnk.
Ezek utn disztribcink csomagkezelo jnek segtsgvel fel kell teleptennk a
quota csomagot, majd a /etc/fstab fjlban t kell rnunk a quotzni kvnt fjlrendszerek bejegyzst:
# block eszkz
/dev/hda7

knyvtr
/home

fs_tpus
ext2

opcik
defaults,rw,usrquota,grpquota

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 megfelelo 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


a quota.* fjlokat is megcsinltuk), elindthatjuk a fjlrendszerek quota ellen o rzst
a quotacheck -avug paranccsal. Ez kitlti a quota.user s quota.group
fjlokat. Ezt rdemes olyankor futtatni, amikor a rendszer msra nem hasznlja az adott
fjlrendszereket, klnben az adatok pontatlanok lesznek. Ezek utn bekapcsolhatjuk
a quott a quotaon -avug paranccsal.
Ezeknl a parancsoknl a kapcsolk a kvetkezo ket jelentik:
-a az adott parancs nzze vgig az sszes quotzott fjlrendszert;
-v legyen bobeszdu, futs kzben informljon arrl, hogy mit csinl;
-u a felhasznlk quotjval (is) foglalkozzon (kapcsolja ki, be, vagy pedig ellen o rizze
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 figyelmezteti a felhasznlkat, hogy tl sok helyet foglalnak,
de engedi, hogy tovbb folytassk a helyfoglalst egszen a hard limitig, vagy amg
grace time-nyi ido el nem telik a soft limit tlpstol 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
belltsval vlaszthatunk szvegszerkeszto t a munkhoz.
Nem interaktv mdban az
edquota -p prototpusfelhasznl -u felhasznlnv ...

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

parancsokkal egy prototpus felhasznl vagy csoport quotjval inicializlhatjuk a


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

Egyb megjegysek
Jelenleg quott a (hasznlhat mino sgu) linuxos fjlrendszerek kzl csak az XFS s
az ext2 tmogat, ReiserFShez elrheto k kiegsztsek.

1.6. Teljestmny javtsa


1.6.1. A teljestmny mrse
Mielott elkezdennk hangolni a rendszernket, fell kell derteni, hogy mivel lehet
(majd) problma.
Ehhez vannak klnbzo benchmark programok, amivel j esetben hasonl terhelst tudunk elolltani, 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 szintu 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
figyelhetjk, hogy mit is csinl, milyen clra mennyi gpido t hasznl el.
A vmstat segtsgvel elg jl el lehet dnteni, hogy a rendszernknek hol
van a szuk keresztmetszete, mit rdemes bo vteni ahhoz, hogy javtsunk a teljestmnyn. 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
odafigyelni, az a swap. Egy fjlszervernek nem szabad aktvan swapelnie.

1.7. Megfelelo 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,
samba s az elektronikus levelezs is), akkor a vrt forgalomtl fgg o en rdemes SCSI
merevlemezeket hasznlni.
Az IDE s SCSI merevlemezek sebessge kzt manapsg egyre cskken a klnbsg, de alapvetoen ms architektrjuk miatt az IDE merevlemezek kezelse tbb gpidot eszik, mint az SCSIk, ami egy nagy forgalm szerveren problmt jelenthet.
A forgalmat nagyon nehz elore megbecslni, nem lehet tudni, hogy pldul egy
www szerver sikeres lesz-e, ezrt ha csak a legkisebb eslyt is ltjuk, hogy a forgalom
megnohet, vegynk SCSIt.
Az SCSI tovbbi elonye, hogy egy SCSI vezrlo tbb eszkzt tud meghajtani mint
egy IDE vezrlo, ezt is rdemes figyelembe 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, rdemes o ket kln merevlemezekre tenni.

1.7.2. Hlzati krtya


Hlzati krtyknl nagyon fontos a megbzhatsg. Mindenkppen olyan krtyt vegynk, aminek j neve van a linuxozk krben. Nem rdemes NE2000 klnnal nagy
terhelsu szervert zemeltetni.
rdemes olyan krtyt venni, ami tud hardveres elleno rzosszeg-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 kikerlo adatok egyszer sem mennek t a processzor buszn. Ilyen pldul a 3Com 905C,
s a gigabit ethernet krtyk.
A hlzati krtyk ezen kpessgeinek kihasznlshoz megfelel o , a sendfile rendszerhvst tmogat szoftver kell. Az ftp szerver szoftverek kzl ilyen pldul a
vsftpd s a proftpd.

1.7.3. Processzor
Terhelstol fggoen eros processzorra lehet szksg. Sima statikus fjlszerver esetn, a
megfelelo 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 figyelni a processzor cache mretre, s a processzorbusz sebessgre.
Ha ezek tl kicsik, a rendszer nem lesz j teljestmnyu. Negatv pldaknt rdemes
megemlteni a rgi, msodszintu cache nlkli Celeronokat.

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

1.8. Szoftveres teljestmnyjavts


1.8.1. Megfelelo fjlrendszer-tpus kivlasztsa
Elg sok fajta linuxos fjlrendszer van, ezek kzl legalbb hrom hasznlhat min o sgu: a rgi ext2, a Reiserfs, s az SGI-fle XFS.
Az ext2 nagyon j teljestmnyu nagy fjlok esetn, illetve amg a knyvtrakban
kevs fjl van. Nagyon kevs gpido t fogyaszt. J blokklefoglal algoritmusa miatt
nem nagyon tredeznek a fjlok. Htrnya, hogy ha sok fjl kerl egy knyvtrba nagyon lelassul, illetve nem naplzott, azaz ramsznet vagy rendszersszeomls esetn
fsck-zni kell. Adatbzisokhoz valsznuleg 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 gpidot eszik az ext2 fjlrendszernl. Elonys lehet levelezo
szervereknl.

1.8.2. Megfelelo 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 nevu 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 ezekbol a fjlokbl cat segtsgvel kiolvashatk az rvnyben lv o
rtkek, s egy tirnytott echo paranccsal egyszeruen 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
a /proc/sys/fs/file-nr fjlbl tudhatjuk meg. Ebben az elso szm a
lefoglalt fjl-azonostk szmt jeleneti; ha ez kezd kzel kerlni a harmadik
szmhoz (ami ugyanaz, mint ami a file-max fjlban van), akkor ideje megemelni a megnyithat fjlok szmt.
Mountolhat fjlrendszerek szma: ha nagyon sok fjlrendszert akarunk mountolni,
az
echo 512 > /proc/sys/fs/super-max

paranccsal fel tudjuk emelni pldul 512-re a mountolhat fjlrendszerek szmt.


Maximlis processz-szm: ha nagyon sok programot akarunk egyszerre futtatni, akkor az
echo 16384 > /proc/sys/kernel/threads-max

paranccsal 16384-re emelhetjk ezt a korltot.


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

1.8.4. IDE merevlemez finomhangolsa


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 tviteli sebessgt, ezt hasznlhatjuk vltoztatsaink hatsnak mrshez. Az els o szm
a rendszer fjl-cachnek a sebessge, ez nem fog vltozni. A msodik a merevlemez
maximlis tviteli sebessge, ezen tudunk vltoztatni. A kimenete vrhatan gy fog
kinzni:
$ hdparm -Tt /dev/hdc
/dev/hdc:
Timing buffer-cache reads:
Timing buffered disk reads:

128 MB in 0.77 seconds =166.23 MB/sec


64 MB in 3.46 seconds = 18.50 MB/sec

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

Az gy kapott informcit felhasznlhatjuk a kso bbi belltsoknl.


A -m kapcsolval bellthatjuk, hogy hny blokkot olvasson be a merevlemez egyszerre. A maximlis bellthat rtket kiolvashatjuk a hdparm -i parancs kimenetnek MaxMultSect mezojbol. 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
mukdne 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 elso, 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).
A VGket menet kzben lehet jabb blokkos eszkzkkel b o vteni, gy tmretezni,
stb.
A VGket tovbb lehet bontani Logical Volumeokra (innento l csak LVknt fogunk
hivatkozni rjuk), ezekre lehet majd fjlrendszert tenni, vagy mshogy blokkos eszkzknt hasznlni. Az LVket is t lehet mretezni menet kzben, s ha megfelel o fjlrendszert tesznk r, ami szintn tmogatja a menet kzbeni tmretezst, akkor egy
rugalmas, menet kzben tmretezheto httrtr-rendszert kap az ember.
A Logical Volume Manager (LVM) hasznlathoz a kernelnket Logical Volume
Manager tmogatssal kell fordtani, illetve szksgnk lesz az LVM segdprogramjaira. Ezeket pldul a http://www.sistina.com/lvm/ oldalon meg lehet tallni, de az
LVM hasznlathoz szksges programok mr megtallhatk a legtbb disztribciban. A hasznlt segdprogramok verzijt a kernelben hasznlt meghajt verzijhoz
kell igaztani.
A Logical Volume Manager hasznlathoz elo szr elo 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

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

Ennek hatsra ltrejn egy proba nevu VG, aminek a mrete megegyezik az alatta
lvo partci mretvel. Ezek utn egy LVt 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 nevu LVt, a proba nevu
VGre.
Ezek utn jhetnek az rdekesebb dolgok: az lvextend segtsgvel tmretezhetjk az LVnket. Arra vigyzzunk, hogy ha nagyobbra mretezzk, akkor mindig
eloszr az LVt lltsuk nagyobbra, s csak aztn a fjlrendszert rajta, ha pedig kisebbre
vesszk, akkor eloszr a fjlrendszert, aztn az LVt 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 PVket, illetve a
vgreduce paranccsal vehetnk ki alla PVket. A vgreduce parancsot csak akkor
hasznlhatjuk, ha az adott PVt nem hasznlja a rendszer. A pvmove parancs segtsgvel egy PVrol mshov kltztethetjk az adatokat, gy akr egy merevlemezr o l
egy msikra tkltzhetnk anlkl, hogy a rendszert e miatt le kellene lltani. Persze
merevlemez cserjhez, vagy ms konfigurcival kapcsolatos munkk elvgzshez
ettol mg lehet, hogy le kell llni. Ha pldul a /dev/hda3 partcin lvo proba nevu
VGnket t akarjuk kltztetni a /dev/hdc3 partcira, akkor azt a kvetkez o kppen
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.
Linux alatt egyre tbb naplz fjlrendszer vlt elrheto v az utbbi vekben,
mindegyik ms minosgu, ms tuds. Emlts szintjn ezek a Reiserfs, az SGIfle XFS, az IBM-fle JFS, az ext2 leszrmazottja az ext3, illetve a Tux2 nevu,
szintn ext2 fjlrendszerbol szrmaz failsafe fjlrendszer.
Ezek kzl a leghasznlhatbb a Reiserfs, s az XFS. Itt az elso vel fogok foglalkozni.
A Reiserfs egy kiegyenslyozott fkon alapul fjlrendszer, emiatt f o leg kis fjlok kezelsnl gyorsabb trsainl. Ezen tulajdonsgt kihasznlva nagy teljestmnyu
fjl, s levelezoszerver ptheto vele. Tovbbi elonys tulajdonsga, hogy tmogatja a
lemountols nlkli tmretezst, ami jl prosthat az LVM LV tmretezsvel.
A Reiserfs htrnya, hogy tbb gpido t eszik, mint pldul az ext2, illetve
32 MB-ot lefoglal magnak a naplzshoz. Ezrt ha egy 32 MB-os fjlrendszerre van
szksgnk, akkor 64 MB-os partci kell hozz.
38

A Reiserfs a 2.4-es kernelsorozat rszt kpezi, esetleg hibajavtsokrt rdemes elnzni a http://www.namesys.org/ oldalra. Onnan letlthetjk a Reiserfs-hez
tartoz programokat is, de valsznuleg 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.
A reiserfs extra mount opcii a notail s a resize=. Az elso segtsgvel kikapcsolhatjuk a kis fjlok s a fjlvgek klnleges kezelst. Ez gyorsthatja a
fjlmuveleteket, illetve rgi lilo-nl szksg van erre, klnben nem fogunk tudni
bootolni a fjlrendszernkrol. A helyes bootolshoz ezt az opcit a kernel helyrettele
s a lilo futtatsa elott kell bekapcsolni.
A resize opci segtsgvel menet kzben tmretezhetnk egy fjlrendszert,
nem kell lemountolni se. Arra kell figyelni, hogy a fjlrendszer j mrete ne legyen
nagyobb az alatta lvo blokkos eszkztol. 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 egyszeruen megrhatunk egy olyan szkriptet, aminek a segtsgvel
egyszerre mretezhetjk t a fjlrendszert, s az LVt, amin a fjlrendszer l:
#!/bin/sh
# hasznlat resize
blokkeszkz-tvonala jmret (MB-ban)
#
#
$0
$1
$2
#
# Hiba esetn 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 ellenorzi.

1.11. Naplelemzs
1.11.1. A syslog megfelelo belltsa
A syslog, a rendszer naplr dmonjnak helyes belltsa nagyon fontos a megfelelo 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;
local0, local1, . . . local7 tetszo leges loklis bejegyzseknek;
lpr a nyomtat-alrendszer bejegyzseinek;
mail a levelezo 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 figyelmeztetst jelent;
notice ezt a prioritst normlis, de fontos esemnyek esetn szoktk hasznlni;
info informcikzlsre szoktk hasznlni, nem jelez problmt;
debug a programok a hibk megtallst segto zeneteknl szoktk hasznlni.
A naplbejegyezsek sztvlogatsnl az zenet ezen kt tulajdonsgt lehet hasznlni.
A syslog dmon tmogatja az zenetek fjlba, FIFOba, terminlra, tvoli gpre
vagy loklisan bejelentkezett felhasznlknak trtno tovbbtst.
A syslog dmon konfigurcis 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 alapvetoen facilitymeghatrozs.prioritsmeghatrozs
felptsuek, ahol a facilitymeghatrozs (egy vagy) tbb facility vessz o vel elvlasztott 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 egyezo, s attl nagyobb priorits zenetre illeszkedni fog. A
formja lehet tovbb =priorits, ez rtelemszeruen pontos egyezst jelent. A !
segtsgvel lehet tagadst kifejezni. Ha prioritsknt none-t adunk meg, az semmire
sem fog illeszkedni.
Az zenet cljnak meghatrozsa etto l jval egyszerubb. Egy / jellel kezdo do cl
merevlemezen lvo fjlt jelent, -/ szintn fjlt jelent, de ebben az esetben az zenetet
nem szinkron mdon rja ki a diszkre, hanem hagyja, hogy a kernel azt majd ks o bb
elintzze (ez gyorsabb mint az elozo mdszer, de sszeomls esetn adatot veszthetnk). A | jellel kezdodo cl merevlemezen lvo FIFOt jelent, ezzel akr sajt kezuleg
is feldolgozhatjuk az zeneteket. A @ jel utn egy tvoli gp nevt vrja a syslog,
oda fogja tovbb kldeni a naplbejegyzseket (hogy ez mukdjn, a tvoli rendszeren
-r kapcsolval kell indtani a syslog dmont). A * jellel, illetve az egyb karakterekkel kezdodo clkijells hatsra a rendszer minden felhasznlnak, vagy az adott
felhasznlk terminljra fogja kldeni az zenetet.
Pldaknt egy rszlet egy syslog konfigurcis 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 valsznuleg a logcheck nevu a legelterjedtebb, de rhatunk magunknak is egyet.
Ha magunknak akarunk rni logelleno rzo programot, akkor azt egyszeru shell szkriptekkel megtehetjk. Nagyon jl lehet egytt hasznlni a cut, a sed, a sort s
a uniq segdprogramokat. Kiindulsknt hasznlhatunk valami ilyesmi rendszert:
a cut segtsgvel levghatjuk a dtum mezo t a naplbejegyzsekrol (az az elso 16
karakter), aztn a sed paranccsal tovbbi feldolgozst csinlhatunk (felesleges sorok
trlse, a naplba r processzek processzazonostjnak trlse, stb.), vgl a sort
s a uniq segsgvel ha tbb megegyezo sorunk van, abbl egyet csinlhatunk.
Teht a shell szkriptben valami ilyesmi fog szerepelni:
cut -b16- /var/log/syslog |sed -f sedparancsfile |sort |uniq

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

41

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

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

sorokat kell trni, hogy megmondjuk neki, hogy melyik fjlokban ellen o rizze a naplbejegyzseket. Ha van olyan fjlunk ahov a *.debug bejegyzseket kldjk, rdemes azt megadni.
Most mr akr le is futtathatnnk a logcheck.sh fjlt, de elo bb nzzk t a
mintkat tartalmaz fjlokat.
A logcheck.hacking fjl tartalmazza a betrsi ksrletekre utal mintkat.
Ha ezek kzl egy is illeszkedik a naplfjl egy sorra, akkor azt
a program egy ideiglenes fjlban eltrolja. A logcheck.violations s
logcheck.violations.ignore fjlt egytt hasznlja a program; ha a naplfjl egy sora illeszkedik egy mintra a logcheck.violations fjlbl, de egyre
sem a logcheck.violations.ignore fjlbl, akkor ezt a sort is beteszi egy tmeneti fjlba. Vgl az sszes olyan sort, ami nem illeszkedik a logcheck.ignore
mintira, szintn eltrolja. Ha tallt tmadsra utal jeleket, az elmentett adatokat egy
gpnv dtum ACTIVE SYSTEM ATTACK! cmu levlben elkldi a rendszergazdnak.
Ha nem tallt tmadsra utal bejegyzseket, akkor a levl cme egyszeruen 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. Alapveto biztonsgi belltsok


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

paranccsal krhetjk a rendszerto l. Plda kimenet:


tcp
tcp
tcp
tcp
tcp
...

0
0
0
0
0

0
0
0
0
0

*:shell
*:ldap
*:time
*:discard
*:font-service

*:*
*:*
*:*
*:*
*:*

LISTEN
LISTEN
LISTEN
LISTEN
LISTEN

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

font-service/tcp

PID ACCESS COMMAND


323 f.... xfs

Teht a font-service porton az xfs processz vrja a berkezo krseket.


Most, hogy megvan a processznk, a fentebb lertak alapjn dnthetnk arrl, hogy
szksgnk van-e r.
Nyitott UDP portok: ezek a netstat -a kimenetben gy ltszanak:
udp

0 *:talk

*:*

Ezekre is mukdik az fuser parancs, a tcp kulcsszt rtelemszeruen udpre cserlve.

1.12.2. inetd
Az inetd az Internet Superserver Daemon, igny szerint tbbfajta hlzati szolgltatst tud nyjtani segdprogramok felhasznlsval. Konfigurcis fjlja a
/etc/inetd.conf. Rla mr volt sz korbban.
Ha nincs szksgnk egy inetd-bo l fut szolgltatsra, akkor a sor elejre # jelet
rva letilthatjuk azt. Ezutn az inetd programnak HUP szignlt kell kldeni, hogy
jraolvassa a konfigurcis fjljt. Plda letiltott telnet szolgltatsra:
#telnet

stream

tcp

nowait

telnetd.telnetd

43

/usr/sbin/tcpd

/usr/sbin/in.telnetd

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


A /etc/hosts.allow s a /etc/hosts.deny fjlokkal tovbb lehet finomtani
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 megfelelo 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


Megfeleloen 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 megfeleloen 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;
noexec az adott fjlrendszeren levo fjlokat nem lehet futtatni (mg ha klnben futtathatk is lennnek). Ez a kapcsol jelen pillanatban megkerlhet o az albbi
mdon:
ldd /mnt/noexec_drive/bin/bash

A fenti parancs elindtja a szndkunk szerint nem futtathat llapot partci


/bin/ knyvtrbl a bash binrist. Emiatt bnjunk vatosan a noexec kapcsolval!
A mount opcikat a remount mount opcival vltoztathatjuk meg. Pldk:
mount /dev/hda3 /tmp -onosuid,nodev
mount /dev/hda2 /usr -oro

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

Termszetesen itt is rdemes csak a minimlisan szksges jogokat meghagyni


(/usr read-only, /tmp s /home nosuid, nodev s esetleg noexec).
44

1.12.5. Egyebek: lilo, jelsz biztonsg


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

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

Termszetesen kell mg egy chmod 600 /etc/lilo.conf is, illetve a lilo


program futtatsa.
ltalnos jelszbiztonsg: sose hasznljunk sztri szt jelszknt, inkbb generljunk egyet a pwgen programmal. A jelszavakat cserljk rendszeresen. rdemes lehet nha a John the Ripper programot futtatni a jelszfjlra (letlthet o a
http://www.openwall.com/ oldalrl).

1.13. Ments s helyrellts


1.13.1. tar
A GNU tar segtsgvel teljes knyvtr-hierarchikat lehet egy vagy tbb eszkzre
sszecsomagolni, gy pldul egy fjlba lerakni, vagy szalagra rni.
A tar a parancsokat a parancssorban vrja. Egy, s csak egy parancsot meg kell
neki adni.
A parancsokon kvl vannak mg nem ktelezo jellegu paramterei.
A tar leggyakrabban hasznlt parancsai: a --create egy j archvum ltrehozshoz, a --extract egy ltezo 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
bobeszdu 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 egyszeru pldk utn jhetnek az rdekesebb dolgok: a tar


--update parancsa segtsgvel egy archv fjl tartalmt frissthetjk. Ez egyszeruen gy mukdik, hogy a tar vgignzi az archv fjlt, s az archivland knyvtrstruktrt, s ha valamelyik fjl jabb, mint az archvumban tallhat, akkor az j fjlt
hozzfuzi az archvumhoz. Emiatt az archv fjl mrete llandan n o ni fog. Az archv
fjl kibontsa esetn csak az utoljra hozzfuztt 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 mukdik szalagos egysgek esetn.
# Kitrljk a proba/a fjlt az archvumbl.
$ tar --delete --file=elso.tar proba/a

A tar segtsgvel inkrementlis mentsek is ksztheto k, ehhez a


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

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

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

A tvoli gpen kell lennie egy /etc/rmt programnak, ez biztostja a tvoli eszkzk elrst.
A visszallts tvolrl hasonlkppen trtnik.
A tar tud klnbzo tmrtseket kezelni, de rdemesebb egyszeruen pipe-ot
hasznlva rkldeni egy tmrto programra, mert azt gy knnyebb paramterezni.
Pldul ha erosebb 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 foleg mirrorozsra hasznlt program, gy pldul kt gp (vagy csak
egy gpen bell) kztt tud knyvtr-hierarchikat mozgatni.
Az rsync elonye 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

mdon szoktk hasznlni, ahol az opcik hatrozzk meg a fjltvitel klnbz o paramtereit, a forrs s a cl pedig rtelemszeruen 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 bobeszdu 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 figyelni a forrs meghatrozsnl a forrs vgn ll / jelre; ez befolysolja, hogy az rsync hogyan pti fel a knyvtrstruktrt a clon. Ezt egy pldn
keresztl lehet a legjobban megrteni:
# Ltrehozunk egy knyvtrat a prbhoz.
$ mkdir /tmp/proba
# Elindtjuk az rsyncet, a public_html knyvtrat
# visszk t a /tmp/proba knyvtrba.
$ rsync -av public_html /tmp/proba
building file list ... done
public_html/
public_html/index.html
...
wrote 4782998 bytes read 576 bytes 9567148.00 bytes/sec
total size is 4780153 speedup is 1.00
# Megnzzk mit tett le.
$ ls /tmp/proba
public_html

Egy ilyen mentsbol a helyrellts rtelemszeruen a forrs s a cl megfelelo felcserlsvel elrheto.


Mint mr korbban volt rla sz, az rsync hasznlhat tvoli szinkronizlsra
vagy mentsre is.
Ez ktflekppen valsthat meg: vagy egy inetd-bo l futtatott rsync szerverrel, 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

Ezt persze kombinlni lehet az ssh klnbzo kapcsolival, pldul ha ms porton


(mondjuk az 1678-ason) fut a tvoli ssh szerver, akkor a parancssor ilyen lesz:
$ rsync -e "ssh -p 1678" -av public_html tonhal:/tmp/proba

Egyb fontos rsync opcik: a -z kapcsol hatsra az rsync rptmrteni


fogja az tjvo 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 elonys 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, mdostsokkal, vagy anlkl, akr kereskedelmi, akr nem-kereskedelmi ton. Msfel o l, e
Licensz megorzi a szerzo, vagy kiad munkja elismershez fuzo do jogt, s egyttal
mentesti o t a msok ltal beiktatott mdostsok kvetkezmnyei all.
Jelen Licensz egyfajta etalonnak tekintheto , ami nem jelent mst, mint hogy a
dokumentumbl szrmaztatott munkk maguk is szabad min o stst kell, hogy kapjanak. E dokumentum egyben a GNU ltalnos Felhasznli Licensz kiegszt o jeknt
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
tetszoleges trgykru rott dokumentumra alkalmazhatk, fggetlenl attl, hogy az
knyvformban valaha megjelent-e. Mindamellett e Licenszet f o knt olyan munkkhoz ajnljuk, melyek elsodleges clja az tmutats, vagy a tjkoztats.

1. ALKALMAZHATSG S DEFINCIK
E Licensz minden olyan kziknyvre, vagy ms jellegu munkra vonatkozik, melyen
megtallhat a szerzoi jogtulajdonos ltal feltntetett figyelmeztets, miszerint a dokumentum terjesztse jelen Licensz felttelei alapjn lehetsges. A Dokumentum
albb brmely ilyen jellegu kziknyvre, vagy egyb munkra vonatkozik. A lakossg
minden tagja potencilis licensztulajdonosnak tekintheto , s mindegyikk megszltsa egyarnt n.

50

A Dokumentum Mdostott Vltozata brmely olyan munkra vonatkozik, mely


tartalmazza a Dokumentumot, vagy annak elemeit akr sz szerint, akr mdostsokkal, s/vagy ms nyelvre lefordtva.
A Msodlagos Szakasz egy egyedi nvvel br fggelk, esetleg a Dokumentum
egy megelozo szakasza, mely kizrlag a kiadknak, vagy az alkotknak a Dokumentum tfog trgykrhez (vagy kapcsold tmkhoz) fuz o do 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
lehetosg matematikai trgy magyarzatokra.) A fenti kapcsolat trgya lehet a tmakrrel, vagy a kapcsold tmkkal val trtnelmi viszony, illetve az azokra vonatkoz jogi, kereskedelmi, filozfiai, etikai, vagy politikai felfogs.
A Nem Vltoztathat Szakaszok olyan specilis Msodlagos Szakasznak szmtanak, melyek ilyetn val meghatrozst az a kzlemny tartalmazza, miszerint a
Dokumentum jelen Licensz hatlya alatt lett kiadva.
A Bortszvegek olyan rvid szvegrszek, melyek Cmlap-szvegknt, illetve
Htlap-szvegknt kerlnek felsorolsra abban a kzlemnyben, miszerint a Dokumentum jelen Licensz hatlya alatt lett kiadva.
A Dokumentum tltsz pldnya olyan gppel-olvashat vltozatot jell, mely
a nyilvnossg szmra hozzfrheto formtumban kerl terjesztsre, tovbb melynek
tartalma szokvnyos szvegszerkeszto -programokkal, illetve (pixelekbo l ll kpek
esetn) szokvnyos kpmegjelento -programokkal, vagy (rajzok esetn) ltalnosan
hozzfrheto rajprogramok segtsgvel azonnal s kzvetlenl megtekinthet o , vagy
mdosthat; tovbb olyan formtumban mely alkalmas a szvegszerkeszt o kbe val
bevitelre, vagy a szvegszerkeszto k ltal kezelt formtumokba val automatikus talaktsra. Egy olyan, egybknt tltsz formtumban kszlt pldny, melynek markupja gy lett kialaktva, hogy megakadlyozza, vagy eltntortsa az olvaskat minden
tovbbi mdoststl, nem tekintheto tltsznak. A nem tltsz pldnyok az
tltszatlan megnevezst kapjk.
Az tltszsg kritriumainak megfelelo formtumok kztt megtallhat pldul
a markup nlkli egyszeru ASCII, a Texinfo beviteli formtum, a LATEX beviteli formtum, az SGML vagy az XML egy ltalnosan hozzfrheto DTD hasznlatval, s
a standardnak megfelelo, emberi mdostsra tervezett egyszeru HTML. Az tltszatlan formtumok kz sorolhat a PostScript, a PDF, a szabadalmaztatott s csak fizet o s
szvegszerkesztokkel olvashat formtumok, az olyan SGML vagy XML, melyhez a
szksges DTD s/vagy egyb feldolgoz eszkzk nem ltalnosan hozzfrhet o k, s
az olyan gpileg-generlt HTML formtum, melyet egyes szvegszerkeszt o k hoznak
ltre, kizrlag kiviteli clra.
Egy nyomtatott knyv esetben a Cmlap magt a cmlapot, illetve brmely azt
kiegszto tovbbi oldalt jell, amely a jelen Licenszben definilt cmlap-tartalmak
kzzttelhez szksges. Az olyan formtum munkknl, melyek nem rendelkeznek effajta cmlappal, a Cmlap a munka cmhez legkzelebb es o , m a szveg
trzst megelozo szvegrszeket jelli.

2. SZ SZERINTI SOKSZOROST S
nnek lehetosge van a dokumentum kereskedelmi, vagy nem-kereskedelmi jellegu
sokszorostsra s terjesztsre, brmely mdiumon keresztl, feltve, hogy jelen Licensz, a szerzoi jogi figyelmeztets, tovbb a Dokumentumot jelen Licensz hatlya
51

al rendelo 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
kteles elltni olyan bortlapokkal, melyeken a kvetkez o Bortszvegek tisztn s
olvashatan fel vannak tntetve: Cmlap-szvegek a cmlapon, illetve Htlap-szvegek
a htlapon. Mindkt bortlapra egyrtelmuen 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 kvetelmnynek, gy a sokszorosts etto l eltekintve sz szerinti reprodukcinak mino sl.
Abban az esetben, ha a bortlapok brmelyikn megkvetelt szvegrszek tl
hossznak bizonyulnnak az olvashat kzzttelhez, gy csak az els o knt felsoroltakat kell feltntetnie (amennyi jzan belts szerint elfr) a tnyleges bortn, a tovbbiak pedig tkerlhetnek a kvetkezo oldalakra.
Amennyiben 100-nl tbb tltszatlan pldnyt tesz kzz, vagy terjeszt a Dokumentumbl, gy kteles vagy egy gppel-olvashat tltsz pldnyt mellkelni minden egyes tltszatlan pldnyhoz, vagy lerni minden egyes tltszatlan pldnyban
egy a mdostatlan tltsz pldnyt tartalmaz nyilvnos hozzfrsu szmtgphlzat elrhetosgt, ahonnan brki, anonim mdon, trtsmentesen letltheti azt,
egy kzismert hlzati protokoll hasznlatval. Ha az utbbi lehet o sget vlasztja,
kteles gondoskodni arrl, hogy attl a naptl kezdve, amikor az utols tltszatlan
pldny is terjesztsre kerlt (akr kzvetlenl n ltal, akr kiskereskedelmi forgalomban), 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
pldnyszm terjesztsbe kezd, mr jval ezt megelo zoen lpjen kapcsolatba a Dokumentum szerzoivel, annak rdekben, hogy megkaphassa to lk a Dokumentum esetleges feljtott vltozatt.

4. MDOST S
nnek lehetosge 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 Mdostott Vltozat a Dokumentum szerept tlti be, ezltal leheto sget biztostva annak
terjesztsre s mdostsra brkinek, aki csak hozzjut egy pldnyhoz. Mindezen
fell, a Mdostott Vltozat az albbi kvetelmnyeknek is meg kell, hogy feleljen:
A Cmlapon (s ha van, a bortkon) tntessen fel egy a Dokumentumtl, illetve
brmely korbbi vltozattl eltro cmet (melyeknek, ha vannak, a Dokumentum Elozmnyek szakaszban kell szerepelnik). Egy korbbi vltozat cmt
csak akkor hasznlhatja, ha annak szerzo je engedlyezte azt.
A Cmlapon szerzokknt sorolja fel a Mdostott Vltozatban elvgzett vltoztatsokrt felelos szemlyeket, vagy entitsokat, tovbb a Dokumentum f o szerzoi kzl legkevesebb tt (vagy mindet, ha nincsenek ten).
A Cmlapon a Mdostott Vltozat kzzttelrt felelo s szemlyt tntesse fel
kiadknt.
A Dokumentum sszes szerzoi jogi figyelmeztetst hagyja rintetlenl.
Sajt mdostsaira vonatkozan is tegyen kzz egy szerz o i jogi megjegyzst,
a tbbi ilyen jellegu figyelmeztets mellett.
Rgtn a szerzoi jogi figyelmeztetseket kvetoen 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
szksges Bortszvegek jelen Dokumentum licenszben el o rt teljes listjt.
Mellkelje jelen Licensz egy eredeti pldnyt.
Az Elozmnyek szakaszt, illetve annak cmt szintn hagyja rintetlenl,
emellett adjon hozz egy j elemet, amely minimlisan tartalmazza a Mdostott Vltozat cmt, kiadsi vt, tovbb az j szerzo k, illetve a kiad nevt,
a Cmlapon lthatkhoz hasonlan. Amennyiben a Dokumentum nem tartalmaz
semmifle Elozmnyek elnevezsu szakaszt, gy hozzon ltre egyet, mely tartalmazza a Dokumentum cmt, kiadsi vt, tovbb a szerz o k, illetve a kiad
nevt, a Cmlapon lthatkhoz hasonlan; majd ezt kveto en adjon hozz egy j,
a Mdostott Vltozatra vonatkoz elemet, a fentiekkel sszhangban.
Ne tegyen vltoztatsokat a Dokumentumban megadott tltsz pldny nyilvnos hlzati elrhetosgt (ha van ilyen) illetoen, vagy hasonlkpp, a Dokumentum alapjul szolgl korbbi vltozatok hlzati helyre vonatkozan. Ezek az
Elozmnyek szakaszban is szerepelhetnek. Csak abban az esetben hagyhatja el
egyes korbbi vltozatok hlzati elrheto sgt, ha azok legkevesebb ngy vvel
a Dokumentum elott 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
hozzjrulkat, s/vagy az ajnlsokat illeto en vltozatlan maradjon.
A Dokumentum sszes Nem Vltoztathat Szakaszt hagyja rintetlenl, gy
cmket, mint tartalmukat illetoen. A szakaszok szmozsa, vagy brmely azzal
egyenrtku jells nem tartozik a szakaszcmek kz.
53

Trljn minden Jvhagys elnevezsu szakaszt. Effajta szakaszok nem kpezhetik rszt a Mdostott Vltozatnak.
Ne nevezzen t semmilyen ltezo szakaszt Jvhagys-ra, vagy olyasmire,
mely cmben a Nem Vltoztathat Szakaszokkal tkzhet.
Ha a Mdostott Vltozat j megelozo szakaszokat tartalmaz, vagy olyan fggelkeket, melyek Msodlagos Szakasznak mino slnek, m nem tartalmaznak a Dokumentumbl szrmaz anyagot, abban az esetben, beltsa szerint, e szakaszok nmelyikt,
vagy akr az sszeset nem vltoztathatknt sorolhatja be. Ehhez nem kell mst tennie,
mint felsorolni a szban forg cmeket a Mdostott Vltozat licensznek Nem Vltoztathat Szakaszok listjban. E cmeknek hatrozottan el kell klnlnie minden egyb
szakaszcmtol.
Jvhagys elnevezsu 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 defincijaknt ismerte el.
Cmlap-szveg gyannt egy legfeljebb t szbl ll szvegrszt adhat meg, a
Htlap-szveg esetn pedig 25 szt fuzhet a Mdostott Vltozat Bortszvegeinek
vghez. Brmely entits csak s kizrlag egy Cmlap- s egy Htlap-szvegrszt
adhat (akr kzvetton keresztl) a Dokumentumhoz. Ha a dokumentum mr eleve
rendelkezik Bortszveggel, akr azrt, mert azt korbban n adta hozz, vagy mert
valaki ms nn keresztl gondoskodott erro l, abban az esetben nincs leheto sg jabb
Bortszveg hozzadsra; a rgit mindazonltal lecserlheti, abban az esetben, ha
annak kiadja egyrtelmuen engedlyezi azt.
A Dokumentum szerzoje/i s kiadja/i jelen Licensz alapjn nem teszik leheto v
nevk nyilvnos felhasznlst egyetlen Mdostott Vltozat tmogatsa, vagy tmogatottsga rdekben sem.

5. KOMBINLT DOKUMENTUMOK
nnek lehetosge 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 tartalmaznia, az egymssal tfedsben lvo Nem Vltoztathat Szakaszok pedig kivlthatk
egy sszegzett pldnnyal. Amennyiben tbb Nem Vltoztathat Szakasz szerepelne
ugyanazon cmmel, m eltro tartalommal, gy alaktsa t minden egyes szakasz cmt
olyan mdon, hogy mgrja zrjelben az eredeti szerzo s kiad nevt (ha ismeri),
vagy egy egyedi sorszmot. Ha szksges, a Nem Vltoztathat Szakaszok cmeivel is
vgezze el a fenti mdostsokat a kombinlt munka licenszben.
A kombinlt munkban az eredeti dokumentumok sszes El o zmnyek elnevezsu szakaszt ssze kell olvasztania, miltal egy sszefgg o Elozmnyek szakasz
jn ltre; hasonlkpp kell eljrnia a Ksznetnyilvnts, illetve az Ajnlsok szakaszok tekintetben. Ugyanakkor minden Jvhagys elnevezsu szakaszt trlnie
kell.

54


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

7. SSZEFUZS
FGGETLEN MUNKKKAL
A Dokumentum s annak szrmazkainak klnll, vagy fggetlen dokumentumokkal, illetve munkkkal val sszefuzse egy kzs trolsi, vagy terjesztsi egysgen,
egszben nem tekintheto a Dokumentum Mdostott Vltozatnak, feltve, hogy az
sszefuzs nem lesz szerzoi jogvdett. Az effajta sszefuzs eredmnyeknt sszegzs jn ltre, m jelen Licensz nem rvnyes az abban a Dokumentummal egytt
szereplo 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
A fordts egyfajta mdostsnak tekintheto , gy ht a Dokumentum lefordtott pldnyai a 4. szakasz rendelkezsei alapjn terjesztheto k. A Nem Vltoztathat Szakaszok
lefordtsa kln engedlyt ignyel a szerzo i jogtulajdonostl, mindazonltal kzzteheti a lefordtott vltozatokat is abban az esetben, ha az eredeti Nem Vltoztathat
Szakaszokat is belefoglalja a munkba. E Licensz lefordtsra ugyanezek a felttelek
rvnyesek, vagyis a lefordtott vltozat csak akkor jelenhet meg, ha mellette ott van
az eredeti, angol nyelvu Licensz szvege is. Amennyiben eltrs mutatkozna az eredeti vltozat, illetve a fordts kztt, gy a Licensz angol nyelvu eredetije tekintend o
mrvadnak.

9. MEGSZUNS
A jelen Licenszben egyrtelmuen kijellt kereteken kvl tilos a Dokumentum brminemu sokszorostsa, mdostsa, allicenszelse, vagy terjesztse. Minden ezzel
szembeni sokszorostsi, mdostsi, allicenszelsi, vagy terjesztsi ksrlet a jelen Licenszben meghatrozott jogok automatikus megszunst vonja maga utn. Azok a fe-

55

lek, ugyanakkor, akik nn keresztl jutottak msolathoz, vagy jogosultsgokhoz, nem


vesztik el azokat, amg maradktalanul betartjk e Licensz elo rsait.

10. JELEN LICENSZ JVOBENI


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

FGGELK: A Licensz alkalmazsa sajt dokumentumaira


Ha e Licenszet egy n ltal rt dokumentumban kvnja hasznlni, akkor mellkelje
hozz a Licensz egy pldnyt, tovbb vezesse r az albbi szerz o i jogi s licensz
kzlemnyeket, rgtn a cmlapot kveto en:
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 kveto 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 elnevezsu 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
mint pldul a GNU ltalnos Felhasznli Licensz , hogy lehet o v tegye a kdok
szabad szoftverekben val alkalmazst.

56

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

57

You might also like