1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359
|
Az Exim s a Mailman egytt
===========================
[Ez a fjl Nigel Metheringhamz "HOGYANIS - Az Exim s a Mailman egytt"
dokumentcijnak egy kivonata, amelyben a 2.0.x verzij Mailman-rl
s a 3-as verzij Exim-rl lehet olvasni. A frisstett dokumentciban
a 2.1-es Mailman s 4-es Exim sszekapcsolsrl is lehet olvasni. Az
eredeti dokumentcit az albbi cmen lehet olvasni:
http://www.exim.org/howto/mailman.html ]
Mailman belltsa
------------------
A Mailman-t nem kell a hagyomnyostl eltr mdon belltani, mint ahogy
az a Mailman teleptsi dokumentcijban le van rva. Mindssze a
mailman uid/gid rtkeit kell az Exim konfigurcijnak megfelel helyein
megadni.
Exim belltsa
---------------
Az Exim belltsval a Mailman-ben ltrehozott listk automatikusan,
tovbbi bejegyzsek nlkl megjelennek s hasznlhatak lesznek.
Ennek a belltsnak a htrnya az, hogy gyenge teljestmnnyel mkdik
olyan rendszereken, amelyek tbb klnbz levelez tartomny listit
szolgljk ki. Igaz, hogy a Mailman kpes kezelni virtulis tartomnyok
kezelsre, de egyelre nem kpes kezelni ugyanaz a teleptett Mailman
azonos nvvel, de eltr tartomnyban tallhat listkat. Ez a jvben
vltozni fog. (Lejjebb klnbz vltozatokrl lehet olvasni, amelyekkel
a virtulis tartomnyokat lehet megfelelen kiszolglni.)
A ksbb bemutatott konfigurcis llomny rszleteket azon mr mkd Exim
konfigurcis rszbe kell elhelyezni, amely azon tartomny levelezsrt
felels, ahol a lista mkdik. Ha ez a tartomny eltr az Eximben megadott
tartomnyoktl, akkor a kvetkezket kell tenni:
* adjuk hozz a local_domains-hez a lista tartomnyt,
pl. sajat.listam.domain
* adjuk a "domains=sajat.listam.domain" belltst a lista tirnyt
(director) rszhez
* (ha szksges) a tbbi tirnytnl vegyk fel ezt a tartomnyt a
figyelmen kvl hagyand tartomnyok kz.
[Megjegyzs: a lersban tallhat belltsok mind 3-as, mind 4-es Eximhez
egyarnt hasznlhatak. 3-as Eximnl 'local_domains' belltsra van
szksgnk, mg a 4-es verziban tbbnyire a 'local_domains'-ben megadott
tartomnylistra. Ha nem gy hasznljuk az Eximet, akkor valsznleg
alapos Exim belltsi ismeretekkel rendelkeznk, gy nem lesz nehz
mdostani a ksbb ismertetett belltsokat. 4-es Eximben az tirnytk
(directors) rsz megsznt, szerept a routers rsz vette t, gy ha 4-es
Eximet hasznlunk, akkor mindenhol ahol a dokumentci tirnytt emlt
mi routert rtsnk.]
Fggetlenl attl, hogy melyik Exim verzit hasznljuk az Exim konfigurcis
llomnynak ltalnos belltsok rszbe nhny vltozz kell megadnunk.
Tovbb egy j tovbbt rszt is ltre kell majd hoznunk. 3-as Eximnl
egy j tirnyt, mg a 4-es verziban egy j router tlti be majd
ugyanazt a szerepet.
Vgl pedig rdemes tudni, hogy ezekkel a belltsokkal ugyanazon a
gpen egyms mellett mkdhet a Mailman 2.0-s s 2.1-es verzija is.
Ekkor "mailman" helyett hivatkozhatunk "mm21" nvvel a msik, jabb
verzira, pl. MM21_HOME, mm21_transport, stb.
ltalnos belltsok
~~~~~~~~~~~~~~~~~~~~~
Elszr is ez Exim konfigurcis llomnynak elejhez adjuk a kvetkez
vltozkat. A vltozk segtsgvel egyszerbben kezelhetek a ksbb
megadott tirnyt s router belltsok. Termszetesen a sajt
rendszernk szerint mdostsuk a megadott rtkeket.
# A teleptett Mailman 'home' knyvtra
MAILMAN_HOME=/usr/local/mailman
MAILMAN_WRAP=MAILMAN_HOME/mail/mailman
# Mailman felhasznl s csoport azonostja, egyeznie kell a Mailman
# belltsakor hasznlt --with-mail-gid kapcsolnl megadott rtkkel
MAILMAN_UID=mailman
MAILMAN_GID=mailman
Transport rsz Exim 3-hoz
~~~~~~~~~~~~~~~~~~~~~~~~~
Az Exim konfigurcis llomnynak transports fejezethez adjuk a kvetkez
sorokat, kb. az els s msodik "end" tartalm sor kz kell beszrni a
kvetkezket:
mailman_transport:
driver = pipe
command = MAILMAN_WRAP \
'${if def:local_part_suffix \
{${sg{$local_part_suffix}{-(\\w+)(\\+.*)?}{\$1}}} \
{post}}' \
$local_part
current_directory = MAILMAN_HOME
home_directory = MAILMAN_HOME
user = MAILMAN_USER
group = MAILMAN_GROUP
tirnyt rsz Exim 3-hoz
~~~~~~~~~~~~~~~~~~~~~~~~~~
Ha 3-as Eximet hasznlunk, akkor a konfigurcis llomny tirnyt
rszhez a kvetkezket kell adni (az tirnytk a msodik s harmadik
"end" tartalm sor kztt tallhatak). Fontos, hogy itt szmt a sorrend
-- pl. ha ezt az irnytt az aliasllomny tirnytjra val hivatkozs
el tesszk, akkor a Mailman bejegyzsei (aliases) a rendszer bejegyzseknl
magasabb rvnyek lesznek.
# A listhoz tartoz sszes cmet kezeli ez a rsz.
# Automatikusan azonostja a listkat a MAILMAN_HOME knyvtrban
# tallhat lists/$local_part/config.pck llomnyok alapjn.
mailman_director:
driver = smartuser
require_files = MAILMAN_HOME/lists/$local_part/config.pck
suffix_optional
suffix = -bounces : -bounces+* : \
-confirm+* : -join : -leave : \
-owner : -request : -admin
transport = mailman_transport
Router rsz Exim 4-hez
~~~~~~~~~~~~~~~~~~~~~~
4-es Eximben az tirnytk helyett routereket kell hasznlni. Ezen tl a
konfigurcis llomny felptse is megvltozott -- ABC sorrendet hasznl,
gy itt a router rsz a transport rsz el kerl. Tegyk a router belltst
a router rszbe, amely a "begin routers" sor utn kezddik. El ne felejtsk,
hogy a megadott sorrend itt mg inkbb szmt.
mailman_router:
driver = accept
require_files = MAILMAN_HOME/lists/$local_part/config.pck
local_part_suffix_optional
local_part_suffix = -bounces : -bounces+* : \
-confirm+* : -join : -leave : \
-owner : -request : -admin
transport = mailman_transport
Transport rsz Exim 4-hez
~~~~~~~~~~~~~~~~~~~~~~~~~
A 4-es Eximhez hasznlhatjuk a 3-as Eximben megadott transport bejegyzst,
nyugodtan msoljuk be valahova a "begin transports" sor utn a 3-as Eximnl
ismertetett belltsokat.
Megjegyzs
~~~~~~~~~~
Az Exim-et gy kell belltani, hogy a kzbests elfogadhat mrtk
legyen - pl. a max_recipients ne valami nagyon kis rtk legyen, s a
biztonsgi belltsok is rtelmes szintet eredmnyezzenek - pl. 127.0.0.1
cmrl (evidensen) engedlyezett a relaying, de mshonnan nagyon nem.
Prhuzamos kldsi mdot is be lehet lltani. A kzbestsek id-
tllpsre figyelmeztet zeneteket legalbb a listkhoz kapcsold
cmeknl kapcsoljuk ki, ha nem szeretnnk nagyon sok ilyen zenetet
kapni, amikor a cmzett gp nem rhet el.
Problmk
~~~~~~~~~
* A Mailman annyi MAIL FROM/RCPT TO hvst hasznl, amennyi szksges.
Ennek kvetkeztben 10 vagy 100 zenetnl is tbbet prbl meg egy
kapcsolat alatt elkldeni, amely tbb mint az Exim alapesetben
belltott engedlyezett kldse (smtp_accept_queue_per_connection).
Emiatt az Exim vrakozlista mdba kapcsol s nagy kssekkel
fogja az zeneteket tovbbtani.
A problma elkerlsre adjunk az SMTP_MAX_SESSIONS_PER_CONNECTION
vltoznak (a ~mailman/Mailman/mm_cfg.py llomnyban) az Exim
smtp_accept_queue_per_connection rtknl kisebb rtket
* A Mailman-nak figyelmen kvl kellene hagynia az Exim kzbests
idtllpsbl (delay) ered zeneteit, annak ellenre, hogy az
Exim ezeket sohasem kldi el a listkra. A Mailman 2.1-ben a
visszapattansok kezelse s a VERP tmogatsa nagyban segtheti
a visszapattansok nyomonkvetst.
* A listk ltezsnl ellenrzi a bellts, hogy tallhat-e a
listhoz config.pck fjl. Ha trljk a listt, akkor gyeljnk
hogy trljk a listhoz tartoz config.pck fjlt is.
* Ha hibs felhasznli azonostra hivatkozva nem trtnik kzbests,
akkor ellenrizzk, hogy a MAILMAN_UID s MAILMAN_GID vltzknak
helyesen adtuk-e meg a Mailman ezen rtkeit. Figyeljnk arra
is, hogy a rendszerszint aliases fjlban nem tallhat a listhoz
kzvetlenl kapcsold bejegyzs.
Cmzett azonostsa
~~~~~~~~~~~~~~~~~~~
Az Exim cmzett azonosts funkcija nagyon hasznos, mivel segtsgvel
az SMTP kapcsolat ideje alatt el lehet vetni a nem ismert cmzett
leveleket. Ez a funkci a sajt tartomnyukba kls cmekrl rkez
levelek esetn hasznos. A Mailman listk forgalmnl a levelek a sajt
szervernkrl indulnak s klnbz kls, tlnk fggetlen tartomnyokba
kerlnek elkldsre. Minden egyes levl tbb cmzettnek kerlhet tovbbtsra
-- akr egyszerre 500-nak is, ha a Mailman alaprtelmezett rtkt hasznljuk
s nem mdostottuk az SMTP_MAX_RCPTS rtkt.
A Mailman listk forgalmn cmzett azonostst vgezve problmk
merlhetnek fel. ltalban az Exim a Mailman listkrl rkez zenetek
minden cmzettjt megprblja elrni. Ehhez mindssze pr keresst
vgez a DNSben minden egyes cmzettnl, azonban ez a keress a kzbestst
nagyon lelassthatja. Ezrt clszer kikapcsolni a cmzett azonostst
a Mailman forgalomra.
3-as Exim alatt a kvetkezt kell elhelyezni az ltalnos belltsok
rszben:
receiver_verify_hosts = !127.0.0.1
4-es Eximnl valsznleg az alaprtelmezett cmzett azonostsi ACL
kifejezsben (az "RCPT TO" ACL-ben) mr engedlyezve van ez a funkci:
accept domains = +local_domains
endpass
message = unknown user
verify = recipient
Ekkor csak a sajt tartomnyba rkez levelekre vgez cmzett azonostst
az Exim. (Ez a megolds nem teljesen azonos azoknl az zeneteknl
alkalmazott cmzett azonostsi funkcival, amelyek nem-127.0.0.1 hostokrl
rkeznek, de mkdik a Mailman esetben.)
SMTP Callback
~~~~~~~~~~~~~
Az Exim SMTP callback kpessgvel mg hatkonyabban lehet azonostani
a hibs feladcmeket, mint a hagyomnyos felad ellenrzssel. Sajnos
nagyon sok szerver a visszapattansi zenet fejlcben hibs feladt
tntet fel (annak ellenre, hogy csak egy res felad cmet kne
hasznlniuk ilyen esetekben).
Azrt, hogy a Mailman a visszapattan cmeket kezelni tudja szksges
a Mailman listkon fogadni az ilyen leveleket, mg akkor is ha ezek
nem alkalmasak visszapattansok azonostsra. Ezrt tbbnyire
clszer kikapcsolni az SMTP callback ellenrzst a visszapattan
levelekre.
Exim 4 esetn ezt a kvetkez belltssal lehet elrni az "RCPT TO" ACL
rszben:
# Fogadjuk a visszapattansokat a listn mg akkor is ha a callback vagy
# ms ellenrzsek nem jrtak sikerrel
warn message = X-WhitelistedRCPT-nohdrfromcallback: Yes
condition = \
${if and {{match{$local_part}{(.*)-bounces\+.*}}
{exists {MAILMAN_HOME/lists/$1/config.pck}}} \
{yes}{no}}
{yes}{no}}
accept condition = \
${if and {{match{$local_part}{(.*)-bounces\+.*}}
{exists {MAILMAN_HOME/lists/$1/config.pck}}} \
{yes}{no}}
{yes}{no}}
# Most ellenrizhetjk a felad cmt az SMTP callback funkcival.
deny !verify = sender/callout=90s
Ha a fejlcben tallhat cmekre is szeretnnk SMTP callback ellenrzst
vgrehajtani, akkor a "DATA" ACL-t a kvetkezkppen kell megadni:
deny !condition = $header_X-WhitelistedRCPT-nohdrfromcallback:
!verify = header_sender/callout=90s
VERP hasznlata Eximmel s Mailmannel
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
VERP esetn a listatagoknak a leveleket kln-kln kldjk el, a VERP
belltsrl a ~mailman/Mailman/Defaults.py llomnyban lehet bvebben
olvasni. Rviden, a kvetkezket kell feltntetni a ~mailman/Mailman/mm_cfg.py
llomnyban a VERP hasznlathoz:
VERP_PASSWORD_REMINDERS = 1
VERP_PERSONALIZED_DELIVERIES = 1
VERP_DELIVERY_INTERVAL = 1
VERP_CONFIRMATIONS = 1
(A fenn emltett tirnytok kpesek a VERP visszapattansok kezelsre is.)
Virtulis tartomnyok
~~~~~~~~~~~~~~~~~~~~~
Virtulis tartomnyok kezelsre megolds lehet az a mdszer, hogy minden
egyes virtulis tartomnyhoz kln-kln teleptett Mailmant hasznlunk.
(Jelenleg csak ezzel a mdszerrel lehet ugyanazon a rendszeren azonos nvvel,
de eltr tartomnyokban listkat zemeltetni.)
Ez esetben ne adjuk meg a MAILMAN_HOME s MAILMAN_WRAP vltozkat, trljk
azokat az ltalnos belltsok rszbl. Mdostsuk a director (router)
rszeket valahogy gy:
require_files = /virtual/${domain}/mailman/lists/${lc:$local_part}/config.pck
a transports rszeket pedig gy:
command = /virtual/${domain}/mailman/mail/mailman \
${if def:local_part_suffix \
{${sg{$local_part_suffix}{-(\\w+)(\\+.*)?}{\$1}}}
{post}} \
$local_part
current_directory = /virtual/${domain}/mailman
home_directory = /virtual/${domain}/mailman
Lista ellenrzse
~~~~~~~~~~~~~~~~~
A kvetkezkben bemutatjuk, hogy hogyan lehet ellenrizni egy mkd
rendszeren, hogy az Eximnek megadott listk cmei megfelelen mkdnek.
A pldban az mems-exchange.org levelezszerveren mkd
quixote-users@mems-exchange.org listn mutatjuk be a szksges parancsokat
("% " jelzi a Unix shell promptjt):
% exim -bt quixote-users
quixote-users@mems-exchange.org
router = mailman_main_router, transport = mailman_transport
% exim -bt quixote-users-request
quixote-users-request@mems-exchange.org
router = mailman_router, transport = mailman_transport
% exim -bt quixote-users-bounces
quixote-users-bounces@mems-exchange.org
router = mailman_router, transport = mailman_transport
% exim -bt quixote-users-bounces+luser=example.com
quixote-users-bounces+luser=example.com@mems-exchange.org
router = mailman_router, transport = mailman_transport
Ha az "exim -bt" parancsok kimenete hasonlt valamennyire a fentiekhez,
akkor az j jel, mert azt jelenti hogy az Exim a megfelel Mailman
bejegyzshez tovbbtja az eltr zeneteket. Azonban messze nem jelenti
azt, hogy az Exim s Mailman telepts biztosan tkletesen mkdik!
A dokumentum kszti
~~~~~~~~~~~~~~~~~~~~~
Eredeti szerzje Nigel Metheringham <postmaster@exim.org>.
Mailman 2.1-es s Exim 4-es verzihoz adaptlta Merlin <marc_soft@merlins.org>.
Ellenrzte/formba nttte/pontostotta/egyszerstette Greg Ward <gward@python.net>.
|