Ferramenta de e-mail da linha de comando do Ubuntu para servidor

0

Comecei a escrever alguns scripts que fazem backup dos meus arquivos de log. Sempre que um erro é encontrado no arquivo de log, eu quero enviar um email para mim mesmo. No entanto, quero garantir que meu servidor não seja comprometido, pois ouvi dizer que ter o smtp / mail instalado abre novas opções para hackers.

Existe uma ferramenta que não recebe e-mails, mas só pode enviá-los? Além disso, que considerações de segurança eu precisaria fazer ao instalá-lo?

    
por Frank Vilea 01.08.2011 / 01:57

2 respostas

2

However, I want to make sure that my server is not compromised as I've heard that having smtp/mail installed opens up new options for hackers

Qualquer serviço pode "abrir novas opções para hackers" se estiver mal escrito. Mas para correio, tanto o Postfix quanto o Exim4 são muito seguros.

(Em geral, você ficará bem contanto que não use um Sendmail de dez anos de idade. As versões atuais são seguras, mas eu recomendaria ficar longe do Sendmail de qualquer maneira - o arquivo de configuração não é exatamente legível para humanos.)

Is there a tool that does not receive emails, but is only able to send them?

Qualquer MTA (Postfix, Exim4, Sendmail) pode funcionar desta forma - basta configurá-lo para escutar somente endereços de loopback ( ::1 e 127.0.0.1 ). Você pode até mesmo desabilitar o conteúdo do compilador SMTP - a maioria dos programas Unix não o requer e envia e-mails através de /usr/sbin/sendmail 1 , tornando o SMTP desnecessário.

Não é realmente necessário contra "hackers", no entanto. O pior que você pode obter com um MTA decente é deixá-lo aberto para retransmissão - e as configurações padrão já cuidam disso.

Outra opção é msmtp , que nem mesmo tem suporte total a SMTP - tudo o que pode fazer é retransmitir e-mails através de outro servidor de e-mail, como o do Gmail ou o do seu provedor. Mas, embora seja útil para um computador pessoal, ele não se encaixa em um ambiente de servidor.

1 " /usr/sbin/sendmail " é um programa que vem com todos MTAs, enquanto "Sendmail" é o nome de um específico MTA .

    
por 01.08.2011 / 02:39
2

O envio de mensagens a partir de um script de shell é bastante fácil, desde que você tenha um MTA padrão instalado (Postfix, Exim4, Sendmail, etc). Geralmente para enviar você pode usar o comando mail com argumentos apropriados, ecoando seu conteúdo de e-mail para o programa. Por exemplo:

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

o argumento -s especifica o assunto e você segue com o destinatário do email.

Outro exemplo

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

Verifique man mail para mais opções.

Outra opção, se você está rodando o seu script via cron, é fazer o cron automaticamente enviar por e-mail a saída do seu script para você. Adicione a opção MAILTO ao seu crontab da seguinte forma:

[email protected]

e você receberá um e-mail com qualquer saída do stdout toda vez que seu script for executado.

Quanto à segurança, enviar e receber emails são duas coisas completamente diferentes. Você pode enviar e-mails do seu servidor sem executar um servidor de e-mails de recepção, simplesmente não execute o daemon smtp ou bloqueie o acesso à porta de entrada 25 (SMTP) através de um firewall se não precisar receber e-mails através deste servidor.

    
por 01.08.2011 / 03:05

Tags