Mailman kasutamine FreeBSD'ga
Sisukord
- 1 Sissejuhatus
- 2 Installi üldised juhendid, peaksid sobima enamusele levinud süsteemidele
- 3 Install FreeBSD süsteemis
- 4 Mailmaini ja Debiani installi ja seadistuse juhend
- 5 Postfixi seadistamine Alias failiga
- 6 Postfixi seadistamine tööle ilma alias failita
- 7 Listi loomine
- 8 Mailmani käsud
- 9 Mailmani listide haldus
- 10 Listi haldus emaili teel
- 11 Mõned abistavad skriptid
- 12 Mailmani anatoomia
- 13 Arhiivide roteerimine
- 14 Lingid
Sissejuhatus
Mailman (ingl. k. postiljon) http://www.list.org/ on postiloendite (ingl. k. list) pidamise tarkvara.
Mailman on populaarne maililisti tarkvara mis sarnaneb tööpõhimõttelt majordomoga v sympaga. Mailmanil on lisaks käsurea utiliitidele ka veebiliides kõigi toimingute jaoks, nagu subscibeerimine, administreerimine ning arhiivide haldus. Nagu enamus muid väärikaid ja mahukaid tarkvarasid sõltub ka mailmani toimimine lisaks veel Apache ning Postfixi olemasolust ning seadistusest
Mailmanil on lisaks käsurea utiliitidele ka veebiliides kõigi toimingute jaoks, nagu subscibeerimine, administreerimine ning arhiivide haldus.
Installi üldised juhendid, peaksid sobima enamusele levinud süsteemidele
Kõigepealt tuleb paigaldada operatsioonisüsteemi vahenditega mailman, postfix ja apache
Soovitavad nende versioonid oleksid mailman 2.1, postfix-2.6, apache 2.2 või kõrgemad, siin palas käsitletakse eelkõige peamiselt nendele versioonidele mailmani seadistamist ja nii kõrgemate kui madalamate puhul võib leiduda minoorseid erinevusi
Mailmani seadistamisel on kaks suur valikut kuidas asja lahendada. Üheks on läbi postfixi transport tabelite ning teiseks kasutades alias faili. Mõlemal on omad eelised ja puudused. Transport toetab lihtsamat nö "elegantsemat" seadistust kuid samas piirab asja selliselt ,et listid vajavad oma isiklikku domeeni kus muu maililiiklus ei toimi. Alias fail on seetõttu ehk sobivam juhtudel kui on vaja siiski ka sama domeeni kasutada nii eposti liigutamiseks kui listide ülalhoidmiseks. Tegemist on ühtlasi ka traditsioonilisema kasutusjuhuga. Kasutades transporti on muidugi võimalik ka aliaste abil anda mõnedele vajalikele listidele kenam aadress
Install FreeBSD süsteemis
Midagi keerulist Linux kasutajatel pole. BSD's postfix kasutajatel tuleb jälgida, et kompileerimisel MAIL_GID oleks järgnevalt kirjeldatud
cd /usr/ports/mail/mailman make MAIL_GID=mailman install clean
selleks, et võimalik kasutada veebiliidest kujul www.server/mailman
Mailmaini ja Debiani installi ja seadistuse juhend
Kasutusjuhend kuidas seadistada monofunktsionaalset Debiani listiserverit kus kogu domeeni eposti kasutus on seotud postiloendiga ja ainult postiloendiga, siis saab seadistada Postfixi käima lihtsustatud kujul ja otsekohesemalt. Muu hulgas tähendab see seda, et ei pea kasutama aliases'eid.
Täpsemalt tuleb juttu Debian Lenny'st ja Mailman versioonist A.B.C
Postfixi seadistamine Alias failiga
Esiteks tuleb sellisel juhul postfixi main.cf failis tuleks alias_maps reale lisada mailmani aliastabeli askoht
alias_maps = hash:/etc/mail/aliases, hash:/milman/data/aliases
Selle asukoht on viidatud üldiselt tarkvara installides näiteks FreeBSD's on see /usr/local/mailman/data/aliases ja Debianis /var/lib/mailman Vajadusel tuleb appi sõber find koos enda võtmetega
Postfixi seadistamine tööle ilma alias failita
Kui kogu domeeni eposti kasutus on seotud postiloendiga ja ainult postiloendiga, ehk meiliserver täidab vaid listiserveri rolli, siis saab seadistada Postfixi käima lihtsustatud kujul ja otsekohesemalt. Muu hulgas tähendab see seda, et ei pea kasutama aliases'eid.
Sellisel juhul tuleb
* kasutada /etc/postfix/main.cf failis
relay_domains = ... lists.loomaaed.tartu.ee, lists.vagunitehas.tartu.ee, lists.raudteejaam.tartu.ee transport_maps = hash:/etc/postfix/transport mailman_destination_recipient_limit = 1
* kasutada /etc/postfix/master.cf failis
mailman unix - n n - - pipe flags=FR user=list argv=/var/lib/mailman/bin/postfix-to-mailman.py ${nexthop} ${mailbox}
* kasutada /etc/postfix/transport failis
lists.loomaaed.tartu.ee mailman: lists.vagunitehas.tartu.ee mailman: lists.raudteejaam.tartu.ee mailman:
ning lisaks olemasolevatele ridadele kaks rida
add_virtualhost('lists.vagunitehas.tartu.ee','lists.vagunitehas.tartu.ee') add_virtualhost('lists.raudteejaam.tartu.ee','lists.raudteejaam.tartu.ee')
Mailmani seadistus
Vajalik on seadistada ka mailmani konfiguratsioon paika ja kirjeldada seal domeenid.
Mailmaini enda seadistusfailiks on mm_cfg.py mis asunb kaustas mailman/Mailman Vaikeseadistuste võtmeid näeb sama kausta failist Defaults.py
Seal on rida # Put YOUR site-specific settings below this line.
Mille alla saab lisada enda serveri spetsiifilisi seadeid nagu.
MTA = 'Postfix' DEFAULT_EMAIL_HOST = 'lists.aadress.ee' DEFAULT_URL_HOST = 'lists.aadress.ee' DEFAULT_URL_PATTERN = 'https://%s/mailman/' PUBLIC_ARCHIVE_URL = 'https://%(hostname)s/pipermail/%(listname)s' DEFAULT_ARCHIVE = On # Are archives public or private by default? 0=public, 1=private DEFAULT_ARCHIVE_PRIVATE = 1 DEFAULT_SERVER_LANGUAGE = 'et' add_virtualhost('leheke.ee','aadress.ee')
Spamipeletamiseks saab lisada otse mailmani sisse
GLOBAL_PIPELINE.insert(1, 'SpamAssassin') SPAMASSASSIN_HOST = 'localhost:783' SPAMASSASSIN_DISCARD_SCORE = 6 SPAMASSASSIN_HOLD_SCORE = 4
Kui Mailman on seadistatud, siis tuleb tekitada esimene list
# newlist mailman mart@loomaaed.tartu.ee parool
Seejärel saab listserveri deemoni käivitada
Linuxis näiteks käsuga /etc/init.d/mailman start
Kaustad
Olulised failid asuvad kataloogis mailman
ls /usr/local/mailman/ Mailman aliases.db cgi-bin icons logs pythonlib spam adm.pw archives cron lists mail qfiles templates aliases bin data locks messages scripts tests
- /etc/mailman - muu hulgas paigaldatud keeled (milles saadetakse kasutajatele teavitusi jms)
- lists/test/config.pck - listi test seadistusfail
- data/adm.pw - listimootori superuseri parool
- archives - listide arhiivid
Listi loomine
Käivitame käsu newlist, mis asub erinevates os'ides eri kohtades, BSD's näiteks /usr/local/mailman/bin kaustas
küsitakse meilt
Enter the name of the list:
kirjutame test
Järgnevalt listile jääva administraatori mail, kes hakkab saama listiserveri teateid näiteks modereerimisnõuetest
Enter the email of the person running the list:admin@server
Kõige viimasena listi administreerimise parool
Initial testtest password:passa
Viimasena
Hit enter to notify tere owner...
Ja list on loodud.
Automaatselt lisatakse mailmani poolt juba faili /usr/local/mailman/data/aliases read:
## test mailing list test: "|/usr/local/mailman/mail/mailman post test" test-admin: "|/usr/local/mailman/mail/mailman admin test" test-bounces: "|/usr/local/mailman/mail/mailman bounces test" test-confirm: "|/usr/local/mailman/mail/mailman confirm test" test-join: "|/usr/local/mailman/mail/mailman join test" test-leave: "|/usr/local/mailman/mail/mailman leave test" test-owner: "|/usr/local/mailman/mail/mailman owner test" test-request: "|/usr/local/mailman/mail/mailman request test" test-subscribe: "|/usr/local/mailman/mail/mailman subscribe test" test-unsubscribe: "|/usr/local/mailman/mail/mailman unsubscribe test"
Ja uuendatakse alias databaset
Mailmani käsud
uuslist = /usr/local/bin/teelist kustuta = /usr/local/mailman/bin/rmlist uusparool = /usr/local/mailman/bin/change_pw
Apache seadistus
Veebiliidese seadistamiseks httpd.conf'i lisada read
ScriptAlias /mailman/ /usr/local/mailman/cgi-bin/ Alias /pipermail/ /usr/local/mailman/archives/public/
Nüüd saame enda uut maililisti admistreerida ja kasutajaid lisada kasutades urli.
http://www.server.ee/mailman/admin/test
Mailman tekitab igale listikasutajale ka parooli, millega nad saavad ise sisse logida.
Listi parooli käsureal muutmiseks anda parool
/usr/local/mailman/bin/change_pw -l test -p parool
Ülidselt tuleb veebiserver seadistada käima aadressidel
- https://lists.loomaaed.tartu.ee/
- https://lists.vagunitehas.tartu.ee/
- https://lists.raudteejaam.tartu.ee/
Kokkuvõttes võiks olla lists.loomaaed.tartu.ee virtuaalhosti seadistusfail nt sellise sisuga, vajalik loomulikult genereerida veel ssl key'd jms vajalik
<VirtualHost 10.0.6.221:443> ServerName lists.loomaaed.tartu.ee ServerAdmin mart@loomaaed.tartu.ee DocumentRoot /srv/www ErrorLog /var/log/apache2/lists.loomaaed.tartu.ee-ssl-error.log TransferLog /var/log/apache2/lists.loomaaed.tartu.ee-ssl-access.log SSLEngine on SSLCertificateFile /etc/apache2/serdid/lists.loomaaed.tartu.ee-200706-200906.crt SSLCertificateKeyFile /etc/apache2/serdid/lists.loomaaed.tartu.ee-200706-200906.key SSLCACertificateFile /etc/apache2/serdid/ca-sk.crt <Directory /srv/www> Options All AllowOverRide None Order Allow,Deny Allow from All </Directory> RewriteEngine On RewriteRule ^/$ https://lists.loomaaed.tartu.ee/listinfo [R] Alias /pipermail/ /var/lib/mailman/archives/public/ Alias /images/mailman/ /usr/share/images/mailman/ ScriptAlias / /usr/lib/cgi-bin/mailman/ <Directory /usr/lib/cgi-bin/mailman/> AllowOverride None Options ExecCGI AddHandler cgi-script .cgi Order allow,deny Allow from all </Directory> <Directory /var/lib/mailman/archives/public/> Options Indexes FollowSymlinks AllowOverride None Order allow,deny Allow from all </Directory> <Directory /usr/share/images/mailman/> AllowOverride None Order allow,deny Allow from all </Directory> </VirtualHost>
Mailmani listide haldus
Kontrolliks sobib proovida logida sisse veebipõhisesse haldusliidesesse kasutades mailman listi parooli, kasutajanime ei pea sisestama.
Listi moodustamiseks tuleb öelda
# newlist listinime@domeeninimi halduri@epostiaadress halduriparool
Listi seadistuse saab esitada tekstilisel kujul öeldes
# config_list -o - listinimi
Uue listi juures võiks pöörata tähelepanu sellistele määratlustele
- General Options
- real_name - listi nimi, kasutatakse listi aadressis, vasakul @ märki ja reeglina näidatakse listi tekitamisel
- owner - listi halduri aadress, sinna saadab listimootor erinevaid automaatselt genereeritud teateid
- respond_to_post_request - kas listimootor saadab listi kirja saatnud kasutajale tagasi kirja teatega kui tema kirja modereeritakse, soovitav väärtus on No, et internetti mitte risustada
- max_message_size - listimootori poolt töödeldava kirja maksimaalne suurus, ehk on tänapäeval 8M sobiv kui rahvas saadab ka kirja lisasid
- Passwords
listi haldusi ja moderaatori paroolide määramine
- Membership management
Listi liikmete lisamine, eemaldamine jm haldus
- Privacy Options -> Subscription rules
- advertised - määrab, kas listi nimi esineb listserveri listide nimekirjas aadressil https://lists.loomaaed.tartu.ee/admin/listinimi, võiks valida No, et mitte liigselt tähelepanu tõmmata
- subscribe_policy - määrab, mis tingimustel saab tekkida listi uus kasutaja, soovitav on Confirm and approve, et vaikselt ei saaks huvilised ennast ise listi lisada
- Archival options
- archive - määrab, kas listi kirjad arhiveeritakse listserveris
- archive_private - määrab, kas listi arhiiv on avalik või privaatne, kusjuures privaatne tähendab, et arhiivi saavad näha vaid listi kasutajad ja nad peavad enda veebiliideses autentima, soovitav valida private
Nö ühe domeeni listide nimekirja esitamiseks tuleb öelda
# list_lists -V lists.raudteejaam.tartu.ee
- Liste eemaldamine toimub öeldes, kusjuures listi aadress on listinimi@lists.loomaaed.tartu.ee
# rmlist listinimi
Kui lisaks kasutada võtit -a rmlist käsu järel, siis eemaldatakse ka kogunenud listi arhiivid.
Listi kõigi seadistusparameetrite esitamiseks tuleb küsida seda otse seadistusfailist, nt listi test puhul
$ cd /var/lib/mailman/lists/test $ /usr/lib/mailman/bin/dumpdb config.pck | less
Igal postiloendil on oma administraator (haldaja; list owner), tavaliselt üks listi liikmetest. Tema ülesandeks on postiloendisse uute liikmete aadresside lisamine ja ka kustutamine. Administraator saab EENetilt vajalikud juurdepääsuparoolid. Postiloendeid saab administraator hallata
veebilehel https://lists.eenet.ee/mailman/admin/listinimi
või e-posti teel, saates selleks käske aadressile listinimi-request@lists.eenet.ee NB! Mõlemal juhul tuleb listinimi tuleb asendada EENetist saadud listi nimega.
Haldamise veebikeskkonnas on olemas eestikeelsed juhendid. Lisaks võib lugeda juhendeid inglise keeles.
Algselt on iga list suletud: kõik mitte-liikmelt tulnud kirjad lähevad esmalt läbivaatajale (kelleks võib olla nii administraator kui eraldi määratud toimetaja) ja alles pärast tema heakskiitu teistele liikmetele. Listi liikmed saavad aga kõik vabalt kirju listi saata. Võimalik on keelata ka liikmetel otse listi kirjutamine: selleks tuleb halduskeskkonnas liikmete nimekirjas teha liikmete juurde märge lahtrisse 'mod'. Lisateave listi liikmele
Iga uus listiliige saab tervituskirja, kus on tema parool ning juhised listi kasutamiseks. Soovitav on see kiri alles hoida.
Listi infolehe veebiaadress on https://lists.eenet.ee/mailman/listinfo/listinimi, kus listinimi tuleb asendada listi nimega. Näiteks listi vagahealist@lists.eenet.ee infoleht on https://lists.eenet.ee/mailman/listinfo/vagahealist Infolehe kaudu saab esitada taotlust listiga liitumiseks, vaadata listi arhiivi, muuta oma seadeid ning ka listist lahkuda. Selleks on lehel olemas eestikeelsed juhendid.
- Listimootori adminstraatori parooli muutmiseks tuleb öelda
# mmsitepass uusparool
Listi haldus emaili teel
Listi on võimalik kasutada ja mingilmääral hallata ka emaili vahendusel. Täpsemalt infot võimalustest ja käskudest saab saates emaili aadressile
test-request@lists.eenet.ee
sisuga
help
Näiteks listiga liitumiseks sobib kui saata antud aadressile järgneva sisuga meil
subscribe nodigest
Mõned abistavad skriptid
Näiteks kõigi listide nimede ja nende omanike saamiseks korraga
#!/bin/sh for g in $( ls /mail/mailman/lists/ ) ; do gfs=`/usr/local/mailman/bin/list_owners $g` echo $g $gfs done
Ning listinfo vaatamiseks aitab käsk
/usr/local/mailman/bin/dumpdb -p /mail/mailman/lists/nimi/config.pck
Mailmani anatoomia
Mailman koosneb kokkuvõtteks tervest peotäiest python keeles kirjutatud deemonitest
Töötavat mailmani illustreerib kenasti allolev protsessitabelist lõigatud pilt
# ps -aux | grep mailman mailman 26310 0.0 0.7 11040 7164 ?? Is 31Aug09 0:00.02 /usr/local/bin/python2.5 /usr/local/mailman/bin/mailmanctl -s -q start mailman 26311 0.0 2.2 27420 23036 ?? S 31Aug09 17:59.45 /usr/local/bin/python2.5 /usr/local/mailman/bin/qrunner --runner=ArchRunner:0:1 -s mailman 26312 0.0 1.4 18204 14948 ?? S 31Aug09 3:14.63 /usr/local/bin/python2.5 /usr/local/mailman/bin/qrunner --runner=BounceRunner:0:1 -s mailman 26313 0.0 1.2 15132 12000 ?? S 31Aug09 2:06.86 /usr/local/bin/python2.5 /usr/local/mailman/bin/qrunner --runner=CommandRunner:0:1 -s mailman 26314 0.0 2.7 31612 28400 ?? S 31Aug09 14:07.43 /usr/local/bin/python2.5 /usr/local/mailman/bin/qrunner --runner=IncomingRunner:0:1 -s mailman 26315 0.0 0.7 11036 7140 ?? S 31Aug09 2:04.94 /usr/local/bin/python2.5 /usr/local/mailman/bin/qrunner --runner=NewsRunner:0:1 -s mailman 26316 0.0 1.5 18204 15364 ?? S 31Aug09 15:27.54 /usr/local/bin/python2.5 /usr/local/mailman/bin/qrunner --runner=OutgoingRunner:0:1 -s mailman 26317 0.0 1.3 16156 13020 ?? S 31Aug09 5:24.37 /usr/local/bin/python2.5 /usr/local/mailman/bin/qrunner --runner=VirginRunner:0:1 -s mailman 26318 0.0 0.7 10012 7072 ?? I 31Aug09 0:00.40 /usr/local/bin/python2.5 /usr/local/mailman/bin/qrunner --runner=RetryRunner:0:1 -s
Mailmani logi
Mailmani protsessid logivad oma tegevusi sellistesse failidesse
/var/log/mailman# ls -l total 72 -rw-rw-r-- 1 list list 83 Feb 12 12:04 bounce -rw-rw-r-- 1 root list 16860 Feb 12 17:35 error -rw-rw-r-- 1 list list 1972 Feb 12 18:06 post -rw-rw-r-- 1 list list 729 Feb 12 06:25 qrunner -rw-rw-r-- 1 list list 2549 Feb 12 18:17 smtp -rw-rw-r-- 1 www-data list 753 Feb 12 01:43 subscribe -rw-rw-r-- 1 list list 1140 Feb 12 18:17 vette
Listserveri MTA + listimootori läbimisel tekivad kirjast Postfixi logisse sellised sissekanded
Feb 10 23:05:58 smtp2a postfix/smtpd[28944]: connect from moraal.auul[192.168.2.38] Feb 10 23:05:58 smtp2a postfix/smtpd[28944]: E57443E4EC: client=moraal.auul[192.168.2.38] Feb 10 23:05:59 smtp2a postfix/cleanup[28947]: E57443E4EC: message-id=<alpine.DEB.1.10.0902102305480.2613@moraal.auul> Feb 10 23:05:59 smtp2a postfix/qmgr[25982]: E57443E4EC: from=<mart@loomaaed.tartu.ee>, size=523, nrcpt=1 (queue active) Feb 10 23:05:59 smtp2a postfix/smtpd[28944]: disconnect from moraal.auul[192.168.2.38] Feb 10 23:05:59 smtp2a postfix/pipe[28998]: E57443E4EC: to=<test@lists.loomaaed.tartu.ee>, relay=mailman, delay=0.3, delays=0.1/0/0/0.2, \ dsn=2.0.0, status=sent (delivered via mailman service) Feb 10 23:05:59 smtp2a postfix/qmgr[25982]: E57443E4EC: removed Feb 10 23:05:59 smtp2a postfix/smtpd[28944]: connect from localhost.localdomain[127.0.0.1] Feb 10 23:05:59 smtp2a postfix/smtpd[28944]: E2F1E3E4EC: client=localhost.localdomain[127.0.0.1] Feb 10 23:05:59 smtp2a postfix/cleanup[28947]: E2F1E3E4EC: message-id=<alpine.DEB.1.10.0902102305480.2613@moraal.auul> Feb 10 23:05:59 smtp2a postfix/qmgr[25982]: E2F1E3E4EC: from=<test-bounces@lists.loomaaed.tartu.ee>, size=1445, nrcpt=1 (queue active) Feb 10 23:05:59 smtp2a postfix/smtpd[28944]: disconnect from localhost.localdomain[127.0.0.1] Feb 10 23:06:00 smtp2a postfix/smtp[28995]: E2F1E3E4EC: to=<priit@loomaaed.ee>, relay=mail.loomaaed.tartu.ee[192.168.96.138]:25, \ delay=0.11, delays=0.01/0/0.04/0.06, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 906E42CB28) Feb 10 23:06:00 smtp2a postfix/qmgr[25982]: E2F1E3E4EC: removed
Logist on ilusti näha süsteemi modulaarsus
- esmalt võetakse kiri vastu smtpd poolt
- seejärel antakse kiri edasi pipe abil mailmanile
- mailman pöördud smtpd poole ja kiri saadetakse süsteemist välja
Arhiivide roteerimine
Vaikimisi tekitab mailman archives/privat kausta kõvasti faile, näiteks kirjad html kujul ning tariga pakitult. Samuti ühe suure mbox formaadis faili kus on kogu listi arhiiv. Mõnede suurte listidega võib see fail kasvatada gigabaitide juurde ning kui neid liste on veel kümmneid või sadu on tulemuseks see, et rsync või mõni muu backupi töövahend võib iga öösel arhiveerida ebapraktiliselt kümmneid lisa gigabaite. Selle probleemi kaotamiseks ametlikku vahendit pole.
Küll aga on olemas roteerimise skript loodud ühe mailmani kasutaja poolt
skripti enda leiab lingilt http://mail.python.org/pipermail/mailman-users/2004-November/040568.html
Lingid
Wikipedia kirjeldus http://en.wikipedia.org/wiki/GNU_Mailman
Mailman gentool http://gentoo-wiki.com/HOWTO_install_Gnu_Mailman
http://www.ahrenstorff.us/articles/mailman.html
http://www.python.org/cgi-bin/faqw-mm.py?req=show&file=faq06.004.htp 6.4. MTA Performance Tuning Tips for Postfix
http://www.python.org/cgi-bin/faqw-mm.py?req=show&file=faq06.006.htp 6.6. Mailman Performance Tuning for Mail Delivery