Arquivo

Archive for the ‘Debian’ Category

Lista de IPS atualizada do WHATS APP

29 de dezembro de 2015 Deixe um comentário
Whatsapp

IPS WHATSAPP

Lista atualizada de IP’s que o Whats App utiliza para a comunicação do aplicativo com os servidores.  A relação contém todos os blocos IPV4 e IPV6 utilizadas pelo app.

No caso de você querer bloquear o tráfego em sua rede para o Whats App, terá que bloquear todos os IPS na lista. Se não tiver saída v6, bloqueie apenas os IPv4.

LISTA DE IP’s: Clique aqui.

Para bloquear por nome, utilize os DNS listados nesta página: https://github.com/ukanth/afwall/wiki/HOWTO-blocking-WhatsApp

 

Anúncios

Checar versão do Zabbix Agent!

9 de fevereiro de 2015 Deixe um comentário
Zabbix

Zabbix

Checar versão do Zabbix agent no host client.

O Zabbix é uma excelente ferramenta de monitoria de ambiente de infraestrutura de TI. Consegue medir a saúde e nos dá uma boa predição sobre nosso parque.

Recentemente descobri que após a atualização de versão, uma determinada feature que havia inserido em um template que eu criei para monitorar o status do Xeams e do Zimbra, não estava funcionando. Iniciou uma verdadeira peregrinação no linux para entender o motivo de tal feature estar prejudica. Após uma sequência de análise, descobri que o problema estava na versão do Agent do Zabbix que estava desatualizada. Após atualizar a mesma a feature voltou a funcionar. Estranho, pois a mesma feature foi escrita na versão anterior do Agent do Zabbix.

Dito isso, me preocupei em checar todas as versões de Agent Zabbix do meu parque, para isso eu utilizei o comando:

zabbix_get -p 10050 -k agent.version -s 192.168.1.25  

Isto dentro de um laço for, me retornou todos os agents obsoletos. Abraços.

Categorias:Bash, Debian, Shell, zabbix Tags:,

Atualizar o Openfire automaticamente.

21 de maio de 2014 11 comentários
Openfire

COMO ATUALIZAR O OPENFIRE

 

O Openfire é um servidor de mensagens instatâneas que permite que clientes de um mesmo domínio troquem mensagens entre si de forma organizada e com regras de acesso. O mesmo pode ser integrado com Active Directory e utilizar um banco de dados externo (Oracle, Sql, Mysql) ou mesmo um bancozinho interno embutido chamado HSQLDB (Não recomendo esse banco, melhor usar um banco com mais opções como Oracle, M$ Sql ou Mysql.)

Há alguns dias saiu uma nova atualização para o Openfire, a 3.9.3.

Esta nova versão possui uma série de melhorias, elas podem ser consultadas aqui no changelog.

Vamos lá, primeiro vou descrever meu cenário:

Sistema Operacional: Debian 7.1 64 Bits
Banco de Dados: SQL Server (Windows 2008 R2 Enterprise)
Autenticação: LDAP do Active Directory
Versão do Openfire: 3.9.1
Diretório de Instalação: /opt/openfire

Bom, agora vamos atualizar.

Vale ressalvar que eu estou atualizando do meu jeito pois não vi nada oficial no site do desenvolvedor. Acredito que este tipo de atualização é válida para qualquer tipo de banco de dados e autenticação que você utilize.

Todos os comandos aqui representados são executados como root #!

Vejo que muita gente tem complicação na hora de atualizar o Openfire. Pensando nisso e visando otimizar minhas tarefas aqui na empresa, resolvi automatizar a atualização do openfire. Para isto eu criei um script em bash com os seguintes passos:

1 – Checa as versões do spark local e da versão disponível no site do desenvolvedor.
2 – Compara as versões
3 – Caso as versões sejam diferentes e a versão local do openfire seja menor, o script irá fazer backup do seu openfire e em seguida atualizar o mesmo.

 

Para baixar o script clique aqui. Apenas dê permissão de execução para ele:

chmod +x atualiza_openfire.sh

O script não sai direito aqui no blog não sei qual o motivo, mas você pode visualizar o script na integra aqui neste link:

Lembrando que o script quando acionado gera dois backups um compactado e outro, um diretório com o formato openfire_$versao_$data. Caso queira desfazer a atualização, basta você proceder da seguinte forma:

Mover o diretório que foi atualizado

mv /opt/openfire /opt/openfire_bug_atualizacao

Em seguida, voltar seu openfire comoe stava antes, igualzinho

cp -ar /opt/openfire_$versao_data /opt/openfire

Pronto, agora só reinicialize seu serviço:

/opt/openfire/bin/openfire stop
/opt/openfire/bin/openfire start

 

Segue parte do trecho do script

 

#!/bin/bash
#Obtem Versao do Openfire
#2014
#Autor: Jacques de Beijer - beijer00@gmail.com
#Livre divulgacao, mantenham os creditos


DATA=`/bin/date +%d%m%Y`

#Checa versao local do Openfire
versao=`cat /opt/openfire/bin/openfire | grep '"version ' | awk -F'"version ' '{ print $2 }' | awk -F'"' '{ print $1 }' | sort -u`

#Checa Versao do Openfire no site da Ignite Realtime
wget -q -O /tmp/openfire_checa_versao_novo.txt --no-check-certificate https://igniterealtime.org/projects/openfire/index.jsp
versao_nova=`cat /tmp/openfire_checa_versao_novo.txt | grep '<strong>Openfire' | cut -d'<' -f2 | cut -d' ' -f2` # | sed -e 's/\.//g'`

if [ `echo $versao | sed -e 's/\.//g'` -lt `echo $versao_nova | sed -e 's/\.//g'` ] ; then
echo "Necessario atualizar"
if [ ! -d "/opt/openfire" ]; then
echo "Diretorio do Openfire deafult não existe, impossivel continuar. Verifique seus diretorios!!!"
echo "Encerrando atualização!"
else
echo "Diretorio do Openfire OK! - Continuando instalacao"
echo "Obtendo nova versao do Openfire..."
wget -c --progress=dot -O /tmp/openfire_"`echo $versao_nova | sed -e 's/\./_/g'`".tar.gz http://download.igniterealtime.org/openfire/openfire_`echo $versao_nova | sed -e 's/\./_/g'`.tar.gz
echo "Compactando Diretorio atual - Backup escrito em: /opt/openfire_"$versao"_"$DATA".tar.gz"
tar cfz /opt/openfire_"$versao"_"$DATA".tar.gz /opt/openfire/
echo "Encerrando servico Openfire..."
killall -9 openfire
killall -9 java
echo "Movendo diretorio atual..."
mv /opt/openfire/ /opt/openfire_"$versao"_"$DATA"
echo "Descompactando nova versao e atualizando seu Openfire"
tar zxf /tmp/openfire_`echo $versao_nova | sed -e 's/\./_/g'`.tar.gz -C /opt/
echo "Habilitando suas configuracoes definidas"
cp -arp /opt/openfire_"$versao"_"$DATA"/enterprise /opt/openfire/
cp -arp /opt/openfire_"$versao"_"$DATA"/conf /opt/openfire/
cp -arp /opt/openfire_"$versao"_"$DATA"/plugins /opt/openfire/
cp -arp /opt/openfire_"$versao"_"$DATA"/resources /opt/openfire/
echo "Inicializando seu Openfire..."
/opt/openfire/bin/openfire start
echo "OPENFIRE ATUALIZADO - Aguarde 3 minutos para fazer login em seu cliente Jabber"
fi
else
if [ `echo $versao | sed -e 's/\.//g'` -eq `echo $versao_nova | sed -e 's/\.//g'` ] ; then
echo "Na eh necessario atualizar seu Openfire, ele ja esta na versao mais nova!!!"
else
if [ `echo $versao | sed -e 's/\.//g'` -gt `echo $versao_nova | sed -e 's/\.//g'` ] ; then
echo "A versao do seu Openfire detectada esta acima da versao mais recente disponibilizada pela Ignite Realtime. Verifique seu Sistema!!!"
fi
fi
fi

 

Bom, basicamente desta forma eu consigo manter meu openfire atualizado o tempo todo via crontab, não me preocupo mais com a atualização do mesmo.

 

Qualquer dúvida, entrem em contato.

 

Abraços

