Dia: 26/03/2017
Link da Proposta no overleaf https://www.overleaf.com/read/fkjfmxshvxsq
gilberto2017.pdf

PROJETO INTEGRADOR

Discente: Gilberto da Silva Pinto
Curso: Redes de Computadores
E-mail: [email protected]
Endereço: Rua General Telles, 49 - Centro - Pelotas
CEP:96010310
Fone(s): (53) 81014614

TITULO

Protocolo SNMP, Mibs Privadas para Banco de dados

ORIENTADOR INFORMAL

Prof. Dartagnan Faria

Andamento

Dia: 26/03/2017
Para o Projeto foi efetuado as seguintes ações
* Aquisição de equipamento
Foi comprado um computador com as seguintes especificações; processador intel de 6 geração i3 , 8gb de ram, ssd de 120 gb para sistema operacional e hd sata de 1tb para dados.
* Foi instalado o sistema operacional microsoft windows 7 professional x64 edition.
* Na tentativa de instalar o GNS3 foi encontrada algumas dependências que se seguem:
* * Microsoft windows service pack 1.
* * Microsoft C run time.
* * VMWare Player 12.5 (Versão Freeware)
* * VMWare VIX (Integração do GNS3 com o VMWare)
* * Arquivo .ova do GNS3
* * Arquivo .bin dos roteadores Cisco
* * VM de Distribuição linux de baixo consumo de Hardware
* Foi efetuada a instalação do GNS3
* Foi efetuado o download e importação da VM do Core.
* Estudando sobre as ferramentas GNS3 e Core apartir de aulas gravadas pelo Monks no youtube.

Dia: 14/04/2017
* Foi Efetuado uma consulta com o Professor Monks sobre a proposta do trabalho, foi modificado o foco do trabalho do protocolo RMON para o SNMP com enfase em MIBs personalisadas para serviços como banco de dados.
* Foi dado andamento a montagem da estrutura necessária para o cenário de coleta de dados, inicialmente a instalação do GNS3 e posterior a instalação do CORE para emular o ambiente de rede. A escolha por estes sistemas de emulação se deve ao fato de ser possível a integração da rede local com a rede emulada, dando capacidade de coleta de dados por aplicativos como o Wireshark e também a integração com servidores como o Debian serem utilizados, sendo por uma maquina fisica na rede ou por uma maquina virtualizada.

Organograma da Estrutura

* Como ambiente inicial para os testes eu montei um organograma no microsoft Visio para visualizar o que seria necessário instalar.



Instalando o MySQL 5.

* Instalando um Banco de dados Mysql
Para a instalação de um banco de dados Mysql foi utilizado o sistema operacional Debian 7 emulado no VMWare Player. Depois de efetuado a instalação a partir de uma iso do tipo netinstall, onde o tamanho da iso em si é pequeno e tudo que é instalado é a partir de um repositório definido em /etc/apt/sources.list, foi efetuado a instalação do banco de dados em si, segue um mini tutorial da instalação:

 apt-get install mysql-server mysql-client 


Durante o processo de instalação será solicitado que você digite a senha de root do MySQL

New password for the MySQL “root” user: <– digite sua senha  
Repeat password for the MySQL “root” user: <– repita sua senha 


Instalando o Apache2.

 apt-get install apache2 


Agora acesse o navegador e digite o ip do seu servidor, no meu caso ficou http://192.168.2.50. Você deverá ver uma página como esta:

Se esta página apareceu pra você significa que seu Apache foi instalado corretamente e está tudo ok.

Algumas informações importantes sobre o Apache:

– Diretório default para hospedar paginas e sites no Debian: /var/www

– Arquivo de configuração: /etc/apache2/apache2.conf

– Configurações adicionais são armazenadas nos subdiretórios:

/etc/apache2

/etc/apache2/mods-enabled (para módulos)

/etc/apache2/sites-enabled (para virtual hosts)

/etc/apache2/conf.d

Instalando PHP5.

Vamos instalar o PHP e também o módulo para Apache com o seguinte comando:

 apt-get install php5 libapache2-mod-php5 


Agora iremos reiniciar o Apache:

 /etc/init.d/apache2 restart 


Testando e obtendo detalhes sobre nossa instalação do PHP5

Crie o seguinte arquivo:

 pico /var/www/info.php 


E insira este conteúdo:

<?php 
phpinfo(); 
?> 



Agora acesse novamente o endereço de seu servidor através do navegador e acrescente /info.php no final. No meu caso ficou assim http://192.168.2.50/info.php

Como você pode perceber o PHP está instalado e rodando corretamente. Você pode observar também todos os módulos que estão habilitados no PHP. Note que não temos o MySQL aparecendo aí.

