Informática Numaboa - Linux
Debian + Postfix + PostfixAdmin + SquirrelMail
Sab 16 Mai 2009 01:19 |
- Detalhes
- Categoria: Como fazer instalações
- Atualização: Quinta, 28 Janeiro 2010 21:08
- Autor: vovó Vicki
- Acessos: 59434
- Debian + Postfix + PostfixAdmin + SquirrelMail
- A lista de fontes
- Iptables e logcheck
- MySQL, Postfix e Dovecot
- Certificados SSL (Autoridade)
- Certificados SSL (Requisições)
- phpMyAdmin
- SquirrelMail e PostfixAdmin
- SquirrelMail e PostfixAdmin II
- SquirrelMail e PostfixAdmin III
- Configurar SASL e TLS
- Amavis e SpamAssassin
- Amavis, SpamAssassin, ClamAV, Razor, Pyzor
- Amavis
- Amavis II
- Tabelas Bayes e AWL
- Personalizar o SquirrelMail
- Razor, pflogsumm e BIND
- Configurações Postfix adicionais
- Férias no PostfixAdmin
- Quotas, MailGraph e mysql-zrm
- O problema dos Aliases
- Todas as Páginas
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
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
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
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