Patch para vulnerabilidade Heartbleed no Zimbra

16 de abril de 2014 Deixe um comentário
Exploit Zimbra - Heartbleed

Exploit Zimbra – Heartbleed

Patch para vulnerabilidade  Heartbleed no Zimbra

Aplicando patch de atualização do Openssl para evitar Exploit HeartBleed no Zimbra.

No post anterior eu falo sobre o heartbleed, então neste nós vamos direto meter a mãe na massa e tirar essa vulnerabilidade de nossa rede. Cara, tira esse exploit da tua rede, com isso um hacker consegue retirar informações muito importantes da tua rede, você nem imagina quais. Com uma praga dessa alocada em teu sistema de processamento, o hacker consegue capturar as chaves da criptografia e aí, ele está diretamente no núcleo de teu sistema de segurança.

Para identificar se seu Zimbra está infectado, use os comandos abaixo:

Vulnerável:

$ strings /opt/zimbra/openssl/lib/libssl.so | grep dtls1_heartbeat
dtls1_heartbeat
$

 

Não vulnerável:

$ strings /opt/zimbra/openssl/lib/libssl.so | grep dtls1_heartbeat
$

 

Caso você esteja vulnerável, confirme verificando a versão do seu Openssl:

Openssl version -a

 

Caso sua versão seja uma das listadas abaixo e os comandos acima retornaram dtls1_heartbeat, você precisará aplicar o patch abaixo.

As versões infectadas são:
1.0.1
1.0.2-beta
1.0.2-beta1
1.0.1f
1.0.2

 

Bom, partindo do pressuposto que você está infectado (LIKE ME), você precisará aplicar um patch de correção para limpar o malware. O Patch é bem simples, não necessita de reboot da máquina, apenas do serviço do zimbra, não demora nem 5 minutos a aplicação do patch. e o mesmo é bem simplex! Este pacth é válido para as versões ZCS versions 8.0.3, 8.0.4, 8.0.5, 8.0.6, or 8.0.7 e ZCA versions 8.0.3 or 8.0.4! Entretanto atuliza teu ambiente por sua conta em risco, não vem me culpar por nada depois que eu ainda vou rir.

Método 01 – Mais simples:

Use os comandos como root

cd /tmp/
wget http://files.zimbra.com/downloads/security/zmopenssl-updater.sh
chmod a+rx zmopenssl-updater.sh
./zmopenssl-updater.sh
su - zimbra
zmcontrol restart

 

Método 02 – Manual:

Baixe o pacote certo para sua instalação:
Use os comandos como root

cd /tmp

 

http://files.zimbra.com/downloads/8.0.3_GA/openssl/RHEL6_64/openssl-1.0.1d.tgz
http://files.zimbra.com/downloads/8.0.3_GA/openssl/SLES11_64/openssl-1.0.1d.tgz
http://files.zimbra.com/downloads/8.0.3_GA/openssl/UBUNTU10_64/openssl-1.0.1d.tgz
http://files.zimbra.com/downloads/8.0.3_GA/openssl/UBUNTU12_64/openssl-1.0.1d.tgz
http://files.zimbra.com/downloads/8.0.4_GA/openssl/RHEL6_64/openssl-1.0.1e.tgz
http://files.zimbra.com/downloads/8.0.4_GA/openssl/SLES11_64/openssl-1.0.1e.tgz
http://files.zimbra.com/downloads/8.0.4_GA/openssl/UBUNTU10_64/openssl-1.0.1e.tgz
http://files.zimbra.com/downloads/8.0.4_GA/openssl/UBUNTU12_64/openssl-1.0.1e.tgz
http://files.zimbra.com/downloads/8.0.5_GA/openssl/RHEL6_64/openssl-1.0.1e.tgz
http://files.zimbra.com/downloads/8.0.5_GA/openssl/SLES11_64/openssl-1.0.1e.tgz
http://files.zimbra.com/downloads/8.0.5_GA/openssl/UBUNTU10_64/openssl-1.0.1e.tgz
http://files.zimbra.com/downloads/8.0.5_GA/openssl/UBUNTU12_64/openssl-1.0.1e.tgz
http://files.zimbra.com/downloads/8.0.6_GA/openssl/RHEL6_64/openssl-1.0.1e.tgz
http://files.zimbra.com/downloads/8.0.6_GA/openssl/SLES11_64/openssl-1.0.1e.tgz
http://files.zimbra.com/downloads/8.0.6_GA/openssl/UBUNTU10_64/openssl-1.0.1e.tgz
http://files.zimbra.com/downloads/8.0.6_GA/openssl/UBUNTU12_64/openssl-1.0.1e.tgz
http://files.zimbra.com/downloads/8.0.7_GA/openssl/RHEL6_64/openssl-1.0.1f.tgz
http://files.zimbra.com/downloads/8.0.7_GA/openssl/SLES11_64/openssl-1.0.1f.tgz
http://files.zimbra.com/downloads/8.0.7_GA/openssl/UBUNTU10_64/openssl-1.0.1f.tgz
http://files.zimbra.com/downloads/8.0.7_GA/openssl/UBUNTU12_64/openssl-1.0.1f.tgz

