logy postfixu

Dalibor Straka dast na panelnet.cz
Středa Srpen 22 23:46:34 CEST 2007


On Wed, Aug 22, 2007 at 08:47:06PM +0000, Pavel Balus wrote:
> Dobry den,
> 
> mam jeden mailserver, ktery funguje jen jako smarthost (asi 10 mailserveru 
> pres nej odesila emaily do Internetu). Nemate nekdo tip, jak zaridit, aby 
> postfix generoval logy oddelene podle klientskych mailserveru? Tzn. abych 
> nemel jednu sadu mailogu pro vsechny mailservery, ale pro kazdy klientsky 
> mailserver oddelenou sadu maillogu, jako by pres zmineny smarthost odesilal 
> emaily jen jeden mailserver.
> Diky za tip.
> 

Postfix k tomu asi nedonutite. Muzete si udelat jednoduchy skript, ktery
logy rozhodi podle "connect from". Struktura je docela jednoducha:
... postfix/smtpd[8011]: connect from unknown[209.132.176.167]
... postfix/smtpd[8011]: BDD818432: client=vger.kernel.org[209.132.176.167]
... postfix/smtpd[8011]: disconnect from unknown[209.132.176.167]
najdete connect from a porovnate IP adresu, pokud patri do rodiny
smart-hostovanych, ulozit si pid 8011 a hledat dalsi smtpd s timto
pidem. Jakmile narazite na prvni slovo koncici dvojteckou BDD818432:
hledate dal i zpravy s timto kodem dokud nenarazite na disconnect.

V perlu to muze byt do 100 radku. Mozna by slo genialne pouzit opomijene
AWK.

-- Dalibor Straka
P.S. Nemuselo by byt slozite doprogramovat si takove logovani do
postfixu. Bud primo do smtpd.c ve funkci smtpd_service() a v par dalsich
mail_open_stream() modifikovat rodinu funkci msg_info(), msg_warn,
msg_panic(). Spis si myslim, ze je lepsi ten skrip.



Další informace o konferenci Linux