5.2.9. Levelezőlisták
A levelezőlista kiszolgálók alapvető feladata, hogy egy üzenetet több email címre juttasson el, s viszonylag kevés élőmunkával valósítsák meg a felhasználók kezelését, a legjobb, ha maguk a felhasználók képesek feliratkozni, leiratkozni illetve egyéb műveleteket végezni. Erre a célra a mailman jó választás lehet, mivel ez a program már bizonyított az viszonylag hosszú élete során.
Klónozzuk a template fájlrendszert, hozzuk létre belőle a mailman jail-t, hozzunk létre egy új fájlrendszert, amelyet csatoljuk a jail /data helyre. Állítsuk be a jail paramétereit, indítsuk el, majd telepítsük fel a postfix programot, a mailman programot (a POSTFIX opcióval), illetve egy apache is kell (apache 2.2.x), amely majd a webes felületet kezeli.
5.2.9.1. A postfix beállításai
A postfix beállítása már szinte rutin kell legyen, az alábbi részletet kell a main.cf végére írnunk:
queue_directory = /data/postfix myhostname = mailman.jails.javaforum.hu mydomain = mailman.jails.javaforum.hu myorigin = mailman.jails.javaforum.hu mydestination = mailman.jails.javaforum.hu, lists.javaforum.hu mynetworks = 127.0.0.0/8, 192.168.1.0/24, 192.168.2.0/24 alias_maps = hash:/etc/aliases relayhost = [mail.jails.javaforum.hu]
Ezen túl a postfix könyvtárát át kell helyeznünk a megadott helyre:
[root@mailman:~]$ mv /var/spool/postfix/ /data/
A /etc/rc.conf állományban tiltsuk le a sendmail futását és engedélyezzük a postfix elindulását:
sendmail_enable="NONE" postfix_enable="YES"
A postfix ezzel üzemkész, egyedül arra kell figyelni, hogy a mail jail-ben futó postfix tudjon a mailman jail-ben használt lists.javaforum.hu doménről, egyszerűen csak hozzá kell adnunk a spam.javaforum.hu doménhez hasonlóan a transport adatbázishoz:
lists.javaforum.hu relay:[mailman.jails.javaforum.hu]:25
5.2.9.2. A Mailman beállításai
A mailman telepítése előtt be kell állítani egy környezeti változót, mivel hiába mondjuk meg, hogy postfix a levelezőszerver, a fordítás során hibásan állítja be a szkriptek csoportát:
[root@mailman:]$ export MAIL_GID=nobody [root@mailman:]$ portinstall -i mailman [...]
A Mailman a /usr/local/mailman könyvtárban lakik, a részletes beállításait most mellőzném, a lényeg, hogy vegyük hozzá az mm_cfg.py fájl végére a beállításainkat:
SMTPHOST = 'mail.jails.javaforum.hu'
DEFAULT_URL_HOST = 'lists.javaforum.hu'
DEFAULT_EMAIL_HOST = 'lists.javaforum.hu'
VIRTUAL_HOSTS.clear()
add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST)
LIST_DATA_DIR = os.path.join('/data', 'lists')
PUBLIC_ARCHIVE_FILE_DIR = os.path.join('/data', 'archives', 'public')
PRIVATE_ARCHIVE_FILE_DIR = os.path.join('/data', 'archives', 'private')
A szervernevek megadásán kívül gyakorlatilag arra utasítjuk, hogy a listák adatait és az archívumot a /data alatt keresse. Ehhez természetesen át kell azokat mozgatni oda:
[root@mailman:~]$ mv /usr/local/mailman/lists/ /data/ [root@mailman:~]$ mv /usr/local/mailman/archives/ /data/
Majd hozzuk létre a mailman nevű levelezőlistát:
[root@mailman:~]$ /usr/local/mailman/bin/newlist mailman Enter the email of the person running the list: info@javaforum.hu Initial mailman password: To finish creating your mailing list, you must edit your /etc/aliases (or equivalent) file by adding the following lines, and possibly running the `newaliases' program: ## mailman mailing list mailman: "|/usr/local/mailman/mail/mailman post mailman" mailman-admin: "|/usr/local/mailman/mail/mailman admin mailman" mailman-bounces: "|/usr/local/mailman/mail/mailman bounces mailman" mailman-confirm: "|/usr/local/mailman/mail/mailman confirm mailman" mailman-join: "|/usr/local/mailman/mail/mailman join mailman" mailman-leave: "|/usr/local/mailman/mail/mailman leave mailman" mailman-owner: "|/usr/local/mailman/mail/mailman owner mailman" mailman-request: "|/usr/local/mailman/mail/mailman request mailman" mailman-subscribe: "|/usr/local/mailman/mail/mailman subscribe mailman" mailman-unsubscribe: "|/usr/local/mailman/mail/mailman unsubscribe mailman" Hit enter to notify mailman owner...
Az itt listázott sorokat adjuk hozzá a /etc/aliases állományhoz, majd futtassuk le a `newaliases` parancsot. A mailman és a postfix most már képes lesz együttműködni, csak hozzá kell adnunk a /etc/rc.conf állományhoz:
mailman_enable="YES"
A mailman részletes beállításaira most nem térnék ki – azt olvashatjuk a program dokumentációjában. A lényeg az, hogy a levelezőlistát két irányból érhetjük el, az egyik irány a levelezés, a másik irány a webes felület. A webes felületet tegyük félre kicsit, foglalkozzunk az email címekkel. A mailman címei virtuális címek, ha azokra érkezik egy levél, akkor a postfix az aliases adatbázis alapján elindítja rá a mailman megfelelő programját.
Új levelezőlista felvételéhez egyszerűen a mailman newlist programját kell használnunk:
root@mailman:~]$ /usr/local/mailman/bin/newlist Enter the name of the list: kocsma Enter the email of the person running the list: info@javaforum.hu Initial kocsma password: To finish creating your mailing list, you must edit your /etc/aliases (or equivalent) file by adding the following lines, and possibly running the `newaliases' program: ## kocsma mailing list kocsma: "|/usr/local/mailman/mail/mailman post kocsma" kocsma-admin: "|/usr/local/mailman/mail/mailman admin kocsma" kocsma-bounces: "|/usr/local/mailman/mail/mailman bounces kocsma" kocsma-confirm: "|/usr/local/mailman/mail/mailman confirm kocsma" kocsma-join: "|/usr/local/mailman/mail/mailman join kocsma" kocsma-leave: "|/usr/local/mailman/mail/mailman leave kocsma" kocsma-owner: "|/usr/local/mailman/mail/mailman owner kocsma" kocsma-request: "|/usr/local/mailman/mail/mailman request kocsma" kocsma-subscribe: "|/usr/local/mailman/mail/mailman subscribe kocsma" kocsma-unsubscribe: "|/usr/local/mailman/mail/mailman unsubscribe kocsma" Hit enter to notify kocsma owner...
Ha ezt is hozzáadjuk a /etc/aliases fájlhoz, akkor már működik a levelező listánk... ![]()
5.2.9.3. A mailman webes felülete
A mailman alatt vannak perl alapú cgi-bin programok, amelyek webes felületet állítanak elő, s ezekhez kell egy olyan webszerver, amely képes cgi-bin futtatására. Egy Apache erre a feladatra kissé túlzás, de megteszi... ![]()
Vegyünk fel az apache22 alá egy új virtuális host-ot:
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin auth.gabor@javaforum.hu
DocumentRoot /usr/local/www/
ServerName lists.javaforum.hu
<Directory "/data/archives/public/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<Directory "/usr/local/mailman/cgi-bin/">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
Alias /pipermail/ "/data/archives/public/"
ScriptAlias /mailman/ "/usr/local/mailman/cgi-bin/"
</VirtualHost>
Ha felvesszük a /etc/rc.conf állományban az apache22 elindítását, majd elindítjuk az Apache szolgáltatást, akkor az vígan kiszolgálja mailman igényeit, bár ennél többre is képes, kicsit vágjuk vissza az igényeit:
Ha csinálunk át átmeneti átirányítást a 192.168.2.8:80 port felé, akkor ki is tudjuk próbálni, hogy jól működik-e.
| Az Apache alapból nem képes naplózni a Syslog használatával, alapból a /var/log/ könyvtárba írja a httpd-access.log illetve a httpd-error.log fájlba vég nélkül az információkat, így a jail fájlrendszere hamar megtelik. A Webszerver fejezetben leírtam, miképp kell az Apache kiszolgálót Syslog használatára kényszeríteni. |
Előző fejezet Tartalomjegyzék Következő fejezet
Auth Gábor auth.gabor@javaforum.hu
