Você está na página 1de 13

VISÃO GERAL DO PROJETO

Introdução

Todo nosso cenário de instalação e configuração dos servidores foi em ambiente


virtualizado através do Oracle VirtualBox. A imagem abaixo ilustra como será nosso cenário
final:

Alguns pontos importantes sobre o cenário acima:

• Teremos uma rede virtual interna chamada senacvm. Todos as VMs (Virtual Machines)
estarão inseridas nesta rede virtual;
• Rede interna 192.168.0.0, máscara de rede 255.255.255.0 (/24);
• A VM network-server será responsável por prover o acesso à Internet as outras VMs. Ela
terá 2 interfaces de redes (enp0s1 e enp0s2);

ATENÇÃO: Os nomes das interfaces de rede podem sofrer alterações. Nas configurações
adotaremos os nomes citados acima.

• A interface enp0s1 será configurada como NAT, enquanto a interface enp0s2 será inserida
na rede virtual interna senacvm;
• Na VM desktop instalaremos alguma distribuição Linux com interface gráfica leve (Linux
Mint 20.3 com interface Mate) apenas para acesso via navegador a alguns servidores e
realização de testes de acesso ao app-server e ao file-server;
• Instalaremos o Ubuntu Server 22.04 no network, database e app-server. No file-server
instalaremos o OpenMediaVault 6.
Configuração das VMs (Virtual Machines)

NOME: network-server
HARDWARE:
Núcleos de CPU: 1
Memória RAM: 1024MB
HD: 30GB
REDE:
Placa de Rede: enp0s1
Tipo: NAT (Rede Externa)
Endereço IP: Automático (fornecido por DHCP)
Placa de Rede: enp0s2
Tipo: Rede Interna (senacvm)
Endereço IP: 192.168.0.1/24
SO: Ubuntu Server 22.04
Usuário: sysop
Senha: NetS3rv#r
Serviços:
Firewall (UFW)
Servidor de DHCP (isc-dhcp-server)

NOME: desktop
HARDWARE:
Núcleos de CPU: 1
Memória RAM: 3072MB
HD: 60GB
REDE:
Placa de Rede: enp0s1
Tipo: Rede Interna (senacvm)
Endereço IP: Automático (fornecido pelo servidor DHCP)
SO: Linux Mint 20.3 MATE Edition

NOME: database-server
HARDWARE:
Núcleos de CPU: 1
Memória RAM: 2048MB
HD: 30GB
REDE:
Placa de Rede: enp0s1
Tipo: Rede Interna (senacvm)
Endereço IP: 192.168.0.5/24 (fornecido pelo servidor DHCP)
SO: Ubuntu Server 22.04
Usuário: sysop
Senha: DbS3rv#r
Serviços:
SGBD MariaDB
NOME: app-server
HARDWARE:
Núcleos de CPU: 1
Memória RAM: 2048MB
HD: 30GB
REDE:
Placa de Rede: enp0s1
Tipo: Rede Interna (senacvm)
Endereço IP: 192.168.0.6/24 (fornecido pelo servidor DHCP)
SO: Ubuntu Server 22.04
Usuário: sysop
Senha: AppS3rv#r
Serviços:
HTTP Server Apache2
Interpretador PHP

NOME: file-server
HARDWARE:
Núcleos de CPU: 1
Memória RAM: 2048MB
HD1: 30GB
HD2: 100GB
REDE:
Placa de Rede: enp0s1
Tipo: Rede Interna (senacvm)
Endereço IP: 192.168.0.7/24 (fornecido pelo servidor DHCP)
SO: OpenMediaVault 6
Usuário: root
Senha: OmvS3rv#r
Serviços (configurados automaticamente pelo OMV6):
HTTP Server Apache2
Interpretador PHP
SGBD MariaDB
Protocolos de compartilhamento de arquivos pela rede FTP, SMB e CIFS

Links Úteis Iniciais

Como instalar o Ubuntu Server 22.04


Como baixar e instalar o Oracle VirtualBox
Configurações de Redes, NAT, Bridge, Interna e dicas extras
Como baixar e instalar o Linux Mint
CONFIGURAÇÃO DO NETWORK-SERVER

ATENÇÃO: Este servidor possuí 2 interfaces de rede, mas instalaremos o Ubuntu Server 22.04
somente com a interface de rede externa instalada e configurada. Após a instalação do SO é
que instalaremos e configuraremos a segunda interface de rede (Rede Interna).

