[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Peleando con postfix y pop-before-smtp



Friday, March 15, 2002, 1:16:14 AM, you wrote:
ÁGS> Verán, tengo una sangrante pelea con postfix y pop-before-smtp y de momento voy
ÁGS> perdiendo de paliza, necesito refuerzos.


Hola Áncor, te cuento como lo tengo montado.
Lo primero es que tu servidor POP debe guardar la IP del cliente en
los logs. En mi sistema con Potato uso qpopper 4.0.3
(http://www.eudora.com/qpopper/) compilado desde las fuentes. Para que
guarde ese log hay que añadir

--enable-log-login

al hacer el ./configure
El log tiene este aspecto:

Mar 15 10:43:42 mail popper[21600]: (v4.0.3) POP login by user "pepito" at (194.101.101.1) 192.101.101.1

Luego instalé pop-before-stmp directamente desde el tar.gz, no usé el
paquete .deb
Debes colocar el archivo pop-before-smtp.init en /etc/init.d (y crear
los enlaces simbólicos desde los /etc/rc*.d (puedes usar update-rc) y
colocar el archivo pop-before-smtp en /usr/sbin/
Tienes que modificar algunos parámetros en /usr/sbin/pop-before-smtp,
decirle en que log están las IP de los clientes y que expresión
regular vas a usar para extraer esa IP ($pat2 y $pat), yo tengo:

my $logfile = '/var/log/syslog';

# Bennett Todd to add support for GNU pop3d
my $pat2 = '^(... .. ..:..:..) \S+ gnu-pop3d\[\d+\]: ' .
      'User .* logged in with mailbox .* from (\d+\.\d+\.\d+\.\d+)$';

# Alex Burke's popper install
# Funny enough our version of popper matches this regular expression using
# the syslog file. 2002-03-01 aep
#
my $pat = '^(... .. ..:..:..) \S+ popper\[\d+\]: Stats: \S+ ' .
           '(?:\d+ ){4}(?:\S+ )?(\d+.\d+.\d+.\d+)$';

También puedes modificar los siguientes:

my $dbfile = '/etc/postfix/pop-before-smtp'; # DB hash to write
my $grace = 1800; # 30 minutes --- grace period

Para que funcione pop-before-smtp necesitas tener en tu sistema los
siguiente módulos de Perl (instálalos con CPAN, ej:  perl -MCPAN -e 'install Time::HiRes')

File::Tail
Time::HiRes
Net::Netmask
Date::Parse

Ahora es el momento de hacer

/etc/init.d/pop-before-smtp start

y ver si /etc/postfix/pop-before-smtp.db cambia, o mejor aun ver su
contenido con db-dump -d, haz POP desde IPs distintas y deberías ver
algo como esto

[024] 3884 len:  13 data: 194.101.101.1
[025] 3881 len:   2 data: ok

Si no sale nada (si no almacena las IP) puede ser que te falle la
expresión regular para el formato de tus logs, precisamente ese es el
único problema con que me encontré. Con

/etc/init.d/pop-before-smtp status

puede ver si está ejecutándose.

Vamos ahora con postfix, lo único que tienes que hacer es configurar
el parámetro smtpd_recipient_restrictions
yo tengo lo siguiente

smtpd_recipient_restrictions = permit_mynetworks
        check_client_access hash:/etc/postfix/pop-before-smtp
        check_relay_domains

y no te olvides del
postfix reload

eso es todo, espero haberte ayudado
un saludo
  Santi



Reply to: