Mailman - The GNU Mailing List Management System Copyright (C) 2001,2002 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 lettek tesztelve. Ajánlatos megadni a main.cf konfigurációs állományban az "owner_request_specil = no" beállítást nehogy a Postfix az -owner és -request címekre érkező leveleket külön kezelje (az ezekre a címekre érkező leveleket is egyszerűen továbbítani kell a Mailman wrapper programjának). Az alapértelmezett beállítás valószínűleg "yes". 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. Javasoljuk hogy kommentezzük ki a main.cf állományban az luser_relay sort és adjuk meg a "recipient_delimiter = +" beállítást. Ezzel beállítottuk a programban, hogy a cím a bővített címzésben a + jelig kell értelmezni. Ezekkel a beállítások a Defaults.py állományban megadott alapértelmezett VERP_FORMAT és VERP_REGEXP értékekkel megfelelően működnek. 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. - 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 Postfix két típusú a "Postfix-típusú" és "Sendmail-típusú" virtuális tartománykezelésre képes. Az utóbbinál minden bejegyzés (aliases) minden tartományban látható, ekkor semmi különleges beállításra nincs szükség a Mailmannél. A Postfix-típusú virtuális tartományoknál már kicsit tükközni kell, azonban itt sem lesz gond a Mailman beállításánál. Először is 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 alapértelmezett telepítési könyvtárát vettük fel a változóba. Fontos, hogy kövessük a Postfix leírást arról, hogy hogyan kell virtuális tartományokat beállítani; ezért már a Mailman beállítása előtt hozzuk létre a megfelelően működő virtuális tartományokat. 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: