FreeBSD kézikönyv
Előző | Fejezet 28. Elektronikus levelezés | Következő

# 28.3. A sendmail beállítása

Írta: Christopher Shumway.

A sendmail(8) a FreeBSD alapértelmezett levéltovábbító ügynöke (Mail Transfer Agent, MTA). A sendmail feladata fogadni a levelező kliensektől (Mail User Agent, MUA) érkező leveleket és kézbesíteni azokat a konfigurációs állományában megadott megfelelő levelezőnek. A sendmail hálózati kapcsolatokat is fogad, képes a helyi postaládákba vagy akár más programoknak is leveleket továbbítani.

A sendmail a következő állományban tárolja beállításait:

Állomány | Szerep
--- | ---
`/etc/mail/access` | A sendmail által engedélyezett hozzáféréseket tároló adatbázis
`/etc/mail/aliases` | A postaládák álnevei
`/etc/mail/local-host-names` | Azon nevek felsorolása, amelyek számára a sendmail leveleket fogad
`/etc/mail/mailer.conf` | A levelező programok beállításai
`/etc/mail/mailertable` | A levelező programok kézbesítési táblázata
`/etc/mail/sendmail.cf` | A sendmail központi beállításait tároló állomány
`/etc/mail/virtusertable` | Virtuális felhasználók és tartományok táblázatai

## 28.3.1. `/etc/mail/access`

Az engedélyezett hozzáféréseket tároló adatbázis tartalmazza milyen hálózati neveken vagy IP-címeken lehet elérni a helyi levelező szervert és azok milyen típusú hozzáférést kapnak. A gépek az `OK` (rendben), `REJECT` (visszautasít), `RELAY` (továbbítás) beállításokat alkalmazhatjuk, vagy egyszerűen meghívhatjuk hozzájuk a sendmail hibakezelő rutinját egy adott kézbesítési hibával. Ha egy gépet az `OK` beállítással veszük fel a listára, ami egyébként alapértelmezés, akkor ez a gép levelet tud küldeni egészen addig, amíg a végső cél a helyi gép marad. A `REJECT` beállítással felsorolt gépek számára semmiféle levelezés nem engedélyezett. Ha pedig egy gép mellett a `RELAY` beállítás jelenik meg, akkor a szerveren keresztül tetszőleges címre küldhet.

Példa 28-1. A sendmail elérését szabályozó adatbázis beállítása

    cyberspammer.com                550 Nem szeretjuk a spammereket
    FREE.STEALTH.MAILER@            550 Nem szeretjuk a spammereket
    another.source.of.spam          REJECT
    okay.cyberspammer.com           OK
    128.32                          RELAY

Ebben a példában öt bejegyzést láthatunk. A táblázat bal felének valamelyik sorára illeszkedő küldőkre a táblázatban a sor jobb felén megjelenő cselekvés érvényesül. Az első két sorban a sendmail hibakezelő rutinjának adunk át hibakódokat. A hozzá tartozó üzenet akkor fog megjelenni a távoli gépen, amikor a tőle érkező levél illeszkedik a bal oldali szabályra. Az ezeket követő bejegyzésben visszalökünk minden olyan levelet, amely az internetről egy adott számítógéptől érkezik, például az `another.source.of.spam` címről. A következő bejegyzésben az `okay.cyberspammer.com` címről elfogadjuk a kapcsolódást, ami viszont sokkal pontosabb megjelölés a fentebb szereplő `cyberspammer.com` sornál. A pontosabban kifejtett nevek felülbírálják a kevésbé pontosan megnevezetteket. Végül az utolsó bejegyzésben engedélyezzük a levelek továbbküldését minden olyan gép számára, amelynek címe a `128.32` előtaggal kezdődik. Ezek tehát képesek ezen a levelező szerveren keresztül bárhova leveleket küldeni.

Az állomány módosítása után az adatbázis frissítéséhez mindig le kell futtatnunk egy `make` parancsot az `/etc/mail/` könyvtárban.

## 28.3.2. `/etc/mail/aliases`

Az álneveket tartalmazó adatbázis virtuális postaládákat sorol fel, amelyek más felhasználókra, állományokra, programokra vagy további álnevekre vonatkozhatnak. Íme néhány példa az `/etc/mail/aliases` állományban szereplő bejegyzésekre:

Példa 28-2. Virtuális postaládák

    root: localuser
    ftp-bugs: joe,eric,paul
    bit.bucket:  /dev/null
    procmail: "|/usr/local/bin/procmail"

