UC-07 Servidores Virtuais
UC-07 Servidores Virtuais
UC-07 Servidores Virtuais
Introdução
• 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
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
DICA DE VÍDEO: Como usar o Nano – Editor de texto Linux via Linha de comando
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.
ip a show enp0s2
Configurar o NAT
05. Altere a linha 19 do arquivo para o texto abaixo. Em seguida salve e feche o arquivo.
DEFAULT_FORWARD_POLICY="ACCEPT"
net.ipv4.ip_forward=1
sudo sysctl -p
*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.
sudo reboot
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”
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.
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;
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.
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.
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.
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 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.
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:
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.
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:
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
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
06. A saída do terminal deve ser como mostrado abaixo, indicando que a configuração foi
feita corretamente.
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.
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:
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:
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.
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.
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.