Artigo cientifico - Containers
Tags: security, opensource
Published: 2020-05-07 11:17:41

##**Introdução**##

###O que são? Para que servem?###

Hoje em dia, é cada vez mais necessário agilidade e funcionalidade na T.I. E com novas tecnologias, somos beneficiados pela praticidade, por exemplo, com o uso dos containers, e é sobre eles que nosso grupo irá apresentar. Mas o que são containers? Quais são as vantagens de usa-los?

Primeiramente vamos entender o que são os containers. Todos aqui já viram um food truck, certo. Todo mundo já deve ter comido pelo menos uma vez em um desses, seja qual for seu tipo preferido de comida. Mas o que isso tem a ver  com os containers? Vou usar esses "carros de comida" para fazer uma analogia.
Nós vemos em uma praça vários desses carrinhos, cada um com seu tipo especifico de alimento.
  Dentro de cada food truck só vai ter os ingredientes necessários para fazer um tipo de comida. Por exemplo, em um carrinho de cachorro quente não vai nutella ou banana, por que esses ingredientes não servem parar fazer o produto, seria desnecessário ter esses ingredientes guardados. 
  E é ai que entra o container! Os containers seriam os food trucks, e dentro de cada containers só teriam os "ingredientes" necessários para executar e servir a aplicação necessária.
  Dessa forma, a operação é otimizada e os containers são capazes de reduzir o tamanho dos dados consideravelmente. Assim, é possível mover um container para diferentes servidores e atingir a mesma funcionalidade.  
 
   Os containers extremamente práticos, e são uma "mão na roda" quando se precisa virtualizar aplicações. Vou mostrar porque  um container  é melhor até que uma máquina virtual.
  Em um ambiente de trabalho ha uma constante mudança e exigência de serviços, e principalmente para a equipe de T.I fazer essas mudanças pode ser um trabalho desgastante. Para facilitar esse trabalho, nas ultimas décadas surgiram as máquinas virtuais. De fato, as VM's são praticas porque elas poderiam ser clonadas, copiadas, migradas e ativadas ou desativadas para atender à demanda ou economizar recursos.
As máquinas virtuais também ajudaram a reduzir custos, porque mais VM's poderiam ser instaladas em menos máquinas físicas.
Mas elas não trazem todos os benefícios necessários, já que as máquinas virtuais são grandes (gigabytes), cada uma contendo um sistema operacional completo. Apenas alguns aplicativos virtualizados podem ser estabilizados em um único sistema. Equipar uma VM ainda leva um bom tempo.

 É então que surgem os containers. Eles isolam um único aplicativo e suas dependências - todas as bibliotecas externas de software que o aplicativo precisa executar - tanto do sistema operacional subjacente quanto de outros containers. Todos os aplicativos em container compartilham um único sistema operacional comum (Linux ou Windows), mas eles são compartilhados entre um e outro e do sistema como um todo.
 Os containers permitem um uso mais eficiente dos recursos do sistema, além de usarem muito menos memória do que as máquinas virtuais, eles são inicializados e interrompidos mais rapidamente e podem ser armazenados muito mais densamente em um hardware host. Os containers são leves, portáteis e facilitam a construção de software em linhas de pensamento avançado, o que facilita o trabalho de técnico. 


##**Instalação e configuração de containers**##

Para fazermos uso dos containers são necessários alguns passos, para fazer sua instalação e sua configuração. Vamos ver o que é o Docker e o Portainer. 

###Docker###

 O Docker é uma plataforma open source na linguagem de programação Go. O Docker agrupa partes de softwares de um sistema de arquivo completo e que abrange todos os recursos necessários para a sua execução.
Cria, testa e implementa aplicações em um ambiente separado da máquina original, ou seja, nos containers. Em termos bem simples, ele cria containers.

###Instalando o Docker

1- Abra o terminal com o atalho Ctrl + Alt + T. Baixe as últimas atualizações do sistema.

>$ sudo apt update && sudo apt upgrade

2- Instale utilizando o repositório do Ubuntu 18.04

>$ sudo apt install docker.io

3- Inicie o Docker

>$ sudo systemctl start docker

4- Entretanto, garanta que ele seja iniciado após a reinicialização


>$ sudo systemctl enable docker


5- Caso queira verificar a versão instalada


>$ docker -v

6- Pra executar um container.

Para iniciar um container é necessário saber a partir de qual imagem será executado. Para listar as imagens que seu Docker host tem localmente, execute o comando abaixo:

>$ docker image list

