Instalando Postfix no FreeBSD

O que é o Postfix ?

O Postfix é um agente de transferência de e-mails (MTA - Mail Transfer Agent) de código aberto. Ele é responsável por enviar, receber e encaminhar emails em um servidor de email.

Links de auxílio:
https://www.server-world.info/en/note?os=FreeBSD_14&p=mail&f=1

1 - Primeiramente vamos atualizar o pkg:

# pkg update

2 - Após o passo antarior vamos instalar o postfix:

#  pkg install postfix

3 - Quando terminar a instalação, vamos precidar editar o seguinte arquivo de configuração: "/usr/local/etc/postfix/main.cf":

— Vamos descomentar as linhas 98, 106, 122, 136, 184, 227, 272, 410, 420, 442:


# linha 98
myhostname = mail.seudominio.com.br

# linha 106
mydomain = seudominio.com.br

# linha 122
myorigin = $mydomain

# linha 136
inet_interfaces = all

# linha 184
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain

# linha 227
local_recipient_maps = unix:passwd.byname $alias_maps

# linha 272
mynetworks_style = subnet

# linha 410
alias_maps = hash:/etc/aliases

# linha 420
alias_database = hash:/etc/aliases

# linha 442
home_mailbox = Maildir/

– Vamos comentar a linha 273:


# linha 272
mynetworks_style = subnet
#mynetworks_style = host    # Linha 273

— Vamos descomentar a linha 286 e vamos especificar especifica quais IPs estão autorizados a se conectar ao servidor de email para enviar mensagens sem autenticação:


# linha 286
mynetworks = 127.0.0.0/8, 10.0.0.0/24

— Vamos adicionar a linha 578:

smtpd_banner = $myhostname ESMTP

— O restante da configuração vamos adicionar ao final do arquivo:

# add follows to last line
# disable SMTP VRFY command
disable_vrfy_command = yes


# require HELO command to sender hosts
smtpd_helo_required = yes

# limit an email size
# example below means 10M bytes limit
message_size_limit = 10240000

# SMTP-Auth settings
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions = permit_mynetworks, permit_auth_destination, permit_sasl_authenticated, reject

OBS: Após adicionar todas estas linhas, salve e feche o arquivo:

4 - Vamos desabilitar o serviço de sendmail que vem ativo por padrão no FreeBSD e também desabilitar determinadas tarefas diárias relacionadas ao sistema de email.:

— Desabilitar o sendmail no /etc/rc.conf:

root@mail:~ # sysrc sendmail_enable="NO"

— Desabilitar algumas tarefas relacionadas ao sistema de e-mail. Vamos precisar criar o arquivo “/etc/periodic.conf” e acrescentar as linhas no arquivo:


# ee periodic.conf

daily_clean_hoststat_enable="NO"
daily_status_mail_rejects_enable="NO"
daily_status_include_submit_mailq="NO"
daily_submit_queuerun="NO"

5 - Após efetuar todos os passos acima, vamos executar os comandos:


# install -d /usr/local/etc/mail
# install -m 0644 /usr/local/share/postfix/mailer.conf.postfix /usr/local/etc/mail/mailer.conf
# postalias /etc/aliases
# newaliases

6 - Vamos ativar o serviço no /etc/rc.conf e inicializar o serviço:

# service postfix enable
# service postfix start

7 - Algumas configurações opicionais, porém recomendadas para rejeição de SPAM. Vamos editar o arquivo "/usr/local/etc/postfix/main.cf":

— Adicione as linhas abaixo, no final do arquivo:

# reject unknown clients that forward lookup and reverse lookup of their hostnames on DNS do not match
smtpd_client_restrictions = permit_mynetworks, reject_unknown_client_hostname, permit

# rejects senders that domain name set in FROM are not registered in DNS or 
# not registered with FQDN
smtpd_sender_restrictions = permit_mynetworks, reject_unknown_sender_domain, reject_non_fqdn_sender

# reject hosts that domain name set in FROM are not registered in DNS or 
# not registered with FQDN when your SMTP server receives HELO command
smtpd_helo_restrictions = permit_mynetworks, reject_unknown_hostname, reject_non_fqdn_hostname, reject_invalid_hostname, permit