Passos iniciais

01. Buscar por atualizações e instalá-las através do comando abaixo:

sudo apt update && sudo apt upgrade -y

02. Instalar o editor de texto Nano:

sudo apt install nano -y

Configurar o endereço IP da interface interna de rede

No Ubuntu Server 22.04, as configurações estáticas de rede ficam no arquivo 00-installer-


config.yaml, localizado no diretório /etc/netplan. Para abrí-lo usando o editor de texto nano, digite
o comando abaixo no terminal:

sudo nano /etc/netplan/00-installer-config.yaml

DICA DE VÍDEO: Como usar o Nano – Editor de texto Linux via Linha de comando

Deixe o arquivo como abaixo:

network:
renderer: networkd
ethernets:
enp0s1:
dhcp4: true
enp0s2:
addresses:
- 192.168.0.1/24
nameservers:
addresses: [208.67.222.222, 208.67.220.220]
version: 2

Salve e feche o arquivo. Agora digite o comando abaixo para que as configurações sejam
aplicadas.

sudo netplan apply

Verifique se as configurações foram aplicadas na interface interna digitando o comando


abaixo:

ip a show enp0s2
Configurar o NAT

O NAT (Network Address Translation) ou “tradução de endereço de rede”, é o responsável


por traduzir o IP público para IP privado, fornecendo acesso à Internet para todos os hosts internos.
Utilizaremos o firewall UFW para configurar o NAT.

01. Instale o UFW.

sudo apt install ufw -y

02. Habilite o UFW para iniciar junto com o servidor.

sudo ufw enable

03. Verifique se o UFV está ativo.

sudo ufw status

04. Abra o arquivo /etc/default/ufw

sudo nano /etc/default/ufw

05. Altere a linha 19 do arquivo para o texto abaixo. Em seguida salve e feche o arquivo.

DEFAULT_FORWARD_POLICY="ACCEPT"

06. Abra o arquivo /etc/sysctl.conf

sudo nano /etc/sysctl.conf