Ou baixe um pacote MD5 disponível em um dos links abaixo, baixe o certo.

http://files.zimbra.com/downloads/8.0.3_GA/openssl/RHEL6_64/openssl-1.0.1d.tgz.md5sum
http://files.zimbra.com/downloads/8.0.3_GA/openssl/SLES11_64/openssl-1.0.1d.tgz.md5sum
http://files.zimbra.com/downloads/8.0.3_GA/openssl/UBUNTU10_64/openssl-1.0.1d.tgz.md5sum
http://files.zimbra.com/downloads/8.0.3_GA/openssl/UBUNTU12_64/openssl-1.0.1d.tgz.md5sum
http://files.zimbra.com/downloads/8.0.4_GA/openssl/RHEL6_64/openssl-1.0.1e.tgz.md5sum
http://files.zimbra.com/downloads/8.0.4_GA/openssl/SLES11_64/openssl-1.0.1e.tgz.md5sum
http://files.zimbra.com/downloads/8.0.4_GA/openssl/UBUNTU10_64/openssl-1.0.1e.tgz.md5sum
http://files.zimbra.com/downloads/8.0.4_GA/openssl/UBUNTU12_64/openssl-1.0.1e.tgz.md5sum
http://files.zimbra.com/downloads/8.0.5_GA/openssl/RHEL6_64/openssl-1.0.1e.tgz.md5sum
http://files.zimbra.com/downloads/8.0.5_GA/openssl/SLES11_64/openssl-1.0.1e.tgz.md5sum
http://files.zimbra.com/downloads/8.0.5_GA/openssl/UBUNTU10_64/openssl-1.0.1e.tgz.md5sum
http://files.zimbra.com/downloads/8.0.5_GA/openssl/UBUNTU12_64/openssl-1.0.1e.tgz.md5sum
http://files.zimbra.com/downloads/8.0.6_GA/openssl/RHEL6_64/openssl-1.0.1e.tgz.md5sum
http://files.zimbra.com/downloads/8.0.6_GA/openssl/SLES11_64/openssl-1.0.1e.tgz.md5sum
http://files.zimbra.com/downloads/8.0.6_GA/openssl/UBUNTU10_64/openssl-1.0.1e.tgz.md5sum
http://files.zimbra.com/downloads/8.0.6_GA/openssl/UBUNTU12_64/openssl-1.0.1e.tgz.md5sum
http://files.zimbra.com/downloads/8.0.7_GA/openssl/RHEL6_64/openssl-1.0.1f.tgz.md5sum
http://files.zimbra.com/downloads/8.0.7_GA/openssl/SLES11_64/openssl-1.0.1f.tgz.md5sum
http://files.zimbra.com/downloads/8.0.7_GA/openssl/UBUNTU10_64/openssl-1.0.1f.tgz.md5sum
http://files.zimbra.com/downloads/8.0.7_GA/openssl/UBUNTU12_64/openssl-1.0.1f.tgz.md5sum

cd /opt/zimbra
mv openssl-OLDVERSION openssl-OLDVERSION.brokenheart
tar xfz /tmp/openssl-NEWVERSION.tgz
su - zimbra
zmcontrol restart

 

Repita os passos:

Vulnerável:

$ strings /opt/zimbra/openssl/lib/libssl.so | grep dtls1_heartbeat
dtls1_heartbeat
$

 

Não vulnerável:

$ strings /opt/zimbra/openssl/lib/libssl.so | grep dtls1_heartbeat
$

 

Caso ainda esteja vulnerável, veja se fez tudo certo.

PS: Estes métodos funcionam no Zimbra de forma perfeita, sem afetar nada de produção e remove 100% a praga em questão. ENTRETANTO eu não testei em outros sistemas do tipo apache, vpn e etc e tals.

 

 

Fontes:

  • Zimbra Google Groups

Criando uma pasta para muitos usuários Zimbra

6 de março de 2014 Deixe um comentário
Zimbra

Zimbra

Criando uma pasta para muitos usuários Zimbra

Este script abaixo, lê um arquivo com lista de várias contas de email e cria uma pasta com a cor verde para os usuários.

A tarefa que eu tinha, era vincular uma conta IMAP externa a cada um dos logins inseridos na lista, e para isso precisava criar um diretório para que as mensagens provenientes desta conta ficassem armazenadas. Para isso usei o script abaixo para criar as pastas.

for x in $(cat /tmp/list.txt); do zmmailbox -z -m $x cf -c green /Pasta; done 

 

Conteúdo do arquivo list.txt:

account1@domain.com.br
account2@domain.com.br
account3@domain.com.br
account4@domain.com.br
account5@domain.com.br
 
T+

Atualizar Openfire 3.9.1

10 de fevereiro de 2014 6 comentários
Openfire

Openfire

Atualizando Openfire para versão 3.9.1.

O Openfire é um servidor de mensagens instatâneas que permite que clientes de um mesmo domínio troquem mensagens entre si de forma organizada e com regras de acesso. O mesmo pode ser integrado com Active Directory e utilizar um banco de dados externo (Oracle, Sql, Mysql) ou mesmo um bancozinho interno embutido chamado HSQLDB (Não recomendo esse banco, melhor usar um banco com mais opções como Oracle, M$ Sql ou Mysql.) (Correção do nome do banco dada por Alex Borges =]])

Neste final de semana saiu uma nova atualização para o Openfire, a 3.9.1 (A última versão estável foi a 3.8.2, disponibilizada em 28 de maio de 2013, faz tempo eim).

Esta nova versão possui uma série de melhorias, elas podem ser consultadas aqui no changelog.

Vamos lá, primeiro vou descrever meu cenário:

Sistema Operacional: Debian 7.1 64 Bits
Banco de Dados: SQL Server (Windows 2008 R2 Enterprise)
Autenticação: LDAP do Active Directory
Versão do Openfire: 3.8.2
Diretório de Instalação: /opt/openfire

Bom, agora vamos atualizar.

Vale ressalvar que eu estou atualizando do meu jeito pois não vi nada oficial no site do desenvolvedor. Acredito que este tipo de atualização é válida para qualquer tipo de banco de dados e autenticação que você utilize.

Todos os comandos aqui representados são executados como root #!

1 – Baixar o Openfire 3.9.1 ;

wget http://download.igniterealtime.org/openfire/openfire_3_9_1.tar.gz

2 – Descompactar o pacote tar gz;

tar zxvf openfire_3_9_1.tar.gz

3 – Parar o Openfire;

/etc/init.d/openfire stop

4 – Fazer backup do diretório de instalação;

mv /opt/openfire /opt/openfire_3.8.2_to_3.9.1_09022014

5 – Mover o diretório que a descompactação gerou para onde está instalado o openfire;

mv -vif openfire /opt/

6 – Copiar alguns arquivos do openfire antigo para não ter que configurar nada;

cp -arp /opt/openfire_3.8.2_to_3.9.1_09022014/enterprise /opt/openfire/
cp -arp /opt/openfire_3.8.2_to_3.9.1_09022014/conf /opt/openfire/
cp -arp /opt/openfire_3.8.2_to_3.9.1_09022014/plugins /opt/openfire/
cp -arp /opt/openfire_3.8.2_to_3.9.1_09022014/resources /opt/openfire/

6 – Iniciar o Openfire!

/etc/init.d/openfire start

7 – Checar se a porta 5222 subiu, ou teste direto na console.

