Herramienta de correo electrónico de línea de comando de Ubuntu para servidor

Herramienta de correo electrónico de línea de comando de Ubuntu para servidor

Comencé a escribir algunos scripts que hacen copias de seguridad de mis archivos de registro. Cada vez que se encuentra un error en el archivo de registro, quiero enviarme un correo electrónico a mí mismo. Sin embargo, quiero asegurarme de que mi servidor no esté comprometido, ya que escuché que tener instalado smtp/mail abre nuevas opciones para los piratas informáticos.

¿Existe alguna herramienta que no reciba correos electrónicos, sino que solo sea capaz de enviarlos? Además, ¿qué consideraciones de seguridad debo tener al instalarlo?

Respuesta1

Sin embargo, quiero asegurarme de que mi servidor no esté comprometido, ya que escuché que tener instalado smtp/mail abre nuevas opciones para los piratas informáticos.

CualquierEl servicio puede "abrir nuevas opciones para los piratas informáticos" siestá mal escrito.Pero para el correo, tanto Postfix como Exim4 son muy seguros.

(En general, estará bien siempre y cuando no utilice un Sendmail de hace diez años. Las versiones actuales son seguras, pero recomendaría mantenerse alejado de Sendmail de todos modos: el archivo de configuración no es exactamente legible por humanos. .)

¿Existe alguna herramienta que no reciba correos electrónicos, sino que solo sea capaz de enviarlos?

Cualquier MTA (Postfix, Exim4, Sendmail) puede funcionar de esta manera; simplemente configúrelo para escuchar solo en direcciones de loopback ( ::1y 127.0.0.1). Incluso puede desactivar completamente el componente SMTP; la mayoría de los programas Unix no lo requieren y envían correo a través de /usr/sbin/sendmail1 , lo que hace que SMTP sea innecesario.

Sin embargo, en realidad no es necesario contra los "hackers". Lo peor que puede pasar con un MTA decente es dejarlo abierto para retransmisión, y las configuraciones predeterminadas ya se encargan de eso.

Otra opción es msmtp, que ni siquiera tiene soporte SMTP completo; todo lo que puede hacer es retransmitir correo a través de otro servidor de correo, como Gmail o su ISP. Pero si bien es útil para una computadora personal, en realidad no encaja en un entorno de servidor.


1 " /usr/sbin/sendmail" es un programa que viene contodoMTA, mientras que "Sendmail" es el nombre de unespecíficoMTA.

Respuesta2

Enviar correo desde un script de shell es bastante fácil siempre que tenga instalado un MTA estándar (Postfix, Exim4, Sendmail, etc.). Generalmente para enviar puedes usar el mailcomando con los argumentos apropiados, haciendo eco del contenido de tu correo electrónico al programa. Por ejemplo:

echo "Error occurred in script at `date`" | mail -s "Error running script" [email protected]

el -sargumento especifica el asunto y usted sigue con el destinatario del correo electrónico.

Otro ejemplo

grep -i error /path/to/yourfile.log | mail -s "Errors from script execution" [email protected]

Consulte man mailpor más opciones.

Otra opción, si está ejecutando su secuencia de comandos a través de cron, es hacer que cron le envíe automáticamente por correo electrónico el resultado de su secuencia de comandos. Agregue la MAILTOopción a su crontab de la siguiente manera:

[email protected]

y recibirá un correo electrónico con cualquier resultado de stdout cada vez que se ejecute su script.

En cuanto a seguridad, enviar y recibir correo electrónico son 2 cosas completamente diferentes. Puede enviar correo electrónico desde su servidor sin ejecutar un servidor de recepción de correo, simplemente no ejecute el demonio smtp ni bloquee el acceso al puerto entrante 25 (SMTP) a través de un firewall si no necesita recibir correo electrónico a través de este servidor.

información relacionada