Nos dia 15 e 16 tivemos a 1ª Zabbix Conference LatAM, eu gostaria de comentar um pouco sobre o que vi e vivenciei no evento.
O primeiro ponto que gostaria de destacar é o cuidado que a organização do evento teve com os participantes, translado do aeroporto para o hotel, translado para a churrascaria (Welcome Party), translado para Gramado, ou seja, tudo foi pensado para proporcionar conforto aos participantes.
O hotel era excelente, em um bairro de classe alta em Porto Alegre e muito bem localizado, próximo do centro, com parques e shopping a quadras de distância, acesso a transporte (Taxi, Uber e Ônibus) na mesma rua.
O evento seguiu os mesmos padrões da Conferencia Oficial em Riga, Letônia, essa foi a minha impressão, do Adail, do pessoal da Globo.com, que são pessoas que tiveram a oportunidade de ir para lá. Se não atingiu o mesmo nível, eu diria que atingiu mais de 90%, mas em minha opinião estava no mesmo nível.
O evento ocorreu em um auditório retangular, o que permite que todos fiquem próximo do palco principal, as pessoas estavam confortavelmente distribuídas em duplas ou trios, com mesa e cadeira, o que é excelente para quem queria levar o note, fazer anotações, etc. Três telões, filmagem, excelente sistema de som e de ar-condicionado completavam o ambiente.
Além do café da manhã servido pelo hotel, ocorreram os coffee breaks e almoço no mesmo espaço do evento, mesas que comportavam 8 a 10 pessoas permitiam conforto e interação entre os participantes.
A primeira festa foi em uma churrascaria tipicamente gaúcha, com shows tradicionais.
A segunda foi em um Pub em uma badalada rua do bairro, vale a pena
destacar a quantidade de comida (inclusa na inscrição), simplesmente não
paravam de abastecer a mesa.
E a última foi um café colonial em Gramado,
pelo que vi das fotos, foi um exagero.
As palestras foram sensacionais, tivemos palestras técnicas, palestras voltadas à gestão e palestras para iniciantes, aliás, isso refletiu bem o público do evento, me surpreendi com a diversidade de participantes, tivemos vários participantes que estão começando com a ferramenta e estavam presentes no evento, o que tornou o evento ainda mais interessante.
Todos os mais de 100 participantes presentes, tiveram oportunidade de interagir entre sí, a própria maneira como o evento é realizado incentiva esse tipo de interação e, esse é um dos principais motivos da limitação do número de inscrições.
O Alexei é uma atração a parte, acho que todos que tiveram a oportunidade de conhecê-lo pessoalmente pela primeira vez sentiram aquele friozinho na barriga, aquela sensação de "CARA É O ALEXEI" *risos*, mas ele é um cara simpático, super simples, eu visitei a Zabbix SIA, interagi um pouco com ele em 2013 (Na conferencia e no Latinoware) e agora novamente no evento, ele anda a pé, come o que você oferecer, ama guaraná, conversa, tira foto, aperta a mão e recebe abraços sem frescura, e o evento reflete isso.
Temos muito que agradecer o Luciano Alves, CIO da Unirede, pelo empenho, foram mais de 4 anos tentando convencer o Alexei de que era viável realizar uma conferencia na América Latina, e claro, a primeira seria no Brasil.
Demorou mas aconteceu e o Alexei foi embora de queixo caido, nós realmente causamos um excelente impressão, uma das últimas perguntas do evento foi se teríamos uma próxima e a resposta foi "Sure". E depois quando chegou a Riga fez um post no Facebook dizendo que era tempo de iniciar uma nova tradição, a conferencial LatAm.
O último ponto que gostaria de destacar são os frutos do evento, a questão do módulo da Unirede para monitoramento de Xen sempre foi algo complicado de se entender, o módulo estava disponível, mas o código fonte não, eles não falavam mais nada sobre isso, e na conferencia o Luciano Alves e o Thiago Melo esclareceram o por que: O módulo foi criado por administradores de rede e não por desenvolvedores, apenas como uma prova de conceito, eles queriam que as pessoas conhecessem mais sobre o uso de módulos e criaram esse módulo para isso, mas eles não tem braço para tocar o desenvolvimento e realizar as alterações necessárias a cada nova versão do Zabbix e/ou Xen, e acharam que as pessoas não tinham na realidade interesse no módulo, a conferencia demonstrou o contrário que as pessoas tinham sim interesse e estavam dispostas a tocar o projeto se o código fosse disponibilizado, então no segundo dia, o módulo foi disponibilizado no Github e hoje todos podem contribuir com seu desenvolvimento, o mesmo ocorreu com os scripts do pessoal da Globo.com, com o projeto Zabbix Security Insights do Alessandro Silva, só para citar os principais, o pessoal realmente teve um gás novo na conferencia, no sentido de usar mais o Share, compartilhar suas soluções e ajudar o produto e a comunidade a se tornarem ainda mais conhecidos.
Espero que quem não conseguiu ir esse ano, não importa o motivo, tenha a oportunidade de ir no próximo ano e vivenciar o que é participar de uma conferencia Zabbix.
Abraços a todos,
André Déo
domingo, 24 de abril de 2016
segunda-feira, 21 de março de 2016
Coletando Estatísticas de E-mail do Postfix com Shell Script, Pflogsumm e Zabbix
Introdução
Em muitas situações precisamos coletar indicadores, entre eles quantitativos de e-mails, nesse post demonstro como coletar esses dados de um servidor Postfix, tratá-los e enviá-los ao Zabbix.Para melhor entendimento das filas e até alternativas de coleta, recomendo a leitura desse post do grande Guto Carvalho.
O responsável por gerar as estatísticas é o script em Perl pflogsumm.
Dependências
A única dependência do pflogsumm é o módulo Perl Date-Calc.# yum install perl-Date-Calc
Download
Realizar o download do script# wget http://jimsun.linxnet.com/downloads/pflogsumm-1.1.3.tar.gz
Descompactar o script
# tar -xzvf pflogsumm-1.1.3.tar.gz
Copiar o script para o diretório de binários
# cp pflogsumm-1.1.3/pflogsumm.pl /usr/local/bin/
Gerar 1ª remessa
Vamos gerar um primeiro arquivo contendo as estatísticas com base nos arquivos de log.# pflogsumm.pl /var/log/maillog* > emails.txt
Separar o bloco de dados que me interessa
A linha 59 contém as informações da última data que me interessa (Mar 8 2016) e descontando 32 linhas eu chego na linha com a primeira data que me interessa (Feb 7 2016). Você deve adaptar os valores para a sua necessidade.# head -59 emails.txt | tail -32
Feb 7 2016 19 33 81 0 2
Feb 8 2016 19 26
Feb 9 2016 31 49
Feb 10 2016 58 83 1
Feb 11 2016 353 9975 1284 121
Feb 12 2016 1321 21503 24157 5264
Feb 13 2016 22 124 8878 0 1
Feb 14 2016 18 129 6135
Feb 15 2016 153 3839 216 49
Feb 16 2016 279 7208 1048 75 1
Feb 17 2016 101 2536 272 33 1
Feb 18 2016 450 12107 1535 143
Feb 19 2016 950 13594 5547 5176
Feb 20 2016 17 36 5855 1 3
Feb 21 2016 25 89 3445 1
Feb 22 2016 215 5385 443 127
Feb 23 2016 99 2176 83 23
Feb 24 2016 562 8202 3850 2337
Feb 25 2016 220 8551 3512 102
Feb 26 2016 975 15136 6450 5462
Feb 27 2016 23 39 5766 0 8
Feb 28 2016 22 99 4082 0 2
Feb 29 2016 462 12157 482 157
Mar 1 2016 539 9674 1131 193
Mar 2 2016 143 4899 975 57
Mar 3 2016 20 98 422 0 11
Mar 4 2016 978 16457 6621 5071 1
Mar 5 2016 21 40 5977 14
Mar 6 2016 22 88 4331 0 1
Mar 7 2016 384 11030 446 196 10
Mar 8 2016 266 8579 431 102
Converter as datas para o formato Unix Timestamp
O Zabbix possui um utilitário (zabbix_sender) que permite o envio em lote de informações, mas para isso as datas precisam estar no formato Unix Timestamp ou Epoch.Para isso eu usei o site Epoch Unix Time Stamp Converter para converter as datas. Sim eu sei que poderia usar o comando date +%s, mas eram poucos dados e eu fiz por lá ;-). Abaixo o txt que eu montei com correlação de datas (datas2.txt) separando a data normal da convertida por um <tab>.
Feb 7 2016 1454832000
Feb 8 2016 1454918400
Feb 9 2016 1455004800
Feb 10 2016 1455091200
Feb 11 2016 1455177600
Feb 12 2016 1455264000
Feb 13 2016 1455350400
Feb 14 2016 1455436800
Feb 15 2016 1455523200
Feb 16 2016 1455609600
Feb 17 2016 1455696000
Feb 18 2016 1455782400
Feb 19 2016 1455868800
Feb 20 2016 1455955200
Feb 21 2016 1456041600
Feb 22 2016 1456128000
Feb 23 2016 1456214400
Feb 24 2016 1456300800
Feb 25 2016 1456300800
Feb 26 2016 1456473600
Feb 27 2016 1456560000
Feb 28 2016 1456646400
Feb 29 2016 1456732800
Mar 1 2016 1456819200
Mar 2 2016 1456905600
Mar 3 2016 1456992000
Mar 4 2016 1457078400
Mar 5 2016 1457164800
Mar 6 2016 1457251200
Mar 7 2016 1457337600
Mar 8 2016 1457424000
Gerar os arquivos com datas e valores
Em seguida vou separar apenas a data no formato Unix Timestamp# cat datas2.txt | tr '\t' ' ' | tr -s ' ' | cut -d ' ' -f4 > datas.txt
E agora vou gerar um arquivo para cada dado que vou coletar (received, delivered, deferred, bounced, rejected e total). A linha 58 contém a última informação que nos interessa e a linha 32 a primeira informação.
# head -58 emails.txt | tail -32 | tr -s ' ' | cut -d ' ' -f5 > received.txt
# head -58 emails.txt | tail -32 | tr -s ' ' | cut -d ' ' -f6 > delivered.txt
# head -58 emails.txt | tail -32 | tr -s ' ' | cut -d ' ' -f7 > deferred.txt
# head -58 emails.txt | tail -32 | tr -s ' ' | cut -d ' ' -f8 > bounced.txt
# head -58 emails.txt | tail -32 | tr -s ' ' | cut -d ' ' -f9 > rejected.txt
O total é um pouco mais complicado, pois temos linhas vazias, então vamos primeiro gerar o arquivo:
# paste received.txt delivered.txt deferred.txt bounced.txt rejected.txt | tr '\t' '+' | grep '+$' > total.txt
Mas como podemos observar, teremos problemas se enviarmos esses valores para a calculadora (bc)
# cat total.txt
++++
19+26+++
31+49+++
58+83+1++
353+9975+1284+121+
1321+21503+24157+5264+
18+129+6135++
153+3839+216+49+
450+12107+1535+143+
950+13594+5547+5176+
25+89+3445+1+
215+5385+443+127+
99+2176+83+23+
562+8202+3850+2337+
220+8551+3512+102+
975+15136+6450+5462+
462+12157+482+157+
539+9674+1131+193+
143+4899+975+57+
21+40+5977+14+
266+8579+431+102+
Para resolver o problema precisamos eliminar todos os sinais de “+” que estejam no final da linha, como pode ser observado, por exemplo, nas 5 primeiras linhas.
# sed -i 's/[+]*$//' total.txt
Agora o arquivo está pronto para ser enviado para a calculadora e, nos retornar o total.
# cat total.txt
19+26
31+49
58+83+1
353+9975+1284+121
1321+21503+24157+5264
18+129+6135
153+3839+216+49
450+12107+1535+143
950+13594+5547+5176
25+89+3445+1
215+5385+443+127
99+2176+83+23
562+8202+3850+2337
220+8551+3512+102
975+15136+6450+5462
462+12157+482+157
539+9674+1131+193
143+4899+975+57
21+40+5977+14
266+8579+431+102
A quantidade de linhas do arquivo, será necessário para o próximo passo, mas como usamos o comando tail -32, já sabemos que o arquivo tem 32 linhas ;-)
Automatizar a geração do arquivo que será usado para alimentar o Zabbix
Nada melhor que um Shell Script para automatizar as tarefas repetitivas do dia-a-dia. Troque o nome "Server" pelo nome do Host cadastrado no Zabbix# vi gera_zabbix.sh
#!/bin/bash
# RECEIVED
for ((i=1; i<=32; i++))
do
data=`head -$i datas.txt | tail -1`
valor=`head -$i received.txt | tail -1`
echo "Server mails.received $data $valor" >> valores_zabbix.txt
done
# DELIVERED
for ((i=1; i<=32; i++))
do
data=`head -$i datas.txt | tail -1`
valor=`head -$i delivered.txt | tail -1`
echo "Server mails.delivered $data $valor" >> valores_zabbix.txt
done
# DEFERRED
for ((i=1; i<=32; i++))
do
data=`head -$i datas.txt | tail -1`
valor=`head -$i deferred.txt | tail -1`
echo "Server mails.deferred $data $valor" >> valores_zabbix.txt
done
# BOUNCED
for ((i=1; i<=32; i++))
do
data=`head -$i datas.txt | tail -1`
valor=`head -$i bounced.txt | tail -1`
echo "Server mails.bounced $data $valor" >> valores_zabbix.txt
done
# REJECTED
for ((i=1; i<=32; i++))
do
data=`head -$i datas.txt | tail -1`
valor=`head -$i rejected.txt | tail -1`
echo "Server mails.rejected $data $valor" >> valores_zabbix.txt
done
# TOTAL
for ((i=1; i<=32; i++))
do
data=`head -$i datas.txt | tail -1`
valor=`head -$i total.txt | tail -1 | bc`
echo "Server mails.total $data $valor" >> valores_zabbix.txt
done
Gerar o arquivo que vai alimentar o Zabbix
# sh gera_zabbix.sh
Como alguns valores estavam em branco, o arquivo ficou com algumas falhas, como essa
# cat valores_zabbix.txt
Server mails.received 1454832000
Server mails.received 1454918400 19
Vamos substituir esses espaços em banco, como na primeira linha, por 0 para que o Zabbix possa receber um valor para cada um os campos
# sed -i 's/00 $/00 0/g' valores_zabbix.txt
E agora o arquivo está correto
# cat valores_zabbix.txt
Server mails.received 1454832000 0
Server mails.received 1454918400 19
Criar os itens no Zabbix
Para que o Zabbix possa receber os dados, é preciso que sejam criados itens com as mesmas chaves que constam no arquivo. E o tipo do item deve ser Zabbix trapper.![]() |
| Item E-mails Atrasados |
Template Estatistica E-mail Postfix
Se você não quiser perder tempo criando os itens, eu disponibilizei o template aqui. Esse template contem os 6 itens que vamos precisar e um gráfico com todos os itens.Populando o Zabbix com os dados
# zabbix_sender -z Proxy -T -i valores_zabbix.txtinfo from server: "processed: 192; failed: 0; total: 192; seconds spent: 0.001544"
sent: 192; skipped: 0; total: 192
Coletando os valores diários
O pflogsumm.pl possui o parametro "-d yesterday" que gera as informações do dia anterior, então minha estratégia será a de todos os dias às 08:00 popular o Zabbix com os dados consolidados do dia anterior.Esse parametro permite utilizar os totais do dia ou os valores de hora em hora, eu vou utilizar os valores totais, mas nada te impede de adaptar o script para coletar os valores por hora.
# /usr/local/bin/pflogsumm.pl -d yesterday /var/log/maillog* | more
Postfix log summaries for Mar 9
Grand Totals
------------
messages
79 received
1648 delivered
0 forwarded
11 deferred (188 deferrals)
34 bounced
10 rejected (0%)
0 reject warnings
0 held
0 discarded (0%)
2790k bytes received
29781k bytes delivered
18 senders
5 sending hosts/domains
1514 recipients
73 recipient hosts/domains
Per-Hour Traffic Summary
------------------------
time received delivered deferred bounced rejected
--------------------------------------------------------------------
0000-0100 0 0 16 0 0
0100-0200 0 0 16 0 0
0200-0300 0 0 12 0 0
0300-0400 0 0 14 0 0
Automatizando o envio diário de informações
Primeiro vamos criar um diretório para armazenar nossos scripts# mkdir /Scripts_Servicos
Vamos criar o script que coleta as estatísticas e envia automaticamente para o Zabbix
# vi /Scripts_Servicos/estatisticas_email.sh
#!/bin/bash
# Todos dos dias gera um novo arquivo
/usr/local/bin/pflogsumm.pl -d yesterday /var/log/maillog* > /Scripts_Servicos/yesterday
# Separa as informacoes que nos interessam
received=`head -12 /Scripts_Servicos/yesterday | grep received | tr -s " " | cut -d " " -f2`
delivered=`head -12 /Scripts_Servicos/yesterday | grep delivered | tr -s " " | cut -d " " -f2`
deferred=`head -12 /Scripts_Servicos/yesterday | grep deferred | tr -s " " | cut -d " " -f2`
bounced=`head -12 /Scripts_Servicos/yesterday | grep bounced | tr -s " " | cut -d " " -f2`
rejected=`head -12 /Scripts_Servicos/yesterday | grep rejected | tr -s " " | cut -d " " -f2`
total=`echo $received+$delivered+$deferred+$bounced+$rejected | bc`
data=`date --date yesterday +%s`
# Apaga o arquivo do dia anterior
rm -rf /Scripts_Servicos/valores_zabbix
# Monta o arquivo
echo "Server mails.received $data $received" >> /Scripts_Servicos/valores_zabbix
echo "Server mails.delivered $data $delivered" >> /Scripts_Servicos/valores_zabbix
echo "Server mails.deferred $data $deferred" >> /Scripts_Servicos/valores_zabbix
echo "Server mails.bounced $data $bounced" >> /Scripts_Servicos/valores_zabbix
echo "Server mails.rejected $data $rejected" >> /Scripts_Servicos/valores_zabbix
echo "Server mails.total $data $total" >> /Scripts_Servicos/valores_zabbix
# Envia os dados para o Zabbix
zabbix_sender -z Proxy -T -i /Scripts_Servicos/valores_zabbix
Tornar o script executável
# chmod +x /Scripts_Servicos/estatisticas_email.sh
Agendar a execução do Script
# crontab -e
# Todos os dias as 08:00 envia os dados estatisticos de e-mail para o Zabbix
00 08 * * * /Scripts_Servicos/estatisticas_email.sh
Referências
Guto CarvalhoEpoch Unix Time Stamp Converter
Pflogsumm
Zabbix Sender
Marcadores:
Administrador de Redes,
Gerencia de Redes,
Monitoramento,
Postfix,
SysAdmin,
Zabbix
sexta-feira, 2 de outubro de 2015
Gerenciando Senhas com o TeamPass
Introdução
O TeamPasss é um gerenciador corporativo e colaborativo de senhas e informações sensíveis. Ele foi especialmente desenvolvido para gerenciar, armazenar, prover senhas e oferecer meios de acesso a informação sensível de forma controlada, centralizada e dinâmica.Eu descobri esse cara garimpando no blog do meu amigo Guto Carvalho, leiam o post dele antes de prosseguir ;-)
Ponto de partida
Eu parto do princípio que você já possui um Servidor CentOS 7 Básico.Pré-Requisitos
Antes de começarmos a instalação precisamos suprir alguns pré-requisitos, depois será Next, Next, Finish.Banco de Dados
A primeira coisa que precisamos fazer é criar a base de dados, que posteriormente será populada durante a instalação. Essa base pode ser local ou remota, a decisão é sua.No exemplo abaixo vamos criar uma base de dados chamada teampass_db e um usuario chamado teampass com senha TeAmPaSs.
mysql> CREATE DATABASE teampass_db CHARACTER SET utf8 COLLATE utf8_general_ci;
mysql> GRANT ALL PRIVILEGES ON teampass_db.* TO teampass@localhost IDENTIFIED BY 'TeAmPaSs';
mysql> flush privileges;
Dependências de pacotes
Essa versão precisa do PHP 5.5, apesar de exibir que o pré-requisito é o PHP 5.3 ou superior, eu não consegui fazer funcionar com o PHP 5.4.# yum -y install php55-php php55-php-mcrypt php55-php-ldap php55-php-common unzip php55-php-mbstring php55-php-bcmath php55-php-xml
Ajustes no PHP
# cd /etc# ln -s /opt/remi/php55/root/etc/php.ini php.ini
# vi /etc/php.ini
date.timezone = America/Sao_Paulo
max_execution_time = 60
# systemctl restart httpd
Dado tipo Sal
É preciso criar um diretório que é dependência da instalação, esse diretório irá armazenar um dado do tipo Sal (Salt) que será utilizado juntamente com a senha.# cd /var/www/
# mkdir saltkey
# chown -R apache:apache saltkey
Download dos arquivos
Precisamos realizar o download dos arquivos e copiar os arquivos php para o diretório web.# mkdir /install
# cd /install
# wget https://github.com/nilsteampassnet/TeamPass/archive/master.zip
# unzip master
# cd /var/www/html/
# mv /install/TeamPass-master/ teampass
# chown -R apache:apache teampass
Instalaçao
basta acessar o endereço do seu servidor:http://ip_servidor/teampass/install/install.php
Na tela inicial clique em NEXT
Clique em LAUNCH, para que a instalação cheque os pré-requisitos
Os pré-requisitos estando OK, o botão NEXT é liberado, pode pressioná-lo
Após a conexão ser estabelecida com sucesso o botão NEXT é liberado, basta pressioná-lo
Nessa tela temos que observar vários detalhes:
- Gerar o arquivo salt e informar o caminho onde o mesmo será armazenado;
- Configurar a seção de SMTP (Opcional);
- Inserir a senha do Administrador;
Após a validação das informações clique no botão NEXT
A base de dados é populada, clique em NEXT
Ajustes finais são realizados, clique em NEXT
A própria instalação já remove o diretório de instalação, clique em NEXT
Apenas um resumo informando que a instalação está concluída e que o usuário de login é admin, clique em Start
Faça o login com o usuário admin e a senha que foi cadastrada e, observe que o modo de manutenção está habilitado.
Configurações
Configurações Iniciais
Clique em Settings para alterarmos as configurações iniciaisNa aba TeamPass Settings vamos remover o modo de manutenção, alterar as opções de timezone e o idioma. Após realizar as alterações clique em Save
Integração com Active Directory
Esse passo é opcional, mas se você tem um AD na rede, é uma boa pedida configurar a autenticação por ele, ao invés de ter que decorar mais uma senha. Apenas a autenticação será feita pelo AD, você precisa criar o usuário no TeamPass de qualquer forma, afinal de contas não queremos qualquer usuário do AD autenticando no TeamPass. Além do AD ele suporta também Posix / OpenLDAP (RFC2307).Clique na aba Opções LDAP, marque a opção Sim em "Ativa autenticação LDAP para os usuários", selecione o "LDAP server type" como Windows / Active Directory e clique em Salvar
Clique novamente na aba Opções LDAP e preencha as opções da seção Configuração LDAP e clique em Salvar
Liberar acesso à aplicação apenas de determinados endereços IPs
Se você quiser incrementar a segurança um pouco mais, e aconselho a fazer, você pode liberar o acesso para o site apenas para as máquinas do setor de informática. Para isso edite o arquivo de configuração do apache:# vi /etc/httpd/conf/httpd.conf
<Directory "/var/www/html/teampass">
Order deny,allow
Deny from all
Allow from 192.168.100.15/255.255.255.0
Allow from 192.168.100.16/255.255.255.0
Allow from 192.168.100.17/255.255.255.0
</Directory>
Após isso reinicie o apache
# systemctl restart httpd
Gerenciamento de Usuários
O TeamPass possui 3 tipos de usuários:- Admin (Administrador): Esse tipo de usuário consegue criar e gerenciar outros usuários, criar e gerenciar regras, associar usuários a regras e, administar configurações internas do TeamPass, porém ele não consegue ver as pastas, consequentemente ele não conseguirá criar e gerenciar senhas em tais pastas.
- Manager (Gerenciador): Esse tipo de usuário conseguirá administrar uma ou mais regras - e suas pastas - e os usuários associados a esta regra, ele também conseguirá criar e gerenciar senhas dentro das pastas pertencentes as regras que ele estiver associado. O manager até consegue criar pastas em suas regras, mas será preciso o Admin para liberar o uso da pasta naquela regra. Ele também consegue criar usuários de nível inferior ao dele.
- Read Only (Somente Leitura): Este tipo de usuário só consegue utilizar as pastas associadas à regra que ele faz parte, ele não cria pastas, e nem pode criar, modificar e apagar senhas dentro das pastas que tem acesso.
Referencias
Infraestrutura ÁgilTeampass and authentication Ldap/Active directory
Marcadores:
Administrador de Redes,
Gerencia de Redes,
Segurança,
Senhas,
SysAdmin
quinta-feira, 1 de outubro de 2015
phpMyAdmin Acessando Multiplos Servidores Remotos
Introdução
A maioria das pessoa utiliza o phpMyAdmin para acessar bases de dados que estão no mesmo servidor (localhost), mas é possível configurá-lo para acessar mais de um servidor ao mesmo tempo e também para acessar servidores remotos, ou seja, se você possui na sua estrutura vários servidores MySQL você pode utilizar um único phpMyAdmin, centralizando assim seu acesso.Ponto de partida
Eu parto do princípio que você já possui um Servidor CentOS 7 Básico.Instalação
A instalação será feita através do yum:# yum install -y phpMyAdmin
Depois de instalado vamos criar um link na raíz do nosso diretório web, nesse caso eu chamei de mysql:
# cd /var/www/html/
# ln -s /usr/share/phpMyAdmin mysql
# ls -l
total 0
lrwxrwxrwx 1 root root 21 Set 18 17:29 mysql -> /usr/share/phpMyAdmin
Acessar a interface do phpMyAdmin
Acesse o endereço http://ip_servidor/mysqlConfigurar o acesso para vários servidores
Edite o arquivo config.inc.php# vi /etc/phpMyAdmin/config.inc.php
Logo no início do arquivo temos a seção Servers Configuration, com as informações referentes ao localhost
/*
* Servers configuration
*/
$i = 0;
/*
* First server
*/
$i++;
/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = 'cookie';
/* Server parameters */
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['AllowNoPassword'] = false;
Podemos acrescentar logo abaixo o bloco de comandos para os demais servidores:
/*
* Server Remoto 1
*/
//$i++;
/* Authentication type */
$cfg['Servers'][$i]['verbose'] = 'Server Remoto 1';
$cfg['Servers'][$i]['auth_type'] = 'cookie';
/* Server parameters */
$cfg['Servers'][$i]['host'] = '192.168.100. 1';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['AllowNoPassword'] = false;
/*
* Server Remoto 2
*/
$i++;
/* Authentication type */
$cfg['Servers'][$i]['verbose'] = 'Server Remoto 2';
$cfg['Servers'][$i]['auth_type'] = 'cookie';
/* Server parameters */
$cfg['Servers'][$i]['host'] = '192.168.100.2';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['AllowNoPassword'] = false;
Remover o acesso ao localhost
E por último podemos remover a opção de acesso ao localhost, deixando assim o phpMyAdmin em um servidor exclusivo para páginas Web, e os bancos de dados em servidores exclusivos para essa função. Basta comentar as linhas./*
* First server
*/
//$i++;
/* Authentication type */
//$cfg['Servers'][$i]['auth_type'] = 'cookie';
/* Server parameters */
//$cfg['Servers'][$i]['host'] = 'localhost';
//$cfg['Servers'][$i]['connect_type'] = 'tcp';
//$cfg['Servers'][$i]['compress'] = false;
//$cfg['Servers'][$i]['AllowNoPassword'] = false;
Referências
Configurando o phpMyAdmin para acessar o MySQL remotamente
Marcadores:
Administrador de Redes,
CentOS,
MySQL,
phpMyAdmin,
SysAdmin
sexta-feira, 31 de julho de 2015
Script de Backup das Configurações de Ativos de Rede para Servidor TFTP
Introdução
É possível realizar o exporte das configurações de ativos de redes (como switches, roteadores, controladoras de rede sem fio, etc) para um Servidor TFTP, como o arquivo gerado é irrelevante em termos de tamanho, criei um script que se conecta via telnet em cada um dos ativos, realiza o exporte para um Servidor TFTP e renomeia o arquivo para o dia da semana. Com isso temos uma cópia das configurações dos últimos sete dias de cada ativo. Como medida adicional de segurança o servidor de backup coleta esses dados, para preserva-los mesmo que algo aconteça com o Servidor TFTP, como um crash de disco, por exemplo.Estrutura
- /Scripts: Diretório que abriga o script;
- /Backup/Logs: Diretório que abriga o log do processo, Log_Switches-DIA_DA_SEMANA.log, se esse arquivo não for vazio, ou seja, acontecer algum erro, esse log será enviado por e-mail;
- /Backup/Switches: Diretório que abriga o export das configurações, existe um diretório para cada switch (switch1, switch2, etc), e dentro de cada diretório o arquivo de configuração, SwitchX-DIA_DA_SEMANA.cfg.
Ponto de partida
Eu parto do princípio que você já possui um Servidor TFTP em execução.Pré-Requisitos
O único pré-requisito é o servidor ter um cliente de telnet.# yum install telnet
Criar a estrutura de diretórios
# mkdir -p /Backup/{Logs,Switches}Nesse exemplo estou partindo do princípio que você possui 10 Switches, altere de acordo com sua necessidade.
# for ((i=1; i<=10; i++))
do
mkdir /Backup/Switches/switch$i
done
Verificando a sintaxe do ativo
Antes de partirmos para o script em si, é preciso alguns passos:- Verificar se seu ativo possui suporte a telnet e, se está habilitado;
- Ler o manual para encontrar qual é a sintaxe de comando de backup das configurações e como exportá-las para um servidor TFTP;
- Rodar o comando de forma manual e ter certeza de que tudo funcionou como deveria;
- Verificar quanto tempo demora o upload da configuração para o Servidor TFTP.
Sintaxe de alguns equipamentos
Switch 3COM 4200Gtftp IP_TFTP put 3com4200g.cfg Switch.cfg
Switch 3COM 4800G
tftp IP_TFTP put 3comoscfg.cfg Switch.cfg
Switch D-Link DGS-3100 / DES-3226S
upload configuration IP_TFTP Switch.cfg
Switch D-Link DGS-3120
upload cfg_toTFTP IP_TFTP dest_file Switch.cfg
Switch D-Link DGS-3526
upload cfg_toTFTP IP_TFTP Switch.cfg
Automatizando o processo
A primeira dificuldade que encontramos é que ao realizar uma conexão telnet, estamos em outro equipamento, e por isso não podemos usar o Here Document como faríamos com um banco de dados, por exemplo, mas esse problema foi solucionado pelo Mago do Shell Script Julio César Neves:#(echo 'admin'; sleep 2; echo 'senha_ativo'; sleep 2; echo 'comando_ativo'; sleep 2; echo 'quit') | telnet IP_ATIVO
Por exemplo para o Switch 3COM 4800G:
# (echo 'admin'; sleep 2; echo 'S3NhAd0sW1TcH3'; sleep 2; echo 'pwd'; sleep 2; echo 'quit') | telnet 192.168.100.2
O Script
O Script pode ser baixado aqui e está todo comentado para melhor compreensão.Referências
Lista Shell Script Yahoo
Marcadores:
Administrador de Redes,
Backup,
CentOS,
FTP,
Gerencia de Redes,
Linux,
Scripts,
SysAdmin
sexta-feira, 24 de julho de 2015
Instalação de Servidor TFTP em Ambiente CentOS
Introdução
Um servidor TFTP é útil em pelo menos duas situações:- Manipulação de arquivos em ativos de rede, como por exemplo, atualização de firmware, backup e restore de configuração;
- Manter um backup de seus ativos de rede centralizados em um único diretório, que posteriormente vai para a unidade de fita, claro.
Ponto de partida
Eu parto do princípio que você já possui um Servidor CentOS 7 Básico.Instalação dos pacotes
# yum -y install tftp-server xinetdAtivar o serviço
# systemctl enable tftp.socketConfiguração das permissões
# chown -R nobody:nobody /var/lib/tftpboot/# chmod 777 /var/lib/tftpboot/
Personalização do arquivo de configuração
# vi /etc/xinetd.d/tftpservice tftp
{
disable = no
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s -c /var/lib/tftpboot
per_source = 11
cps = 100 2
flags = IPv4
}
Observação: Sem o parâmetro -c você não será capaz de criar novos arquivos, apenas de atualizar os já existentes.
Iniciar o serviço
# systemctl start xinetd# netstat -ntulp | grep 69
udp 0 0 0.0.0.0:69 0.0.0.0:* 1329/xinetd
Testar a comunicação com o serviço
Cliente TFTP para Linux
De preferência teste o envio a partir de outro servidor para ter certeza que tudo está funcionando.# yum install -y tftp
# cd /etc/
# tftp -v 192.168.0.181 -c put passwd
Connected to 192.168.0.181 (192.168.0.181), port 69
putting passwd to IP:passwd [netascii]
Sent 28437 bytes in 0.2 seconds [1228778 bit/s]
Observação: 192.168.0.181 é o IP do meu servidor de TFTP, não esqueça de alterar o endereço.
De volta ao servidor de TFTP:
# ls -l /var/lib/tftpboot/
total 28
-rw-rw-rw- 1 nobody nobody 28111 Jul 23 16:41 passwd
De volta ao servidor Cliente:
# cd ~
# tftp -v IP -c get passwd
Connected to 192.168.0.181 (192.168.0.181), port 69
getting from 192.168.0.181:passwd to passwd [netascii]
Received 28437 bytes in 0.0 seconds [82130090 bit/s]
# ls -l passwd
-rw-r--r-- 1 root root 28111 Jul 23 16:50 passwd
Observe que o arquivo tem exatamente o mesmo tamanho.
Cliente TFTP para Windows
Podemos baixar um cliente linha de comando para Windows em TFTP Client for WindowsDownload de um arquivo do TFTP Server
C:\>tftp.exe -i IP GET nome_arquivo_remoto nome_arquivo_local
Upload de um arquivo para o TFTP Server:
C:\>tftp.exe -i IP PUT nome_arquivo_local nome_arquivo_remoto
Download do arquivo passwd
C:\>tftp.exe -i 192.168.0.181 GET passwd passwd.txt
WinAgents TFTP Client version 2.0b Copyright (c) 2004-2011 by Tandem Systems, Ltd.
http://www.winagents.com - Software for network administrators
Transfering file passwd from server in octet mode...
Transferring data from 192.168.0.181...
Using blocksize = 512
Using TFTP timeout = 10s
Transfer size = 28111 bytes
File passwd was transferred successfully.
28111 bytes transfered for 1 seconds, 0 bytes/second
Referências
www.question-defense.comKnowledge Addict
Fórum CentOS.org
Tournas Dimitrios
TFTP Server for Windows
Marcadores:
Administrador de Redes,
CentOS,
FTP,
Gerencia de Redes,
Linux,
Software Livre,
SysAdmin
quarta-feira, 22 de julho de 2015
Servidor CentOS 7 Básico
Introdução
Com o advento do Systemd e a mudança de MySQL para MariaDB, algumas pessoas se assustam ao migrar de CentOS 6.X para 7.X, o objetivo desse post é prover uma instalação básica, mostrar alguns comandos para que você se sinta mais confortável e sugerir algumas boas práticas.Antes de continuarmos
Eu sou da época em que a ajuda e incentivo que a gente recebia era RTFM, fui criado no Slackware, então apesar de gostar de ensinar, algumas coisas permanecem, pois fazem parte da minha formação. Só para citar as principais:Servidor não tem interface gráfica, a menos que seja uma necessidade da aplicação;
Instalações são feitas sempre partindo-se do Minimal;
Só instale o que for necessário;
Servidor é 64 bits;
Cada aplicação precisa pacotes e ajustes específicos, esse post trata do que você deve fazer em todos os seus servidores.
Ajustes Pós Instalação
Partindo do princípio que você fez uma instalação Minimal do CentOS 7, logou pela primeira vez como root, vamos fazer alguns ajustes.Parar a execução do firewall:
# systemctl stop firewalldDesabilitá-lo permanentemente:
# systemctl disable firewalldrm '/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service'
rm '/etc/systemd/system/basic.target.wants/firewalld.service'
Conferir se o mesmo está desabilitado:
# systemctl is-enabled firewallddisabled
DICA: Você pode ver o status de todos os serviços com o comando abaixo:
# systemctl list-unit-files
Checar o estado do SELinux:
# getenforceEnforcing
Torna-lo permissivo:
# setenforce 0Checar o estado do SELinux:
# getenforcePermissive
DICA: Para desabilitar definitivamente o SELinux edite o arquivo /etc/selinux/config e altere a opção "SELINUX=enforcing" para "SELINUX=disabled". Isso pode ser feito por meio do comando:
# sed -i 's/enforcing/disabled/g' /etc/selinux/config
Observação: Estou desabilitando o Firewall e o SELinux porque cada servidor tem uma finalidade específica e, exige ajustes específicos para essa finalidade, então por padrão desabilito os dois, e se houver necessidade, reabilito e faço os ajustes específicos.
O EPEL - Extra Packages for Enterprise Linux é um repositório oficial com pacotes extras e as últimas versões dos pacotes. Podemos instalá-lo através do comando abaixo:
# rpm -Uvh http://download.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
O REMI é um repositório com pacotes adicionais aos do EPEL e/ou versões mais atualizadas do mesmo, dependendo do caso. Ele não funciona se o EPEL não estiver instalado, é um pré-requisito. Para instalar o remi, use o comando abaixo:
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
Além disso ele vem desabilitado, é preciso habilitá-lo:
# vi /etc/yum.repos.d/remi.repo
[remi]
name=Les RPM de remi pour Enterprise Linux 7 - $basearch
#baseurl=http://rpms.famillecollet.com/enterprise/7/remi/$basearch/
mirrorlist=http://rpms.famillecollet.com/enterprise/7/remi/mirror
#enabled=0
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
Feito isso atualize seu sistema:
# yum update -y
Este último comando vai atualizar todos os pacotes do seu sistema para as versões disponíveis no EPEL e REMI.
Dependencias Básicas
Esses são pacotes que precisamos para o dia-a-dia, independente da aplicação desse servidor. Lembre-se um Servidor Web tem necessidades diferentes de um Servidor de FTP.# yum -y install rsync bind-utils mlocate mailx wget net-tools make cmake automake man net-tools
Clamav
Todo servidor tem que ter antivírus? Mas não é Linux? Eu disse que ia lhe sugerir algumas boas práticas, mas são apenas sugestões, este é o meu setup de Servidor CentOS 7.# yum -y install clamav-server clamav-data clamav-update clamav-filesystem clamav clamav-scanner-systemd clamav-devel clamav-lib clamav-server-systemd
Precisamos comentar as linhas de exemplo:
# sed -i -e "s/^Example/#Example/" /etc/freshclam.conf
# sed -i -e "s/^Example/#Example/" /etc/clamd.d/scan.conf
E atualizar o clamav:
# freshclam
Precisamos comentar a linha abaixo:
# sed -i -e "s/^FRESHCLAM_DELAY/#FRESHCLAM_DELAY/" /etc/sysconfig/freshclam
Editar o arquivo scan.conf:
# vi /etc/clamd.d/scan.conf
E descomentar a linha:
#LocalSocket /var/run/clamd.scan/clamd.sock
Habilitar o Clamav, Inicia-lo e Checar se o processo está ativo:
# systemctl enable clamd@scan
# systemctl start clamd@scan
# systemctl status clamd@scan
Testar a verificação de um arquivo:
# clamdscan -c /etc/clamd.d/scan.conf /etc/hosts
Cron
Deixar um cron padrão para que qualquer um possa editá-lo:# crontab -e
# Exemplo de uso
# 0 4 * * * <usuario> who
# Campo Funcao
# 1o. Minuto
# 2o. Hora
# 3o. Dia do mes
# 4o. Mes
# 5o. Dia da semana
# 6o. Usuario com o qual o comando sera executado <opcional>
# 7o. Programa para execucao
# Campo Valores
# Minuto 0-59
# Hora 0-23
# Dia do mes 1-31
# Mes 1-12
# Dia da semana 0-6 (o "0" eh o domingo), 1 eh a segunda, etc.
# -----------------------------------------------------------------------------------------------
# Roda o update do antivirus todos os dias as 23:00
0 23 * * * /usr/bin/freshclam
Reiniciar o servidor:
#reboot
Referências
ISMAILYENIGUL
Marcadores:
Administrador de Redes,
CentOS,
Dicas,
Linux,
Open Source,
Software Livre,
SysAdmin
Assinar:
Postagens (Atom)

