###Portainer###

 O portainer é uma interface Web onde roda localmente (dentro do seu Docker) e é possível gerenciar as imagens, entre diversas outras opções. O Portainer conta com uma Community Edition open source e facilmente instalável. 
   O portainer é uma interface Web onde roda localmente (dentro do seu Docker) e é possível gerenciar as imagens, entre diversas outras opções. O Portainer conta com uma Community Edition open source e facilmente instalável. Em termos bem simples, ele configura os containers.

###Instalando o Portainer

1-A instalação do Portainer é extremamente simples. Basta que você tenha instalado o Docker, depois da instalação rode o comando abaixo para criar um volume persistente para os dados do Portainer:

>sudo docker volume create portainer_data

2-E o comando a seguir para instalar o Portainer em si:

>sudo docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer

###Segurança

Assim como em qualquer outro lugar, A area da T.I exige uma base solida de segurança. Para que o nosso trabalho com containers seja seguro, vamos falar de uma ferramenta que vai nos auxiliar.

###Honeypot###

Um honeypot é um recurso computacional de segurança dedicado a ser sondado, atacado ou comprometido. Ele foi projetado para pesquisa e obtenção de informações dos invasores. Em termos simples, o Honeypot simula ataques para que possamos ver com antecedência onde nossa rede teria um ponto fraco. Ele serve para simulações e não necessariamente atua como proteção.

##**Recursos para o Projeto**

* Servidor - Ubunto server
* Instalação do Docker
* Instalação do Portainer
* Emby server

##**Processo**

1-Instalar o Docker

>curl -sSL https://get.docker.com/ | sh

2-Teste Docker

>docker run hello-world

3-Instalar o Portainer

>sudo docker run -d --name portainer --privileged -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v /home/pi/data/portainer:/data portainer/portainer

4-Ver se esta instalado e qual a sua localização

>docker container ls         --> caso esteja rodando
>docker container ls -a   --> lista todos os containers em docker

5-Iniciar o portainer junto com o sistema#

>docker update --restart=always #      --> # a ser substituida 

6-Reiniciar o servidor#

>reboot

7-Abrir navegador e ver se foi iniciado#

>sim ou não: sim

###Instalação e configuração Emby Server

Este é o aplicativo do Emby que distribuirá sua mídia para outros dispositivos. Deve ser instalado onde você mantém seus arquivos, o que normalmente é seu computador pessoal. Os passos para instalar o Emby Server são:

1-Baixe o instalador do Emby para seu sistema operacional. Você pode encontrar o instalador no site oficial do Emby.
Abra o arquivo. Ele irá automaticamente baixar a versão mais atualizada do servidor.

2-Escolha a língua de sua preferência para o Emby.

3-Na próxima tela, você pode escolher o nome para seu perfil e conectar sua conta do Emby. É recomendável que você faça uma conta no Emby para que possa se conectar ao servidor com esta conta, ao invés da necessidade de saber o IP do servidor.

4-Depois você pode adicionar a fonte de suas mídias para o Emby. Você pode pular este passo agora, caso deseje escolher uma pasta mais tarde.

5-Em seguida a instalação então pedirá para que você escolha a língua de sua preferência para Metadata. O Emby recolhe de fontes online a informação sobre suas músicas, filmes e séries e adiciona estas informações a seus arquivos. Com esta opção você escolhe em que língua quer estas informações.

6-Logo depois estão as configurações de acesso remoto. É recomendável que selecione as duas opções caso deseje ter acesso remoto a seu servidor. A opção de UPnP (Universal Plug and Play) facilita a conexão, mas pode não funcionar como esperado, pois alguns roteadores ou provedores bloqueiam essa funcionalidade.

7-Depois é só assinar os termos de serviço e pronto, o Emby está instalado!

-Como Acessar As Configurações do Emby:

As maneiras mais comuns para acessar o seu Emby Server são ou através do aplicativo para Android ou iOS, ou através de seu navegador. É muito simples acessar pelo aplicativo, pois o mesmo vai detectar se existe algum servidor Emby na mesma rede que você. Caso prefira acessar pelo navegador, você vai precisar saber o IP da máquina que hospeda o Emby, e adicionar a porta 8096. Por exemplo,  caso o IP do servidor seja 192.168.0.1, você deve adicionar a porta inserindo “:8096”. Então para acessar o Emby Server, neste exemplo, você precisa digitar na barra de endereços de seu navegador: 192.168.0.1:8096 (ou seja, o IP da máquina, dois pontos e o número da porta usada pelo Emby).
Agora que você teve acesso ao Emby Server, você pode acessar suas configurações.  Para isso, deve clicar no último botão no canto superior direito de seu Server, com o símbolo da roda dentada. Isso abrirá as configurações.

