Enviar resultado por email [RESOLVIDO]

1. Enviar resultado por email [RESOLVIDO]

Luis Gustavo Valentim
lgv

(usa FreeBSD)

Enviado em 12/01/2012 - 14:31h

Boa tarde,

Estou iniciando em Shell Script e de cara já peguei um bom desafio e gostaria se possível da colaboração dos nobres colegas.

Ao utilizar o comando portaudit -Fda ele me retorna vulnerabilidades no sistema. Gostaria se possível, elaborar um script para que pegue as informações desse resultado e seja enviado para meu email.

Grato desde já qualquer colaboração.

(root@zeus)[~]# portaudit -Fda
auditfile.tbz 100% of 71 kB 38 kBps
New database installed.
Database created: Thu Jan 12 14:20:00 BRST 2012
Affected package: php5-5.3.8
Type of problem: php -- multiple vulnerabilities.
Reference: http://portaudit.FreeBSD.org/d3921810-3c80-11e1-97e8-00215c6a37bb.html

1 problem(s) in your installed packages found.

You are advised to update or deinstall the affected package(s) immediately.



  


2. Re: Enviar resultado por email [RESOLVIDO]

Alexandre Gonçalves Monteiro da Silva
alexandregms

(usa Ubuntu)

Enviado em 12/01/2012 - 15:00h

Aqui no VOL já temos vários artigos que detalham o envio de e-mail por terminal, eis alguns exemplos:

http://www.vivaolinux.com.br/artigo/Enviando-emails-pelo-terminal?pagina=1
http://www.vivaolinux.com.br/dica/Enviando-email-via-terminal-de-comandos

Boa sorte!


3. Shell

Luis Gustavo Valentim
lgv

(usa FreeBSD)

Enviado em 12/01/2012 - 15:41h

O envio de emails já conheço.

Oq estou realmente desenvolvendo é um shell script que pegue o resultado do comando portaudit -Fda ( como citei no exemplo ) e me envie por email.



Mesmo assim fico grato com a colaboração do nobre colega.




4. Re: Enviar resultado por email [RESOLVIDO]

Alexandre Gonçalves Monteiro da Silva
alexandregms

(usa Ubuntu)

Enviado em 12/01/2012 - 16:16h

Poste o comando que vc está usando para o envio de e-mail.


5. Re: Enviar resultado por email [RESOLVIDO]

Luis Gustavo Valentim
lgv

(usa FreeBSD)

Enviado em 12/01/2012 - 16:23h

alexandregms escreveu:

Poste o comando que vc está usando para o envio de e-mail.


mailx -s assunto email@dominio.com.br > arquivo



6. Re: Enviar resultado por email [RESOLVIDO]

Alexandre Gonçalves Monteiro da Silva
alexandregms

(usa Ubuntu)

Enviado em 12/01/2012 - 16:42h

Não testei aqui, pois não tenho e-mail configurado nesta máquina, mas veja se assim da certo:

mailx -s assunto email@dominio.com.br > $(portaudit -Fda)

ou

echo $(portaudit -Fda) | mailx -s assunto email@dominio.com.br


Se não der certo pode postar de novo que vamos chegar no resultado..


7. Só para melhorar...

Luis Gustavo Valentim
lgv

(usa FreeBSD)

Enviado em 12/01/2012 - 17:10h

Como dizem as "boas línguas"..Não há nada "ruim" que não possa piorar.

Mas todo aprendizado é válido...

Acabei de ser informado que a rotina do portaudit -Fda irá rodar de hora em hora, então seria "desnecessário" ter a mesma informação ou informação nula.

Para resumir.


Agora vem as variáveis.

o shellscript terá que pegar o resultado do portaudit -Fda e se o resultado for igual a 0 (zero) vulnerabilidades não enviará o email.

