[Postfix-es] Problemas con Postfix y Amavis-new

David González Romero dgrvedado en gmail.com
Lun Jul 18 16:42:48 CEST 2005


Hola gente!!!

Despues de volver a decidirme a usar Postfix me he encontrado con un
sin numero de problemas. Les planteo lo que quiero hacer y despues lo
que hice, como lo hice y que software estoy usando.
1- Quiero recivir mensajes para dos dominios snap.cu y snap.co.cu.
Ambos dominios son controlados por mi y sus MX respectivos apuntan al
mismo servidor de correo mx1.snap.co.cu y mx1.snap.cu --->
200.55.173.194, como alternativo tengo el mx2.snap.co.cu y mx2.snap.cu
---> 200.55.173.195, pero este no esta online ahora ya que algun error
encontre en el Sendmail que tenia puesto y estoy tenidendo un trafico
saliente muy elevado y no logro detectar que es, pero esto no es para
discutir en esta lista.
2- Quiero pasarles todos los mensajes que llegan a mx1... a un
servidor el cual no tiene acceso directo a internet y que se comunica
con mx1 por medio de una interface interna. mx1 y este server (intra)
se ven perfectamente bien, o sea se hacen ping e intra tiene un
postfix que funciona muy bien y que envia correo al esterior por medio
de mx1, por medio de la funcion relay = necro, donde necro esta puesto
en el /etc/hosts como numero.ip   necro.
3- Quiero revizar/chequear/analizar/filtrar con Amavis-new, ClamAV y
Spamassasin toda la mensajeria que entra y sale de mx1.

Bien lo que hice. El server es un CentOS 4 (RHEL 4.0), instale un
Postfix 2.1.5-2.3.RHEL4.1, me baje un Amavis-new del repositorio
http://dag.wieers.com/packages/ y es la version 2.3.2-1.2.el4.rf,
instale el Clamav de este mismo repositorio,0.86.1-1.2.el4.rf y el
Spamassasin 3.0.1-0.EL4. Para configurar Postfix he seguido el manual
de Fernado Limon ya que el expone muy bien el uso de Postfix como
estafeta de primer y segundo nivel. Me funciona muy bien para 2do
nivel, pero el de 1er nivel no. La configuracion en el main.cf es
esta:

#NOMBRE, DOMINIO Y SMARTHOST
myhostname = mx1.snap.co.cu
mydomain = snap.co.cu
#relay = 172.16.0.3

#DIRECCION DEL FROM
myorigin = $mydomain

#DIRECTORIOS POSTFIX
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
sendmail_path = /usr/sbin/sendmail.postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix
html_directory = no
manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/postfix-2.1.5/samples
readme_directory = /usr/share/doc/postfix-2.1.5/README_FILES

#PROPIETARIOS DE COLA Y PROCESOS
mail_owner = postfix
setgid_group = postdrop

#TRATAMIENTO DE ALIAS
alias_maps = hash:/etc/postfix/aliases
alias_database = hash:/etc/postfix/aliases

#IDENTIFICACION DE LOCAL USERS
local_recipient_maps = $alias_maps unix:passwd.byname

#ENVIO EN PARALELO A UN MISMO DESTINO
local_destination_concurrency_limit = 2
default_destination_concurrency_limit = 10

#OTROS PARAMETROS DE CONFIGURACION
notify_classes = resource, software, policy
transport_maps = hash:/etc/postfix/transport
disable_vrfy_command = yes
disable_dns_lookups = yes
#relayhost = [$relay]
message_size_limit = 1524000
#mailbox_size_limit = 51200000
maximal_queue_lifetime = 5d

#CONTROL DE MAIL I/O
inet_interfaces = all
mynetworks = 127.0.0.0/8, 172.16.0.1/32, 172.16.0.4/32, 172.16.0.3/32,
172.16.0.2/32, 192.168.0.0/24
mydestination = $myhostname localhost.$myhostname
relay_domains = $mydomain snap.cu
#smtpd_client_restrictions = reject_unknown_client
smtpd_helo_required = yes
#smtpd_helo_restrictions = (Esto lo tengo comentariado pues en mi pais)
        #reject_invalid_hostname (muchas zonas inversas no estan configuradas)
        #reject_unknown_hostname (y me puede traer problemas a la hora de)
        #reject_non_fqdn_hostname (aceptar mensajes de dominios .cu)
smtpd_recipient_restrictions =
        #permit_sasl_authenticated
        permit_mynetworks
        check_relay_domains
#headers_checks = regexp:/etc/postfix/headers_checks, reject
#body_checks = regexp:/etc/postfix/body_checks, reject
#relay_recipient_maps = hash:/etc/postfix/real-users
content_filter = smtp-amavis:[127.0.0.1]:10024
unknown_local_recipient_reject_code = 550
debug_peer_level = 2
debugger_command =
        PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
        xxgdb $daemon_directory/$process_name $process_id & sleep 5

#VERSION
mail_name = Postfix+TLS+SASL/CNAP-v1.0/Firewall
smtpd_banner = $myhostname ESMTP $mail_name ($mail_version)

Para el caso de la tabla transport tengo:
firewall.snap.co.cu     local:
localhost.snap.co.cu    local:
snap.co.cu              smtp:[172.16.0.4]
snap.cu                 smtp:[172.16.0.4]

Y dentro del master.cf añadi esto:
# Amavis-New
smtp-amavis unix -      -       y       -       2       smtp
        -o smtp_data_done_timeout=1200
        -o disable_dns_lookups=yes
127.0.0.1:10025 inet n  -       y       -       -       smtpd
        -o content_filter=
        -o local_recipient_maps=
        -o relay_recipient_maps=
        -o smtpd_restriction_classes=
        -o smtpd_client_restrictions=
        -o smtpd_helo_restrictions=
        -o smtpd_sender_restrictions=
        -o smtpd_recipient_restrictions=permit_mynetworks,reject
        -o mynetworks=127.0.0.0/8
        -o strict_rfc821_envelopes=yes

Ahora bien en el amavis.conf modifique esto parametros, guiandome por
el articulo de Bulma de Fernando J. Pereda:
$mydomain = 'snap.co.cu';
$sa_tag_level_deflt  = 4.0;  
$sa_tag2_level_deflt = 5.0; 
$sa_kill_level_deflt = $sa_tag2_level_deflt;
$notify_method  = $forward_method;
$forward_method = 'smtp:127.0.0.1:10025'; 
$final_spam_destiny       = D_PASS;
# ### http://www.clamav.net/
 ['ClamAV-clamd',
   \&ask_daemon, ["CONTSCAN {}\n", "/var/run/clamav/clamd.sock"],
   qr/\bOK$/, qr/\bFOUND$/,
   qr/^.*?: (?!Infected Archive)(.*) FOUND$/ ],

Aqui pase un poco de trabajo porque Clamav viene preparado para
escuchar por un puerto TCP y no por un Socket. En el clamd.conf
modifique eso:
TCPAddr 127.0.0.1
#TCPSocket 3310
LocalSocket /var/run/clamav/clamd.sock

Yo imagino que todo esta bien, pues no. Sucede que pasa esto en el log
/var/log/maillog (solo un fragmento):

Jul 18 11:43:11 firewall postfix/qmgr[28425]: 8AF0995200: removed
Jul 18 11:43:17 firewall postfix/smtpd[28488]: A20B295200:
client=libertad.velug.org.ve[150.188.8.196]
Jul 18 11:43:21 firewall postfix/cleanup[28503]: A20B295200:
message-id=<42DBB04E.5000401 en nextj.com>
Jul 18 11:43:21 firewall postfix/qmgr[28425]: A20B295200:
from=<l-linux-admin en velug.org.ve>, size=5116, nrcpt=1 (queue active)
Jul 18 11:43:21 firewall postfix/smtp[28529]: A20B295200:
to=<dgr en snap.co.cu>, relay=172.16.0.4[172.16.0.4], delay=6,
status=sent (250 Ok: queued as 262F315AAAD)
Jul 18 11:43:21 firewall postfix/qmgr[28425]: A20B295200: removed
Jul 18 11:43:54 firewall amavis[28511]: (28511-03) FWD via SMTP:
<jcecil en audubon.org> -> <susy en snap.co.cu>, 450 4.4.1 Can't connect to
127.0.0.1 port 10025, Bad file descriptor at /usr/sbin/amavisd line
4217, <GEN36> line 1786., MTA([127.0.0.1]:10025), id=28511-03
Jul 18 11:43:54 firewall postfix/master[28421]: warning: process
/usr/libexec/postfix/smtpd pid 28544 killed by signal 11
Jul 18 11:43:54 firewall postfix/master[28421]: warning:
/usr/libexec/postfix/smtpd: bad command startup -- throttling
Jul 18 11:43:54 firewall amavis[28497]: (28497-06) FWD via SMTP:
<unaaldia-admin en hispasec.com> -> <dgr en snap.cu>, 450 4.4.1 Can't
connect to 127.0.0.1 port 10025, Bad file descriptor at
/usr/sbin/amavisd line 4217, <GEN80> line 10478.,
MTA([127.0.0.1]:10025), id=28497-06
Jul 18 11:43:54 firewall postfix/master[28421]: warning: process
/usr/libexec/postfix/smtpd pid 28545 killed by signal 11
Jul 18 11:43:54 firewall amavis[28497]: (28497-06) Blocked CLEAN,
[62.15.230.161] <unaaldia-admin en hispasec.com> -> <dgr en snap.cu>,
Message-ID: <20050718151805.1A647951FE en mx1.snap.co.cu>, mail_id:
b2kuektEgpia, Hits: 2.004, 60379 ms
Jul 18 11:43:54 firewall amavis[28511]: (28511-03) Blocked CLEAN,
[38.136.24.21] <jcecil en audubon.org> -> <susy en snap.co.cu>, Message-ID:
<CB4985851F313A47B583FFC7DE4F9FE1093F01E9 en cardinal.int.audubon.org>,
mail_id: fReSw9RDdaLg, Hits: 4.12, 120168 ms
Jul 18 15:43:54 firewall postfix/smtp[28427]: 1A647951FE:
to=<dgr en snap.cu>, relay=127.0.0.1[127.0.0.1], delay=1549,
status=deferred (host 127.0.0.1[127.0.0.1] said: 450 4.4.1 Can't
connect to 127.0.0.1 port 10025, Bad file descriptor at
/usr/sbin/amavisd line 4217, <GEN80> line 10478.,
MTA([127.0.0.1]:10025), id=28497-06 (in reply to end of DATA command))
Jul 18 15:43:54 firewall postfix/smtp[28426]: 0011B951D3:
to=<susy en snap.co.cu>, relay=127.0.0.1[127.0.0.1], delay=5608,
status=deferred (host 127.0.0.1[127.0.0.1] said: 450 4.4.1 Can't
connect to 127.0.0.1 port 10025, Bad file descriptor at
/usr/sbin/amavisd line 4217, <GEN36> line 1786.,
MTA([127.0.0.1]:10025), id=28511-03 (in reply to end of DATA command))

Segun logro identificar todos los mensajes estan en el Amavis porque
Postfix no levanto el puerto 10025 para recepcionar los mensajes y
segun veo da un error con el comando smtpd. Quizas puedan pasar otras
cosas pero esto es lo que mas claro veo. Alguna
ayuda/iluminacion/aporte para que mi gente pueda seguir reciviendo
mensajes. Ahora mismo no recivo mensaje, he tenido que suscribirme a
la lista por este mail para poder pasarles este mail.

Saludos,
David


Más información sobre la lista de distribución Postfix-es