Next: Sendmail az intézetben
Up: Sendmail telepítése és beállítása
Previous: Általános tudnivalók
  Tartalom
Szakaszok
A forrásban hozzáférhető sendmail disztribúció tartalmazza magát a sendmail
programot, valamint egyéb, a levelezőrendszer konfigurálásához és teljessé tételéhez
használható programokat is, mint pl. a külső adatbázisfile-ok felépítésére szolgáló
makemap, a helyi (lényegében a valódi kézbesítést, tehát a MUA-nek történő
átadást végző) mailer-ként használható mail.local és a UUCP levelezéshez
szükséges rmail programokat.
Minden, a disztribúcióban megtalálható program forráskódja a disztribúció megfelelő
alkönyvtárában található. Egy-egy program a saját alkönyvtárában kiadott ./Build
paranccsal fordítható le; a teljes disztribúció fordítását az egésznek a tetején
lévő Makefile írja le. A fordításhoz (természetesen) egy működő C fordító
szükséges, valamint (a dokumentációk elkészítéséhez) a groff nevű szövegformázó
rendszer.
Az adott operációs rendszerhez természetesen előre elkészített (forráskódú vagy
bináris) csomagként is hozzáférhető lehet, amit érdemes figyelembe venni.
Az eredeti forráskódból lefordított programokat a szokásos make install
parancs segítségével telepíthetjük. Ezek közül a legfontosabbak:
- sendmail: ennek a helye függ az adott rendszertől. Az újabb rendszereknél
a /usr/sbin preferált, de sok esetben a /usr/lib lesz a telepített
sendmail helye, mint pl. Solaris 2 alatt is. SVR4 rendszerek esetén a
/usr/ucblib is szóba jöhet. A sendmail program több funkciót
is képes ellátni bizonyos kapcsolók megadásával; ezek egyszerűsítésére
a /usr/bin-be több, a sendmail-re mutató symlink is kerül, amelyekkel
a megfelelő funkciókat meghívhatjuk:
- newaliases: az aliases adatbázist újrafordítja (erre mindenhol
szükség van);
- hoststat: ennek akkor van értelme, ha a sendmail-nek a HostStatusDirectory
opciója be van állítva. Ez utóbbinak általában a queue directory-n belül elhelyezkedő
.hoststat-ot szokás megadni. A sendmail ekkor itt tárolja cache-szerűen
az egyes távoli gépekkel utoljára folytatott levelezési tranzakciók eredményét.
Ha a sendmail-t hoststat-ként hívjuk meg, a cache tartalmát olvasható
formában kilistázza; ez adminisztráció szempontjából érdekes lehet.
- purgestat: az előbbi cache-t kiüríti.
- mailq: a sorban álló levelekről ad információt.
- makemap: adatbázis file-ok elkészítésére használható. A /usr/sbin
alá kerül.
- mailstats: a /etc/sendmail.st (vagy az általunk beállított statisztikai
file) alapján statisztikát készít az eddigi levelezésről.
- smrsh: Sendmail Restricted Shell.
Ennek a segítségével korlátozhatjuk, hogy a beérkező leveleket mely programoknak
lehessen átadni.
- praliases: az aliases file kilistázása.
- rmail: UUCP levelezéshez használható; a UUCP mailer a távoli gépen található
rmail-t indítja el az uux program használatával. Solaris alatt
nem használható, a make install nem is telepíti.
- mail.local: lokális mailer-nek használható. Solaris alatt ez sem működik,
mivel ott más a mailbox-kezelés (ez sem kerül telepítésre).
A sendmail konfigurációs állomány helye az egyetlen olyan filenév (a
C könyvtár által használt rendszerfile-októl eltekintve), ami a sendmail
kódjába bele van fordítva. Ennek előírás szerinti helye: /etc/sendmail.cf,
fordítási opcióként beállítható, de nem ajánlott elmozdítani.
Fontos szereppel bír még az aliases file; ennek helye alapértelmezésben
/etc/aliases, de a konfigurációs file-ban átállítható. Itt a fogadott
levelek rendszer szintű átirányítását lehet leírni: egy-egy helyi (felhasználóként
nem feltétlenül létező) címhez rendelhetünk egy vagy több (vesszőkkel elválasztott)
címzettet. Egy speciális átirányítás az :include:file elérési útja cím,
ami azt jelenti, hogy a címzettek listája egy külön file-ban található.
A működéshez szükséges egy mail queue directory is. Ez szinte minden rendszerben
a /var/spool/mqueue szokott lenni. Ajánlott védelmi beállítás: root
tulajdonos, 700 hozzáférés. Legtöbbször ez alá kerül a hoststat által
használt információkat tároló directory is; szokásos neve: .hoststat.
A sendmail 8.9-es verziójában bevezették a levelezőrendszerrel kapcsolatos
konfigurációs file-ok számára a /etc/mail directory-t. Jelenleg alapértelmezésben
csak az új lehetőségekhez tartozó új adatbázis-file-ok találhatóak itt, 8.10-től
kezdve az összes ide fog kerülni. Természetesen a legjobb az, ha mi magunk állítjuk
be ezeket.
Konfiguráció
A továbbiakban a directory-hivatkozások a sendmail disztribúcióhoz képest
relatívan értendők.
Konfigurálás m4 makrókkal
A működéshez a sendmail-nek használható konfigurációs file-ra van szüksége.
Ebben található az összes olyan szabály, amely a címek átírását, mailer-ekkel
való megfeleltetését írja le, valamint a mailerek definíciója és a működéshez
tartozó opciók is mind ebbe kerülnek. Ebből kifolyólag egy konfigurációs file
szokásos mérete 25-35K, emellett igen nehezen olvasható. Ennek kézzel történő
beállítása rendkívül nehéz feladat.
Ennek megkönnyítésére az újabb sendmail disztribúciókhoz előredefiniált,
paraméterezhető makrócsomagokat mellékelnek, amelyekből az m4 makrófordító
alkalmazásával egy sendmail konfiguráció állítható össze. A mellékelt
makrók a forrás-disztribúcióban a cf directory alatt, szerepük szerint
csoportosítva találhatók a következőképpen:
- cf: ide kerül az ún. Master Configuration (.mc) file, ami az
elkészítendő sendmail konfigurációs file (.cf) alapja. Ezt nekünk
kell elkészítenünk, néhány példát mellékeltek. A konfigurációs file előállítását
leíró Makefile is itt van.
- domain: a saját domain-re vonatkozó beállításokat gyűjthetjük össze itt,
mint pl. a különböző relay szervereket (ezt is mi írjuk).
- feature: a különböző öszetett funkciók leírására szolgáló makrók. Ezeket
tetszés szerint vehetjük igénybe.
- hack: egyéb helyi igények kielégítésére összebarkácsolt beállítások.
Ha lehet, kerüljük ezeket.
- m4: alapvető makrók, amelyek szükségesek a .cf file elkészítéséhez.
- mailer: mailer-ek definíciója. Ezek közül azokat a mailer-eket kell csak
belevenni a konfigurációba, amelyek számunkra fontosak.
- ostype: az operációs rendszertől függő dolgok, pl. rendszerfile-ok elhelyezkedése.
- sh: a .cf file előállítása során használt shell script-ek. Ezekhez
ha lehet, ne nyúljunk.
- siteconfig: a UUCP hálózat leírása kerülhet ide (mi készítjük el).
A konfigurációs file alapja a cf/cf alatt található Master Configuration
(.mc) file. A többi file-ra a megfelelő makrók segítségével hivatkozhatunk:
pl. DOMAIN(mfa.kfki.hu) hatására a cf/domain
directory alatt lévő mfa.kfki.hu.m4 file-t is beveszi a konfigurációba.
Saját makrókat a define m4 paranccsal definiálhatunk; számos
beállítás a megfelelő makró (át)definiálásával érhető el. Ami nem m4
makró, az változtatás nélkül bekerül a .cf file-ba.
A sendmail konfigurációba megjegyzéseket # karakterrel kezdődő
sorokba írhatunk. Itt vigyázni kell arra, hogy az m4 az inputot nem soronként,
hanem token-enként dolgozza fel, és ha egy makrót talál, azt akkor is kifejti,
ha az egy # karakterrel kezdődő sorban volt; ez pedig esetenként problémát
okozhat. Ha azt akarjuk, hogy egy megjegyzés ne jelenjen meg a .cf
file-ban, arra az m4 dnl parancsát (Delete Through Newline)
használhatjuk: ez a következő ,,újsor'' karakterig mindent töröl az m4
inputjából (az ,,újsor'' jelet is beleértve). Az outputban jelentkező felesleges
üres sorok kiküszöbölésére is szokás ezt használni. Egy makró kifejtését megtilthatjuk
úgy, hogy `ilyen' idézőjelek közé zárjuk; ez makródefiníciókor is hasznos lehet.
Egy Master Configuration file szokásos szerkezete:
- 1.
- VERSIONID (megjegyzésként belekerül a kimenetbe, az input file-ok azonosítására
használható)
- 2.
- OSTYPE (kötelező!)
- 3.
- DOMAIN
- 4.
- FEATURE
- 5.
- lokális makródefiníciók
- 6.
- MAILER
- 7.
- lokális átírási szabályok
Az ebből elkészült .cf file-t lemásolhatjuk /etc/sendmail.cf
néven, és onnantól kezdve használható. A sendmail emellett még egyéb
külső (adatbázis) file-okat is használhat a konfigurációban leírt módon.
A 2.3.1 pontban említett konfigurációs file-okba szükség esetén
beírhatunk olyan sorokat is, amelyek nem előredefiniált makrók, hanem változtatás
nélkül átkerülnek a sendmail.cf file-ba. Ezek általában egy egybetűs
parancsot, valamint paramétereket tartalmaznak. A legfontosabb ilyen parancsok:
- D: a sendmail számára definiálhatunk makrókat (ezeknek semmi
közük nincs az m4 makrókhoz!). Pl. a DMmfa.kfki.hu sor
a masquerade címet állítja be.
- C: egy adott beállítási ,,osztály''-hoz (class) adhatunk tagokat
ezzel. Pl. Cwmufi.hu jelentése: a mufi.hu domain számára
is fogadjuk a leveleket.
- O: sendmail opciók beállítása, pl. OHostStatusDirectory=.hoststat.
- F: hasonlít a C parancshoz, de itt az osztály elemei egy külső
file-ban vannak felsorolva. Pl. FE/etc/mail/sendmail.cE hatására
a masquerade alól kivételt jelentő felhasználók neveit sorolhatjuk fel
az említett file-ban.
Next: Sendmail az intézetben
Up: Sendmail telepítése és beállítása
Previous: Általános tudnivalók
  Tartalom
Hamori Andras
1999-03-21