-Entendendo As Configurações do Emby:

No canto direito você terá acesso a notícias e atualizações do aplicativo. Logo ao lado, você poderá ver o registro de acessos, que é relevante para aquelas pessoas que compartilham o Emby com outros usuários através da Internet. Com este registro você pode se sentir mais seguro, pois saberá exatamente quem acessou o seu Emby, tentativas de login fracassadas, etc…
Nesta tela inicial também é possível ver quem está conectado ao seu servidor em tempo real, tornando possível um controle dos usuários já que você pode os desconectar, tornar o uso de senha obrigatório e até cancelar acessos. É também a partir desta tela que podemos acessar as outras configurações, como veremos à seguir.

-Ajustes Gerais:

Na aba ajustes gerais, você encontrará informações sobre configurações básicas do aplicativo, como idioma e atualizações.
Nesta aba você também poderá definir também uma pasta parar salvar o cache. Esta configuração é relevante para usuários mais avançados, que possuem vários acessos no servidor ao mesmo tempo. Ela requer um pouco mais de conhecimento técnico e não é relevante para a maior parte dos usuários.
A configuração “Permitir ao servidor reiniciar automaticamente para aplicar as atualizações” já vem ativada de padrão pelos desenvolvedores do aplicativo. Eles nos garantem que podemos deixá-la ativada, pois não nos causa nenhum problema enquanto estamos assistindo nossos filmes ou séries favoritas. Isto é porque o servidor só será reiniciado automaticamente caso ninguém esteja usando o aplicativo.
Nesta tela você poderá também mudar configurações caso possua uma página online onde pretende disponibilizar acesso a seu servidor. Por exemplo, você pode alterar o código CSS da tela de login como desejar.  Você também pode definir um aviso legal para os visitantes do seu site, como por exemplo uma política de privacidade ou termo de condições de uso.  Isto é muito útil para quem compartilha filmes, séries e outros conteúdos fora de sua rede local ou com estranhos.

-Configurações de Mídia:

A aba mais importante do Emby é a Biblioteca, já que é através dela que você pode adicionar mais conteúdo a seu Emby.  O Emby já vem com suporte nativo para os seguintes tipos de mídia:
-Filmes
-Música
-Séries
-Livros de Áudio
-Livros
-Jogos
-Vídeos musicais
-Fotos & Vídeos caseiros
-Conteúdo Misto

Para adicionar nova mídia a seu Emby, você deve primeiro selecionar a opção “Adicionar Nova Biblioteca de Mídia” dentro da aba Biblioteca.
Na janela que surgiu no centro da sua tela, clique no menu suspenso e selecione o tipo de mídia que deseja adicionar, como por exemplo Filmes. Pronto, agora você definiu para o Emby que você está prestes a adicionar uma biblioteca contendo filmes.
O próximo passo é adicionar uma pasta contendo  seus filmes.  Para isso, clique no botão com sinal de adicionar (+) ao lado do título Pastas e selecione o caminho onde se encontra a pasta da sua mídia. Após adicionar, seu conteúdo está pronto para ser compartilhado!

-Habilitando o download automático de legendas:

Uma das melhores funções do Emby é a opção de baixar automaticamente legendas para os seus filmes no idioma que você escolher. Além de cómoda, essa função funciona muito bem.  É muito raro o Emby não encontrar a legenda certa para seus filmes!
Para escolher a legenda de seus filmes, vá até a mesma opção que usamos  para selecionar a pasta que contém os filmes da nossa recém-criada biblioteca. Perto do fim desta tela você poderá encontrar a secção “Download de Legendas”.
Agora basta selecionar as línguas de sua preferência, e pronto! O Emby irá procurar a melhor legenda paras qualquer filme que você assistir!
É recomendado ligar a opção “Fazer download apenas de legendas que correspondem exatamente a meus arquivos de vídeo”. Isto irá garantir que o Emby baixará a legenda correta para o seu filme. Ao desativar essa função, você aumentará as suas chances de baixar uma legenda para o filme desejado, porém existem mais chances dessa legenda conter erros. O mais comum é quando a legenda não está sincronizada com o filme. Por isso, recomendamos que você não modifique o nome dos arquivos de seus filmes no Emby.

##**Conclusão**

Nos nossos dias em que o trabalho é grande e o tempo é curto, é de grande importância que usemos a tecnologia a nosso favor. Vimos como o uso dos containers é pratico e como podemos aplica-lo no nosso trabalho, seja em uso didático ou no uso empresarial.
Já que temos essas ferramentas, use-as e descubra como podem ser versáteis!