Configuração inicial necessária após a instalação do Postfix no CentOS e antes do arranque.


Data de Publicação:4 de Janeiro de 2021.



INFOMARTION > Configuração inicial necessária após a instalação do Postfix no CentOS e antes do arranque.

Visão geral.

Este é o procedimento de configuração inicial necessário para instalar o Postfix no CentOS e pô-lo a funcionar. A informação baseia-se no pressuposto de que o CentOS7 é utilizado. Gostaríamos de o instalar no porto de apresentação.

Se instalar também o Dovecot, ver também.

Postfix é para o envio de correio e Dovecot é para a recepção de correio. Se precisar de processar o envio de emails, instalar Postfix, e se também quiser receber emails, instalar Dovecot.

As versões são as seguintes.

Versão CentOS7.6 (1810)
Versão Postfix2.10.1

Tabela de Conteúdos

  1. instalar
  2. Detalhes de configuração
  3. resumo

1. instalar

Esta secção descreve a configuração do Postfix, desde a instalação até ao arranque.

1-1. Instalação Postfix

Executar a instalação Postfix por meio do comando yum. Efectuar o trabalho como utilizador root.

[username@hostname ~]$ su -
[root@hostname ~]# yum -y install postfix

1-2. verificação do bootstrap check

Para verificar se foi instalado com sucesso, verifique o arranque.

[root@hostname ~]# /usr/sbin/postfix start
[root@hostname ~]# ps aux | grep postfix
root      1485  0.7  0.2  89744  2128 ?        Ss   16:02   0:00 /usr/libexec/postfix/master -w
postfix   1486  0.2  0.4  89848  4080 ?        S    16:02   0:00 pickup -l -t unix -u
postfix   1487  0.2  0.4  89916  4104 ?        S    16:02   0:00 qmgr -l -t unix -u
root      1489  0.0  0.1 112824   964 pts/0    S+   16:02   0:00 grep --color=auto postfix

Qualquer processo em execução como utilizador postfix como descrito acima está OK. Parar.

[root@hostname ~]# /usr/sbin/postfix stop

2. Detalhes de configuração

2-1. inicialização

Configuração inicial do Postfix. Basicamente, a configuração Postfix é descrita em "/etc/postfix/main.cf", por isso vamos modificar main.cf.

[root@hostname ~]# vi /etc/postfix/main.cf

Alterar como se segue.

main.cf【Antes da mudança】


#
#myhostname = host.domain.tld
#myhostname = virtual.domain.tld
~abridgement~
#
#mydomain = domain.tld
~abridgement~
#myorigin = $myhostname
#myorigin = $mydomain
~abridgement~
#inet_interfaces = all
#inet_interfaces = $myhostname
#inet_interfaces = $myhostname, localhost
inet_interfaces = localhost
~abridgement~
mydestination = $myhostname, localhost.$mydomain, localhost
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,
#       mail.$mydomain, www.$mydomain, ftp.$mydomain
~abridgement~
#mynetworks = 168.100.189.0/24, 127.0.0.0/8
#mynetworks = $config_directory/mynetworks
#mynetworks = hash:/etc/postfix/network_table
~abridgement~
#
#home_mailbox = Mailbox
#home_mailbox = Maildir/

main.cf【após a mudança】


#
myhostname = example.com
#myhostname = virtual.domain.tld
~abridgement~
#
mydomain = example.com
~abridgement~
#myorigin = $myhostname
myorigin = $mydomain
~abridgement~
inet_interfaces = all
#inet_interfaces = $myhostname
#inet_interfaces = $myhostname, localhost
#inet_interfaces = localhost
~abridgement~
#mydestination = $myhostname, localhost.$mydomain, localhost
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,
#       mail.$mydomain, www.$mydomain, ftp.$mydomain
~abridgement~
mynetworks = 127.0.0.0/8, 192.168.100.0/24
#mynetworks = $config_directory/mynetworks
#mynetworks = hash:/etc/postfix/network_table
~abridgement~
#
#home_mailbox = Mailbox
home_mailbox = Maildir/

myhostname", "mydomain" e "myorigin" Estes são parâmetros relacionados com o domínio. A parte que é modificada para 'example.com' deve ser definida para o nome de domínio do servidor. A parte "example.com" de "https://example.com/" é o nome de domínio.

O endereço de correio electrónico é username@example.com.

A 'mynetworks' é um cenário relacionado com a rede. Este é um endereço IP que pode ser ligado ao postfix. Se o servidor de correio estiver ligado a um servidor diferente, modificar este valor em conformidade.

A 'home_mailbox' é o directório de correio electrónico. Guardar o e-mail enviado.

2-2. Utilizador de SO ou rejeitar se não estiver definido em $alias_maps

Configurar as definições de envio de emails com o utilizador do SO e os utilizadores listados em $alias_maps. Um utilizador de SO é um utilizador que é adicionado com useradd.

[root@hostname ~]# vi /etc/postfix/main.cf

Alterar como se segue.

main.cf【Antes da mudança】


#local_recipient_maps = unix:passwd.byname $alias_maps
#local_recipient_maps = proxy:unix:passwd.byname $alias_maps
#local_recipient_maps =

main.cf【após a mudança】


local_recipient_maps = unix:passwd.byname $alias_maps
#local_recipient_maps = proxy:unix:passwd.byname $alias_maps
#local_recipient_maps =

Acrescentar o seguinte ao final do main.cf.

main.cf


### MAIL SIZE (20 Mbytes.)
message_size_limit = 20971520
### TLS
smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/pki/tls/certs/localhost.crt
smtpd_tls_key_file = /etc/pki/tls/private/localhost.key

Os 'smtpd_tls_cert_file' e 'smtpd_tls_key_file' devem ser definidos de acordo com o ambiente. Definir o caminho onde o certificado do servidor é armazenado.

As definições SSL são necessárias com antecedência, por isso, se não tiver configurado definições SSL, por favor execute primeiro as definições SSL. Consulte por favor o seguinte.

Configuração inicial necessária desde a instalação do Apache no CentOS até ao arranque.

2-3. Configurações da porta de submissão Postfix

Configurar as definições para o envio de e-mails utilizando a porta de envio.

[root@hostname ~]# vi /etc/postfix/master.cf

※Note-se que o ficheiro a ser editado é 'master.cf', não 'main.cf', pelo que os nomes dos ficheiros são semelhantes.

Alterar como se segue.

master.cf【Antes da mudança】


#submission inet n - n - - smtpd
~abridgement~
#-o smtpd_sasl_auth_enable=yes
~abridgement~
#-o smtpd_client_restrictions=$mua_helo_restrictions
~abridgement~
#-o smtpd_sender_restrictions=$mua_sender_restrictions
~abridgement~
#-o smtpd_recipient_restrictions=permit_sasl_authenticated,reject

master.cf【após a mudança】


submission inet n - n - - smtpd
~abridgement~
-o smtpd_sasl_auth_enable=yes
~abridgement~
-o smtpd_client_restrictions=permit_sasl_authenticated
~abridgement~
-o smtpd_sender_restriction=permit_sasl_authenticated
~abridgement~
-o smtpd_recipient_restrictions=permit_sasl_authenticated


Instalar as bibliotecas necessárias para autenticação SASL com yum.

[root@hostname ~]# yum -y install cyrus-sasl
[root@hostname ~]# yum -y install cyrus-sasl-plain
[root@hostname ~]# yum -y install cyrus-sasl-md5
[root@hostname ~]# yum -y install cyrus-sasl-devel

Editar saslauthd para utilizar contas UNIX para autenticação.

[root@hostname ~]# vi /etc/sysconfig/saslauthd

Alterar como se segue.

saslauthd


#MECH=pam
MECH=shadow

2-4. Habilitando o SASL

Habilitar o SASL.

[root@hostname ~]# systemctl enable saslauthd
[root@hostname ~]# systemctl is-enabled saslauthd
enabled
[root@hostname ~]# systemctl list-unit-files --type=service | grep saslauthd
saslauthd.service                                enabled
[root@hostname ~]# systemctl daemon-reload

2-5. verificação do bootstrap check

Verificar se o Postfix começa.

[root@hostname ~]# /usr/sbin/postfix start
[root@hostname ~]# ps aux | grep postfix
root      1838  0.0  0.1  89744  2080 ?        Ss   18:14   0:00 /usr/libexec/postfix/master -w
postfix   1839  0.0  0.3  89848  3988 ?        S    18:14   0:00 pickup -l -t unix -u
postfix   1840  0.0  0.3  89916  4008 ?        S    18:14   0:00 qmgr -l -t unix -u
root      1845  0.0  0.0 112824   968 pts/0    S+   18:15   0:00 grep --color=auto postfix

Se houver um processo em execução como utilizador postfix como descrito acima, a configuração foi concluída com sucesso e está em execução. Uma vez confirmado o arranque, é tempo de parar.

[root@hostname ~]# /usr/sbin/postfix stop

2-6. Configuração de arranque automático

Finalmente, embora não seja obrigatório, é difícil iniciar o Postfix cada vez que o servidor é reiniciado, por isso coloque uma definição para que o Postfix inicie automaticamente quando o servidor for iniciado. Também se regista para o comando systemctl. Note que este procedimento é para o CentOS7, por isso, se estiver a utilizar algo que não o CentOS7, terá de usar o comando Service para lidar com isto.

Verificar se '/usr/lib/systemd/systemd/system/postfix.service' existe. Se não houver nenhum, criar um 'postfix.service' utilizando o seguinte procedimento. Funciona como utilizador root.

[root@hostname ~]# touch /etc/systemd/system/postfix.service
[root@hostname ~]# vi /etc/systemd/system/postfix.service

É fornecida a seguinte informação.

[Unit]
#Descrição.
Description=Postfix
#Controlo pré e pós-execução.
#Before=xxx.service
After=syslog.target network.target

[Service]
#Designação do utilizador e do grupo
User=root
Group=root
#Uma vez activado, definir o estado para Activado.
Type=oneshot
RemainAfterExit=yes
#Iniciar, parar e recarregar.
ExecStart=/usr/sbin/postfix start
ExecStop=/usr/sbin/postfix stop
ExecReload=/usr/sbin/postfix reload

[Install]
#Configurações equivalentes ao nível de execução 3.
WantedBy=multi-user.target

A seguir, registar-se com o comando systemctl.

[root@hostname ~]# systemctl enable postfix
[root@hostname ~]# systemctl is-enabled postfix
enabled
[root@hostname ~]# systemctl list-unit-files --type=service | grep postfix
postfix.service                                enabled
[root@hostname ~]# systemctl daemon-reload

3. resumo

Descrevemos a configuração inicial necessária quando o Postfix é instalado.

Foi uma luta e tanto, por isso, se está a construir o Postfix, por favor consulte isto.

Obrigado por ter observado até ao fim.