**Dia: 26/03/2017** \\ Link da Proposta no overleaf [[https://www.overleaf.com/read/fkjfmxshvxsq]] \\ {{:projeto12:gilberto2017.pdf|}} \\ ===== PROJETO INTEGRADOR ===== Discente: Gilberto da Silva Pinto \\ Curso: Redes de Computadores \\ E-mail: giltronix@gmail.com \\ 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. \\ {{:projeto12:organograma01.png?700|}} \\ \\ ===== 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: \\ {{:projeto12:apacheok.png|}} \\ 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: \\ \\ \\ 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 \\ {{:projeto12:phpok.png?500|}} \\ 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. \\ {{:projeto12:phpmysqlok.png?300|}} \\ ===== 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 \\ {{:projeto12:phpmyadminok.png?300|}} \\ ===== 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! \\ {{:projeto12:nagiosok.png?700|}} \\ ===== 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. \\ {{:projeto12:coretesteok.png?700|}} \\ \\ ===== Seminário 01 ===== **Dia: 14/04/2017** \\ Foi Montado uma apresentação para o primeiro seminário. \\ {{:projeto12: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. \\ {{:projeto12:snmpagentok.png?700|}} \\ 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. \\ {{:projeto12:snmpagent01.png?700|}} \\ **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 \\ {{:projeto12:seminario02.pdf|}} ===== Referências ===== 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/ \\