Obtendo suporte ao MySQL no PHP5.

Instale os seguintes pacotes:

 apt-get install php5-mysql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl 


Agora reinicie o Apache:

 /etc/init.d/apache2 restart 


Dica: melhore a velocidade de suas páginas com o APC. APC é um free e open PHP opcode fazer cache e optimizar páginas PHP. Você pode instalar através do seguinte comando:

 apt-get install php-apc 


Reinicie novamente o Apache:

 /etc/init.d/apache2 restart 


E acesse novamente a página de informações do PHP:

Perceba que agora aparece o suporte ao MySQL.

Instalando o PhpMyAdmin.

O PhpMyAdmin é uma intarface web para administração de banco de dados do MySQL Server. Você pode fazer a instalação através do seguinte comando:

 apt-get install phpmyadmin 


Será solicitado as seguintes informações:

 Web server to reconfigure automatically: <– apache2 
Configure database for phpmyadmin with dbconfig-common? <– Não 


Após a instalação, você poderá acessar o PhpMyAdmin inserindo no navegador o ip do seu servidor e adicionar no final /phpmyadmin. No meu caso ficou assim:
http://192.168.2.50/phpmyadmin

Instalando um Nagios

Para que seja possível uma coleta organizada para analise do protocolo SNMP, foi efetuado a instalação de um segundo servidor Debian 7 virtualizado em um VMWarePlayer. Foi utilizada a mesma estrutura do Debian do Mysql, sendo uma cópia do mesmo servidor antes da instalação dos serviços de banco de dados.
Neste servidor foi instalado o Nagios, conforme tutorial que se segue:
Preparando o repositório do Debian para fazer update e upgrade:

 # nano /etc/apt/sources.list  

deb http://ftp.br.debian.org/debian whezzy main 
deb-src http://ftp.br.debian.org/debian whezzy main
deb http://security.debian.org/ whezzy/updates main 
deb-src http://security.debian.org/ whezzy/updates main 
deb http://ftp.br.debian.org/debian whezzy-updates main
deb-src http://ftp.br.debian.org/debian whezzy-updates main 
# apt-get update
# apt-get upgrade 



Baixar as dependências do Nagios:

 # apt-get install apache2 php5 build-essential libgd2-xpm-dev snmp snmpd libnet-snmp-perl libgd-tools xinetd rcconf -y 



Criar usuário nagios e grupo nagcmd:

 # useradd -m -s /bin/bash nagios # "-m" para criar a home e "-s" seta o shell do usuário 
# passwd nagios  
# groupadd nagcmd 
# usermod -a -G nagcmd nagios    # "-a" para acrescentar o grupo ("-G") nagcmd 
# usermod -a -G nagcmd www-data    # Adiciona o usuário www-data, já existente no sistema ao grupo nagcmd 



Criando a pasta para baixar os fontes:

# mkdir /usr/src/nagios 
# cd /usr/src/nagios  
# wget http://tenet.dl.sourceforge.net/project/nagios/nagios-4.x/nagios-4.0.6/nagios-4.0.6.tar.gz  
# tar -zxvf nagios-4.0.6.tar.gz    # "-z" para arquivo gzip, "-x" extrair, "-v" verbose e "-f" file aquivo 
# cd nagios 
# ./configure --prefix=/usr/local/nagios --with-command-group=nagcmd --enable-nanosleep --enable-event-broker --with-snmp --with-net-snmp --with-snmpwalk --with-snmptranslete --with-snmpget  
# make all 
# make install  
# make install-init  
# make install-commandmode  
# make install-config  
# make install-webconf  
# cp -R contrib/eventhandlers/ /usr/local/nagios/libexec/  
# chown -R nagios:nagios /usr/local/nagios/libexec/eventhandlers 



Criar usuário para acesso WEB ao Nagios:

 # htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin    # "-c" para criar o arquivo de senhas 



Baixar os plugins do Nagios no mesmo diretório acima:

# wget https://www.nagios-plugins.org/download/nagios-plugins-2.0.1.tar.gz  
# tar -xzvf nagios-plugins-2.0.1.tar.gz 



Iniciar a compilação dos plugins:

 # cd nagios-plugins-2.0.1 
# ./configure --with-nagios-user=nagios --with-nagios-group=nagios -with-snmp -with-snmpd -with-snmpwalk  
# make  
# make install 



Verificando se o Nagios está configurado corretamente:

# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg 



Adicionar o Nagios na inicialização do S.O.:

# ln -s /etc/init.d/nagios /etc/rc2.d/S99nagios 



Reiniciar o Nagios e Apache:

# /etc/init.d/apache2 reload 
# /etc/init.d/nagios start 



Baixando os plugins para notificação por e-mail:

# apt-get install sendEmail  
# apt-get install openssl libcrypt-ssleay-perl libio-socket-ssl-perl 



Configurar o arquivo commands.cfg com as informações de conta de envio, senha, etc.
* Obs.: Tudo em uma única linha a partir de: command_line /usr/bin/sendEmail

# nano /usr/local/nagios/etc/objects/commands.cfg  
define command {
 command_name notify-service-by-email
 command_line /usr/bin/sendEmail -s servidor_smtp -f e-mail_do_remetente -xu conta_de_envio -xp senha_para_autenticacao -t $CONTACTEMAIL$ -o tls=yes -u "** $NOTIFICATIONTYPE$:  $HOSTALIAS$/$SERVICEDESC$ esta com o status $SERVICESTATE$ **" -m "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$\n" 
} 



Se aparecer mensagem de erro no envio de e-mail:

invalid SSL_version specified at /usr/share/perl5/IO/Socket/SSL.pm
The SSL_version is being coded as "SSLv3 TLSv1" and the regular expression is failing. I hacked it as a workaround as follows... 


apague o $ do final dessa linha:

 m{^(!?)(?:(SSL(?:v2|v3|v23|v2/3))|(TLSv1[12]?))$}i 



Em:

# nano /usr/share/perl5/IO/Socket/SSL.pm 



Acesse o Nagios pelo endereço: http://192.168.2.60/nagios
E comece a monitorar e criar templates!

Core

Para Emular a rede onde irei criar o cenario, eu irei usar dois emuladores de rede, o GNS3 e o Core.
O Core está em uma VM Pronta que utilizei durante um curso ministrado pelo professor Monks.
Sendo necessário apenas rodar a mesma e carregar um template modificado do curso.
A ideia é fazer duas maquinas virtuais VPC ou alguma distribuição linux de baixo consumo de Hardware como o DSL - DawnSmall Linux.
Estas duas maquinas rodarão simultaneamente scripts prontos de consumo dos serviços de banco de dados do servidor Debian com o MYSQL.
A seguir uma tela com os testes de conectividade entre a rede emulada e os servidores virtuais.


Seminário 01

Dia: 14/04/2017
Foi Montado uma apresentação para o primeiro seminário.
seminario01gilberto2017.pdf

Dia: 21/04/2017
Após o Primeiro Seminário de andamento do projeto, foi definido com os comentários dos professores da banca presente que:
* O Uso do GNS3 só vai deixar mais complexo o trabalho e não é visto a necessidade de utilização do mesmo
* O Professor Vinicius ficou de obter informações de um trabalho da faculdade Católica sobre edição de Mibs privadas
* O Professor Monks orientou a fechar mais as definições do projeto, Alem de pedir um estudo mais detalhado do site Open-nms(http://www.net-snmp.org/wiki/index.php/Tutorials) na questão de criar Mibs personalizadas

Para continuar o projeto, irei pesquisar Mibs privadas e metodologias de criação das mesmas, mas não irei tentar criar uma, apenas irei extrair a informação do funcionamento de uma para aplicar nas Mibs que eu encontrar para uso.
Em relação ao fechamento do escopo do projeto, eu irei focar apenas no controle do banco de dados Mysql, inicialmente em uma unica instancia de base de dados, mas poderei conforme o avanço da pesquisa, abranger múltiplas bases de dados.
Para entender melhor o funcionamento do Protocolo SNMP, eu baixei do Site: https://www.webnms.com/simulator/download_confirm.html o Aplicativo WebNMS_Simulation_Toolkit_Windows64.exe (56 MB).
Foi efetuada a instalação e inicializado o WebNms Mib Browser.
Para que eu tenha agent a ser lido, foi ativado o recurso Agent SNMP do Windows de meu computador. Em sequencia foi definido uma comunidade somente leitura de nome pcdogil com permissão de acesso a partir de qualquer IP.

Com uso do Wireshark, o agente snmp do windows e o WebNms Mib Browser foi possível ver todo o processo de um get do protocolo.

Dia: 07/04/2017
Conforme datas previstas pelo Professor Angelo, o Artigo ja deve estar em fase de edição na próxima segunda-feira dia 08 de Maio.
Foi efetuado a criação de um novo projeto no overleaf e iniciado o trabalho de edição do artigo, o mesmo já se encontra com o Abstract, resumo e introdução.
Ele pode ser acessado pelo link https://www.overleaf.com/read/hcqztzhvwzmc

Seminário 02

Dia: 12/04/2017
Apresentação em PDF
seminario02.pdf

Referências

Última modificação: 2017/05/13 01:23