Prévia do material em texto
NOME: SAMUEL POTTER BARBOSA RA: 3853759205 PORTIFÓLIO – RELATÓRIO DE AULA PRÁTICA DISCIPLINA: SISTEMAS DISTRIBUÍDOS 1 Sumário 1 INTRODUÇÃO................................................................................................…...…………….3 2 DESENVOLVIMENTO...........................................................................................…………….4 2.1 ATIVIDADE 01 – Sincronização NTP...............................................................……………..4 2.1.1 INTRODUÇÃO................................................................................................…………….4 2.1.2 DESENVOLVIMENTO.....................................................................................…………….5 2.1.3 CONCLUSÃO................................................................................................…………….10 2.2 ATIVIDADE 02 – Virtualização e conteinerização – Virtualização VM..........…………...11 2.2.1 INTRODUÇÃO...............................................................................................…………….11 2.2.2 DESENVOLVIMENTO...................................................................................…………….12 2.2.3 CONCLUSÃO................................................................................................…………….13 2.3 ATIVIDADE 03 – Conteinerização com Docker...............................................…………..14 2.3.1 INTRODUÇÃO..............................................................................................…………….14 2.3.2 DESENVOLVIMENTO...................................................................................…………….15 2.3.3 CONCLUSÃO................................................................................................…………….19 2.4 ATIVIDADE 04 – Analisador de pacotes Wireshark.........................................………….20 2.4.1 INTRODUÇÃO..............................................................................................…………….20 2.4.2 DESENVOLVIMENTO...................................................................................…………….21 2.4.3 CONCLUSÃO................................................................................................…………….23 3 REFERÊNCIAS...................................................................................................…………….24 2 1. INTRODUÇÃO Este trabalho apresenta o desenvolvimento de quatro atividades práticas sobre Sistemas Distribuídos: 1. Sincronização NTP: Ajuste de relógios em sistemas Linux e Windows. 2. Virtualização: Criação e configuração de uma VM GNU/Linux. 3. Conteinerização: Gerenciamento de um servidor Apache em cluster com Docker. 4. Segurança: Estudo de protocolos de rede através do analisador Wireshark. 3 2. DESENVOLVIMENTO 2.1 Atividade 01 – Sincronização NTP 2.1.1 Introdução A sincronização NTP (Network Time Protocol) é o processo fundamental que permite o alinhamento temporal entre os relógios de diversos dispositivos em uma rede. Essencial para a integridade de logs, transações financeiras e autenticação em sistemas distribuídos, o protocolo opera sob uma arquitetura cliente-servidor ou peer-to-peer. O NTP é amplamente utilizado para sincronizar computadores, estações de trabalho, roteadores e outros ativos de rede. Essa precisão é garantida por meio de referências de tempo de alta confiabilidade, conhecidas como Relógios de Estrato 0, que incluem relógios atômicos e receptores GPS — como os mantidos pelo Observatório Nacional no Brasil. 4 2.1.2 Desenvolvimento Para realizar a atividade em um ambiente Linux foi criada uma máquina virtual no Virtualbox 7.0.14 com a distribuição Ubuntu. Seguindo com a atividade, abrimos o terminal no Linux e começamos com o primeiro comando (sudo apt install ntp) para a instalação do serviço NTP: 5 Seguindo para o segundo comando (sudo nano /etc/ntp.conf): O roteiro da atividade, nos indica remover os endereços já na configuração e inserir o endereço do servidor brasileiro (pool pool.ntp.br), e apagar todos os comandos pool anteriores: 6 Logo após usamos o terceiro comando (sudo service ntp restart) para reiniciar o serviço NTP e utilizar a nova configuração: Feito isso, o serviço estará configurado adequadamente e já estará funcionando, consultando um conjunto de servidores NTP através da internet. Adicionalmente, para fazer uma consulta manual, você poderá digitar o seguinte comando no terminal: ntpq –p: 7 Procedimento do Windows Para realizar a configuração no Windows, temos que abrir o CMD executando como administrador, em seguida inserimos o código: w32tm /config /syncfromflags:manual /manualpeerlist:0.pool.ntp.org Logo após, vamos utilizar os comandos “net stop w32time” e “net start w32time” para parar e iniciar o serviço, reiniciando-o. Logo após, vamos utilizar os comandos “net stop w32time” e “net start w32time” para parar e iniciar o serviço, reiniciando-o. 8 Feito isso, vamos forçar uma sincronização de data e hora para verificar se esta tudo funcionando corretamente, utilizando o comando: w32tm /resync /rediscover 9 2.1.3 Conclusão A implementação do protocolo NTP vai muito além do simples ajuste de horas; ela assegura a integridade temporal necessária para a consistência de sistemas distribuídos. Embora a lógica de “consultar e ajustar” pareça simples, o NTP gerencia variáveis complexas de latência e deriva para garantir a monotonicidade do tempo. Como o tempo é uma variável que apenas avança, qualquer retrocesso ou salto inesperado no relógio local pode causar falhas críticas em registros de logs, transações bancárias e protocolos de segurança. Portanto, em um ambiente de rede onde a coordenação entre múltiplos nós é vital, o NTP estabelece a base de confiança temporal necessária para a interoperabilidade global. 10 2.2 Atividade 02 – Virtualização e Conteinerização – Virtualização VM 2.2.1 Introdução A virtualização é um processo que permite a utilização mais eficiente do hardware f ísico do computador e é a base da cloud computing. A virtualização usa software para criar uma camada de abstração sobre o hardware do computador que permite que os elementos de hardware de um único computador, como processadores, memória, armazenamento e muito mais, sejam divididos em vários computadores virtuais, comumente chamados de máquinas virtuais (VMs). Cada VM executa seu próprio sistema operacional (SO) e se comporta como um computador independente, apesar de estar em execução em apenas uma parte do efetivo hardware de computador subjacente. O VirtualBox é um programa de virtualização desenvolvido pela Oracle. Com ele, é possível instalar e rodar diferentes sistemas operacionais em um único hardware f ísico, ou seja, o usuário consegue executar o Mac dentro do Windows, por exemplo. 11 2.2.2 Desenvolvimento Vamos criar uma máquina virtual com sistema operacional GNU/Linux, que como a atividade propõe, usaremos o Dermian e faremos todas as configurações instruídas para rodarmos a máquina: 12 2.2.3 Conclusão A virtualização usando aplicativos como o Virtualbox, e uma poderosa ferramenta que oferecem diversas vantagens, incluindo a capacidade de testar e desenvolver softwares em diferentes sistemas operacionais, isolamento seguro de ambientes e eficiência no uso de recursos de hardware. No entanto, e importante estar ciente das possíveis sobrecargas de desempenho e das necessidades de recursos de hardware para garantir o bom funcionamento e eficiência das máquinas virtuais. 13 2.3 Atividade 03 – Conteinerização com Docker 2.3.1 Introdução A conteinerização com Docker e uma tecnologia que permite criar e utilizar contêineres Linux para executar aplicações. Os Contêineres são ambientes isolados que contém todos os componentes necessários para executar um programa. O Docker e um software de código aberto usado para implantar aplicativos dentro de containers virtuais. A conteirerização permite que váriosaplicativos funcionem em diferentes ambientes complexos. 14 2.3.2 Desenvolvimento A Realização dessa atividade tem como objetivo compreender como orquestrar o servidor web Apache em um cluster simples através do Docker, para iniciar e preciso acessar o site oficial e fazer a inscrição para a criação da conta. Depois de inscrever-se você irá para a tela Play with Docker https://labs.play-withdocker.com/ e clique em Start (iniciar); 15 Com acesso a plataforma foi adicionado 3 nós que farão parte do cluster, através do botão “Add new instance”: Após isso, foi escolhido o primeiro nó para ser o mestre, utilizando o comando: docker swarm init --advertise-addr 198.162.0.18. 16 Esse comando define esse nó como o manager do cluster. Repare que, ao executar esse comando, e apresentada uma saída com a mensagem: “To add worker to this swarm, run the following command” (Para adicionar um worker ao swarm, execute o seguinte comando). E com os nós criados e seus papeis definidos, para criar o serviço que estará rodando (de maneira distribuída, replicada) do servidor web Apache, foi digitado o seguinte comando no nó mestre: docker service create --name WEB --publish 80:80 --replicas=5 httpd Para saber em quais nós as 5 réplicas desse serviço estão sendo executadas, digite o seguinte comando: Docker service ps WEB 17 18 2.3.3 Conclusão A conteinerização com Docker oferece uma maneira eficiente e consistente de desenvolver, implantar e gerenciar aplicações. Utilizando contêineres, e possível garantir que o ambiente de execução seja o mesmo em todas as etapas do ciclo de desenvolvimento, reduzindo problemas de compatibilidade e facilitando a escabilidade. 19 2.4 Atividade 04 – Analisador de Pacotes Wireshark 2.4.1 Introdução Wireshark é um analisador de protocolos utilizado para monitorar o tráfego de rede. Esse software captura pacotes de dados transmitidos em uma rede local, permitindo assim que administradores de rede analisem e resolvam problemas de comunicação ou identifiquem possíveis ameaças à segurança. Também conhecido como sniffers, esses analisadores de protocolo conseguem capturar a maioria dos pacotes de dados utilizados em uma rede, além de fornecer vários recursos para filtragem e para visualização dos dados capturados. O wireshark ajuda na identificação e resolução de problemas de comunicação, congestionamento e latência, permitindo que os administradores de rede analisem o trafego em tempo real e identifiquem a origem dos problemas. 20 2.4.2 Desenvolvimento Para a realização da atividade proposta, foi utilizado o software Wireshark versão estável 4.4.3. Faremos o download e a instalação do Wireshark seguindo as especificações do software. O objetivo desse programa e capturar e analisar o trafego que viaja em uma rede, e possível guardar dados de captura em um arquivo, para acesso futuro. A peculiaridade do programa consiste na possibilidade de criar filtros ou usar filtros pré- configurados e selecionar os pacotes e os protocolos de comunicação que nos interessam, em tempo real ou sobre uma captura feita anteriormente. Para tal fim devemos selecionar a rede que deve ser analisada. No meu principal, será apresentada uma caixa listando as interfaces de rede. Selecione a interface e clique em start. 21 Esta atividade e chamada de farejamento (sniffing), porque e assim que conseguimos “sentir” e separar os dados interessados. Construtor de filtros A caixa de diálogo de construção de filtros e um recurso que torna mais fácil a utilização do Wireshark pelos usuários para capturar e criar filtros de exibição. Para acessá-la, clique no menu Analyze e em seguida na opção Display Filter Expression. Na janela de seleção dos filtros pré-configurados e possível colocar chaves especificas de busca, colocando, por exemplo, o nome de um dispositivo e visualizar os pacotes que incluam aquela palavra, ou excluam a mesma dos resultados. 22 2.4.3 Conclusão O Wireshark e uma ferramenta indispensável para análise e monitoramento de redes. Sua capacidade de capturar pacotes de dados em tempo real e fornecer uma análise detalhada, faz dele uma escolha popular entre profissionais de TI. Com filtros avançados, suporte a centenas de protocolos e uma interface gráfica amigável, o Wireshark ajuda a resolver problemas de rede, garantir a segurança e entender o trafego de dados em profundidade. 23 3 REFERÊNCIAS https://www.ibm.com/docs/pt/i/7.4?topic=considerations-time-synchronization- using%0D%0Antphttps://www.ibm.com/br-pt/topics/virtualizationhttps://blog.infnet.com.br/ %0D%0Avirtualizacao/virtualbox-o-que-e-para-que-serve-e-como-usar/https:// %0D%0Awww.hostinger.com.br/tutoriais/o-que-e-dockerhttps://www.controle.net/faq/ %0D%0Awireshark-software-que-analisa-pacotes-e-protocolos-de-rede27 24 https://www.ibm.com/docs/pt/i/7.4?topic=considerations-time-synchronization-using%0D%0Antphttps://www.ibm.com/br-pt/topics/virtualizationhttps://blog.infnet.com.br/%0D%0Avirtualizacao/virtualbox-o-que-e-para-que-serve-e-como-usar/https://%0D%0Awww.hostinger.com.br/tutoriais/o-que-e-dockerhttps://www.controle.net/faq/%0D%0Awireshark-software-que-analisa-pacotes-e-protocolos-de-rede27 https://www.ibm.com/docs/pt/i/7.4?topic=considerations-time-synchronization-using%0D%0Antphttps://www.ibm.com/br-pt/topics/virtualizationhttps://blog.infnet.com.br/%0D%0Avirtualizacao/virtualbox-o-que-e-para-que-serve-e-como-usar/https://%0D%0Awww.hostinger.com.br/tutoriais/o-que-e-dockerhttps://www.controle.net/faq/%0D%0Awireshark-software-que-analisa-pacotes-e-protocolos-de-rede27 https://www.ibm.com/docs/pt/i/7.4?topic=considerations-time-synchronization-using%0D%0Antphttps://www.ibm.com/br-pt/topics/virtualizationhttps://blog.infnet.com.br/%0D%0Avirtualizacao/virtualbox-o-que-e-para-que-serve-e-como-usar/https://%0D%0Awww.hostinger.com.br/tutoriais/o-que-e-dockerhttps://www.controle.net/faq/%0D%0Awireshark-software-que-analisa-pacotes-e-protocolos-de-rede27 2. DESENVOLVIMENTO 2.1 Atividade 01 – Sincronização NTP 2.1.1 Introdução