Prévia do material em texto
DESNVOLVIMENTO WEB NOME: JONAS MARCELO GOMES RA: 3548927805 PORTIFÓLIO – RELATÓRIO DE AULA PRÁTICA Passo Fundo/RS 2024 lOMoARcPSD|41205829 DISCIPLINA: PROGRAMAÇÃO E DESENVOLVIMENTO DE BANCO DE DADOS Acer Stamp 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...................................................................................................... 14 2.2 ATIVIDADE 02 - Virtualização e conteinerização - Virtualização VM........... 15 2.2.1 INTRODUÇÃO..................................................................................................... 15 2.2.2 DESENVOLVIMENTO........................................................................................ 16 2.2.3 CONCLUSÃO....................................................................................................... 26 2.3 ATIVIDADE 03 - Conteinerização com Docker:................................................ 27 2.3.1 INTRODUÇÃO..................................................................................................... 27 2.3.2 DESENVOLVIMENTO........................................................................................ 28 2.3.3 CONCLUSÃO....................................................................................................... 36 2.4 ATIVIDADE 04 - ANALISADOR DE PACOTES WIRESHARK................... 37 2.4.1 INTRODUÇÃO..................................................................................................... 37 2.4.2 DESENVOLVIMENTO........................................................................................ 38 2.4.3 CONCLUSÃO....................................................................................................... 45 3 CONCLUSÃO............................................................................................................ 46 REFERÊNCIAS............................................................................................................. 47 1 INTRODUÇÃO Nesta atividade prática, foi proposto 4 atividades sobre fundamentos da disciplina de Sistemas Distribuídos, sendo elas as seguintes: lOMoARcPSD|41205829 SUMÁRIO 1. Sincronização NTP: Nesta atividade prática, você aplicará a sincronização relógios através de servidor NTP em sistema operacional Linux e Windows. 2. Virtualização e conteinerização - Virtualização VM: Nesta atividade prática, você fará a criação de máquina virtual com sistema operacional GNU/Linux. 3. Virtualização e conteinerização - Conteinerização com Docker: Nesta atividade prática, você compreenderá como orquestrar o servidor web Apache em um cluster simples através do Docker. 4. Segurança em sistemas distribuídos: Compreender como um analisador de protocolos funciona. Trabalharemos com o Wire Shark. 2 DESENVOLVIMENTO 2.1 ATIVIDADE 01 - SINCRONIZAÇÃO NTP: 2.1.1 INTRODUÇÃO lOMoARcPSD|41205829 https://www.studocu.com/pt-br?utm_campaign=shared-document&utm_source=studocu-document&utm_medium=social_sharing&utm_content=roteiro-de-aula-pratica-sistemas-distribuidos A sincronização NTP é um processo que permite que os relógios de dispositivos de uma rede sejam sincronizados, utilizando um protocolo de tempo. O NTP é a sigla para Network Time Protocol, que significa "Protocolo de Tempo para Redes". O NTP é utilizado para sincronizar relógios de computadores, estações de trabalho, roteadores e outros equipamentos. A sincronização é feita com base em referências de tempo confiáveis, como os relógios atômicos do Observatório Nacional. Abaixo segue como fazer a instalação do protocolo NTP no Linux e no Windows. 2.1.2 DESENVOLVIMENTO • Realizando o exercício: lOMoARcPSD|41205829 Para a realização desta experiência em ambiente Linux foi utilizada uma máquina virtual no VirtualBox 7.0.14 com a distribuição Ubuntu 20.04.6 LTS (Focal Fossa). Passo 1. Abra o Terminal, pressionando as teclas “CTRL + T” do teclado Passo 2. Instale o serviço “ntp” através do gerenciador de pacotes “apt”, com o comando: sudo apt install ntp lOMoARcPSD|41205829 https://www.studocu.com/pt-br?utm_campaign=shared-document&utm_source=studocu-document&utm_medium=social_sharing&utm_content=roteiro-de-aula-pratica-sistemas-distribuidos lOMoARcPSD|41205829 Pacote NTP instalado com sucesso. Comando sudo apt install ntp Passo 3. Uma vez instalado o serviço, precisamos editar o arquivo de configuração do mesmo. Comando 2: sudo nano /etc/ntp.conf lOMoARcPSD|41205829 https://www.studocu.com/pt-br?utm_campaign=shared-document&utm_source=studocu-document&utm_medium=social_sharing&utm_content=roteiro-de-aula-pratica-sistemas-distribuidos O roteiro da aula aqui, nos indica de remover os endereços já na configuração e inserir o endereço do servidor do tempo brasileiro. Passo 4. Devemos remover essas informações, o que está abaixo da frase # Specify one or more NTC servers pressionando a tecla "DELETE" do teclado, até apagar tudo. (Tudo que começar com pool 1,2,3,.....) Ou seja, temos que excluir essas informações do arquivo ntp.conf. Passo 5. Agora devemos incluir, onde excluímos os dados no passo anterior, na linha abaixo do: # Specify one or more NTC servers. O comando: pool pool.ntp.br lOMoARcPSD|41205829 Passo 6. Salve essas alterações digitando "CTRL + X" no teclado, depois "S", e por fim, "ENTER". Passo 7. Reinicie o serviço ntp para ele utilizar essa nova configuração, com o servidor do NTP.br, com o comando 3. Comando 3: sudo service ntp restart lOMoARcPSD|41205829 https://www.studocu.com/pt-br?utm_campaign=shared-document&utm_source=studocu-document&utm_medium=social_sharing&utm_content=roteiro-de-aula-pratica-sistemas-distribuidos Passo 8. 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 e pontual, você poderá digitar o seguinte comando no Terminal: ntpq -p. Comando: ntpq -p lOMoARcPSD|41205829 • Procedimento no Windows Para realizar essa configuração em um sistema operacional Windows: Passo 1. Abra o Prompt de Comando (CMD), pressionando as teclas "WINKEY + R" do teclado, digitando "cmd" e OK. lOMoARcPSD|41205829 https://www.studocu.com/pt-br?utm_campaign=shared-document&utm_source=studocu-document&utm_medium=social_sharing&utm_content=roteiro-de-aula-pratica-sistemas-distribuidos Passo 2. Na janela do CMD vamos inserir o código a seguir e pressionar a tecla "Enter". Código: w32tm /config /syncfromflags:manual /manualpeerlist:0.pool.ntp.org Observamos que ao final do comando aparece a mensagem “ O comando foi concluído com sucesso”. lOMoARcPSD|41205829 Passo 3. Vamos utilizar o comando "net stop w32time" e "net start w32time" para parar o serviço e iniciar, reiniciando-o. • Comando para Parar: net stop w32time • Comando para Iniciar: net start w32time Após isso vamos forçar uma sincronização de data e hora para verificar se está tudo funcionando corretamente. Passo 4. Podemos forçar uma sincronização através do comando "w32tm /resync /rediscover". Através da saída podemos observar que nossa configuração foi feita com sucesso. lOMoARcPSD|41205829 https://www.studocu.com/pt-br?utm_campaign=shared-document&utm_source=studocu-document&utm_medium=social_sharing&utm_content=roteiro-de-aula-pratica-sistemas-distribuidos 2.1.3 CONCLUSÃO O NTP, se corretamente utilizado, é capaz de garantiras propriedades necessárias ao relógio do computador para o bom funcionamento das aplicações. Num primeiro momento isso pode parecer algo muito simples: "consultar o tempo em um servidor" e "ajustar o relógio local" de tempos em tempos. Mas na verdade o NTP faz muito mais do que isso. Uma característica básica e ao mesmo tempo importante do tempo é que ele sempre avança. O tempo não para e não volta atrás. Vários programas de computador fazem uso dessa característica e podem ter seu funcionamento comprometido se o relógio do computador inesperadamente passar a indicar um horário errado, especialmente se for um horário no passado. Isso se complica ainda mais na Internet, com vários computadores trocando informações entre si. Diante disso conseguimos perceber a importância do Protocolo NTP. lOMoARcPSD|41205829 2.2 ATIVIDADE 02 - VIRTUALIZAÇÃO E CONTEINERIZAÇÃO – VIRTUALIZAÇÃO VM 2.2.1 INTRODUÇÃO A virtualização é uma tecnologia que usa recursos tradicionalmente vinculados ao hardware. Com ela, é possível usar toda a capacidade de uma máquina física, distribuindo seus recursos entre muitos usuários ou ambientes. Entre os tipos de virtualizações está: Virtualização de sistema operacional, que torna possível a execução de vários sistemas operacionais em um único computador. Uma máquina virtual (VM) é um computador digitalizado que funciona em um servidor físico, utilizando recursos virtuais como CPU, memória e armazenamento. As VMs são executadas como computadores individuais, mas são independentes das outras e do computador físico. As VMs podem ser usadas para: Testar novos sistemas operacionais, executar software incompatível, criar e implantar aplicações na nuvem, fazer backup do sistema operacional, executar aplicativos legados em hardware moderno. Para criar VMs, é necessário utilizar um hypervisor, que é uma camada de software que aloca recursos de compatação física para cada VM. O VirtualBox é um software gratuito e de código aberto que permite criar, gerenciar e executar máquinas virtuais (VMs). Ele é multi-plataforma e pode ser usado em Windows, Mac OS X, Linux e Solaris. O VirtualBox é uma ferramenta útil para quem precisa usar mais de um sistema operacional ou para testar sistemas. Ele também pode ser usado para reduzir custos operacionais e implementar aplicações de forma segura. O VirtualBox é ideal para desenvolvedores, profissionais de TI e usuários comuns. Nas imagens a seguir serão exibidas as fases de configuração da máquina virtual e da instalação do sistema operacional hóspede. lOMoARcPSD|41205829 https://www.studocu.com/pt-br?utm_campaign=shared-document&utm_source=studocu-document&utm_medium=social_sharing&utm_content=roteiro-de-aula-pratica-sistemas-distribuidos Criação de máquina virtual com sistema operacional GNU/Linux, que como exemplo trarei o Debian através do software Oracle VM VirtualBox. • Instalação do Debian No VirtualBox devemos ir até a opção "Novo". Agora devemos definis um nome para nossa máquina virtual, quel tipo de sistema operacional. lOMoARcPSD|41205829 Definindo quantidade de memória RAM e processador. Criando um novo disco virtual. lOMoARcPSD|41205829 https://www.studocu.com/pt-br?utm_campaign=shared-document&utm_source=studocu-document&utm_medium=social_sharing&utm_content=roteiro-de-aula-pratica-sistemas-distribuidos Criada nossa máquina, já aparece na lista. Vamos nas configurações e apontamos a ISO do SO. lOMoARcPSD|41205829 Após isso, devemos pressionar o botão ok e depois “iniciar” Feito isso teremos a opção de instalar nossa maquina, ela deve ser selecionada e seguir as etapas de instalação até sua conclusão. lOMoARcPSD|41205829 https://www.studocu.com/pt-br?utm_campaign=shared-document&utm_source=studocu-document&utm_medium=social_sharing&utm_content=roteiro-de-aula-pratica-sistemas-distribuidos Terminada a instalação, a maquina virtual inicializará o novo SO lOMoARcPSD|41205829 2.2.3 CONCLUSÃO A virtualização usando aplicativos como o VirtualBox é uma poderosa ferramenta que oferecem diversas vantagens, incluindo a capacidade de testar e desenvolver software em diferentes sistemas operacionais, isolamento seguro de ambientes e eficiência no uso de recursos de hardware. No entanto, é importante estar ciente das possíveis sobrecargas de desempenho e das necessidades de recursos de hardware para garantir o funcionamento eficiente das máquinas virtuais. lOMoARcPSD|41205829 https://www.studocu.com/pt-br?utm_campaign=shared-document&utm_source=studocu-document&utm_medium=social_sharing&utm_content=roteiro-de-aula-pratica-sistemas-distribuidos 2.3 ATIVIDADE 03 - CONTAINERIZAÇÃO COM DOCKER:I 2.3.1 INTRODUÇÃO A conteinerização com Docker é 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 é uma ferramenta de conteinerização que permite criar contêineres de imagens do Docker. Os contêineres do Docker são executados no kernel do host, o que permite que vários processos e aplicações sejam executados separadamente. A conteinerização é uma tecnologia essencial para a migração para a nuvem. lOMoARcPSD|41205829 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, e para iniciar foi acessado o site: https://docker.com/products/docker-desktop/, e em seguida feito a inscrição com a criação da conta. lOMoARcPSD|41205829 https://www.studocu.com/pt-br?utm_campaign=shared-document&utm_source=studocu-document&utm_medium=social_sharing&utm_content=roteiro-de-aula-pratica-sistemas-distribuidos Depois de inscrito, foi necessário ir para a tela do Play with Docker através do link: https://labs.play-with-docker.com/, e clicar em Star (Começar). Ambiente de laboratório lOMoARcPSD|41205829 Com o acesso à plataforma: 1 Passo Foi adicionado 3 nós, que farão parte do cluster, através do botão "Add new instance". lOMoARcPSD|41205829 https://www.studocu.com/pt-br?utm_campaign=shared-document&utm_source=studocu-document&utm_medium=social_sharing&utm_content=roteiro-de-aula-pratica-sistemas-distribuidos 2 Passo: Foi escolhido o 1 nó para ser o mestre, através do seguinte comando docker swarm init --advertise-addr 192.168.0.28. Este comando define esse nó como manager do cluster. Repare que, ao executar esse comando, é apresentada uma saída, com a mensagem: (To add a worker to this swarm, run the following command) “Para adicionar um worker ao swarm, execute o seguinte comando”, conforme pode ser visto na Figura. lOMoARcPSD|41205829 Sendo assim, foi copiado a saída que foi apresentada (destacada em vermelho na Figura), pois esse comando deverá ser executado em cada um dos demais nós do cluster, adicionando estes como workers desse cluster. lOMoARcPSD|41205829 https://www.studocu.com/pt-br?utm_campaign=shared-document&utm_source=studocu-document&utm_medium=social_sharing&utm_content=roteiro-de-aula-pratica-sistemas-distribuidos 3 Passo: Agora que os nós estão criados e seus papéis 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. Este comando criou 5 instâncias de um servidor web Apache, que responderá na porta mapeada (80, nesse caso) e, para facilitar a monitoração demos um nome a este serviço: "WEB". lOMoARcPSD|41205829 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.I lOMoARcPSD|41205829 https://www.studocu.com/pt-br?utm_campaign=shared-document&utm_source=studocu-document&utm_medium=social_sharing&utm_content=roteiro-de-aula-pratica-sistemas-distribuidos 4 Passo: Para finalizar,acessar a página de boas-vindas desse servidor Apache através dos endereços IPv4 de cada nó onde esse serviço web estiver rodando. E veremos a famosa mensagem "It works!" do Apache. Servidor rodando o nó 1. Servidor rodando o nó 2. Servidor rodando o nó 3. 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, é 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 escalabilidade. lOMoARcPSD|41205829 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 tráfego em tempo real e identifiquem a origem dos problemas. lOMoARcPSD|41205829 https://www.studocu.com/pt-br?utm_campaign=shared-document&utm_source=studocu-document&utm_medium=social_sharing&utm_content=roteiro-de-aula-pratica-sistemas-distribuidos 2.4.2 DESENVOLVIMENTO Para a realização desta experiência foi utilizado o WireShark 4.4.3. lOMoARcPSD|41205829 • Exploração dos menus e execução do roteiro da prática. Abertura do aplicativo que mostra todas as interfaces de redes disponíveis no sistema. O objetivo deste programa é capturar e analisar o tráfego que viaja em uma rede, é possível guardar os dados de captura em um arquivo, para acesso futuro. Mas, a peculiaridade 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. lOMoARcPSD|41205829 https://www.studocu.com/pt-br?utm_campaign=shared-document&utm_source=studocu-document&utm_medium=social_sharing&utm_content=roteiro-de-aula-pratica-sistemas-distribuidos No menu principal, será apresentada uma caixa listando as interfaces de rede. Selecione a interface e clique em Start. lOMoARcPSD|41205829 Esta atividade é chamada de farejamento, pois em inglês este processo é chamado de sniffing, porque é assim que conseguimos "sentir" e individuar os dados interessantes. lOMoARcPSD|41205829 https://www.studocu.com/pt-br?utm_campaign=shared-document&utm_source=studocu-document&utm_medium=social_sharing&utm_content=roteiro-de-aula-pratica-sistemas-distribuidos Construtor de Filtros A caixa de diálogo de construção de filtros é um recurso que torna mais fácil a utilização do Wireshark pelos usuários para capturar e criar filtros de exibição. Para acessar esta caixa de diálogo: 1 - Clique no menu Analyze; 2 - Opção Display Filter Expression. lOMoARcPSD|41205829 Na janela de seleção dos filtros pré-configurados é possível colocar chaves específicas de busca colocando, por exemplo, o nome de um disposto e visualizar os pacotes que incluam aquela palavra, ou excluam a mesma dos resultados. 2.4.3 CONCLUSÃO Em resumo, o Wireshark é 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 e entusiastas. 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 tráfego de dados em profundidade. lOMoARcPSD|41205829 https://www.studocu.com/pt-br?utm_campaign=shared-document&utm_source=studocu-document&utm_medium=social_sharing&utm_content=roteiro-de-aula-pratica-sistemas-distribuidos