nmap localhost | grep 5222

8 – Entrar na console de admin do Openfire e atualizar seus plugins, sugiro atualizar um plugin de cada vez, parar o Openfire, logar com o Spark e depois de checar se está tudo okay, atualizar o próximo.

Pronto,  seu Openfire está atualizado e operacional! =]]

Caso ele não esteja =[[, siga os passos abaixo para desfazer tudo que você fez e voltar para sua versão 3.8.2 ou qualquer outra versão que seu Openfire se encontra.

1 – Pare o Openfire.

/etc/init.d/openfire stop

2 – Remova o diretório com o Openfire na versão 3.9.1

rm -rf /opt/openfire

3 – Volte o backup de seu Openfire Antigo

cp -arp /opt/openfire_3.8.2_to_3.9.1_09022014 /opt/openfire

4 – Inicie seu Openfire.

/etc/init.d/openfire start

5 – Pronto seu Openfire já está okay.

Openfire é bem simples e quase nunca dá problema. Recomendo o uso do Plugin Content Filter. Este plugin aliado com expressões regulares dão asas ao Openfire.

Resolvendo erro PHP Fatal error!!!

23 de janeiro de 2014 Deixe um comentário
PhpLogo

phpLogo

Resolvendo erro PHP Fatal error:  Maximum execution time of 30 seconds exceeded

Quando alguma aplicação sua der erro no PHP, e o log constar “PHP Fatal error:  Maximum execution time of 30 seconds exceeded …” a solução é simples, basta aumentar a opção max_execution_time do PHP.INI, que deve estar localizada dentro do apache. Tive um problema deste tipo em uma guia gigante de internação onde o php validava alguns campos e em seguida fazia insert’s sucessivos no SQL. Como o xml era muito grande com muitos ítens, ele dava erro por TIMEOUT!

Primeiro vamos identificar onde está o arquivo php.ini. Para isso vamos criar uma página para nos gerar as configurações do php. Dentro do /var/www vamos criar um arquivo chamado infophp.php e inserir as configurações do php que nos exiba as confs dele.

echo "<?php phpinfo(); ?>" > /var/www/infophp.php

Pronto, agora você acessa esta página digitando o ip do seu servidor e a página criada (http://IP/infophp.php)

http://168.168.168.168/infophp.php

Agora você vai procurar duas informações: “max_execution_time” e “Configuration File (php.ini) Path”. A opção max_execution_time lhe dirá em segundos, quanto tempo o PHP esperará antes de dar erro por timeout (PHP Fatal error:  Maximum execution time of 30 seconds exceeded). Já a segunda opção diz onde o arquivo de configuração global do PHP está localizado.

No print abaixo, você conseguirá identificar o caminho do php.ini, que é o arquivo onde ficam todas as configurações globais do PHP. No caso do print abaixo, o caminho seria ‘/etc/php5/apache2’.

Caminho do PHP.ini

Caminho do PHP.ini – Arquivo de configuração global do PHP

No print abaixo, você consegue identificar a opção max_execution_time, que é a opção que diz ao PHP que ele deve esperar tantos segundos antes de dar timeout.

Max_E_T

max_execution_time

No caso do meu max_execution_time, o tempo já está em 60 segundos, mas o default é 30 segundos

Para aumentar seu max_execution_time e evitar que suas aplicações gerem erros por conta de timeout, basta ir no php.ini e alterar a variável. Para o caso de um php com caminho igual ao do print acima, basta executar o comando:

# sed -i "s/max_execution_time = 30/max_execution_time = 60/g" /etc/php5/apache2/php.ini

sed -i “s/max_execution_time = 30/max_execution_time = 60/g” /etc/php5/apache2/php.ini

O comando acima executado diretamento na console altera o arquivo /etc/php5/apache2/php.ini trocando o valor de “max_execution_time =30” para “max_execution_time = 60”.

Ou você pode evitar na mão o arquivo /etc/php5/apache2/php.ini e alterar a opção max_execution_time de 30 apra 60.

Após isso, basta reiniciar o apache2 e executar a sua rotina novamente ver se vai dar problema

service apache2 restart

ou

/etc/init.d/apache2 restart

Ou simplesmente

killall -1 apache2

Prontinho!