Configurando um Servidor Web para Varredura
Nesta etapa, vamos configurar um servidor web simples usando o Docker. Docker é uma plataforma poderosa que permite empacotar aplicativos junto com todas as suas dependências em unidades padronizadas chamadas contêineres. Esses contêineres podem ser facilmente implantados e executados em diferentes sistemas. Ao configurar este servidor web, teremos um alvo para varrer com o Nmap nas próximas etapas.
1. Navegando para o Diretório de Trabalho
Primeiro, abra uma janela de terminal. O terminal é uma interface de linha de comando onde você pode inserir comandos para interagir com seu sistema. Depois que o terminal estiver aberto, você precisa navegar para o diretório do projeto. Este diretório servirá como sua área de trabalho para este laboratório.
Para navegar para o diretório do projeto, use o comando cd. O comando cd significa "change directory" (mudar diretório). Aqui está o comando que você precisa executar:
cd /home/labex/project
2. Criando um Dockerfile
Um Dockerfile é uma parte crucial da construção de imagens Docker. É um documento de texto que contém uma série de comandos que o Docker usa para construir uma imagem. Neste caso, vamos criar um Dockerfile para um servidor web simples baseado em Nginx, que é um software de servidor web popular.
Para criar um novo arquivo chamado Dockerfile, usaremos o editor de texto nano. nano é um editor de texto simples e fácil de usar que você pode usar diretamente no terminal. Execute o seguinte comando:
nano Dockerfile
Após executar este comando, o editor nano será aberto, e você poderá começar a adicionar conteúdo ao Dockerfile. Adicione as seguintes linhas ao arquivo:
## Use the nginx image as the base
FROM nginx
## Expose port 80
EXPOSE 80
O comando FROM diz ao Docker para usar a imagem nginx como base para nossa nova imagem. O comando EXPOSE indica que o contêiner ouvirá na porta 80.
Para salvar o arquivo, pressione Ctrl+O e depois Enter. Para sair do editor, pressione Ctrl+X.
3. Construindo a Imagem Docker
Agora que temos nosso Dockerfile pronto, podemos construir a imagem Docker. Uma imagem é como um blueprint que contém todos os arquivos e configurações necessários para executar um aplicativo.
Para construir a imagem, execute o seguinte comando:
docker build -t cyber-seed-portal .
Neste comando, a flag -t é usada para marcar a imagem. Estamos marcando nossa imagem como "cyber-seed-portal". O . no final do comando diz ao Docker para usar o diretório atual como o contexto de construção.
Quando você executa este comando, o Docker iniciará o processo de construção, e a saída será algo parecido com isto:
Sending build context to Docker daemon 2.048kB
Step 1/2 : FROM nginx
latest: Pulling from library/nginx
a803e7c4b030: Pull complete
8b625c47d697: Pull complete
4d3239651a63: Pull complete
0f816efa513d: Pull complete
01d159b8db2f: Pull complete
5fb9a81470f3: Pull complete
Digest: sha256:32da30332506740a2f7c34d5dc70467b7dfe6c23451f6c66c84eeb3cdadab213
Status: Downloaded newer image for nginx:latest
---> 61395b4c586d
Step 2/2 : EXPOSE 80
---> Running in 1c2d5e2a8e7f
Removing intermediate container 1c2d5e2a8e7f
---> 7683abcf62b0
Successfully built 7683abcf62b0
Successfully tagged cyber-seed-portal:latest
4. Executando o Contêiner Docker
Depois que a imagem é construída, podemos criar e executar um contêiner a partir dela. Um contêiner é uma instância em execução de uma imagem.
Para executar um contêiner, use o seguinte comando:
docker run --name cyber-seed-server -d -p 8080:80 cyber-seed-portal
Vamos detalhar este comando:
--name cyber-seed-server: Isso dá ao contêiner o nome "cyber-seed-server". Nomear o contêiner facilita o gerenciamento e a identificação.
-d: Isso executa o contêiner em modo detached (desanexado), o que significa que o contêiner será executado em segundo plano, e você pode continuar usando o terminal para outras tarefas.
-p 8080:80: Isso mapeia a porta 8080 da sua máquina para a porta 80 do contêiner. Portanto, quando você acessa a porta 8080 em sua máquina, ela será redirecionada para a porta 80 dentro do contêiner.
cyber-seed-portal: Isso especifica a imagem na qual o contêiner será baseado.
Quando você executa este comando, a saída será um ID do contêiner, algo como:
3a7b1a23c3c5d17b3e4b3e5e6f7g8h9i
Você agora configurou com sucesso um servidor web em execução em um contêiner Docker. Você pode acessar este servidor em http://localhost:8080. Este servidor será o alvo para suas varreduras Nmap nas próximas etapas.