{"id":539,"date":"2021-09-11T15:19:26","date_gmt":"2021-09-11T14:19:26","guid":{"rendered":"https:\/\/wordpress.pedrorotoli.com\/?p=539"},"modified":"2021-10-01T16:54:48","modified_gmt":"2021-10-01T15:54:48","slug":"ubuntu-server-20-04-isc-dhcp-server-apache2-e-ssh","status":"publish","type":"post","link":"https:\/\/wordpress.pedrorotoli.com\/?p=539","title":{"rendered":"LINUX -DHCP, APACHE2, SSH"},"content":{"rendered":"<ol>\n<li><a href=\"#intro\">Introdu\u00e7\u00e3o<\/a><\/li>\n<li><a href=\"#network-interfaces\">Configurar interfaces de rede<\/a><\/li>\n<li><a href=\"#ssh\">Configurar acesso por SSH<\/a><\/li>\n<li><a href=\"#isc-dhcp-server\">Instalar o isc-dhcp-server<\/a><\/li>\n<li><a href=\"#config-check\">Configurar o servidor DHCP e verificar seu funcionamento<\/a><\/li>\n<li><a href=\"#pool-creation\">Cria\u00e7\u00e3o das Pools<\/a><\/li>\n<li><a href=\"#ip-assignment\">Processo de atribui\u00e7\u00e3o de IP<\/a><\/li>\n<li><a href=\"#mac-filtering\">Criar Pools espec\u00edficas filtrando por fabricante<\/a><\/li>\n<li><a href=\"#apache-install\">Instalar o Apache<\/a><\/li>\n<li><a href=\"#edit-default-page\">Editar p\u00e1gina padr\u00e3o<\/a><\/li>\n<li><a href=\"#new-virtualhost\">Criar novo Virtual Host<\/a><\/li>\n<li><a href=\"#certs\">Criar certificados e habilitar https<\/a><\/li>\n<\/ol>\n<h4 id=\"intro\">Introdu\u00e7\u00e3o<\/h4>\n<p>O objetivo desse trabalho \u00e9 ter uma instala\u00e7\u00e3o do Ubuntu Server 20.04 configurada com o ISC-DHCP-SERVER fornecendo IPs para v\u00e1rias redes diferentes para diferentes finalidades, e tamb\u00e9m uma configura\u00e7\u00e3o b\u00e1sica do Apache2.<\/p>\n<p>O servidor dever\u00e1 fornecer IPs para v\u00e1rios grupos de m\u00e1quinas, com <em>Pools<\/em> exclusivas para cada grupo, com os dispositivos sendo identificados de maneiras diferentes pelo servidor, pelo <em>hostname<\/em> ou pelo MAC address.<\/p>\n<p>Tamb\u00e9m ser\u00e1 configurado o webserver Apache2 que ir\u00e1 servir p\u00e1ginas com e sem seguran\u00e7a.<\/p>\n<h4 id=\"network-interfaces\">Configurar interfaces de rede<\/h4>\n<p>Durante o processo de instala\u00e7\u00e3o do Ubuntu Server podemos configurar as interfaces de rede dispon\u00edveis, durante a instala\u00e7\u00e3o dessa m\u00e1quina dispomos de duas interfaces, uma usada para acessar a internet e outra que se ligar\u00e1 \u00e0s outras m\u00e1quinas.<\/p>\n<p>O nome das interfaces pode variar de m\u00e1quina para m\u00e1quina, dependendo da interface que usam para se ligar ao computador, e de como est\u00e3o identificadas na BIOS, caso n\u00e3o haja identifica\u00e7\u00e3o de localiza\u00e7\u00e3o f\u00edsica e esteja ligada atrav\u00e9s de uma interface PCI, s\u00e3o identificados por <em>ens<\/em><strong><em>X<\/em><\/strong>, onde <em><strong>X<\/strong><\/em> indica o \u00edndice do adaptador, caso exista indica\u00e7\u00e3o da localiza\u00e7\u00e3o f\u00edsica das liga\u00e7\u00f5es o formato \u00e9 <em>enp<\/em><strong><em>X<\/em><\/strong><em>s<\/em><strong><em>Y<\/em><\/strong>, onde <em>X<\/em> \u00e9 o n\u00famero do BUS e <em>Y<\/em> \u00e9 o n\u00famero do dispositivo naquele BUS, e em alguns casos, quando um adaptador de rede tem mais do que uma porta, ele ir\u00e1 aparecer como <em>enp<\/em><strong><em>X<\/em><\/strong><em>s<\/em><strong><em>Y<\/em><\/strong><em>f<\/em><strong><em>Z<\/em><\/strong>, onde\u00a0<em><strong>Z<\/strong><\/em> indica o \u00edndice da porta.<\/p>\n<p>No caso de virtualiza\u00e7\u00e3o e interfaces virtuais, a apresenta\u00e7\u00e3o poder\u00e1 ser diferente de acordo com o hypervisor a ser utilizado, por exemplo, no caso do VirtualBox, as interfaces s\u00e3o apresentadas como <em>enp<\/em><strong><em>X<\/em><\/strong><em>s<\/em><strong><em>Y<\/em><\/strong>, enquanto no VMware, normalmente, como <em>ens<strong>X<\/strong><\/em>, e o n\u00famero da interface ir\u00e1 variar de acordo com os dispositivos adicionador \u00e0 m\u00e1quina virtual, e caso o arquivo de configura\u00e7\u00e3o da m\u00e1quina virtual seja editado manualmente, \u00e9 poss\u00edvel alterar o nome da interface para que em vez de mostrar <em>ens<strong>X<\/strong><\/em>, mostre <em>enp<strong>X<\/strong>s<strong>Y<\/strong><\/em>, mas para isso \u00e9 preciso experimentar um pouco, e ter sempre em conta que nem todos os n\u00fameros est\u00e3o dispon\u00edveis.<\/p>\n<p>Quanto a configura\u00e7\u00e3o dos IPs das interfaces, irei fazer a configura\u00e7\u00e3o da interface que ter\u00e1 acesso \u00e0 internet durante a instala\u00e7\u00e3o do sistema, e a interface que ir\u00e1 se ligar \u00e0s m\u00e1quinas cliente depois do sistema ter sido instalado, para mostrar duas maneiras diferentes de o fazer.<\/p>\n<p>Durante a instala\u00e7\u00e3o ser\u00e3o mostradas todas as interfaces de rede dispon\u00edveis, nesse caso temos duas, a primeira \u00e9 a que est\u00e1 conectada e que tem acesso \u00e0 internet, e \u00e9 essa que iremos configurar para dar um IP est\u00e1tico, j\u00e1 que nesse momento tem um IP atribu\u00eddo por DHCP, e nenhum servidor deve ter IP atribu\u00eddo por DHCP, e sim utilizar um IP fixo.<\/p>\n<p>Selecione a interface que deseja alterar o IP e aperte <em>Enter<\/em>, depois selecione <em>Edit IPv4<\/em> e aperte <em>Enter<\/em> novamente, depois selecione <em>Manual<\/em> e aperte enter, aqui voc\u00ea deve preencher de acordo com a rede em que a m\u00e1quina est\u00e1 conectada, depois selecione <em>Save<\/em> e clique em <em>Enter<\/em>, depois <em>Done<\/em> e aperte <em>Enter<\/em> novamente, com isso a configura\u00e7\u00e3o da primeira placa est\u00e1 feita, a configura\u00e7\u00e3o da segunda placa ser\u00e1 feita depois de terminada a instala\u00e7\u00e3o.<\/p>\n<figure id=\"attachment_550\" aria-describedby=\"caption-attachment-550\" style=\"width: 800px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-550\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/ipinstall01.png\" alt=\"Network Connections\" width=\"800\" height=\"600\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/ipinstall01.png 800w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/ipinstall01-512x384.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/ipinstall01-768x576.png 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><figcaption id=\"caption-attachment-550\" class=\"wp-caption-text\">Network Connections<\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<figure id=\"attachment_551\" aria-describedby=\"caption-attachment-551\" style=\"width: 800px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-551\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/ipinstall02.png\" alt=\"Edit IPv4\" width=\"800\" height=\"600\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/ipinstall02.png 800w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/ipinstall02-512x384.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/ipinstall02-768x576.png 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><figcaption id=\"caption-attachment-551\" class=\"wp-caption-text\">Edit IPv4<\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<figure id=\"attachment_552\" aria-describedby=\"caption-attachment-552\" style=\"width: 800px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-552\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/ipinstall03.png\" alt=\"Manual IPv4 Configuration\" width=\"800\" height=\"600\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/ipinstall03.png 800w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/ipinstall03-512x384.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/ipinstall03-768x576.png 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><figcaption id=\"caption-attachment-552\" class=\"wp-caption-text\">Manual IPv4 Configuration<\/figcaption><\/figure>\n<p>Depois de completar a instala\u00e7\u00e3o vamos configurar o IP da segunda interface.<\/p>\n<p>As vers\u00f5es mais recentes do Ubuntu usam o <em>netplan<\/em> como ferramenta de gest\u00e3o de rede, que guarda as configura\u00e7\u00f5es\u00a0 das interfaces em um arquivo .yaml que fica em <em>\/etc\/netplan<\/em>.<\/p>\n<figure id=\"attachment_556\" aria-describedby=\"caption-attachment-556\" style=\"width: 921px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-556\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/ip01.png\" alt=\"Netplan configuration file\" width=\"921\" height=\"232\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/ip01.png 921w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/ip01-512x129.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/ip01-768x193.png 768w\" sizes=\"auto, (max-width: 921px) 100vw, 921px\" \/><figcaption id=\"caption-attachment-556\" class=\"wp-caption-text\">Netplan configuration file<\/figcaption><\/figure>\n<p>Abra esse arquivo com o seu editor de texto preferido.<\/p>\n<figure id=\"attachment_557\" aria-describedby=\"caption-attachment-557\" style=\"width: 921px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-557\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/ip02.png\" alt=\"Netplan configuration file\" width=\"921\" height=\"430\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/ip02.png 921w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/ip02-512x239.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/ip02-768x359.png 768w\" sizes=\"auto, (max-width: 921px) 100vw, 921px\" \/><figcaption id=\"caption-attachment-557\" class=\"wp-caption-text\">Netplan configuration file<\/figcaption><\/figure>\n<p>Aqui podemos ver as configura\u00e7\u00f5es das duas interfaces dispon\u00edveis no sistema, a primeira mostra as configura\u00e7\u00f5es que fizemos durante a instala\u00e7\u00e3o, a segunda mostra apenas que est\u00e1 configurada para receber um IP por DHCP, no caso dessa segunda interface, precisamos apenas configurar o IP dela, n\u00e3o \u00e9 necess\u00e1rio configurar gateway nem DNS, por isso apenas duas novas linhas ser\u00e3o suficientes.<\/p>\n<figure id=\"attachment_559\" aria-describedby=\"caption-attachment-559\" style=\"width: 921px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-559\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/ip03.png\" alt=\"Netplan configuration file\" width=\"921\" height=\"430\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/ip03.png 921w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/ip03-512x239.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/ip03-768x359.png 768w\" sizes=\"auto, (max-width: 921px) 100vw, 921px\" \/><figcaption id=\"caption-attachment-559\" class=\"wp-caption-text\">Netplan configuration file<\/figcaption><\/figure>\n<p>N\u00e3o \u00e9 preciso apagar a linha indicando que a interface ir\u00e1 receber um IP por DHCP, pode apenas a comentar para que n\u00e3o seja interpretada pelo sistema, e logo abaixo dela coloque as duas linhas mostradas na imagem acima, depois disso salve e feche esse arquivo de configura\u00e7\u00e3o.<\/p>\n<p>Entretanto, apenas isso n\u00e3o \u00e9 suficiente para que as configura\u00e7\u00f5es entrem em vigor, \u00e9 preciso aplicar essas altera\u00e7\u00f5es, isso \u00e9 feito com o comando <em>netplan apply<\/em>, executado como root.<\/p>\n<figure id=\"attachment_560\" aria-describedby=\"caption-attachment-560\" style=\"width: 921px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-560\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/ip04.png\" alt=\"IP addresses\" width=\"921\" height=\"916\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/ip04.png 921w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/ip04-512x509.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/ip04-150x150.png 150w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/ip04-768x764.png 768w\" sizes=\"auto, (max-width: 921px) 100vw, 921px\" \/><figcaption id=\"caption-attachment-560\" class=\"wp-caption-text\">IP addresses<\/figcaption><\/figure>\n<p>Como podemos ver, originalmente a interface <em>enp0s19<\/em> n\u00e3o tinha um endere\u00e7o IPv4, depois de aplicar as configura\u00e7\u00f5es ela passou a ter um endere\u00e7o IPv4.<\/p>\n<h4 id=\"ssh\">Configurar acesso por SSH<\/h4>\n<p>Comece por selecionar a op\u00e7\u00e3o para instalar o servidor OpenSSH durante a instala\u00e7\u00e3o, isso far\u00e1 com que o servidor possa ser acessado por SSH logo que for terminada a instala\u00e7\u00e3o, entretanto iremos usar uma porta diferente, para isso ser\u00e1 necess\u00e1rio fazer algumas altera\u00e7\u00f5es em sua configura\u00e7\u00e3o.<\/p>\n<p>Para isso abra o arquivo <code>\/etc\/ssh\/sshd_config<\/code> como root, iremos precisar alterar apenas uma linha da configura\u00e7\u00e3o, na linha 15, retire o # para a ativar e altere o 22 para 12200, isso far\u00e1 com que o servidor SSH passe a receber conex\u00f5es na porta 12200 em vez da porta 22, que \u00e9 a tradicional para esse servi\u00e7o.<\/p>\n<figure id=\"attachment_562\" aria-describedby=\"caption-attachment-562\" style=\"width: 921px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-562\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/ssh01.png\" alt=\"Original sshd_config file\" width=\"921\" height=\"520\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/ssh01.png 921w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/ssh01-512x289.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/ssh01-768x434.png 768w\" sizes=\"auto, (max-width: 921px) 100vw, 921px\" \/><figcaption id=\"caption-attachment-562\" class=\"wp-caption-text\">Original sshd_config file<\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<figure id=\"attachment_563\" aria-describedby=\"caption-attachment-563\" style=\"width: 921px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-563\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/ssh02.png\" alt=\"Altered sshd_config\" width=\"921\" height=\"520\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/ssh02.png 921w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/ssh02-512x289.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/ssh02-768x434.png 768w\" sizes=\"auto, (max-width: 921px) 100vw, 921px\" \/><figcaption id=\"caption-attachment-563\" class=\"wp-caption-text\">Altered sshd_config<\/figcaption><\/figure>\n<p>Depois disso \u00e9 preciso reiniciar o servi\u00e7o para que as altera\u00e7\u00f5es entrem em efeito, para isso use o comando <code>service ssh restart<\/code> como root, agora j\u00e1 \u00e9 poss\u00edvel se conectar atrav\u00e9s da porta 12200.<\/p>\n<figure id=\"attachment_564\" aria-describedby=\"caption-attachment-564\" style=\"width: 1171px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-564\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/ssh03.png\" alt=\"tcpdump ssh 12200\" width=\"1171\" height=\"790\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/ssh03.png 1171w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/ssh03-512x345.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/ssh03-768x518.png 768w\" sizes=\"auto, (max-width: 1171px) 100vw, 1171px\" \/><figcaption id=\"caption-attachment-564\" class=\"wp-caption-text\">tcpdump ssh 12200<\/figcaption><\/figure>\n<p>Na imagem acima podemos ver uma captura do in\u00edcio de uma conex\u00e3o SSH na porta 12200.<\/p>\n<p>Para permitir conex\u00f5es SSH atrav\u00e9s dessa porta com o firewall ativo \u00e9 preciso primeiro abrir essa porta, para isso utilize o comando <code>ufw allow 12200\/tcp<\/code><\/p>\n<p>E aqui podemos ver os <em>sockets<\/em> TCP que est\u00e3o ativos no servidor nesse momento assim como as sess\u00f5es SSH estabelecidas, seus n\u00fameros e os IPs dos clientes conectados, e tamb\u00e9m a configura\u00e7\u00e3o atual do firewall, mostrando que a porta 12200 est\u00e1 aberta.<\/p>\n<figure id=\"attachment_565\" aria-describedby=\"caption-attachment-565\" style=\"width: 1091px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-565\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/ssh05.png\" alt=\"Connections and Firewall\" width=\"1091\" height=\"394\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/ssh05.png 1091w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/ssh05-512x185.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/ssh05-768x277.png 768w\" sizes=\"auto, (max-width: 1091px) 100vw, 1091px\" \/><figcaption id=\"caption-attachment-565\" class=\"wp-caption-text\">Connections and Firewall<\/figcaption><\/figure>\n<h4 id=\"isc-dhcp-server\">Instalar o isc-dhcp-server<\/h4>\n<p>Instale o isc-dhcp-server com o comando <code>apt install isc-dhcp-server<\/code>, ap\u00f3s alguns instantes ele estar\u00e1 pronto para ser configurado.<\/p>\n<p>O arquivo de configura\u00e7\u00e3o se chama <code>dhcpd.conf<\/code> e se encontra na pasta <code>\/etc\/dhcp\/<\/code>.<\/p>\n<figure id=\"attachment_568\" aria-describedby=\"caption-attachment-568\" style=\"width: 921px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-568\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp01-1.png\" alt=\"DHCP configuration file location\" width=\"921\" height=\"232\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp01-1.png 921w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp01-1-512x129.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp01-1-768x193.png 768w\" sizes=\"auto, (max-width: 921px) 100vw, 921px\" \/><figcaption id=\"caption-attachment-568\" class=\"wp-caption-text\">DHCP configuration file location<\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<figure id=\"attachment_569\" aria-describedby=\"caption-attachment-569\" style=\"width: 921px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-569\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp02-1.png\" alt=\"DHCP Server configuration file\" width=\"921\" height=\"754\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp02-1.png 921w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp02-1-512x419.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp02-1-768x629.png 768w\" sizes=\"auto, (max-width: 921px) 100vw, 921px\" \/><figcaption id=\"caption-attachment-569\" class=\"wp-caption-text\">DHCP Server configuration file<\/figcaption><\/figure>\n<p>\u00c9 nesse arquivo que iremos configurar o servidor e criar as pools que fornecer\u00e3o endere\u00e7os de IP para os dispositivos ligados na rede.<\/p>\n<p>A documenta\u00e7\u00e3o do isc-dhcp-client pode ser encontrada nesse link:<br \/>\n<a href=\"https:\/\/kb.isc.org\/docs\/en\/isc-dhcp-44-manual-pages-dhcp-options\">https:\/\/kb.isc.org\/docs\/en\/isc-dhcp-44-manual-pages-dhcp-options<\/a><\/p>\n<h4 id=\"config-check\">Configurar o servidor DHCP e verificar seu funcionamento<\/h4>\n<p>Vamos primeiro confirmar que o servidor DHCP est\u00e1 funcionando, para isso \u00e9 s\u00f3 criar uma configura\u00e7\u00e3o b\u00e1sica e verificar que os clientes est\u00e3o recebendo IPs corretamente, isso pode ser feito adicionando as seguintes linhas no final desse arquivo de configura\u00e7\u00e3o.<\/p>\n<figure id=\"attachment_578\" aria-describedby=\"caption-attachment-578\" style=\"width: 1069px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-578\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp03-1.png\" alt=\"DHCP Server configuration file - Test Pool\" width=\"1069\" height=\"434\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp03-1.png 1069w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp03-1-512x208.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp03-1-768x312.png 768w\" sizes=\"auto, (max-width: 1069px) 100vw, 1069px\" \/><figcaption id=\"caption-attachment-578\" class=\"wp-caption-text\">DHCP Server configuration file &#8211; Test Pool<\/figcaption><\/figure>\n<p>Com isso j\u00e1 podemos verificar se os clientes est\u00e3o recebendo IPs corretamente.<\/p>\n<figure id=\"attachment_580\" aria-describedby=\"caption-attachment-580\" style=\"width: 821px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-580\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp04-1.png\" alt=\"DHCP Leases\" width=\"821\" height=\"434\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp04-1.png 821w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp04-1-512x271.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp04-1-768x406.png 768w\" sizes=\"auto, (max-width: 821px) 100vw, 821px\" \/><figcaption id=\"caption-attachment-580\" class=\"wp-caption-text\">DHCP Leases<\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<figure id=\"attachment_581\" aria-describedby=\"caption-attachment-581\" style=\"width: 1280px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-581\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp05-1.png\" alt=\"Client01 receiving IP address\" width=\"1280\" height=\"800\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp05-1.png 1280w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp05-1-512x320.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp05-1-768x480.png 768w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp05-1-800x500.png 800w\" sizes=\"auto, (max-width: 1280px) 100vw, 1280px\" \/><figcaption id=\"caption-attachment-581\" class=\"wp-caption-text\">Client01 receiving IP address<\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<figure id=\"attachment_582\" aria-describedby=\"caption-attachment-582\" style=\"width: 1280px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-582\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp06.png\" alt=\"Client02 receiving IP address\" width=\"1280\" height=\"800\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp06.png 1280w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp06-512x320.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp06-768x480.png 768w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp06-800x500.png 800w\" sizes=\"auto, (max-width: 1280px) 100vw, 1280px\" \/><figcaption id=\"caption-attachment-582\" class=\"wp-caption-text\">Client02 receiving IP address<\/figcaption><\/figure>\n<p>Como podemos ver, os clientes est\u00e3o recebendo IPs corretamente, com isso podemos continuar o processo de configura\u00e7\u00e3o do servidor DHCP e criar as <em>Pools<\/em> adequadas.<\/p>\n<h4 id=\"pool-creation\">Cria\u00e7\u00e3o das Pools<\/h4>\n<p>As <em>Pools<\/em> ir\u00e3o agrupar os clientes de acordo com caracter\u00edsticas em comum, para isso \u00e9 preciso primeiro criar as <em>classes<\/em> que ir\u00e3o fazer essa distin\u00e7\u00e3o entre os clientes, que por sua vez ser\u00e3o utilizadas pelas diferentes <em>Pools<\/em> para identificar os clientes que far\u00e3o parte delas, vamos come\u00e7ar pelos clientes identificados por seus <em>hostnames<\/em>.<\/p>\n<figure id=\"attachment_585\" aria-describedby=\"caption-attachment-585\" style=\"width: 821px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-585\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp07.png\" alt=\"DHCP Class\" width=\"821\" height=\"386\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp07.png 821w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp07-512x241.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp07-768x361.png 768w\" sizes=\"auto, (max-width: 821px) 100vw, 821px\" \/><figcaption id=\"caption-attachment-585\" class=\"wp-caption-text\">DHCP Class<\/figcaption><\/figure>\n<p>Com isso temos uma classe que ir\u00e1 identificar todos os clientes com um <em>hostname<\/em> come\u00e7ado por <em>304PC<\/em>, agora iremos criar a <em>Pool<\/em>\u00a0 que ir\u00e1 usar essa classe como identificador.<\/p>\n<figure id=\"attachment_586\" aria-describedby=\"caption-attachment-586\" style=\"width: 821px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-586\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp08.png\" alt=\"DHCP Pool\" width=\"821\" height=\"386\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp08.png 821w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp08-512x241.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp08-768x361.png 768w\" sizes=\"auto, (max-width: 821px) 100vw, 821px\" \/><figcaption id=\"caption-attachment-586\" class=\"wp-caption-text\">DHCP Pool<\/figcaption><\/figure>\n<p>J\u00e1 temos a primeira <em>Pool<\/em> criada, depois de reiniciar o servidor DHCP e apagar o arquivo <code>\/var\/lib\/dhcp\/dhcpd.leases<\/code>, vamos agora testar com alguns clientes para confirmar que a <em>Pool<\/em> est\u00e1 funcionando corretamente.<\/p>\n<p>Vamos come\u00e7ar por monitorar a lista de <em>leases<\/em> com o comando <code>watch -n 1 dhcp-lease-list<\/code><\/p>\n<figure id=\"attachment_587\" aria-describedby=\"caption-attachment-587\" style=\"width: 821px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-587\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp09.png\" alt=\"DHCP Leases\" width=\"821\" height=\"434\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp09.png 821w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp09-512x271.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp09-768x406.png 768w\" sizes=\"auto, (max-width: 821px) 100vw, 821px\" \/><figcaption id=\"caption-attachment-587\" class=\"wp-caption-text\">DHCP Leases<\/figcaption><\/figure>\n<p>Aqui podemos ver os dois clientes que receberam endere\u00e7os de acordo com as regras da <em>Pool<\/em>.<\/p>\n<figure id=\"attachment_588\" aria-describedby=\"caption-attachment-588\" style=\"width: 1280px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-588\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp10.png\" alt=\"304PC01\" width=\"1280\" height=\"800\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp10.png 1280w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp10-512x320.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp10-768x480.png 768w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp10-800x500.png 800w\" sizes=\"auto, (max-width: 1280px) 100vw, 1280px\" \/><figcaption id=\"caption-attachment-588\" class=\"wp-caption-text\">304PC01<\/figcaption><\/figure>\n<p>E aqui podemos ver um dos clientes com o IP atribu\u00eddo pelo servidor.<\/p>\n<figure id=\"attachment_589\" aria-describedby=\"caption-attachment-589\" style=\"width: 1280px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-589\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp11.png\" alt=\"304PC02\" width=\"1280\" height=\"800\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp11.png 1280w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp11-512x320.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp11-768x480.png 768w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp11-800x500.png 800w\" sizes=\"auto, (max-width: 1280px) 100vw, 1280px\" \/><figcaption id=\"caption-attachment-589\" class=\"wp-caption-text\">304PC02<\/figcaption><\/figure>\n<p>E aqui o outro cliente tamb\u00e9m com um IP atribu\u00eddo.<\/p>\n<p>Vamos criar outra classe e <em>Pool<\/em> seguindo o mesmo formato, entretanto usando identificadores e configura\u00e7\u00f5es diferentes, nesse caso ser\u00e1 para os PCs da sala 3.05, que ter\u00e3o como <em>hostnames<\/em> 305PCXX e receber\u00e3o IPs de uma faixa de IPs diferentes, nesse caso ser\u00e1 de 10.17.05.0 at\u00e9 10.17.05.255.<\/p>\n<figure id=\"attachment_591\" aria-describedby=\"caption-attachment-591\" style=\"width: 821px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-591\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp12.png\" alt=\"DHCP Config\" width=\"821\" height=\"562\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp12.png 821w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp12-512x350.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp12-768x526.png 768w\" sizes=\"auto, (max-width: 821px) 100vw, 821px\" \/><figcaption id=\"caption-attachment-591\" class=\"wp-caption-text\">DHCP Config<\/figcaption><\/figure>\n<p>Aqui podemos ver as duas classes criadas e as duas <em>Pools<\/em> que as utilizam.<\/p>\n<p>Depois de salvar a nova configura\u00e7\u00e3o e reiniciar o servidor, os clientes devem passar a receber IPs da nova <em>Pool<\/em>, se verificar atrav\u00e9s da lista the <em>leases<\/em> os novos clientes j\u00e1 devem estar l\u00e1 com seus respectivos IPs.<\/p>\n<figure id=\"attachment_593\" aria-describedby=\"caption-attachment-593\" style=\"width: 821px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-593\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp13.png\" alt=\"Lease List\" width=\"821\" height=\"434\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp13.png 821w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp13-512x271.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp13-768x406.png 768w\" sizes=\"auto, (max-width: 821px) 100vw, 821px\" \/><figcaption id=\"caption-attachment-593\" class=\"wp-caption-text\">Lease List<\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<figure id=\"attachment_594\" aria-describedby=\"caption-attachment-594\" style=\"width: 1280px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-594\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp14.png\" alt=\"305PC01\" width=\"1280\" height=\"800\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp14.png 1280w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp14-512x320.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp14-768x480.png 768w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp14-800x500.png 800w\" sizes=\"auto, (max-width: 1280px) 100vw, 1280px\" \/><figcaption id=\"caption-attachment-594\" class=\"wp-caption-text\">305PC01<\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<figure id=\"attachment_595\" aria-describedby=\"caption-attachment-595\" style=\"width: 1280px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-595\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp15.png\" alt=\"305PC02\" width=\"1280\" height=\"800\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp15.png 1280w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp15-512x320.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp15-768x480.png 768w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp15-800x500.png 800w\" sizes=\"auto, (max-width: 1280px) 100vw, 1280px\" \/><figcaption id=\"caption-attachment-595\" class=\"wp-caption-text\">305PC02<\/figcaption><\/figure>\n<p>E com isso podemos ver que os PCs est\u00e3o recebendo IPs corretamente.<\/p>\n<p>Agora que j\u00e1 verificamos que as <em>Pools<\/em> est\u00e3o funcionando, vamos terminar de criar o resto das classes e <em>Pools<\/em> para as salas, com as m\u00e1quinas identificadas pelos <em>hostnames<\/em>, mas dessa vez limitando o n\u00famero de IPs de 256, como est\u00e1 configurado nesse momento, para 25 por <em>Pool<\/em>.<\/p>\n<p>A nossa configura\u00e7\u00e3o deve ficar assim:<\/p>\n<pre>class \"Sala3.04\" {\r\n      match if substring(option host-name,0,5) = \"304PC\";\r\n}\r\n\r\nclass \"Sala3.05\" {\r\n      match if substring(option host-name,0,5) = \"305PC\";\r\n}\r\n\r\nclass \"Sala3.06\" {\r\n      match if substring(option host-name,0,5) = \"306PC\";\r\n}\r\n\r\nclass \"Sala3.07\" {\r\n      match if substring(option host-name,0,5) = \"307PC\";\r\n}\r\n\r\nclass \"Sala3.08\" {\r\n      match if substring(option host-name,0,5) = \"308PC\";\r\n}\r\n\r\nclass \"Sala3.12\" {\r\n      match if substring(option host-name,0,5) = \"312PC\";\r\n}\r\n\r\nclass \"Sala3.14\" {\r\n      match if substring(option host-name,0,5) = \"314PC\";\r\n}\r\n\r\nclass \"Sala3.16\" {\r\n      match if substring(option host-name,0,5) = \"316PC\";\r\n}\r\n\r\nclass \"Sala3.17\" {\r\n      match if substring(option host-name,0,5) = \"317PC\";\r\n}\r\n\r\nclass \"Sala3.18\" {\r\n      match if substring(option host-name,0,5) = \"318PC\";\r\n}\r\n\r\nclass \"Sala4.01\" {\r\n      match if substring(option host-name,0,5) = \"401PC\";\r\n}\r\n\r\nclass \"Sala4.02\" {\r\n      match if substring(option host-name,0,5) = \"402PC\";\r\n}\r\n\r\nclass \"Sala4.03\" {\r\n      match if substring(option host-name,0,5) = \"403PC\";\r\n}\r\n\r\nclass \"Sala4.04\" {\r\n      match if substring(option host-name,0,5) = \"404PC\";\r\n}\r\n\r\nclass \"Sala4.05\" {\r\n      match if substring(option host-name,0,5) = \"405PC\";\r\n}\r\n\r\nclass \"Sala4.06\" {\r\n      match if substring(option host-name,0,5) = \"406PC\";\r\n}\r\n\r\nsubnet 10.0.0.0 netmask 255.0.0.0 {\r\n       pool {\r\n            range 10.17.04.0 10.17.04.24;\r\n            option domain-name-servers 10.255.255.253,8.8.8.8;\r\n            option routers 10.255.255.254;\r\n            default-lease-time 7200;\r\n            max-lease-time 14400;\r\n            allow members of \"Sala3.04\";\r\n       }\r\n\r\n       pool {\r\n            range 10.17.5.0 10.17.5.24;\r\n            option domain-name-servers 10.255.255.253,8.8.8.8;\r\n            option routers 10.255.255.254;\r\n            default-lease-time 7200;\r\n            max-lease-time 14400;\r\n            allow members of \"Sala3.05\";\r\n       }\r\n\r\n       pool {\r\n            range 10.17.6.0 10.17.6.24;\r\n            option domain-name-servers 10.255.255.253,8.8.8.8;\r\n            option routers 10.255.255.254;\r\n            default-lease-time 7200;\r\n            max-lease-time 14400;\r\n            allow members of \"Sala3.06\";\r\n       }\r\n\r\n       pool {\r\n            range 10.17.7.0 10.17.7.24;\r\n            option domain-name-servers 10.255.255.253,8.8.8.8;\r\n            option routers 10.255.255.254;\r\n            default-lease-time 7200;\r\n            max-lease-time 14400;\r\n            allow members of \"Sala3.07\";\r\n       }\r\n\r\n       pool {\r\n            range 10.17.8.0 10.17.8.24;\r\n            option domain-name-servers 10.255.255.253,8.8.8.8;\r\n            option routers 10.255.255.254;\r\n            default-lease-time 7200;\r\n            max-lease-time 14400;\r\n            allow members of \"Sala3.08\";\r\n       }\r\n\r\n       pool {\r\n            range 10.17.12.0 10.17.12.24;\r\n            option domain-name-servers 10.255.255.253,8.8.8.8;\r\n            option routers 10.255.255.254;\r\n            default-lease-time 7200;\r\n            max-lease-time 14400;\r\n            allow members of \"Sala3.12\";\r\n       }\r\n\r\n       pool {\r\n            range 10.17.14.0 10.17.14.24;\r\n            option domain-name-servers 10.255.255.253,8.8.8.8;\r\n            option routers 10.255.255.254;\r\n            default-lease-time 7200;\r\n            max-lease-time 14400;\r\n            allow members of \"Sala3.14\";\r\n       }\r\n\r\n       pool {\r\n            range 10.17.16.0 10.17.16.24;\r\n            option domain-name-servers 10.255.255.253,8.8.8.8;\r\n            option routers 10.255.255.254;\r\n            default-lease-time 7200;\r\n            max-lease-time 14400;\r\n            allow members of \"Sala3.16\";\r\n       }\r\n\r\n       pool {\r\n            range 10.17.17.0 10.17.17.24;\r\n            option domain-name-servers 10.255.255.253,8.8.8.8;\r\n            option routers 10.255.255.254;\r\n            default-lease-time 7200;\r\n            max-lease-time 14400;\r\n            allow members of \"Sala3.17\";\r\n       }\r\n\r\n       pool {\r\n            range 10.17.18.0 10.17.18.24;\r\n            option domain-name-servers 10.255.255.253,8.8.8.8;\r\n            option routers 10.255.255.254;\r\n            default-lease-time 7200;\r\n            max-lease-time 14400;\r\n            allow members of \"Sala3.18\";\r\n       }\r\n\r\n       pool {\r\n            range 10.17.101.0 10.17.101.24;\r\n            option domain-name-servers 10.255.255.253,8.8.8.8;\r\n            option routers 10.255.255.254;\r\n            default-lease-time 7200;\r\n            max-lease-time 14400;\r\n            allow members of \"Sala4.01\";\r\n       }\r\n\r\n       pool {\r\n            range 10.17.102.0 10.17.102.24;\r\n            option domain-name-servers 10.255.255.253,8.8.8.8;\r\n            option routers 10.255.255.254;\r\n            default-lease-time 7200;\r\n            max-lease-time 14400;\r\n            allow members of \"Sala4.02\";\r\n       }\r\n\r\n       pool {\r\n            range 10.17.103.0 10.17.103.24;\r\n            option domain-name-servers 10.255.255.253,8.8.8.8;\r\n            option routers 10.255.255.254;\r\n            default-lease-time 7200;\r\n            max-lease-time 14400;\r\n            allow members of \"Sala4.03\";\r\n       }\r\n\r\n       pool {\r\n            range 10.17.104.0 10.17.104.24;\r\n            option domain-name-servers 10.255.255.253,8.8.8.8;\r\n            option routers 10.255.255.254;\r\n            default-lease-time 7200;\r\n            max-lease-time 14400;\r\n            allow members of \"Sala4.04\";\r\n       }\r\n\r\n       pool {\r\n            range 10.17.105.0 10.17.105.24;\r\n            option domain-name-servers 10.255.255.253,8.8.8.8;\r\n            option routers 10.255.255.254;\r\n            default-lease-time 7200;\r\n            max-lease-time 14400;\r\n            allow members of \"Sala4.05\";\r\n       }\r\n\r\n       pool {\r\n            range 10.17.106.0 10.17.106.24;\r\n            option domain-name-servers 10.255.255.253,8.8.8.8;\r\n            option routers 10.255.255.254;\r\n            default-lease-time 7200;\r\n            max-lease-time 14400;\r\n            allow members of \"Sala4.06\";\r\n       }\r\n}\r\n<\/pre>\n<h4 id=\"ip-assignment\">Processo de atribui\u00e7\u00e3o de IP<\/h4>\n<p>Agora vamos ver um exemplo de comunica\u00e7\u00e3o do processo de atribui\u00e7\u00e3o de IP.<\/p>\n<figure id=\"attachment_605\" aria-describedby=\"caption-attachment-605\" style=\"width: 1069px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-605\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp16.png\" alt=\"DORA\" width=\"1069\" height=\"1122\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp16.png 1069w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp16-488x512.png 488w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp16-768x806.png 768w\" sizes=\"auto, (max-width: 1069px) 100vw, 1069px\" \/><figcaption id=\"caption-attachment-605\" class=\"wp-caption-text\">DORA<\/figcaption><\/figure>\n<p>Aqui temos a transa\u00e7\u00e3o completa mostrando as quatro mensagens, <code>Discover<\/code>, <code>Offer<\/code>, <code>Request<\/code> e <code>Acknowledgment<\/code> ou <code>ACK<\/code>, abaixo podemos ver os campos que identificam o servidor.<\/p>\n<figure id=\"attachment_606\" aria-describedby=\"caption-attachment-606\" style=\"width: 792px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-606\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp17.png\" alt=\"Offer - Server\" width=\"792\" height=\"227\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp17.png 792w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp17-512x147.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp17-768x220.png 768w\" sizes=\"auto, (max-width: 792px) 100vw, 792px\" \/><figcaption id=\"caption-attachment-606\" class=\"wp-caption-text\">Offer &#8211; Server<\/figcaption><\/figure>\n<p>E aqui podemos ver a lista de <em>leases<\/em> mostrando IPs fornecidos para m\u00e1quinas de duas classes diferentes.<\/p>\n<figure id=\"attachment_608\" aria-describedby=\"caption-attachment-608\" style=\"width: 821px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-608\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp18.png\" alt=\"DHCP Leases\" width=\"821\" height=\"434\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp18.png 821w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp18-512x271.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp18-768x406.png 768w\" sizes=\"auto, (max-width: 821px) 100vw, 821px\" \/><figcaption id=\"caption-attachment-608\" class=\"wp-caption-text\">DHCP Leases<\/figcaption><\/figure>\n<p>E se fizermos um novo pedido temos as seguintes mensagens trocadas entre cliente e servidor.<\/p>\n<figure id=\"attachment_611\" aria-describedby=\"caption-attachment-611\" style=\"width: 821px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-611\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp19.png\" alt=\"DHCP Release\" width=\"821\" height=\"1154\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp19.png 821w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp19-364x512.png 364w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/dhcp19-768x1080.png 768w\" sizes=\"auto, (max-width: 821px) 100vw, 821px\" \/><figcaption id=\"caption-attachment-611\" class=\"wp-caption-text\">DHCP Release<\/figcaption><\/figure>\n<p>Aqui podemos ver que a primeira comunica\u00e7\u00e3o \u00e9 um pedido de <em>Release<\/em>, depois \u00e9 iniciado o processo <em>DORA<\/em> novamente e \u00e9 atribu\u00eddo um novo IP.<\/p>\n<h4 id=\"mac-filtering\">Criar Pools espec\u00edficas filtrando por fabricante<\/h4>\n<p>Se usar o comando <code>dhcp-lease-list<\/code> para ver os <em>leases<\/em> atuais, vai ver que logo na primeira linha \u00e9 mencionado um arquivo de texto para se obter os nomes dos fabricantes, e que esse arquivo deve ser baixado para <code>\/usr\/local\/etc\/oui.txt<\/code>, tenha aten\u00e7\u00e3o que a URL que \u00e9 mostrada n\u00e3o est\u00e1 correta, a localiza\u00e7\u00e3o atual desse arquivo \u00e9 <a href=\"http:\/\/standards-oui.ieee.org\/oui\/oui.txt\">http:\/\/standards-oui.ieee.org\/oui\/oui.txt<\/a>, fa\u00e7a o download desse arquivo para a localiza\u00e7\u00e3o mencionada para obter mais informa\u00e7\u00f5es sobre as m\u00e1quinas.<\/p>\n<p>Depois disso vamos adicionar uma nova classe para dispositivos HP que ser\u00e3o filtrados pelo seu <em>MAC Address<\/em>, e usando essa classe criar uma <em>Pool<\/em> exclusiva para esses dispositivos.<\/p>\n<figure id=\"attachment_616\" aria-describedby=\"caption-attachment-616\" style=\"width: 821px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-616\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/printer01.png\" alt=\"DHCP Class filtered by MAC\" width=\"821\" height=\"594\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/printer01.png 821w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/printer01-512x370.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/printer01-768x556.png 768w\" sizes=\"auto, (max-width: 821px) 100vw, 821px\" \/><figcaption id=\"caption-attachment-616\" class=\"wp-caption-text\">DHCP Class filtered by MAC<\/figcaption><\/figure>\n<p>Essa classe de nome\u00a0<em>HP<\/em> ir\u00e1 filtrar todos os dispositivos com <em>MAC Addresses<\/em> come\u00e7ados por 80:E8:2C e os colocar nessa classe, que por usa vez ser\u00e1 utilizada para identificar em qual <em>Pool<\/em> de endere\u00e7os esse dispositivo ser\u00e1 colocado.<\/p>\n<figure id=\"attachment_617\" aria-describedby=\"caption-attachment-617\" style=\"width: 821px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-617\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/printer02.png\" alt=\"DHCP Leases\" width=\"821\" height=\"594\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/printer02.png 821w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/printer02-512x370.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/printer02-768x556.png 768w\" sizes=\"auto, (max-width: 821px) 100vw, 821px\" \/><figcaption id=\"caption-attachment-617\" class=\"wp-caption-text\">DHCP Leases<\/figcaption><\/figure>\n<p>E aqui podemos ver que um equipamento teve um IP atribu\u00eddo com sucesso da <em>Pool<\/em> destinada a equipamentos HP.<\/p>\n<p>Agora que confirmamos que as configura\u00e7\u00f5es est\u00e3o corretas, vamos criar outra classe e <em>Pool<\/em> para equipamentos Lexmark.<\/p>\n<figure id=\"attachment_620\" aria-describedby=\"caption-attachment-620\" style=\"width: 821px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-620\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/printer03.png\" alt=\"DHCP Classes\" width=\"821\" height=\"594\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/printer03.png 821w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/printer03-512x370.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/printer03-768x556.png 768w\" sizes=\"auto, (max-width: 821px) 100vw, 821px\" \/><figcaption id=\"caption-attachment-620\" class=\"wp-caption-text\">DHCP Classes<\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<figure id=\"attachment_621\" aria-describedby=\"caption-attachment-621\" style=\"width: 821px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-621\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/printer04.png\" alt=\"DHCP Leases\" width=\"821\" height=\"594\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/printer04.png 821w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/printer04-512x370.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/printer04-768x556.png 768w\" sizes=\"auto, (max-width: 821px) 100vw, 821px\" \/><figcaption id=\"caption-attachment-621\" class=\"wp-caption-text\">DHCP Leases<\/figcaption><\/figure>\n<p>E como podemos ver, os dois clientes receberam IPs com sucesso e tamb\u00e9m tiveram seus fabricantes identificados corretamente, e abaixo temos as entradas no <em>syslog<\/em> referentes \u00e0s transa\u00e7\u00f5es DHCP dos dois dispositivos.<\/p>\n<figure id=\"attachment_623\" aria-describedby=\"caption-attachment-623\" style=\"width: 1085px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-623\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/printer05.png\" alt=\"Syslog\" width=\"1085\" height=\"706\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/printer05.png 1085w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/printer05-512x333.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/printer05-768x500.png 768w\" sizes=\"auto, (max-width: 1085px) 100vw, 1085px\" \/><figcaption id=\"caption-attachment-623\" class=\"wp-caption-text\">Syslog<\/figcaption><\/figure>\n<p>Vamos agora criar <em>Pools<\/em> para mais equipamentos, nesse caso para smarphones Samsung, Huawei e Crapple, as\u00a0<em>Pools<\/em> ter\u00e3o as seguintes faixas de IPs:<\/p>\n<ul>\n<li>Samsung: 10.51.1.1 &#8211; 10.51.1.5<\/li>\n<li>Huawei: 10.51.1.6 &#8211; 10.51.1.10<\/li>\n<li>Crapple: 10.51.1.11 &#8211; 10.51.1.15<\/li>\n<\/ul>\n<p>A configura\u00e7\u00e3o deve ficar dessa maneira:<\/p>\n<figure id=\"attachment_717\" aria-describedby=\"caption-attachment-717\" style=\"width: 1085px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-717\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/smartphones01.png\" alt=\"Smartphone DHCP Classes and Pools\" width=\"1085\" height=\"722\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/smartphones01.png 1085w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/smartphones01-512x341.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/smartphones01-768x511.png 768w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/smartphones01-600x400.png 600w\" sizes=\"auto, (max-width: 1085px) 100vw, 1085px\" \/><figcaption id=\"caption-attachment-717\" class=\"wp-caption-text\">Smartphone DHCP Classes and Pools<\/figcaption><\/figure>\n<p>E se conectarmos dispositivos desses fabricantes e dermos uma olhada na lista de <em>leases<\/em> iremos os encontrar dessa maneira:<\/p>\n<figure id=\"attachment_719\" aria-describedby=\"caption-attachment-719\" style=\"width: 1061px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-719\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/smartphones02.png\" alt=\"Lease list\" width=\"1061\" height=\"594\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/smartphones02.png 1061w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/smartphones02-512x287.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/smartphones02-768x430.png 768w\" sizes=\"auto, (max-width: 1061px) 100vw, 1061px\" \/><figcaption id=\"caption-attachment-719\" class=\"wp-caption-text\">Lease list<\/figcaption><\/figure>\n<p>E se desligarmos o servidor DHCP, temos o seguinte tr\u00e1fego quando os clientes tentam renovar seus <em>leases<\/em>:<\/p>\n<figure id=\"attachment_721\" aria-describedby=\"caption-attachment-721\" style=\"width: 1061px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-721\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/smartphones03.png\" alt=\"tcpdump lease renew\" width=\"1061\" height=\"658\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/smartphones03.png 1061w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/smartphones03-512x318.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/smartphones03-768x476.png 768w\" sizes=\"auto, (max-width: 1061px) 100vw, 1061px\" \/><figcaption id=\"caption-attachment-721\" class=\"wp-caption-text\">tcpdump lease renew<\/figcaption><\/figure>\n<p>E abaixo podemos ver o tr\u00e1fego de clientes renovando seus <em>leases<\/em> enquanto outro cliente tenta obter um <em>lease<\/em> sem sucesso, j\u00e1 que a <em>Pool<\/em> de endere\u00e7os dispon\u00edveis para essa classe de aparelhos j\u00e1 est\u00e1 cheia.<\/p>\n<figure id=\"attachment_724\" aria-describedby=\"caption-attachment-724\" style=\"width: 1133px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-724\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/smartphones05.png\" alt=\"Unsuccessful attempt\" width=\"1133\" height=\"1090\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/smartphones05.png 1133w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/smartphones05-512x493.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/smartphones05-768x739.png 768w\" sizes=\"auto, (max-width: 1133px) 100vw, 1133px\" \/><figcaption id=\"caption-attachment-724\" class=\"wp-caption-text\">Unsuccessful attempt<\/figcaption><\/figure>\n<h4 id=\"apache-install\">Instalar o Apache<\/h4>\n<p>Vamos agora instalar o Apache e o php, para isso use o comando <code>apt install apache2 libapache2-mod-php php -y<\/code><br \/>\nCom isso o Apache e php devem estar instalados e podemos verificar o estado do servi\u00e7o <em>apache2.<\/em><\/p>\n<figure id=\"attachment_738\" aria-describedby=\"caption-attachment-738\" style=\"width: 821px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-738\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/apache01.png\" alt=\"Apache2 service status\" width=\"821\" height=\"386\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/apache01.png 821w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/apache01-512x241.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/apache01-768x361.png 768w\" sizes=\"auto, (max-width: 821px) 100vw, 821px\" \/><figcaption id=\"caption-attachment-738\" class=\"wp-caption-text\">Apache2 service status<\/figcaption><\/figure>\n<p>Entretanto, se tentarmos acessar a p\u00e1gina padr\u00e3o do Apache com o firewall ativo teremos um <em>timeout<\/em>, por isso \u00e9 preciso abrir essas portas no firewall.<\/p>\n<p>Com a instala\u00e7\u00e3o do Apache um novo perfil de aplica\u00e7\u00e3o foi adicionado nas configura\u00e7\u00f5es do firewall, fazendo com que seja mais simples abrir as duas portas necess\u00e1rias de uma s\u00f3 vez, isso \u00e9 poss\u00edvel de ser feito com o seguinte comando <code>ufw allow \"apache full\"<\/code><\/p>\n<figure id=\"attachment_739\" aria-describedby=\"caption-attachment-739\" style=\"width: 821px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-739\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/apache02.png\" alt=\"Allowing Apache through the firewall\" width=\"821\" height=\"386\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/apache02.png 821w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/apache02-512x241.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/apache02-768x361.png 768w\" sizes=\"auto, (max-width: 821px) 100vw, 821px\" \/><figcaption id=\"caption-attachment-739\" class=\"wp-caption-text\">Allowing Apache through the firewall<\/figcaption><\/figure>\n<p>Com isso j\u00e1 podemos acessar a p\u00e1gina padr\u00e3o atrav\u00e9s do IP do servidor.<\/p>\n<figure id=\"attachment_741\" aria-describedby=\"caption-attachment-741\" style=\"width: 916px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-741\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/apache03.png\" alt=\"Apache2 Default Page\" width=\"916\" height=\"595\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/apache03.png 916w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/apache03-512x333.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/apache03-768x499.png 768w\" sizes=\"auto, (max-width: 916px) 100vw, 916px\" \/><figcaption id=\"caption-attachment-741\" class=\"wp-caption-text\">Apache2 Default Page<\/figcaption><\/figure>\n<h4 id=\"edit-default-page\">Editar p\u00e1gina padr\u00e3o<\/h4>\n<p>Vamos agora editar essa p\u00e1gina para mostrar algo diferente.<\/p>\n<p>Por defini\u00e7\u00e3o, ela fica localizada em <code>\/var\/www\/html<\/code>, l\u00e1 ir\u00e1 encontrar um documento chamado <code>index.html<\/code>, mude seu nome para <code>index.html.bak<\/code>, depois crie um novo documento com o nome de <code>index.html<\/code> e dentro dele coloque o seguinte conte\u00fado por enquanto:<\/p>\n<pre>&lt;!DOCTYPE HTML&gt;\r\n&lt;html&gt;\r\n  &lt;head&gt;\r\n    &lt;meta http-equiv=\"Content-Type\" content=\"text\/html; charset=UTF-8\"\/&gt;\r\n    &lt;title&gt;&lt;\/title&gt;\r\n  &lt;\/head&gt;\r\n  &lt;body&gt;\r\n  &lt;\/body&gt;\r\n&lt;\/html&gt;<\/pre>\n<p>Essa \u00e9 a estrutura b\u00e1sica de uma p\u00e1gina html, vamos come\u00e7ar por dar um t\u00edtulo para essa p\u00e1gina, entre as tags <code>title<\/code> coloque o t\u00edtulo desejado, se salvar o documento fizer um reload na p\u00e1gina atrav\u00e9s do navegador ver\u00e1 que agora temos uma p\u00e1gina em branco com o t\u00edtulo que foi colocado anteriormente, entretanto, a p\u00e1gina em si n\u00e3o tem conte\u00fado nenhum.<\/p>\n<p>Vamos colocar um pouco de php nessa p\u00e1gina, entretanto, primeiro \u00e9 preciso mudar a sua extens\u00e3o de <code>.html<\/code> para <code>.php<\/code>, caso contr\u00e1rio o servidor n\u00e3o ir\u00e1 executar nenhum c\u00f3digo php que esteja na p\u00e1gina.<\/p>\n<p>Depois de feita essa altera\u00e7\u00e3o, abra o documento <code>index.php<\/code>, dentro das tags <code>body<\/code> coloque o seguinte:<\/p>\n<pre>&lt;?php\r\n  include 'datahora.php';\r\n?&gt;<\/pre>\n<p>O conte\u00fado do documento deve ficar assim:<\/p>\n<pre>&lt;!DOCTYPE HTML&gt;\r\n&lt;html&gt;\r\n  &lt;head&gt;\r\n    &lt;meta http-equiv=\"Content-Type\" content=\"text\/html; charset=UTF-8\"\/&gt;\r\n    &lt;title&gt;Servidor do Pedro&lt;\/title&gt;\r\n  &lt;\/head&gt;\r\n  &lt;body&gt;\r\n    &lt;?php\r\n      include 'datahora.php';\r\n    ?&gt;\r\n  &lt;\/body&gt;\r\n&lt;\/html&gt;<\/pre>\n<p>Essa nova adi\u00e7\u00e3o far\u00e1 com que quando a p\u00e1gina seja carregada, um documento chamado <code>datahora.php<\/code> seja tamb\u00e9m carregado e seu conte\u00fado seja executado nesse local espec\u00edfico da p\u00e1gina, entretanto, como esse documento ainda n\u00e3o existe, continuaremos vendo uma p\u00e1gina em branco.<\/p>\n<p>Crie um novo documento chamado <code>datahora.php<\/code> e coloque o seguinte conte\u00fado nele:<\/p>\n<pre>&lt;?php\r\n  echo \"&lt;p&gt;SERVIDOR DO PEDRO&lt;\/p&gt;\";\r\n  echo \"&lt;p&gt;Data e Hora atual: \".date('Y-m-d H:i:s').\".&lt;\/p&gt;\";\r\n?&gt;<\/pre>\n<p>Salve e carregue novamente a p\u00e1gina, vai ver que agora temos conte\u00fado na p\u00e1gina.<\/p>\n<p>Vamos tamb\u00e9m adicionar uma imagem, abra o documento <code>index.php<\/code> e logo acima do in\u00edcio do bloco de c\u00f3digo php que adicionamos coloque o seguinte:<\/p>\n<pre>&lt;img src='cinel.png' alt='logo do cinel'&gt;<\/pre>\n<p>O atributo <code>src<\/code> indica o caminho da imagem, nesse caso o nome do arquivo da imagem \u00e9 <code>cinel.png<\/code> e est\u00e1 no diret\u00f3rio ra\u00edz da p\u00e1gina e o atributo <code>alt<\/code> cont\u00e9m um texto alternativo para a imagem, para o caso de ela n\u00e3o ser carregada, e com isso a p\u00e1gina agora fica assim:<\/p>\n<figure id=\"attachment_749\" aria-describedby=\"caption-attachment-749\" style=\"width: 916px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-749\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/apache05.png\" alt=\"Apache default website\" width=\"916\" height=\"595\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/apache05.png 916w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/apache05-512x333.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/apache05-768x499.png 768w\" sizes=\"auto, (max-width: 916px) 100vw, 916px\" \/><figcaption id=\"caption-attachment-749\" class=\"wp-caption-text\">Apache default website<\/figcaption><\/figure>\n<p>Outra coisa interessante, se o documento php que foi criado anteriormente for acessado diretamente teremos quase a mesma p\u00e1gina, mas dessa vez sem o t\u00edtulo e a imagem.<\/p>\n<figure id=\"attachment_750\" aria-describedby=\"caption-attachment-750\" style=\"width: 916px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-750\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/apache06.png\" alt=\"datahora.php\" width=\"916\" height=\"595\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/apache06.png 916w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/apache06-512x333.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/apache06-768x499.png 768w\" sizes=\"auto, (max-width: 916px) 100vw, 916px\" \/><figcaption id=\"caption-attachment-750\" class=\"wp-caption-text\">datahora.php<\/figcaption><\/figure>\n<p>Vamos agora habilitar conex\u00f5es seguras, para isso use os seguintes comandos:<\/p>\n<pre>a2enmod ssl\r\na2ensite default-ssl.conf\r\nservice apache2 restart<\/pre>\n<p>Agora, se acessarmos o site por https j\u00e1 temos a nossa conex\u00e3o encriptada.<\/p>\n<figure id=\"attachment_752\" aria-describedby=\"caption-attachment-752\" style=\"width: 1037px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-752\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/apache07.png\" alt=\"Encrypted connection\" width=\"1037\" height=\"674\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/apache07.png 1037w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/apache07-512x333.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/apache07-768x499.png 768w\" sizes=\"auto, (max-width: 1037px) 100vw, 1037px\" \/><figcaption id=\"caption-attachment-752\" class=\"wp-caption-text\">Encrypted connection<\/figcaption><\/figure>\n<h4 id=\"new-virtualhost\">Criar novo Virtual Host<\/h4>\n<p>Vamos agora criar um novo <em>virtualhost<\/em>, para isso, dentro da pasta <code>\/etc\/apache2\/sites-available<\/code> crie uma c\u00f3pia do arquivo <code>000-default.conf<\/code> com um nome ilustrativo do site a ser criado, nesse caso o dom\u00ednio utilizado ser\u00e1 <code>tbfinal.local<\/code>, por isso o nome do arquivo ficar\u00e1 como <code>tbfinal-local.conf<\/code>, depois disso abra esse novo arquivo de configura\u00e7\u00e3o como root.<\/p>\n<p>Precisaremos alterar uma linha e adicionar outra. Na linha onde temos a diretiva <code>DocumentRoot<\/code>, altere a localiza\u00e7\u00e3o atual de <code>\/var\/www\/html<\/code> para <code>\/var\/www\/tbfinal<\/code>, que vai ser onde iremos colocar os arquivos html e php desse novo site.<\/p>\n<p>Abaixo dessa linha que acabamos de alterar coloque a diretiva <code>ServerName tbfinal.local<\/code>, salve e recarregue o servi\u00e7o apache2.<\/p>\n<figure id=\"attachment_757\" aria-describedby=\"caption-attachment-757\" style=\"width: 821px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-757\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/tbfinal-virtualhost.png\" alt=\"tbfinal.local Virtual Host configuration\" width=\"821\" height=\"594\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/tbfinal-virtualhost.png 821w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/tbfinal-virtualhost-512x370.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/tbfinal-virtualhost-768x556.png 768w\" sizes=\"auto, (max-width: 821px) 100vw, 821px\" \/><figcaption id=\"caption-attachment-757\" class=\"wp-caption-text\">tbfinal.local Virtual Host configuration<\/figcaption><\/figure>\n<p>Com a configura\u00e7\u00e3o criada, agora crie a pasta onde o site ficar\u00e1 hospedado, ela ficar\u00e1 em <code>\/var\/www\/tbfinal<\/code>, como configuramos anteriormente, depois disso copie da pasta <code>\/var\/www\/html<\/code> os arquivos <code>index.php<\/code>, <code>datahora.php<\/code> e a imagem para a pasta <code>\/var\/www\/tbfinal<\/code>, depois disso abra o arquivo <code>index.php<\/code> para fazermos algumas altera\u00e7\u00f5es, para que n\u00e3o fique igual ao do site padr\u00e3o.<\/p>\n<pre>&lt;!DOCTYPE HTML&gt;\r\n&lt;html&gt;\r\n  &lt;head&gt;\r\n    &lt;meta http-equiv=\"Content-Type\" content=\"text\/html; charset=UTF-8\"\/&gt;\r\n    &lt;title&gt;Servidor do Pedro - Trabalho Final&lt;\/title&gt;\r\n  &lt;\/head&gt;\r\n  &lt;body&gt;\r\n    &lt;h1&gt;Trabalho Final da UFCD 5115&lt;\/h1&gt;\r\n    &lt;img src='cinel.png' alt='Logo do Cinel'&gt;\r\n    &lt;?php\r\n      include 'datahora.php';\r\n    ?&gt;\r\n  &lt;\/body&gt;\r\n&lt;\/html&gt;<\/pre>\n<p>E abaixo podemos ver um excerto da comunica\u00e7\u00e3o entre o servidor e o cliente, com um pedido GET onde podemos ver o dom\u00ednio que foi solicitado ao servidor.<\/p>\n<figure id=\"attachment_759\" aria-describedby=\"caption-attachment-759\" style=\"width: 821px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-759\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/apache08.1.png\" alt=\"tcpdump Apache\" width=\"821\" height=\"898\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/apache08.1.png 821w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/apache08.1-468x512.png 468w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/apache08.1-768x840.png 768w\" sizes=\"auto, (max-width: 821px) 100vw, 821px\" \/><figcaption id=\"caption-attachment-759\" class=\"wp-caption-text\">tcpdump Apache<\/figcaption><\/figure>\n<h4 id=\"certs\">Criar certificados e habilitar https<\/h4>\n<p>Primeiro vamos gerar o certificado, para isso use o comando <code>openssl req -x509 -nodes -days 180 -newkey rsa:2048 -keyout mysitename.key -out mysitename.crt<\/code><\/p>\n<p>Depois de criar o certificado e a chave, os mova para seus diret\u00f3rios correspondentes, o certificado, com a extens\u00e3o <code>.crt<\/code>, vai para a pasta <code>\/etc\/ssl\/certs<\/code>, e a chave privada, com a extens\u00e3o <code>.key<\/code>, vai para o diret\u00f3rio <code>\/etc\/ssl\/private<\/code>, certifique-se de que ambos arquivos pertencem ao user root, e que o grupo a que a chave pertence \u00e9 o <code>ssl-cert<\/code>.<\/p>\n<figure id=\"attachment_768\" aria-describedby=\"caption-attachment-768\" style=\"width: 845px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-768\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/cert01-2.png\" alt=\"Generating certificate\" width=\"845\" height=\"514\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/cert01-2.png 845w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/cert01-2-512x311.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/cert01-2-768x467.png 768w\" sizes=\"auto, (max-width: 845px) 100vw, 845px\" \/><figcaption id=\"caption-attachment-768\" class=\"wp-caption-text\">Generating certificate<\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<figure id=\"attachment_769\" aria-describedby=\"caption-attachment-769\" style=\"width: 821px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-769\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/cert02-2.png\" alt=\"Changing ownership\" width=\"821\" height=\"354\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/cert02-2.png 821w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/cert02-2-512x221.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/cert02-2-768x331.png 768w\" sizes=\"auto, (max-width: 821px) 100vw, 821px\" \/><figcaption id=\"caption-attachment-769\" class=\"wp-caption-text\">Changing ownership<\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<figure id=\"attachment_770\" aria-describedby=\"caption-attachment-770\" style=\"width: 821px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-770\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/cert03-1.png\" alt=\"Moving key and certificate\" width=\"821\" height=\"354\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/cert03-1.png 821w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/cert03-1-512x221.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/cert03-1-768x331.png 768w\" sizes=\"auto, (max-width: 821px) 100vw, 821px\" \/><figcaption id=\"caption-attachment-770\" class=\"wp-caption-text\">Moving key and certificate<\/figcaption><\/figure>\n<p>Com isso a chave e certificado j\u00e1 est\u00e3o armazenados nos locais certos, agora \u00e9 preciso criar um novo virtualhost para o site <code>tbfinal.local<\/code> que funcionar\u00e1 por https, o processo \u00e9 o mesmo que foi feito anteriormente, crie uma c\u00f3pia da configura\u00e7\u00e3o <code>default-ssl.conf<\/code> com um nome relevante e edite essa c\u00f3pia, altere o <code>DocumentRoot<\/code> apropriadamente e adicione a diretiva <code>ServerName<\/code>.<\/p>\n<p>Agora \u00e9 preciso selecionar os certificados que acabaram de ser criados, as altera\u00e7\u00f5es ser\u00e3o feitas nas diretivas <code>SSLCertificateFile<\/code> e <code>SSLCertificateKeyFile<\/code>, aponte a primeira para o certificado com a extens\u00e3o <code>.crt<\/code> e a segunda para a chave com a extens\u00e3o <code>.key<\/code>, depois disso \u00e9 preciso recarregar as configura\u00e7\u00f5es.<\/p>\n<figure id=\"attachment_771\" aria-describedby=\"caption-attachment-771\" style=\"width: 973px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-771\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/cert04-1.png\" alt=\"Virtual Host configured\" width=\"973\" height=\"706\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/cert04-1.png 973w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/cert04-1-512x372.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/cert04-1-768x557.png 768w\" sizes=\"auto, (max-width: 973px) 100vw, 973px\" \/><figcaption id=\"caption-attachment-771\" class=\"wp-caption-text\">Virtual Host configured<\/figcaption><\/figure>\n<p>Depois de feitas as configura\u00e7\u00f5es necess\u00e1rias e o <em>reload<\/em> do servi\u00e7o apache2, se acessarmos o site https:\/\/tbfinal.local veremos que ele tem um certificado, e se abrirmos o certificados poderemos ver suas informa\u00e7\u00f5es.<\/p>\n<figure id=\"attachment_772\" aria-describedby=\"caption-attachment-772\" style=\"width: 940px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-772\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/cert05-1.png\" alt=\"https site\" width=\"940\" height=\"639\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/cert05-1.png 940w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/cert05-1-512x348.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/cert05-1-768x522.png 768w\" sizes=\"auto, (max-width: 940px) 100vw, 940px\" \/><figcaption id=\"caption-attachment-772\" class=\"wp-caption-text\">https site<\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<figure id=\"attachment_773\" aria-describedby=\"caption-attachment-773\" style=\"width: 940px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-773\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/cert06-1.png\" alt=\"Certificate\" width=\"940\" height=\"639\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/cert06-1.png 940w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/cert06-1-512x348.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/cert06-1-768x522.png 768w\" sizes=\"auto, (max-width: 940px) 100vw, 940px\" \/><figcaption id=\"caption-attachment-773\" class=\"wp-caption-text\">Certificate<\/figcaption><\/figure>\n<p>E na imagem abaixo podemos ver todos os sockets que est\u00e3o \u00e0 escuta depois das configura\u00e7\u00f5es feitas no servidor.<\/p>\n<figure id=\"attachment_775\" aria-describedby=\"caption-attachment-775\" style=\"width: 821px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-775\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/sockets.png\" alt=\"Sockets listening\" width=\"821\" height=\"354\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/sockets.png 821w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/sockets-512x221.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2021\/09\/sockets-768x331.png 768w\" sizes=\"auto, (max-width: 821px) 100vw, 821px\" \/><figcaption id=\"caption-attachment-775\" class=\"wp-caption-text\">Sockets listening<\/figcaption><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Introdu\u00e7\u00e3o Configurar interfaces de rede Configurar acesso por SSH Instalar o isc-dhcp-server Configurar o servidor DHCP e verificar seu funcionamento Cria\u00e7\u00e3o das Pools Processo de<\/p>\n","protected":false},"author":1,"featured_media":541,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[23],"tags":[42,32,43,27,44,35,41],"class_list":["post-539","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-linux","tag-apache2","tag-dhcp","tag-isc-dhcp-server","tag-linux","tag-ssh","tag-ssl","tag-ubuntu-server"],"_links":{"self":[{"href":"https:\/\/wordpress.pedrorotoli.com\/index.php?rest_route=\/wp\/v2\/posts\/539","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.pedrorotoli.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.pedrorotoli.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.pedrorotoli.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.pedrorotoli.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=539"}],"version-history":[{"count":75,"href":"https:\/\/wordpress.pedrorotoli.com\/index.php?rest_route=\/wp\/v2\/posts\/539\/revisions"}],"predecessor-version":[{"id":779,"href":"https:\/\/wordpress.pedrorotoli.com\/index.php?rest_route=\/wp\/v2\/posts\/539\/revisions\/779"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.pedrorotoli.com\/index.php?rest_route=\/wp\/v2\/media\/541"}],"wp:attachment":[{"href":"https:\/\/wordpress.pedrorotoli.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=539"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.pedrorotoli.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=539"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.pedrorotoli.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=539"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}