Quebrando a cabeça... :(




8. Re: Enviar resultado por email [RESOLVIDO]

Alexandre Gonçalves Monteiro da Silva
alexandregms

(usa Ubuntu)

Enviado em 12/01/2012 - 17:18h

Vc teria que verificar se há vulnerabilidade na saída do comando, certo?

Então poste 2 exemplos: um `portaudit -Fda` com vulnerabilidade zero e outro diferente de zero


9. Re: Enviar resultado por email [RESOLVIDO]

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 13/01/2012 - 08:37h


#!/bin/bash

TEM_ERRO='problem(s) in'

portaudit -Fda > /tmp/portaudit.tmp

if egrep -q "$TEM_ERRO" /tmp/portaudit.tmp
then
# tem erros, então envia o e-mail
cat /tmp/portaudit.tmp | mutt -s 'Relatorio do portaudit' admin@teste.teste
fi


Verifique um texto que só aparece quando ha erros e coloque na variável TEM_ERRO no inicio do script, faça uns teste e veja se funcione, caso use o comando mail ao invés do mutt, basta substituir.

Abraços


10. Resposta

Luis Gustavo Valentim
lgv

(usa FreeBSD)

Enviado em 13/01/2012 - 10:32h

rai3mb escreveu:


#!/bin/bash

TEM_ERRO='problem(s) in'

portaudit -Fda > /tmp/portaudit.tmp

if egrep -q "$TEM_ERRO" /tmp/portaudit.tmp
then
# tem erros, então envia o e-mail
cat /tmp/portaudit.tmp | mutt -s 'Relatorio do portaudit' admin@teste.teste
fi


Verifique um texto que só aparece quando ha erros e coloque na variável TEM_ERRO no inicio do script, faça uns teste e veja se funcione, caso use o comando mail ao invés do mutt, basta substituir.

Abraços




Opa..Desculpe a demora ae na resposta...Funcionou sim...Porém fiquei com uma última dúvida. Seria possível eu "filtrar" o conteúdo? E outra..só pra finalizar...se eu usasse em servidores diferentes...Me dizer de "qual servidor" veio a mensagem.

Ex:

==================================================================================
Affected package: php5-5.3.8
Reference: http://portaudit.FreeBSD.org/d3921810-3c80-11e1-97e8-00215c6a37bb.html

==================================================================================
Somente essas informações. Estou a pesquisar..se eu encontrar algo que funcione eu posto aqui a solução definitiva.

Agradeço desde já a contribuição dos nobres colegas.





11. Re: Enviar resultado por email [RESOLVIDO]

Alexandre Gonçalves Monteiro da Silva
alexandregms

(usa Ubuntu)

Enviado em 13/01/2012 - 11:11h

lgv escreveu:

rai3mb escreveu:


#!/bin/bash

TEM_ERRO='problem(s) in'

portaudit -Fda > /tmp/portaudit.tmp

if egrep -q "$TEM_ERRO" /tmp/portaudit.tmp
then
# tem erros, então envia o e-mail
cat /tmp/portaudit.tmp | mutt -s 'Relatorio do portaudit' admin@teste.teste
fi


Verifique um texto que só aparece quando ha erros e coloque na variável TEM_ERRO no inicio do script, faça uns teste e veja se funcione, caso use o comando mail ao invés do mutt, basta substituir.

Abraços




Opa..Desculpe a demora ae na resposta...Funcionou sim...Porém fiquei com uma última dúvida. Seria possível eu "filtrar" o conteúdo? E outra..só pra finalizar...se eu usasse em servidores diferentes...Me dizer de "qual servidor" veio a mensagem.

Ex:

==================================================================================
Affected package: php5-5.3.8
Reference: http://portaudit.FreeBSD.org/d3921810-3c80-11e1-97e8-00215c6a37bb.html

==================================================================================
Somente essas informações. Estou a pesquisar..se eu encontrar algo que funcione eu posto aqui a solução definitiva.

Agradeço desde já a contribuição dos nobres colegas.





Tem sim, aproveitando o código do @rai3mb, fiz um incremento:


#!/bin/bash

TEM_ERRO='problem(s) in'

portaudit -Fda > /tmp/portaudit.tmp

if egrep -q "$TEM_ERRO" /tmp/portaudit.tmp
then

# tem erros, então envia o e-mail
TEXT_MAIL=$(cat /tmp/portaudit.tmp | grep -C 2 -B 0 Affected | grep -v ^Type)
echo $TEXT_MAIL | mutt -s 'Relatorio do portaudit' admin@teste.teste

fi



Veja de da certo!


12. FInalizado

Luis Gustavo Valentim
lgv

(usa FreeBSD)

Enviado em 13/01/2012 - 14:42h




FINALIZADO...!!!!

===================================================================================
#!/bin/bash

TEM_ERRO='problem(s) in'

portaudit -Fda > /tmp/portaudit.tmp

if egrep -q "$TEM_ERRO" /tmp/portaudit.tmp
then

echo "Host : $HOSTNAME" >> /tmp/portaudit.tmp

# tem erros, então envia o e-mail
TEXT_MAIL=$(cat /tmp/portaudit.tmp | grep -C 2 -B 0 Affected | grep -v ^Type)
echo $TEXT_MAIL | mailx -s 'Relatorio do portaudit' admin@teste.teste

fi
=========================================================================================

Obrigado a colaboração de todos nobres colegas. Está ai o script finalizado para envio de
vulnerabilidades em servidores através do portaudit por email.





01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts