Configuração · 3 min read · Dec 31, 2025
Como Hospedagem Virtual Com Virtualmin No CentOS 5.1 - Página 3
Configuração
Configuração do Postfix
Introdução
Vamos configurar o postfix com os seguintes recursos:
- Hospedagem virtual
- Prevenção de UCE
- Antivírus
- Autenticação SMTP
- TLS
- RBLs
- SPF
- Mitigação de ataques
A adição de contas e domínios será configurada através do virtualmin, embora também possa ser feita manualmente. A configuração é projetada para ser amigável aos recursos, portanto, deve ser capaz de rodar em máquinas que não estão superdimensionadas, permitindo que os recursos sejam melhor utilizados. Para torná-la amigável aos recursos, não estamos usando bancos de dados externos para armazenar informações de usuários virtuais, como a maioria dos outros tutoriais faz, além de usar milters para verificação de spam e vírus, em vez de rodar o amavisd-new.
O Básico
Para começar, configuraremos o básico, como o nome do host, origem do e-mail, redes, diretório de spool de mapas hash. Todas essas opções de configuração devem ser adicionadas ao /etc/postfix/main.cf, a menos que indicado. Arquivos de configuração de exemplo estão disponíveis para download no final desta página.
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
mydomain = example.com
myorigin = $mydomain
mynetworks = 127.0.0.0/8
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
canonical_maps = hash:/etc/postfix/canonical
sender_canonical_maps = hash:/etc/postfix/canonical
recipient_canonical_maps = hash:/etc/postfix/canonical
virtual_alias_maps = hash:/etc/postfix/virtual
mail_spool_directory = /var/spool/mailMaildir
Usaremos o formato maildir muito melhorado em vez do formato mbox padrão:
home_mailbox = Maildir/SASL
Para realizar a autenticação SMTP, usaremos o SASL, no entanto, não usaremos o Cyrus SASL, pois isso requer que executemos o daemon saslauthd. Em vez disso, usaremos o dovecot sasl, uma vez que estaremos executando o dovecot para IMAP e POP3, assim matando dois coelhos com uma cajadada só.
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yesTLS
Precisamos de TLS para garantir que as senhas em texto simples não sejam transmitidas pela rede durante a autenticação SMTP. Servidores que suportam TLS também podem se comunicar com este servidor por meio de uma conexão segura.
Instruções sobre como criar seu certificado de servidor assinado por cacert.org podem ser encontradas aqui.
- Defina a fonte aleatória do TLS:
tls_random_source = dev:/dev/urandom- Ative o TLS do servidor:
smtpd_use_tls = yes
smtpd_tls_key_file = /etc/pki/postfix/key.pem
smtpd_tls_cert_file = /etc/pki/postfix/server.pem
smtpd_tls_CAfile = /etc/pki/postfix/root.crt
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
smtpd_tls_session_cache_database = btree:/var/spool/postfix/smtpd_tls_cache- Ative o TLS do cliente:
smtp_use_tls = yes
smtp_tls_key_file = /etc/pki/postfix/key.pem
smtp_tls_cert_file = /etc/pki/postfix/server.pem
smtp_tls_CAfile = /etc/pki/postfix/root.crt
smtp_tls_session_cache_database = btree:/var/spool/postfix/smtp_tls_cache
smtp_tls_note_starttls_offer = yesPrevenção de Spam
- Exigir um EHLO / HELO válido:
smtpd_helo_required = yes- Prevenir ataques de coleta de endereços de e-mail:
disable_vrfy_command = yes- Mudar os códigos de rejeição para permanente (por padrão, o postfix emite códigos de erro 4xx, o que implica falha temporária; precisamos de 5xx para erros permanentes):
unverified_recipient_reject_code = 550
unverified_sender_reject_code = 550
unknown_local_recipient_reject_code = 550- Configurar verificação de endereço do remetente:
address_verify_map = btree:/var/spool/postfix/verify
smtpd_sender_restrictions = hash:/etc/postfix/sender_access- Criar /etc/postfix/sender_access e adicionar:
#exemplo /etc/postfix/sender_access contém domínios frequentemente falsificados
aol.com reject_unverified_sender
hotmail.com reject_unverified_sender
yahoo.com reject_unverified_sender
gmail.com reject_unverified_sender
bigfoot.com reject_unverified_sender- Mitigar ataques de zumbis e clientes quebrados:
smtpd_error_sleep_time = 5s
smtpd_soft_error_limit = 10
smtpd_hard_error_limit = 20- Permitir apenas o pipeline de clientes autenticados:
smtpd_data_restrictions = reject_unauth_pipelining- Instalar postfix-policyd-spf-perl e habilitar suporte a SPF:
wget http://www.openspf.org/blobs/postfix-policyd-spf-perl-2.005.tar.gz
tar xzvf postfix-policyd-spf-perl-2.005.tar.gz
cd postfix-policyd-spf-perl-2.005
cp postfix-policyd-spf-perl /etc/postfix/Adicione isso ao /etc/postfix/master.cf:
spfpolicy unix - n n - - spawn user=nobody argv=/usr/bin/perl /etc/postfix/postfix-policyd-spf-perl- Adicionar suporte a DKIM:
Instruções sobre como adicionar suporte a DKIM podem ser encontradas aqui.
- Adicionar suporte a domainkeys:
Instruções sobre como adicionar suporte a domainkeys podem ser encontradas aqui.
- Fazer tudo funcionar depende da opção smtpd_recipient_restrictions, então a configuramos abaixo:
smtpd_recipient_restrictions =
permit_mynetworks
permit_sasl_authenticated
reject_unauth_destination
check_recipient_access hash:/etc/postfix/access
reject_unknown_recipient_domain
reject_unknown_sender_domain
reject_unverified_recipient
reject_non_fqdn_recipient
reject_non_fqdn_sender
reject_invalid_hostname
reject_rbl_client list.dsbl.org
reject_rbl_client zen.spamhaus.org
reject_rbl_client l1.spews.dnsbl.sorbs.net
reject_rbl_client combined.njabl.org
reject_rbl_client bl.spamcop.net
reject_rhsbl_sender dsn.rfc-ignorant.org
reject_rhsbl_sender bogusmx.rfc-ignorant.org
reject_rhsbl_sender rhsbl.sorbs.net
reject_rhsbl_client dsn.rfc-ignorant.org
reject_rhsbl_client bogusmx.rfc-ignorant.org
reject_rhsbl_client rhsbl.sorbs.net
check_policy_service unix:private/spfpolicyMilters [SpamAssassin & ClamAV]
Para sua classificação de spam usando spamassassin e verificação de vírus usando clamav, usaremos a interface milter do postfix em vez de usar o daemon amavisd-new, que consome muitos recursos. Esta é uma maneira muito eficiente de fazer isso, pois nem precisamos executar o clamd; o milter do clamav faz a verificação por conta própria.
smtpd_milters = unix:/var/clamav/clmilter.socket unix:/var/run/spamass.sock
non_smtpd_milters = unix:/var/clamav/clmilter.socket unix:/var/run/spamass.sockCriar Arquivos DB
postmap /etc/postfix/canonical
postmap /etc/postfix/access
postmap /etc/postfix/virtual
postmap /etc/postfix/sender_accessArquivos de Configuração de Exemplo
- main.cf
- master.cf
- canonical
- virtual
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.