A formai szabályok egyszerűek: a kettőspont bal oldalára kell írni azt a postaládát, amely a jobb oldalán levő célokra bomlik. A példa első sorában egyszerűen megfeleltetjük a `root` postaládáját a `localuser` postaládájának, majd ezt a nevet keressük az álnevek adatbázisában. Ha nem találunk már rá illeszkedést, akkor az üzenetet a `localuser` nevű helyi felhasználónak továbbítjuk. A következő sorban címek listáját láthatjuk. Ennek megfelelően a `ftp-bugs` postaláda címére küldött levelek három további helyi postaládára mennek tovább: ezek név szerint a `joe`, `eric` és `paul` felhasználók postaládái. Itt a távoli postaládák `<felhasználó@példa.hu>` alakban adhatóak meg. A következő sor az állományok használatát példázza, ahol konkrétan a `/dev/null` állományba irányítjuk át az adott címre érkező leveleket. Az utolsó sorban pedig a programok használatára láthatunk példát, ahol ebben az esetben a levél egy UNIX®-os csövön keresztül a `/usr/local/bin/procmail` szabványos bemenetére kerül.

Ha megváltoztatjuk ezt az állományt, akkor utána az adatbázis frissítéséhez ne felejtsük el meghívni a `make` parancsot az `/etc/mail/` könyvtárban.

## 28.3.3. `/etc/mail/local-host-names`

Ebben az állományban adhatjuk meg, hogy a sendmail(8) milyen hálózati neveket fogadjon el helyi hálózati névként. Ide kell raknunk azokat a tartományokat vagy címeket, amelyektől a sendmail leveleket fogad el. Például, ha a levelező szerver az `minta.com` tartományból és a `level.minta.com` címről fogad el leveleket, akkor a `local-host-names` valahogy így fog kinézni:

    minta.com
    level.minta.com

Az állomány módosításakor a sendmail(8) programot újra kell indítani a változások érvényesítéséhez.

## 28.3.4. `/etc/mail/sendmail.cf`

Ahogy a sendmail központi konfigurációs állománya, a `sendmail.cf` irányítja a sendmail átfogó viselkedését, beleértve mindent az e-mail címek átírásától kezdve a távoli szervereknek küldött elutasító üzenetek küldéséig. Mivel ennyire sokfajta szerepet tölt be egyszerre, ezért ez a konfigurációs állomány meglehetősen összetett és a részletezése meghaladná ennek a leírásnak a határait. Szerencsére az átlagos levelező szerverek esetében ezt az állományt nagyon ritkán kell módosítani.

A sendmail központi konfigurációs állománya a sendmail lehetőségeit és viselkedését meghatározó m4(1) makrókból építhető fel. A pontosabb részleteket a `/usr/src/contrib/sendmail/cf/README` állományban találjuk meg.

Az állomány megváltoztatása után a módosítások érvényesítéséhez újra kell indítani a sendmail programot.

## 28.3.5. `/etc/mail/virtusertable`

A `virtusertable` állomány képezi le a virtuális tartományokhoz tartozó címeket valódi postaládák címeire. Ezek a postaládák lehetnek helyiek, távoliak, az `/etc/mail/aliases` állományban megadott álnevek vagy állományok.

Példa 28-3. Példa a virtuális tartományok leképezésére

    root@minta.com                root
    postmaster@minta.com          postmaster@noc.minta.net
    @minta.com                    joe

A fenti példában megadtunk egy leképezést a `minta.com` tartományhoz. Ez az állomány úgy dolgozódik fel, hogy fentről lefelé illesztődnek a címek, egészen az első egyezésig. Az első bejegyzés szerint a `<root@minta.com>` a helyi `root` felhasználó postaládájára képződik le. A következő bejegyzés szerint a `<postmaster@minta.com>` a `noc.minta.net` címen található `postmaster` nevű felhasználó postaládájára képződik le. Végezetül, ha a `minta.com` címről eddig még semmi sem illeszkedett volna, akkor az utolsó leképezés veszi át, amely az `minta.com` tartományon belül az összes többi címre küldött levelet a helyi `joe` nevű felhasználó postaládájára képezi le.

Előző | Tartalom | Következő
Az elektronikus levelezés használata | Fel | A levéltovábbító ügynök megváltoztatása

Ha kérdése van a FreeBSD-vel kapcsolatban, a következő címre írhat (angolul): <freebsd-questions@FreeBSD.org>.
Ha ezzel a dokumentummal kapcsolatban van kérdése, kérjük erre a címre írjon: <gabor@FreeBSD.org>.