07. Descomente a linha 28 (apagando o # do começo da linha). Em seguida salve e feche o


arquivo.

net.ipv4.ip_forward=1

08. Recarregue as configurações de rede.

sudo sysctl -p

09. Recarregue o firewall.

sudo ufw reload

10. Abra o arquivo /etc/ufw/before.rules

sudo nano /etc/ufw/before.rules


11. Digite as linhas abaixo no final do arquivo

*nat
-F
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 192.168.0.0/24 -o enp0s1 -j MASQUERADE

COMMIT

12. Salve e feche o arquivo. Na configuração acima, a rede 192.168.0.0/24 representa a rede
interna, enquanto enp0s1 representa a interface de rede externa.

13. Recarregue as configurações do UFW.

sudo ufw reload

14. Reinicie o servidor.

sudo reboot

Configurar o Servidor DHCP (isc-dhcp-server)

O protocolo DHCP é um protocolo de cliente/servidor que fornece automaticamente um


host IP (Protocolo de Internet) com seu endereço IP e outras informações de configuração
relacionadas, como a máscara de sub-rede e o gateway padrão.
O servidor DHCP será o host responsável por atribuir estas configurações de rede para os
demais hosts da rede.

01. Instalar o servidor DHCP.

sudo apt install isc-dhcp-server -y

02. Habilite o serviço de DHCP para iniciar junto com o servidor.

sudo systemctl enable isc-dhcp-server.service

03. No arquivo /etc/default/isc-dhcp-server devemos especificar a interface responsável


por fornecer os endereços via DHCP aos hosts da rede interna. Abra o arquivo usando o nano.

sudo nano /etc/default/isc-dhcp-server

04. Na linha onde está o texto INTERFACESv4 defina a interface de rede responsável por
fornecer os endereços via DHCP aos hosts da rede interna (no nosso cenário é a interface enp0s2).

INTERFACESv4=”enp0s2”

05. Salve e feche o arquivo.

06. Vamos criar uma cópia de backup do arquivo de configuração padrão do servidor de
DHCP (localizado em /etc/dhcp/dhcpd.conf) para criarmos posteriormente um que atenda ao nosso
cenário.

sudo mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.bkp


07. Vamos criar o nosso arquivo de configuração do servidor DHCP. Vamos definir o nosso
“range” de endereços IPs que serão distribuídos de forma automática, começando pelo IP
192.168.0.20 até 192.168.0.200 (lembrando que estes valores podem mudar conforme a sua
necessidade).

sudo nano /etc/dhcp/dhcpd.conf

08. Digite a configuração abaixo dentro deste arquivo. Ao terminar salve-o e feche-o.

default-lease-time 600;
max-lease-time 7200;
authoritative;

subnet 192.168.0.0 netmask 255.255.255.0 {


range 192.168.0.20 192.168.1.200;
option routers 192.168.0.1;
option domain-name-servers 208.67.222.222, 208.67.220.220;
}

09. Reinicie o serviço de DHCP.

sudo systemctl restart isc-dhcp-server.service

Reservando endereço IP fixo para os outros servidores

Quando definimos que um host receberá as configurações de rede por DHCP, pode ocorrer
dele não receber sempre o mesmo endereço IP. Em uma estação de trabalho isso não será um
problema, mas quando falamos de servidores a situação muda.
Não queremos que um serviço da nossa rede pare de funcionar porque o endereço IP de um
servidor alterou sem o nosso conhecimento. Diante desta situação vamos fixar os endereços IPs dos
servidores na nossa configuração do servidor DHCP.

ATENÇÃO: Para realizarmos esta configuração, precisamos saber o endereço MAC da interface
de rede dos servidores que terão o IP fixado. Por isso é importante que os servidores já estejam
criados para ser feita esta próxima configuração.

01. Abra utilizando o nano o arquivo de configuração do servidor de DHCP.

sudo nano /etc/dhcp/dhcpd.conf

02. Navegue até o final do arquivo e insira o texto abaixo, trocando os 00:00:00:00:00:00
pelo endereço MAC real de cada servidor listado.

host database-server {
hardware ethernet 00:00:00:00:00:00;
fixed-address 192.168.0.5; }

host app-server {
hardware ethernet 00:00:00:00:00:00;
fixed-address 192.168.0.6; }

host file-server {
hardware ethernet 00:00:00:00:00:00;
fixed-address 192.168.0.7; }
03. Reinicie o serviço de DHCP.

sudo systemctl restart isc-dhcp-server.service

04. Para verificar se o serviço DHCP está rodando sem erros, verifique o seu status com o
comando abaixo. Se tiver algum erro, verifique se não há alguma falha de digitação nas
configurações.

sudo status restart isc-dhcp-server.service


CONFIGURAÇÃO DO DATABASE-SERVER

Passos iniciais

01. Após a instalação do Ubuntu Server 22.04, buscar por atualizações e instalá-las através
do comando abaixo:

sudo apt update && sudo apt upgrade -y

02. Instalar o editor de texto Nano:

sudo apt install nano -y

Instalar o SGBD MariaDB

01. Instalação do MariaDB

sudo apt install mariadb-server

02. Configurar o usuário admin do MariaDB

sudo mysql_secure_installation

ATENÇÃO: O primeiro prompt pedirá que digite a senha atual do root do banco de dados.
Como ainda não configuramos uma senha, pressione ENTER para indicar “nenhuma”.
O próximo prompt pergunta a você se deseja configurar uma senha root do banco de dados.
No Ubuntu, a conta root para o MariaDB está intimamente ligada à manutenção automatizada do
sistema. Desse modo, não se deve alterar os métodos de autenticação configurados para esta
conta. Se isso fosse feito, uma atualização de pacotes poderia quebrar o sistema de banco de dados
devido a remoção do acesso à conta administrativa. Digite N e, em seguida, pressione ENTER.
Nos demais prompts, basta ir apertando ENTER para ir confirmando.

03. Criação de um usuário administrativo com as mesmas capacidades da conta root.

sudo mariadb

04. Dentro do prompt do banco, digite o comando abaixo. Substitua a palavra password
pela senha que você vai definir para o usuário admin:

GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'password' WITH GRANT


OPTION;

05. Atualize os privilégios e em seguida saia do prompt do banco digitando exit:

FLUSH PRIVILEGES;

06. Realize um teste de acesso com o comando abaixo. Se a saída no console for as
informações do banco, significa que o usuário e a senha estão certos.

sudo mysqladmin -u admin -p version


Liberando acesso externo ao MariaDB

Por padrão, MariaDB é configurado para aceitar conexões somente locais, por motivos de
segurança. Em uma arquitetura moderna de aplicação web, os bancos de dados são hospedados em
servidores dedicados (o que ocorre em nosso cenário).
Para habilitar o acesso remoto ao MariaDB, siga as etapas abaixo:

01. Verifique se o MariaDB está sendo executado.

sudo systemctl status mariadb

DICA DE CONTEÚDO: Comando systemctl no Linux

02. Abra o arquivo 50-server.cnf localizado em /etc/mysql/mariadb.conf.d/ utilizando o


editor de texto nano.

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

03. Altere o valor da propriedade bind-access de 127.0.0.1 para 0.0.0.0 e em seguida salve e
feche o arquivo.

bind-access = 0.0.0.0

04. Reinicie o MariaDB.

sudo systemctl restart mariadb

ATENÇÃO: Para realizarmos a próxima etapa precisamos do comando netstat. Este programa não
vem instalado por padrão no Ubuntu Server.
Para instalá-lo, digite o comando sudo apt install net-tools -y

05. Verifique se a alteração foi realizada com o seguinte comando.

sudo netstat -ant | grep 3306

06. A saída do terminal deve ser como mostrado abaixo, indicando que a configuração foi
feita corretamente.

tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN

Criando um banco de dados de exemplo e configurando o acesso externo

Em nosso cenário, somente o host app-server deve ter acesso ao MariaDB. Mas antes
precisamos ter um banco de dados criado e depois liberar a conexão somente ao endereço IP do
app-server. Neste exemplo, criaremos o banco de dados appdb.

01. Faça o acesso ao MariaDB com o seguinte comando. Depois insira a senha de acesso do
usuário admin do MariaDB.

sudo mariadb -u admin -p


02. Já no console de comandos do MariaDB, insira o comando abaixo para criar o banco de
dados appdb.

CREATE DATABASE appdb;

03. Uma boa prática de segurança é definir usuários diferentes com diferentes níveis de
acesso. Por isso, criaremos o usuário appdb_user para que somente ele tenha acesso ao banco de
dados appdb. Substitua a palavra password pela senha que você vai definir para o usuário:

CREATE USER 'appdb_user'@'localhost' IDENTIFIED BY 'password';

04. Agora configuraremos o acesso remoto do usuário appdb_user ao banco de dados


appdb. O endereço IP que colocamos é o endereço IP do servidor appserver, de onde partirá o
acesso ao banco de dados. Substitua a palavra password pela senha que você vai definir para o
usuário:

GRANT ALL ON appdb.* to 'appdb_user'@'192.168.0.6' IDENTIFIED BY 'password' WITH


GRANT OPTION;

05. Por fim aplique as novas configurações e saia do console do MariaDB.

FLUSH PRIVILEGES;
EXIT;
CONFIGURAÇÃO DO APP-SERVER

Passos iniciais

01. Após a instalação do Ubuntu Server 22.04, buscar por atualizações e instalá-las através
do comando abaixo:

sudo apt update && sudo apt upgrade -y

02. Instalar o editor de texto Nano:

sudo apt install nano -y

Instalar o Servidor Web Apache2

01. Instalação do Apache2

sudo apt install apache2

O caminho onde a aplicação PHP deve ser hospedada, para ser disponibilizada na rede pelo
Apache, é o diretório /var/www/html.
Instalar o Interpretador do PHP

01. Instalação do PHP e as bibliotecas básicas para conseguir se comunicar com o servidor
web Apache2, e com o banco de dados MariaDB.

sudo apt install php libapache2-mod-php php-mysql

02. Para verificarmos se o PHP já está funcionando em nosso servidor web, criaremos um
arquivo chamado index.php dentro do diretório /var/www/html. Para isso utilizaremos o editor
básico de textos nano.

sudo nano /var/www/html/index.php

03. Dentro do nano, digite o código abaixo. Em seguida salve e feche o arquivo.

<?php
phpinfo();

04. Agora acesse o servidor web pelo navegador do computador virtual desktop (o que
estamos usando de exemplo para acessar os servidores pelo navegador web) digitando o endereço
IP do app-server na barra de endereço. Se estiver tudo certo, deverá surgir na tela uma página
mostrando as informações do PHP.

Você também pode gostar