Pular para o conteúdo

Enviar resultado por email [RESOLVIDO]

Responder tópico
  • Denunciar
  • Indicar
01 02

1. Enviar resultado por email [RESOLVIDO]

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.

Responder tópico

3. Shell

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]

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]

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]

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...

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]

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]

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

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]

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

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

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder