One place for hosting & domains

      Instalar

      Cómo instalar y configurar Postfix como servidor SMTP solo de envío en Ubuntu 20.04


      El autor seleccionó Free and Open Source Fund para recibir una donación como parte del programa Write for DOnations.

      Introducción

      Postfix es un agente de transferencia de correo (MTA), una aplicación que se utiliza para enviar y recibir correos electrónicos. Se puede configurar para que solo se pueda utilizar para enviar correos electrónicos mediante una aplicación local.  Esto es útil en situaciones en las que necesita enviar notificaciones por correo electrónico de sus aplicaciones de forma regular o, simplemente, si tiene mucho tráfico saliente que un proveedor de servicios de correo electrónico externo no permite. También es una alternativa más ligera a la ejecución de un servidor SMTP completo que mantiene la funcionalidad necesaria.

      En este tutorial, instalará y configurará Postfix como servidor SMTP de solo envío. También solicitará certificados TLS gratuitos de Let´s Encrypt para su dominio y cifrará los correos electrónicos salientes con ellos.

      Requisitos previos

      • Un servidor de Ubuntu 20.04 configurado conforme a la Configuración inicial de servidores para Ubuntu 20.04, con un usuario no root.
      • Un nombre de dominio registrado por completo. Para este tutorial, se utilizará your_domain en todo momento. Puede adquirir un nombre de dominio en Namecheap, obtener uno gratuito en Freenom o utilizar un registrador de dominios que elija.
      • Un registro DNS A con your_domain orientado a la dirección IP pública de su servidor. Puede utilizar esta introducción al DNS de DigitalOcean para obtener más información sobre cómo agregarlos.

      Nota: El nombre de host de su servidor y el nombre de su Droplet deben coincidir con your_domain, dado que DigitalOcean establece registros de PTR automáticamente para la dirección IP del Droplet de acuerdo con su nombre.

      Puede verificar el nombre de host del servidor al escribir hostname en el símbolo del sistema. El resultado debe coincidir con el nombre que le dio al Droplet al crearlo.

      Paso 1: Instalar Postfix

      En este paso, instalará Postfix. Lo más rápido es instalar el paquete mailutils, que agrupa Postfix con algunos programas complementarios que usará para probar el envío de correos electrónicos.

      Primero, actualice la base de datos del paquete:

      A continuación, instale Postfix al ejecutar el siguiente comando:

      • sudo apt install mailutils

      Cerca del final del proceso de instalación, se le presentará la ventana de configuración de Postfix:

      Seleccione Internet Site en el menú y, luego, presione TAB para seleccionar<Ok>y, luego, presione ENTER.

      La opción predeterminada es Internet Site. Es la opción recomendada para su caso de uso, por lo tanto, presione TAB y, luego, ENTER. Si solo ve el texto de la descripción, presione TAB para seleccionar OK y, luego, ENTER.

      Si no se muestra automáticamente, ejecute el siguiente comando para iniciarlo:

      • sudo dpkg-reconfigure postfix

      Luego, recibirá otro mensaje de configuración con respecto a System mail name (el nombre de correo del sistema):

      Ingrese su nombre de dominio y, luego, presione TAB para seleccionar<Ok>y, luego, ENTER.

      El nombre de correo del sistema debe ser el mismo que el que asignó a su servidor al crearlo. Cuando termine, presione TAB y, luego, ENTER.

      Ahora, tiene Postfix instalado y está listo para comenzar a configurarlo.

      Paso 2: Configurar Postfix

      En este paso, configurará Postfix para enviar y recibir correos electrónicos únicamente del servidor en el que se está ejecutando; es decir, desde localhost.

      Para que eso suceda, debe configurar Postfix para que escuche únicamente en la interfaz de loopback, que es la interfaz de red virtual que utiliza el servidor para comunicarse internamente. Para realizar los cambios necesarios, deberá editar el archivo de configuración principal de Postfix, denominado main.cf, que se encuentra en etc/postfix.

      Ábralo para modificarlo con su editor de texto favorito:

      • sudo nano /etc/postfix/main.cf

      Busque las siguientes líneas:

      /etc/postfix/main.cf

      . . .
      mailbox_size_limit = 0
      recipient_delimiter = +
      inet_interfaces = all
      . . .
      

      Establezca el valor de inet_interfaces en loopback-only:

      /etc/postfix/main.cf

      . . .
      mailbox_size_limit = 0
      recipient_delimiter = +
      inet_interfaces = loopback-only
      . . .
      

      Otra directiva que deberá modificar es mydestination, que especifica la lista de dominios que se entregan a través del transporte de entrega de correo local_transport. Por defecto, los valores son similares a los siguientes:

      /etc/postfix/main.cf

      . . .
      mydestination = $myhostname, your_domain, localhost.com, , localhost
      . . .
      

      Cambie la línea para que tenga el siguiente aspecto:

      /etc/postfix/main.cf

      . . .
      mydestination = localhost.$mydomain, localhost, $myhostname
      . . .
      

      Si su dominio, en realidad, es un subdominio y desea que los mensajes de correo electrónico se vean como si se enviaran del dominio principal, puede añadir la siguiente línea al final de main.cf:

      /etc/postfix/main.cf

      ...
      masquerade_domains = your_main_domain
      

      La configuración opcional de masquerade_domains especifica para qué dominios se eliminará la parte de subdominio en la dirección de correo electrónico.

      Cuando termine, guarde y cierre el archivo.

      Nota: Si aloja varios dominios en un único servidor, los demás también se pueden pasar a Postfix al utilizar la directiva mydestination.

      A continuación, reinicie Postfix al ejecutar el siguiente comando:

      • sudo systemctl restart postfix

      Configuró Postfix para que solo envíe correos electrónicos desde su servidor. Ahora, lo probará al enviar un mensaje de ejemplo a una dirección de correo electrónico.

      Paso 3: Probar el servidor SMTP

      En este paso, probará si Postfix puede enviar correos electrónicos a una cuenta de correo electrónico externa usando el comando mail, que es parte del paquete mailutils que instaló en el primer paso.

      Para enviar un correo electrónico de prueba, ejecute el siguiente comando:

      • echo "This is the body of the email" | mail -s "This is the subject line" your_email_address

      Puede cambiar el cuerpo y el asunto del correo electrónico a su gusto. Recuerde sustituir your_email_address por una dirección de correo electrónico válida a la que pueda acceder.

      Ahora, revise el correo en la dirección de correo electrónico a la que envió este mensaje. Debería ver el mensaje en su bandeja de entrada. Si no lo ve, revise su carpeta de correo no deseado. En este punto, los correos electrónicos que envía no están cifrados, lo que hace que los proveedores de servicios piensen que es probable que sean correos no deseados.  Configurará el cifrado más adelante, en el paso 5.

      Si recibe un error del comando mail, o si no recibió un mensaje después de un período prolongado, compruebe que la configuración de Postfix que modificó sea válida y que el nombre de su servidor y el nombre de host estén establecidos con el nombre de su dominio.

      Observe que, con esta configuración, la dirección del campo From de los correos electrónicos de prueba que envíe tendrá el formato your_user_name@your_domain​​, en el que your_user_name es el nombre del usuario del servidor con el que ejecutó el comando.

      En este punto, envió un correo electrónico desde su servidor y verificó que se haya recibido correctamente. En el siguiente paso, configurará el reenvío de correos electrónicos para root.

      Paso 4: Reenviar correos del sistema

      En este paso, configurará el reenvío de correos electrónicos para el usuario root, a fin de que los mensajes generados por el sistema que se le envíen en su servidor se reenvíen a una dirección de correo electrónico externa.

      El archivo /etc/aliases contiene una lista de nombres alternativos de destinatarios de correo electrónico. Ábralo​​​ para editarlo:

      En su estado predeterminado, tiene el siguiente aspecto:

      /etc/aliases

      # See man 5 aliases for format
      postmaster:    root
      

      La única directiva presente especifica que los correos electrónicos generados por el sistema se envíen a root.

      Añada la siguiente línea al final del archivo:

      /etc/aliases

      ...
      root:          your_email_address
      

      Con esta línea, especifica que los correos electrónicos enviados al usuario root se reenvíen a una dirección de correo electrónico específica. Recuerde sustituir your_email_address por su dirección de correo electrónico personal. Cuando termine, guarde y cierre el archivo.

      Para que el cambio surta efecto, ejecute el siguiente comando:

      Al ejecutar newaliases, se creará una base de datos de alias que utiliza el comando mail, que se toman del archivo de configuración que acaba de editar.

      Compruebe que se envíen correos electrónicos al usuario root al ejecutar lo siguiente:

      • echo "This is the body of the email" | mail -s "This is the subject line" root

      Debería recibir el correo en su dirección de correo electrónico. Si no lo ve, revise su carpeta de correo no deseado.

      En este paso, configuró el reenvío de mensajes generados por el sistema a su dirección de correo electrónico. Ahora, habilitará el cifrado de mensajes para que todos los correos electrónicos que envíe su servidor estén protegidos contra alteraciones en tránsito y se consideren más legítimos.

      Paso 5: Habilitar el cifrado SMTP

      Ahora, habilitará el cifrado SMTP al solicitar un certificado TLS gratuito de Let´s Encrypt para su dominio (con Certbot) y configurará Postfix para que lo utilice al enviar mensajes.

      Ubuntu incluye Certbot en sus repositorios de paquetes predeterminados, para que pueda instalarlo ejecutando el siguiente comando:

      Cuando se le pida confirmación, escriba Y y presione ENTER.

      En los requisitos previos, instaló el firewall sencillo ufw como parte de la configuración inicial del servidor. Deberá configurarlo para que habilite el puerto HTTP 80 para que se pueda completar la verificación de dominios. Ejecute el siguiente comando para habilitarlo:

      El resultado tendrá el siguiente aspecto:

      Output

      Rule added Rule added (v6)

      Ahora que el puerto está abierto, ejecute Certbot para obtener un certificado:

      • sudo certbot certonly --standalone --rsa-key-size 4096 --agree-tos --preferred-challenges http -d your_domain

      Este comando le ordena a Certbot que emita certificados con un tamaño de clave RSA de 4096 bits, que ejecute un servidor web autónomo temporal (--standalone) para la verificación y que revise a través del puerto 80 (--preferred-challenges http). Recuerde sustituir your_domain por su dominio antes de ejecutar el comando e ingrese su dirección de correo electrónico cuando se le solicite hacerlo.

      El resultado tendrá un aspecto similar a este:

      Output

      Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator standalone, Installer None Obtaining a new certificate Performing the following challenges: http-01 challenge for `your_domain` Waiting for verification... Cleaning up challenges IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/your_domain/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/your_domain/privkey.pem Your cert will expire on 2020-07-11. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le

      Como se indica en las notas, su certificado y su archivo de clave privada se guardaron en /etc/letsencrypt/live/your_domain.

      Ahora que tiene su certificado, abra main.cf para editarlo:

      • sudo nano /etc/postfix/main.cf

      Busque la siguiente sección:

      /etc/postfix/main.cf

      # TLS parameters
      smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
      smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
      smtpd_tls_security_level=may
      
      smtp_tls_CApath=/etc/ssl/certs
      smtp_tls_security_level=may
      smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
      

      Modifíquela para que tenga este aspecto, sustituyendo your_domain por su dominio cuando sea necesario. Esto actualizará sus ajustes TLS para Postfix:

      /etc/postfix/main.cf

      # TLS parameters
      smtpd_tls_cert_file=/etc/letsencrypt/live/your_domain/fullchain.pem
      smtpd_tls_key_file=/etc/letsencrypt/live/your_domain/privkey.pem
      smtpd_tls_security_level=may
      
      smtp_tls_CApath=/etc/ssl/certs
      smtp_tls_security_level=may
      smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
      

      Cuando termine, guarde y cierre el archivo.

      Aplique los cambios al reiniciar Postfix:

      • sudo systemctl restart postfix

      Ahora, vuelva a probar enviar un correo electrónico:

      • echo "This is the body of an encrypted email" | mail -s "This is the subject line" your_email_address

      A continuación, revise el correo de la dirección de correo electrónico que proporcionó. Es posible que vea el mensaje en su bandeja de entrada de inmediato, porque es mucho más probable que los proveedores de correo electrónico clasifiquen los mensajes no cifrados como correo no deseado.

      Puede consultar la información técnica sobre el mensaje de correo electrónico en su cliente para ver que el mensaje, efectivamente, está cifrado.

      Conclusión

      Ahora, tiene un servidor de correo electrónico de solo envío de Postfix. Cifrar todos los mensajes salientes es un buen primer paso para que los proveedores de correo electrónico no clasifiquen sus mensajes directamente como correo no deseado. Si está haciendo esto en un escenario de desarrollo, esta medida debería ser suficiente.

      Sin embargo, si desea enviar correos electrónicos a posibles usuarios del sitio (por ejemplo, correos de confirmación para la inscripción a un tablero de mensajes), considere establecer registros SPF para que los correos electrónicos de su servidor tengan más probabilidades de considerarse legítimos.



      Source link

      Como instalar e configurar o Postfix como um servidor SMTP apenas para envio no Ubuntu 20.04


      O autor selecionou o Free and Open Source Fund para receber uma doação como parte do programa Write for DOnations.

      Introdução

      O Postfix é um agente de transferência de e-mail (MTA), uma aplicação utilizada para enviar e receber e-mails. Ele pode ser configurado para enviar e-mails apenas de uma aplicação local. Isso é útil em situações em que você precisa enviar regularmente notificações por e-mail de seus apps ou, simplesmente, tem um grande tráfego de saída que um provedor de serviço de e-mail de terceiros não permitiria. Ele também é uma alternativa mais leve do que executar um servidor SMTP completo, enquanto mantém a funcionalidade necessária.

      Neste tutorial, você instalará e configurará o Postfix como um servidor SMTP apenas para envio. Você também solicitará certificados TLS gratuitos do Let’s Encrypt para seu domínio e criptografará os e-mails de saída usando-os.

      Pré-requisitos

      • Um servidor Ubuntu 20.04 configurado de acordo com o tutorial Initial Server Setup with Ubuntu 20.04, incluindo a criação de um usuário sudo não root.
      • Um nome de domínio totalmente registrado. Este tutorial utilizará o your_domain durante todo o processo. Você pode comprar um nome de domínio em Namecheap, obter um gratuitamente em Freenom ou usar o registrador de domínios de sua escolha.
      • Um registro de DNS do tipo A com your_domain apontando para o endereço IP público do seu servidor. Você pode seguir esta introdução para DNS DigitalOcean para mais detalhes sobre como adicioná-los.

      Nota: o hostname do seu servidor e o nome do seu Droplet devem corresponder ao your_domain, pois a DigitalOcean define automaticamente os registros de PTR para o endereço IP do Droplet de acordo com o nome dele.

      Você pode verificar o hostname do servidor digitando hostname no prompt de comando. A saída deve corresponder ao nome que você deu ao Droplet quando ele foi criado.

      Passo 1 — Instalando o Postfix

      Neste passo, você instalará o Postfix. A maneira mais rápida é instalar o pacote mailutils, que inclui os pacotes do Postfix com alguns programas suplementares que você utilizará para testar o envio de e-mail.

      Primeiro, atualize o banco de dados de pacotes:

      Em seguida, instale o Postfix executando o seguinte comando:

      • sudo apt install mailutils

      Perto do final do processo de instalação, será mostrada a janela de configuração do Postfix:

      Selecione Internet Site no menu e pressione TAB para selecionar<Ok>, depois ENTER

      A opção padrão é Internet Site Essa é a opção recomendada para seu caso de uso. Então, pressione TAB e, depois, ENTER. Se você só vir o texto de descrição, pressione TAB para selecionar OK, depois ENTER.

      Se ele não aparecer automaticamente, execute o seguinte comando para iniciá-lo:

      • sudo dpkg-reconfigure postfix

      Após isso, você receberá outro prompt de configuração sobre o nome do sistema de e-mail:

      Digite seu nome de domínio e, depois, pressione TAB para selecionar<Ok>, ENTER

      O nome do sistema de e-mail deve ser o mesmo que você atribuiu ao seu servidor quando você o estava criando. Quando você terminar, pressione TAB, seguido de ENTER.

      Agora você instalou o Postfix e poderá iniciar a configuração dele.

      Passo 2 — Configurando o Postfix

      Neste passo, você configurará o Postfix para enviar e receber e-mails apenas do servidor no qual ele está em execução — ou seja do localhost.

      Para que isso aconteça, você precisa configurar o Postfix para ouvir apenas na interface de loopback, a interface de rede virtual que o servidor utiliza para se comunicar internamente. Para fazer as alterações, você precisará editar o arquivo de configuração principal do Postfix chamado main.cf, armazenado em etc/postfix.

      Abra-o para edição utilizando seu editor de texto favorito:

      • sudo nano /etc/postfix/main.cf

      Procure as seguintes linhas:

      /etc/postfix/main.cf

      . . .
      mailbox_size_limit = 0
      recipient_delimiter = +
      inet_interfaces = all
      . . .
      

      Defina o valor da configuração inet_interfaces para loopback-only:

      /etc/postfix/main.cf

      . . .
      mailbox_size_limit = 0
      recipient_delimiter = +
      inet_interfaces = loopback-only
      . . .
      

      Outra diretiva que você precisará modificar é mydestination, que especifica a lista de domínios que são entregues através do transporte de entrega de correio local_transport. Por padrão, os valores são semelhantes a estes:

      /etc/postfix/main.cf

      . . .
      mydestination = $myhostname, your_domain, localhost.com, , localhost
      . . .
      

      Altere a linha para que ela fique como esta:

      /etc/postfix/main.cf

      . . .
      mydestination = localhost.$mydomain, localhost, $myhostname
      . . .
      

      Se o domínio é na verdade um subdomínio, e você gostaria que as mensagens de e-mail parecessem ter sido enviadas do domínio principal, adicione a seguinte linha ao final de main.cf:

      /etc/postfix/main.cf

      ...
      masquerade_domains = your_main_domain
      

      A configuração opcional masquerade_domains especifica os domínios para os quais o subdomínio será removido do endereço de e-mail.

      Quando terminar, salve e feche o arquivo.

      Nota: se você está hospedando vários domínios em um único servidor, os outros domínios podem também ser passados para o Postfix utilizando a diretiva mydestination.

      Em seguida, reinicie o Postfix executando o seguinte comando:

      • sudo systemctl restart postfix

      Você configurou o Postfix para enviar e-mails apenas do seu servidor. Agora, você irá testá-lo enviando uma mensagem de exemplo para um endereço de e-mail.

      Passo 3 — Testando o Servidor SMTP

      Neste passo, você testará se o Postfix pode enviar e-mails para uma conta de e-mail externa usando o comando mail, que faz parte do pacote mailutils que você instalou no primeiro passo.

      Para enviar um e-mail de teste, execute o seguinte comando:

      • echo "This is the body of the email" | mail -s "This is the subject line" your_email_address

      Você pode alterar o corpo e o assunto do e-mail ao seu gosto. Lembre-se de substituir your_email_address por um endereço de e-mail válido que você possa acessar.

      Agora, verifique o endereço de e-mail para o qual você enviou esta mensagem. Você deve ver a mensagem em sua caixa de entrada. Se ele não estiver lá, verifique sua pasta de spam. Neste ponto, todos os e-mails que você envia não são criptografados, o que faz com que os prestadores de serviços pensem que ele é provavelmente spam. Você configurará a criptografia mais tarde, no passo 5.

      Se você receber um erro do comando mail, ou se não tiver recebido uma mensagem após um longo período de tempo, verifique se a configuração do Postfix que você editou é válida e que o nome e o hostname do seu servidor estão configurados para o seu domínio.

      Observe que com esta configuração, o endereço no campo From para os e-mails de teste que você envia estará na forma de your_user_name@your_domain, onde your_user_name é o nome de usuário do servidor com o qual você executou o comando.

      Agora, você enviou um e-mail do seu servidor e verificou se ele foi recebido com sucesso. No próximo passo, você configurará o encaminhamento de e-mail para o root.

      Passo 4 — Sistema de encaminhamento de e-mail

      Neste passo, você configurará o encaminhamento e-mail para o usuário root, para que as mensagens geradas pelo sistema enviadas a ele em seu servidor sejam encaminhadas para um endereço de e-mail externo.

      O arquivo /etc/aliases contém uma lista de nomes alternativos para os destinatários de e-mail. Abra-o para edição:

      No estado padrão, ele se parece com isto:

      /etc/aliases

      # See man 5 aliases for format
      postmaster:    root
      

      A única diretiva presente especifica que os e-mails gerados pelo sistema são enviados para o root.

      Adicione a linha seguinte ao final do arquivo:

      /etc/aliases

      ...
      root:          your_email_address
      

      Com esta linha, você especifica que e-mails enviados para o root acabam sendo encaminhados para um endereço de e-mail. Lembre-se de substituir your_email_address pelo seu endereço de e-mail pessoal. Quando terminar, salve e feche o arquivo.

      Para que a mudança entre em vigor, execute o seguinte comando:

      A execução do newaliases construirá um banco de dados de aliases que o comando mail utiliza, que são pegos do arquivo de configuração que você acabou de editar.

      Teste se o envio de e-mails para o root funciona executando:

      • echo "This is the body of the email" | mail -s "This is the subject line" root

      Você deve receber o e-mail em seu endereço e-mail. Se ele não estiver lá, verifique sua pasta de spam.

      Neste passo, você configurou o encaminhamento de mensagens geradas pelo sistema para seu endereço de e-mail. Agora, você habilitará a criptografia de mensagens para que todos os e-mails que seu servidor enviar sejam imunizados contra adulteração em trânsito e sejam vistos como mais legítimos.

      Passo 5 — Habilitando a criptografia SMTP

      Agora você habilitará a criptografia SMTP solicitando um certificado TLS gratuito da Let’s Encrypt para o seu domínio (usando Certbot) e configurando o Postfix para usá-lo ao enviar mensagens.

      O Ubuntu inclui o Certbot em seus repositórios de pacotes padrão, para que você possa instalá-lo executando o seguinte comando:

      Quando solicitada a confirmação, digite Y e pressione ENTER.

      Como parte da configuração inicial de servidor nos pré-requisitos, você instalou o ufw, o firewall descomplicado. Você precisará configurá-lo para permitir a porta HTTP 80, para que a verificação de domínios possa ser concluída. Execute o comando a seguir para habilitá-lo:

      O resultado ficará parecido com este:

      Output

      Rule added Rule added (v6)

      Agora que a porta está aberta, execute o Certbot para obter um certificado:

      • sudo certbot certonly --standalone --rsa-key-size 4096 --agree-tos --preferred-challenges http -d your_domain

      Este comando ordena que o Certbot emita certificados com um tamanho de chaves RSA de 4096 bits para executar um servidor web temporário (--standalone) para verificação, e para verificar através da porta 80 (--preferred-challenges http). Lembre-se de substituir your_domain pelo seu domínio antes de executar o comando e digite seu endereço de e-mail quando solicitado.

      O resultado será semelhante a este:

      Output

      Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator standalone, Installer None Obtaining a new certificate Performing the following challenges: http-01 challenge for `your_domain` Waiting for verification... Cleaning up challenges IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/your_domain/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/your_domain/privkey.pem Your cert will expire on 2020-07-11. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le

      Como escrito nas notas, seu certificado e o arquivo de chave privada foram salvos em /etc/letsencrypt/live/your_domain.

      Agora que você tem seu certificado, abra o main.cf para edição:

      • sudo nano /etc/postfix/main.cf

      Procure a seguinte sessão:

      /etc/postfix/main.cf

      # TLS parameters
      smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
      smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
      smtpd_tls_security_level=may
      
      smtp_tls_CApath=/etc/ssl/certs
      smtp_tls_security_level=may
      smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
      

      Modifique isso para ficar assim, substituindo your_domain pelo seu domínio, onde necessário. Isso irá atualizar suas configurações TLS para o Postfix:

      /etc/postfix/main.cf

      # TLS parameters
      smtpd_tls_cert_file=/etc/letsencrypt/live/your_domain/fullchain.pem
      smtpd_tls_key_file=/etc/letsencrypt/live/your_domain/privkey.pem
      smtpd_tls_security_level=may
      
      smtp_tls_CApath=/etc/ssl/certs
      smtp_tls_security_level=may
      smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
      

      Quando terminar, salve e feche o arquivo.

      Aplique as alterações reiniciando o Postfix:

      • sudo systemctl restart postfix

      Agora, tente enviar um e-mail novamente:

      • echo "This is the body of an encrypted email" | mail -s "This is the subject line" your_email_address

      Em seguida, verifique o endereço de e-mail que você forneceu. É possível que você veja a mensagem em sua caixa de entrada imediatamente, pois os provedores de e-mail são muito mais propensos a marcar mensagens não criptografadas como spam.

      Você pode verificar as informações técnicas sobre a mensagem de e-mail em seu cliente para ver que a mensagem está de fato criptografada.

      Conclusão

      Agora, você tem um servidor de e-mail apenas para envio, equipado com o Postfix. Criptografar todas as mensagens de saída é um bom primeiro passo eficaz para os provedores de e-mail não marcarem suas mensagens como spam imediatamente. Se você estiver fazendo isso em um cenário de desenvolvimento, então, esta medida deve ser o suficiente.

      No entanto, se o seu caso de uso for enviar e-mails para usuários do site em potencial (como e-mails de confirmação para uma inscrição no quadro de mensagens), verifique a configuração de registros SPF, para que os e-mails do seu servidor tenham ainda mais probabilidade de serem considerados legítimos.



      Source link

      Cómo instalar MongoDB en Ubuntu 20.04


      Melissa Anderson escribió una versión anterior de este tutorial.

      Introducción

      MongoDB, también conocido como Mongo, es una base de datos de documentos de código abierto que se utiliza en muchas aplicaciones web modernas. Se clasifica como base de datos NoSQL porque no sigue la estructura de las bases de datos relacionales tradicionales basadas en tablas.

      En vez de eso, utiliza documentos similares a JSON con esquemas dinámicos, lo que significa que, a diferencia de las bases de datos relacionales, MongoDB no requiere un esquema predefinido antes de añadir datos a una base de datos. Puede alterar el esquema en cualquier momento y tan a menudo como sea necesario sin tener que configurar una nueva base de datos con un esquema actualizado.

      En este tutorial, instalará MongoDB en un servidor Ubuntu 20.04 lo probará y aprenderá cómo administrarlo como un servicio systemd.

      Requisitos previos

      Para seguir este tutorial, necesitará lo siguiente:

      Paso 1: Instalar MongoDB

      Los repositorios oficiales del paquete de Ubuntu incluyen una versión estable de MongoDB. Sin embargo, en el momento de escribir este artículo, la versión de MongoDB disponible desde los repositorios predeterminados de Ubuntu es 3.6, mientras que la última versión estable es 4.4.

      Para obtener la versión más reciente de este software, debe incluir el repositorio de paquetes dedicado de MongoDB a sus fuentes APT. A continuación, podrá instalar mongodb-org, un metapaquete que siempre apunta a la última versión de MongoDB.

      Para comenzar, importe la clave pública GPG para la última versión estable de MongoDB. Puede encontrar el archivo de claves apropiado navegando al servidor de claves de MongoDB y buscando el archivo que incluye el número de la versión estable más reciente y termina en .asc. Por ejemplo, si desea instalar la versión 4.4 de MongoDB, buscará el archivo llamado server-4.4.asc.

      Haga clic con el botón derecho sobre el archivo, y seleccione Copiar dirección del enlace. Luego pegue ese enlace en el siguiente comando curl, sustituyendo la URL resaltada:

      • curl -fsSL https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -

      cURL es una herramienta de línea de comandos disponible en muchos sistemas operativos utilizada para transferir datos. Lee cualquier dato almacenado en la URL transmitida e imprime el contenido al resultado del sistema. En el siguiente ejemplo, cURL imprime el contenido del archivo de claves GPG y, luego, lo canaliza al siguiente comando sudo apt-key add -, añadiendo así la clave GPG a su lista de claves de confianza.

      Además, tenga en cuenta que este comando curl utiliza las opciones -fsSL que, juntas, esencialmente indica a cURL que falle silenciosamente. Esto significa que si por cualquier motivo cURL no puede contactar con el servidor GPG, o el servidor GPG no está disponible, no añadirá accidentalmente el código del error resultante a su lista de claves de confianza.

      Este comando devolverá OK si la clave se añadió correctamente:

      Output

      OK

      Si desea comprobar que la clave se añadió correctamente, puede hacerlo con el siguiente comando:

      Esto devolverá la clave de MongoDB en algún lugar de la salida:

      Output

      /etc/apt/trusted.gpg -------------------- pub rsa4096 2019-05-28 [SC] [expires: 2024-05-26] 2069 1EEC 3521 6C63 CAF6 6CE1 6564 08E3 90CF B1F5 uid [ unknown] MongoDB 4.4 Release Signing Key <packaging@mongodb.com> . . .

      En este momento, su instalación APT aún no sabe dónde encontrar el paquete mongodb-org que necesita para instalar la última versión de MongoDB.

      Hay dos lugares en su servidor donde APT busca fuentes en línea de paquetes para descargar e instalar: el archivo sources.list y el directorio sources.list.d. sources.list es un archivo que lista fuentes activas de datos APT, con una fuente por línea y las fuentes más preferidas listadas primero. El directorio sources.list.d le permite añadir dichas entradas sources.list como archivos independientes.

      Ejecute el siguiente comando, que crea un archivo en el directorio sources.list.d llamado mongodb-org-4.4.list. El único contenido en este archivo es una única línea que lee deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse:

      • echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list

      Esta única línea indica a APT todo lo que necesita saber sobre cuál es la fuente y dónde encontrarla:

      • deb: Esto significa que la entrada de la fuente hace referencia a una arquitectura Debian regular. En otros casos, esta parte de la línea puede leer deb-src, lo que significa que la entrada de origen representa un código fuente de la distribución de Debian.
      • [ arch=amd64,arm64 ]: esto especifica a qué arquitecturas deberían descargarse los datos APT. En este caso, especifica las arquitecturas amd64 y arm64.
      • https://repo.mongodb.org/apt/ubuntu: Esta es una URI que representa la ubicación en la que pueden encontrarse los datos APT. En este caso, la URI apunta a la dirección HTTPS donde se ubica el repositorio oficial de MongoDB.
      • focal/mongodb-org/4.4: Los repositorios de Ubuntu pueden contener varias versiones diferentes. Esto especifica que solo quiere la versión 4.4 del paquete mongodb-org disponible para la versión focal de Ubuntu (“Focal Fossa”, que es el nombre en código de Ubuntu 20.04).
      • multiverse: Esta parte apunta APT a uno de los cuatro repositorios principales de Ubuntu. En este caso, apunta al repositorio multiverse.

      Tras ejecutar este comando, actualice el índice del paquete local de su servidor para que APT sepa dónde encontrar el paquete mongodb-org:

      Tras eso, puede instalar MongoDB:

      • sudo apt install mongodb-org

      Cuando se le solicite, pulse Y y luego ENTER para confirmar que desea instalar el paquete.

      Cuando el comando termine, MongoDB se instalará en su sistema. Sin embargo, aún no está listo para usarlo. A continuación, iniciará MongoDB y confirmará que funciona correctamente.

      Paso 2: Iniciar el servicio MongoDB y probar la base de datos

      El proceso de instalación descrito en el paso anterior configura automáticamente MongoDB para que se ejecute como un daemon controlado por systemd, lo que significa que puede administrar MongoDB usando los diferentes comandos de systemctl. Sin embargo, este procedimiento de instalación no inicia automáticamente el servicio.

      Ejecute el siguiente comando systemctl para iniciar el servicio MongoDB:

      • sudo systemctl start mongod.service

      A continuación, compruebe el estado del servicio. Tenga en cuenta que este comando no incluye .service en la definición del archivo del servicio. systemctl añadirá este sufijo a cualquier argumento que pase automáticamente si no está ya presente, por lo que no es necesario incluirlo:

      • sudo systemctl status mongod

      Este comando devolverá un resultado como el siguiente, lo que indica que el servicio está en funcionamiento:

      Output

      ● mongod.service - MongoDB Database Server Loaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset: enabled) Active: active (running) since Tue 2020-06-09 12:57:06 UTC; 2s ago Docs: https://docs.mongodb.org/manual Main PID: 37128 (mongod) Memory: 64.8M CGroup: /system.slice/mongod.service └─37128 /usr/bin/mongod --config /etc/mongod.conf

      Tras confirmar que el servicio se está ejecutando como se espera, habilite el servicio MongoDB para que se inicie en el arranque:

      • sudo systemctl enable mongod

      Puede verificar que la base de datos está operativa conectando con el servidor de la base de datos y ejecutando un comando de diagnóstico. El siguiente comando conectará con la base de datos y dará como resultado su versión actual, la dirección del servidor y el puerto. También devolverá el resultado del comando interno connectionStatus de MongoDB:

      • mongo --eval 'db.runCommand({ connectionStatus: 1 })'

      connectionStatus verificará y devolverá el estado de la conexión con la base de datos. Un valor de 1 para el campo ok en la respuesta indica que el servidor funciona como se espera:

      Output

      MongoDB shell version v4.4.0 connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb Implicit session: session { "id" : UUID("1dc7d67a-0af5-4394-b9c4-8a6db3ff7e64") } MongoDB server version: 4.4.0 { "authInfo" : { "authenticatedUsers" : [ ], "authenticatedUserRoles" : [ ] }, "ok" : 1 }

      Además, tenga en cuenta que la base de datos se ejecuta en el puerto 27017 en 127.0.0.1, la dirección local loopback que representa a localhost. Este es el número de puerto predeterminado de MongoDB.

      A continuación, veremos cómo administrar la instancia del servidor MongoDB con systemd.

      Paso 3: Gestionar el servicio de MongoDB

      Como se ha mencionado previamente, el proceso de instalación descrito en el Paso 1 configura MongoDB para que se ejecute como un servicio systemd. Esto significa que puede administrarlo usando los comandos systemctl estándar como haría con otros servicios del sistema Ubuntu.

      Como se ha mencionado previamente, el comando systemctl status comprueba el estado del servicio MongoDB:

      • sudo systemctl status mongod

      Puede detener el servicio en cualquier momento escribiendo:

      • sudo systemctl stop mongod

      Para iniciar el servicio cuando esté detenido, ejecute:

      • sudo systemctl start mongod

      También puede reiniciar el servidor cuando esté ejecutándose:

      • sudo systemctl restart mongod

      En el Paso 2, ha habilitado MongoDB para que se inicie automáticamente con el servidor. Si desea desactivar el inicio automático en algún momento, escriba lo siguiente:

      • sudo systemctl disable mongod

      A continuación, para volver a habilitarlo en el inicio, ejecute de nuevo el comando enable:

      • sudo systemctl enable mongod

      Para obtener más información sobre cómo administrar los servicios systemd, consulte Puntos esenciales de Systemd: Trabajar con servicios, unidades y el diario.

      Conclusión

      En este tutorial, añadió el repositorio oficial de MongoDB a su instancia APT, e instaló la versión más reciente de MongoDB. A continuación probó la funcionalidad de Mongo y practicó algunos comandos systemctl.

      Como paso siguiente inmediato, recomendamos encarecidamente que endurezca la seguridad de su instalación de MongoDB siguiendo nuestra guía sobre Cómo proteger MongoDB en Ubuntu 20.04. Una vez protegido, podría configurar MongoDB para que acepte conexiones remotas.

      Puede encontrar tutoriales más detallados sobre cómo configurar y utilizar MongoDB en estos artículos de la comunidad de DigitalOcean. También le animamos a consultar la documentación oficial de MongoDB, ya que es un recurso excelente sobre las posibilidades que MongoDB ofrece.



      Source link