Mailman - The GNU Mailing List Management System Copyright (C) 2001-2003 by the Free Software Foundation, Inc. 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA ÁLTALÁNOS BEÁLLÍTÁSOK A Mailmannek minden gond nélkül működnie kell egy általánosan beállított Postfix-el. A dokumentáció írásakor a beállítások Postfix 19991231 verziótól kezdve pl13 verzióig, és 200010228 verziótól pl08 verzióig, valamint Postfix 2.0.15-tel lettek tesztelve. A Postfix alapértelmezésként speciális módon kezeli az -owner és -request címekre érkező leveleket. Ha azt szeretnénk, hogy az ide érkező leveleket is a Mailmannek továbbítsa a program kapcsoljuk ki ezt a funkciót a main.cf állomány módosításával: owner_request_specil = no Ahhoz hogy esetlegesen használni tudjuk a Mailman VERP küldési képességét ki kell kapcsolnunk az luser_relay (ez az alapértelmezett) beállítást és módosítanunk kell a recipient_delimeter értékén. Ehhez kommentezzük ki a main.cf állományban található összes luser_relay sort, visszatérve ezzel az alpértelmezett opcióhoz. Továbbá, helyezzük el main.cf fájlba a következő sort: recipient_delimiter = + A + jel használatával a a Defaults.py állományban megadott alapértelmezett VERP_FORMAT és VERP_REGEXP értékek megfelelően fognak működni. A Postfix 450-es hibaüzenettel válaszol, ha egy nem létező lokális címre probálunk meg levelet továbbítani. Mivel ez nem jelent végzetes hibát, ezért a Mailman a kézbesítést addig ismételgeti, amíg le nem jár a DELIVERY_RETRY_PERIOD változóban megadott idő (alapesetben 5 nap). Ennek elkerülésére be lehet állítani a Postfixet úgy, hogy a nem létező helyi felhasználóknak történő kézbesítéskor a nem végzetes hibaüzenet helyet egy végzetes hiba üzenetet küldjön. Ehhez a beállításhoz a következő sort kell elhelyezni a main.cf állományba: unknown_local_recipient_reject_code = 550 Végül ha Postfix-stílusú virtuális tartományokat használunk, akkor olvassuk el az erről szóló lejjebb található fejezetet. POSTFIX ÉS MAILMAN ÖSSZEKAPCSOLÁSA A Postfixet össze lehet kapcsolni a Mailmannel úgy, hogy egy új lista létrehozásakor, vagy törlésekor a Postfix alias adatbázisa automatikusan frissüljön. Ehhez a következők lépéseken kell végigmennünk. A leírás feltételezi, hogy a Mailmant az alapértelmezett telepítési helyére telepítettük, ez a /usr/local/mailman. Ha nem így tettük, akkor a lépéseknél megfelelően módosítsuk az elérési útvonalakat azokra amiket a konfigurálásakor a --prefix és --with-var-prefix kapcsolóknál használtunk. - Ha Postfix-stílusú virtuális tartományokat használunk és szeretnénk, hogy a Mailman kezelje ezeket a tartományokat, akkor először olvassuk el a virtuális tartományokról lejjebb található fejezetet. - A $prefix/Mailman/mm_cfg.py állományban adjuk meg a következőt: MTA = 'Postfix' Az MTA változó értékével arra a programmodulra hivatkozunk a Mailman/MTA könyvtárban, amelyik az adott MTA-ra jellemző hívások segítségével kezeli létrehozáskor vagy törléskor a listákat. - Keressük meg a Defaults.py állományban a POSTFIX_ALIAS_CMD és POSTFIX_MAP_CMD változókat. Győződjünk meg, hogy a változók a postalias és postmap programok helyes teljes elérési útvonalát tartalmazzák. Fontos, hogy ha ezeket megszeretnénk változtatni, akkor ne itt tegyük hanem az mm_cfg.py állományban. - Futtassuk a genaliases programot az aliases állomány létrehozásához: % cd /usr/local/mailman % bin/genaliases Győződjünk meg, hogy a data/aliases és data/aliases.db tulajdonosa a `mailman' és az állományok csoport tulajdonosa is a `mailman'. % su % chown mailman:mailman data/aliases* - Módosítsuk a Postfix main.cf konfigurációs állományában az alias_maps változót úgy, hogy a tartalmazza a következő elérési útvonalat is: /usr/local/mailman/data/aliases (nincs a végén .db kiterjesztés) Az alias_database változóban ne adjuk meg ezt az útvonalat, mert nem szeretnénk hogy módosítsa a Postfix newaliases parancsa a Mailman aliases.db állományát. Mindössze azt szeretnénk, hogy a Postfix figyelembe vegye az aliases.db állományt, amikor a hely kézbesítési címeket keresi. Célszerű egy hash: típusú adatbázisként megadni ezt az állományt. Ezt megtehetjük például így: alias_maps = hash:/etc/postfix/aliases, hash:/usr/local/mailman/data/aliases - A Mailman konfigurálásakor használjuk a --with-mail-gid=mailman kapcsolót (mellesleg ez az alapértelmezett beállítás), mivel az aliases.db állomány tulajdonosa a `mailman' felhasználó és a Postfix a Mailman wrapper programját mailman uid és gid alatt próbálja meg futtatni. Ennyi! Egy kis gond: amikor létrehozunk, vagy törlünk egy listát, akkor az aliases.db állomány azonnal frissül, viszont nem fut le automatikusan a változtatások érvényesítéséhez a "postfix reload" parancs. Ez azért van így, mert ehhez root jogokkal kell rendelkezni, vagy egy suid-root programnak kell futnia, amelyek biztonsági kockázatot jelentenek. A megoldás egyetlen hátrányát tehát az jelenti, hogy körülbelül csak egy perc múlva veszi észre a Postfix a módosításokat és érvényesít a változtatásokat. Ez a kis kényelmetlenség szerintünk elviselhető. VIRTUÁLIS TARTOMÁNYOK A Postix 2.0 a támogatja "virtual alias domains" kezelést, amelyet a korábbi Postfix verziókban egyszerűen csak Postfix-típusú virtuális tartománykezelésnek hívtak. Ahhoz, hogy a Mailman képes legyen a virtuális tartománykezelés használatához mind a Mailman, mind a Postfix beállításokon változtatni kell. A Mailman alapesetben az összes virtuális tartományhoz tartaozó bejegyzést az /usr/local/mailman/data/virtual-mailman állományban tárolja. A postmap program is ezen állomány alapján készíti el a virtual-mailman.db állományt, melyet a Postfix valójában használni fog. Először a Postfix dokumentációban foglaltak alapján állítsuk be a virtuális tartománykezelést (bővebben a Postfix virtual(5) súgója ad eligazítást). Fontos, hogy el ne felejtsük megadni, ahogy a súgóban le van írva a "virtual-alias.domain anything" sort, mivel a Mailman virtual-mailman állománya nem tartalmazza ezt a sort. Javasoljuk, hogy még mielőtt telepítenénk a Mailmant, győzödjünk meg róla, hogy megfelelően működik a virtuális tartománykezelés. A következő lépséként a Postfix virtual_maps változóhoz kell egy újabb könyvtár elérési utat adni: virtual_maps = , hash:/usr/local/mailman/data/virtual-mailman Esetünkben a Mailman az alapértelmezett telepítési könyvtárban helyezkedik el. Régebbi Postfix-eknél nincsen virtual_alias_maps változó, ez esetben használjuk a virtual_maps változót. Következő lépésként az mm_cfg.py állományba állítsuk be a POSTFIX_STYLE_VIRTUAL_DOMAINS változóba azon virtuális tartományokat, amelyekre a Mailmannek figyelnie kell. Előfordulhat, hogy nem itt nem soroljuk fel a Postfix beállításunk által támogatott összes virtuális tartományunkat. Az itt megadott értékeknek pontosan egyezniük kell a levelezőlisták host_name változójában megadott értékekkel. Nézzük meg egy példán keresztül: Tegyük fel, hogy a Postfixben a dom1.ain, dom2.ain és dom3.ain virtuális tartományokat szeretnénk kezelni. Ehhez mondjuk a main.cf állományban a következő beállítások vannak megadva: myhostname = mail.dom1.ain mydomain = dom1.ain mydestination = $myhostname, localhost.$mydomain virtual_maps = hash:/some/path/to/virtual-dom1, hash:/some/path/to/virtual-dom2, hash:/some/path/to/virtual-dom2 Példánkban a virtual-dom1 állományban a következő sorokat adtuk meg: dom1.ain IGNORE @dom1.ain @mail.dom1.ain Ezzel a Postfixet arra utasítottuk, hogy minden dom1.ain-re címzett levelet tegyen ugyanabba a postafiókba, mint a mail.dom1.ain, az alapértelmezett címre érkezőket. Ez esetben a POSTFIX_STYLE_VIRTUAL_DOMAINS-ben nem szabad megadnunk a dom1.ain-t, mivel különben a Mailman levelezőlisták bejegyzései a dom1.ain tartományban a következő lennének mylist@dom1.ain mylist mylist-request@dom1.ain mylist-request # és így tovább ... Az egyre pontosabb bejegyzések felülírják az előttük található általánosabb bejegyzéseket, ezzel megakadályozzák a dom1.ain levelezőlisták megfelelő működését. Azonban az mm_cfg.py állományban megadjuk a dom2.ain és dom3.ain értékeket: POSTFIX_STYLE_VIRTUAL_DOMAINS = ['dom2.ain', 'dom3.ain'] Ezzel elértük, hogy minden olyan listának, amelyet a Mailman a fenti két tartomány valamelyikében hoz létre a megfelelő bejegyzései a /usr/local/mailman/data/virtual-mailman állományban helyesen fognak megjelenni. Csak úgy mint a fent említett data/aliases* állományoknál, itt is győződjünk meg arról, hogy a data/virtual-mailman és data/virtual-mailman.db állományok felhasználó- és csoporttulajdonosa `mailman' legyen. A megfelelő működéshez tehát előbb hozzuk létre a virtuális tartományokat, futtassuk a bin/genaliases programot és végül ellenőrizzük ezen állományokon a jogosultságokat. Ezen túl, többet már nem kell velük foglalkoznunk. EGY MÁSIK MEGKÖZELÍTÉS Fil máshogy, virtual maps és szabványos keresési kifejezések használatával kezeli a virtuális tartományokat. Leírása megtalálható: (franciául) http://listes.rezo.net/comment.php (angolul) http://listes.rezo.net/how.php Egy jó (és egyszerűbb) módszer azon esetekben ha nem bánjuk, hogy a tartomány részben egy újabb hostnév jelenik, ezzel növelve annak a címnek a karakter hosszát, amelyen keresztül a felhasználók elérik a listát. Pl. a listát a felhasználók sajatlista@lists.dom.ain címmel érik el sajatlista@dom.ain cím helyett. Ezt a megoldást a dokumentáció készítője alaposan nem tesztelte. Local Variables: mode: text indent-tabs-mode: nil End: