A Aldeia Numaboa ancestral ainda está disponível para visitação. É a versão mais antiga da Aldeia que eu não quis simplesmente descartar depois de mais de 10 milhões de pageviews. Como diz a Sirley, nossa cozinheira e filósofa de plantão: "Misericórdia, ai que dó!"

Se você tiver curiosidade, o endereço é numaboa.net.br.

Leia mais...

Informática Numaboa - Linux

Debian + Postfix + PostfixAdmin + SquirrelMail

Sab

16

Mai

2009


01:19

(19 votos, média 4.53 de 5) 


Agora vamos criar o esquema MySQL para o amavisd-new. Este esquema é uma combinação do esquema do amavisd-new recomendado e do esquema fornecido junto com o plugin amavisnewsql do SquirrelMail:

cd
wget -U NoSuchBrowser/1.0 http://www.numaboa.com/debian/amavis-260-sqmail.sql.txt
sed -i "s/BY 'password'/BY 'amavis_senha'/" amavis-260-sqmail.sql.txt
chmod 600 amavis-260-sqmail.sql.txt
mysql -u root -p < amavis-260-sqmail.sql.txt

info Veja o script baixado: amavis-260-sqmail.sql.

Foi pedida a senha senha_do_root. Proteja o Secure 50-user (para proteger a senha do MySQL):

chmod 640 /etc/amavis/conf.d/50-user

Vamos criar um script que vai tirar uma lista de nossos domínios de uma tabela do PostfixAdmin:

vi /usr/sbin/local_domains.sh

Insira o seguinte (isto são duas linhas - a linha 2 pode ultrapassar o fim da linha)

#!/bin/bash
mysql -u postfix -ppfix_senha postfix -B -N -e "select concat('.',domain) from domain" >/var/lib/amavis/local_domains

Salve o arquivo. Depois:

chmod 700 /usr/sbin/local_domains.sh
local_domains.sh
cat /var/lib/amavis/local_domains

Nossos domínios devem ser listados num arquivo. Vamos adicionar este script ao PostfixAdmin de modo que ele seja atualizado toda vez que adicionarmos ou removermos um domínio. Precisamos colocar mais uma entrada em /etc/sudoers para que o usuário www-data possa executar este script:

visudo

Insira no fim do arquivo (mais uma vez cuidado com o nome do host):

www-data nome_do_host=NOPASSWD: /usr/sbin/local_domains.sh

Agora vamos aplicar um patch no PostfixAdmin para que ele use este script:

cd /usr/share/postfixadmin
cp delete.php delete.php.original
cp create-domain.php create-domain.php.original
wget -U NoSuchBrowser/1.0 http://www.numaboa.com/debian/domain.patch.v2.txt
patch -p0 < domain.patch.v2.txt

info Veja o patch baixado: domain.patch.v2.

Você deveria dedicar alguns minutos para se convencer de que isto funciona. Remova /var/lib/amavis/local_domains, faça login no PostfixAdmin e edite um domínio (você precisa logar como super-admin para poder editar domínios). Assegure-se de que /var/lib/amavis/local_domains foi criado como esperado, depois:

/etc/init.d/amavis restart

Instale alguns scripts de manutenção para evitar que a base de dados do amavis cresça para sempre (mensagens com mais de 24 dias são deletadas). Se ela não parar de crescer, você ou eu cometemos algum erro:

cd /usr/sbin
wget -U NoSuchBrowser/1.0 http://www.numaboa.com/debian/trim-amavis-msgs.txt
mv trim-amavis-msgs.txt trim-amavis-msgs
sed -i 's/Passw0rd/amavis_password/' trim-amavis-msgs
chmod 750 trim-amavis-msgs
cd /etc
wget -U NoSuchBrowser/1.0 http://www.numaboa.com/debian/trim-amavis.sql.txt
mv trim-amavis.sql.txt trim-amavis.sql
cd /etc/cron.daily/
wget -U NoSuchBrowser/1.0 http://www.numaboa.com/debian/trim-amavis.txt
mv trim-amavis.txt ztrim-amavis
sed -i 's/password/amavis_password/' ztrim-amavis
chmod 750 ztrim-amavis
./ztrim-amavis

info Veja os scripts baixados: trim-amavis-msgs, trim-amavis.sql e trim-amavis.

Agora configure o Postfix para que use o amavisd-new. Vou mostrar as NOVAS alterações feitas no master.cf em vermelho. Não esqueça de casar maxproc para o transporte smtp-amavis com $max_servers. Observe também que há números de portas diferentes envolvidas nos content_filter overrides. Talvez seja melhor usar o WinSCP para fazer as alterações, senão use o vi:

vi /etc/postfix/master.cf
# ==========================================================================
# service type  private unpriv  chroot  wakeup  maxproc command + args
#               (yes)   (yes)   (yes)   (never) (100)
# ==========================================================================
smtp      inet  n       -       -       -       -       smtpd
  -o smtpd_sasl_auth_enable=no
  -o content_filter=smtp-amavis:[127.0.0.1]:10024
# -o receive_override_options=no_address_mappings
# If they want to relay, make them use port 587 (submission) or port 465 (smtps)
# If using submission port, configure client to use CRAM-MD5
submission inet n       -       -       -       -       smtpd
  -o smtpd_tls_security_level=may
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  -o content_filter=smtp-amavis:[127.0.0.1]:10026
# -o receive_override_options=no_address_mappings
# Outlook and OE (and others) expect smtpd_tls_wrappermode,
# so have them submit here (PORT 465):
smtps     inet  n       -       -       -       -       smtpd
  -o smtpd_tls_security_level=encrypt
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  -o content_filter=smtp-amavis:[127.0.0.1]:10026
# -o receive_override_options=no_address_mappings
# We will use port 4650 for clients that use STARTTLS:
4650     inet  n       -       -       -       -       smtpd
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  -o content_filter=smtp-amavis:[127.0.0.1]:10026
# -o receive_override_options=no_address_mappings
#628      inet  n       -       -       -       -       qmqpd
pickup    fifo  n       -       -       60      1       pickup
  -o content_filter=

[... tem mais coisas aqui, mas não precisa editar ...]

# Insira no final e ajuste maxproc diferente de 5 se necessário:
#
smtp-amavis unix -    -    n    -    5    smtp
    -o smtp_data_done_timeout=1200
    -o smtp_send_xforward_command=yes
    -o disable_dns_lookups=yes

127.0.0.1:10025 inet n    -    n    -    -    smtpd
    -o content_filter=
    -o local_recipient_maps=
    -o relay_recipient_maps=
    -o smtpd_restriction_classes=
    -o smtpd_delay_reject=no
    -o smtpd_client_restrictions=permit_mynetworks,reject
    -o smtpd_helo_restrictions=
    -o smtpd_sender_restrictions=
    -o smtpd_recipient_restrictions=permit_mynetworks,reject
    -o smtpd_data_restrictions=reject_unauth_pipelining
    -o smtpd_end_of_data_restrictions=
    -o mynetworks=127.0.0.0/8
    -o smtpd_error_sleep_time=0
    -o smtpd_soft_error_limit=1001
    -o smtpd_hard_error_limit=1000
    -o smtpd_client_connection_count_limit=0
    -o smtpd_client_connection_rate_limit=0
    -o receive_override_options=no_header_body_checks, no_unknown_recipient_checks, no_milters

# port 10035 is where amavisd-new sends notifications
127.0.0.1:10035 inet n    -    n    -    -    smtpd
    -o content_filter=
    -o local_recipient_maps=
    -o relay_recipient_maps=
    -o smtpd_restriction_classes=
    -o smtpd_delay_reject=no
    -o smtpd_client_restrictions=permit_mynetworks,reject
    -o smtpd_helo_restrictions=
    -o smtpd_sender_restrictions=
    -o smtpd_recipient_restrictions=permit_mynetworks,reject
    -o smtpd_data_restrictions=reject_unauth_pipelining
    -o smtpd_end_of_data_restrictions=
    -o mynetworks=127.0.0.0/8
    -o smtpd_error_sleep_time=0
    -o smtpd_soft_error_limit=1001
    -o smtpd_hard_error_limit=1000
    -o smtpd_client_connection_count_limit=0
    -o smtpd_client_connection_rate_limit=0
    -o receive_override_options=no_header_body_checks, no_unknown_recipient_checks, no_milters

Terminada a edição, reinicie o postfix:

/etc/init.d/postfix restart

Informações adicionais