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