Dia: 26/03/2017
Link da Proposta no overleaf https://www.overleaf.com/read/fkjfmxshvxsq
gilberto2017.pdf
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
Protocolo SNMP, Mibs Privadas para Banco de dados
Prof. Dartagnan Faria
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.
* Como ambiente inicial para os testes eu montei um organograma no microsoft Visio para visualizar o que seria necessário instalar.
* 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
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
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í.
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:
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
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!
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.
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
Dia: 12/04/2017
Apresentação em PDF
seminario02.pdf
Site Viva o Linux Tutorial Nagios
https://www.vivaolinux.com.br/dica/Nagios-Core-406-no-Debian-7-Instalacao-e-configuracao
Site BR-Open Tutorial Mysql
http://www.br-open.com/?p=133
Site com Tutorias em Geral
https://www.server-world.info/en/