# Serviços em Linux(DHCP/DNS)
*Descrição do que são serviços em Linux.*
## Instalar Ubuntu Server em VM
<iframe width="560" height="315" src="https://www.youtube.com/embed/gqLaT01yei0" frameborder="0" allowfullscreen></iframe>
## DHCP
### O que é o DHCP
DHCP é um protocolo utilizado em redes TCP/IP que permite obterem um endereço IP de forma automaticamente e dinâmica a computadores que estejam ligados na rede.

### Como funciona o DHCP;
1. O cliente entra na rede e faz um broadcast para saber quem lhe pode dar um ip.
2. O Servidor fala com ele e diz que têm um ip possivel para lhe dar.
3. O Cliente aceita o ip que o servidor têm para lhe dar.
4. O Servidor envia o ip para o cliente para que ele possa navegar na sua rede.

3. Exemplo de funcionamentro do DHCP;
Temos um Servidor e dois Clientes numa rede, os dois clientes já estão configurados na rede, mais tarde entra outro cliente e queria entrar na rede para falar com os outros clientes, então o cliente novo pergunta quem é o servidor e o servidor reponde que é ele e diz que têm um ip disponível para ele, o cliente aceita o ip dado, então o servidor manda o ip e assim o cliente já consegue comunicar com os outros clientes.

# Instalação DHCP em Debian
```
sudo apt-get install isc-dhcp-server
```
### Para visualizar o ip da maquina utilizamos os comandos:
* **ifconfig**

* **ip addr**

* **#Instalar isc-dhcp-server**
```
sudo apt-get install isc-dhcp-server
```
* **#Posiciona-se no diretório de network**
```
cd /etc/network
```
* **#Criamos uma cópia de segurança**
```
cp interfaces interfaces~
```
* **#edita-se o ficheiro, com permissões de escrita sudo nano interfaces**

```
Exemplo:
allow-hotplug 'nome interface'
iface 'nome interface' inet static
address 192.168.0.1
netmask 255.255.255.0
gateway 192.168.0.1
```
***Nota***:
```
'nome da iface'pode ser por exemplo, eth0; ou enp0s3, e no caso de se ter mais de duas placas a segunda é normalmente a usada para as pools
```
2. Editar as configurações para a pool DHCP(esta informação fica sempre no final)
**Localiza-se:** /etc/dhcp/dhcpd.conf

Exemplo:
subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.9 192.168.10.250;
option routers 192.168.10.1;
}
***Nota***
**Atenção com a pontuação do passo acima**
3. Editar o ficheiro e indicar qual é a interface.
**Localiza-se:** - /etc/default/isc-dhcp-server

```
Exemplo:
INTERFACESV4="enp0s8"
```
**NOTA**
```
A interface inserida será sempre a que têm ip statico
```
4. Serviço DHCP Server e comandos(Start/Status/Stop)
```
/etc/init.d/isc-dhcp-server start
status
stop
```
# *DNS*
## DNS
* Existem duas formas de aceder a uma página na internet, pelo nome de domínio, ou pelo endereço IP dos servidores nos quais ela está hospedada.
* A função do DNS é traduzir as palavras que compõem a URL para o endereço IP do servidor e vice-versa.
* Ou seja para não ser necessário escrever a sequência de números no navegador sempre que se queira visitar um site o DNS tem a função de traduzir esses IPs para palavras sendo mais façil de serem decoradas e procuradas pelos utilizadores.
<center>

</center>
Cada servidor possui um endereço IP único, logo, cada domínio leva a um IP específico. Por isso, não é possível ter dois sites diferentes com URLs iguais. Ao contrário seria diferent, pois diversos endereços poderiam encaminhar-nos para o mesmo site.
### Hierarquia
* Devido ao imenso tamanho da Internet, armazenar todos os pares domínio e todos os nomes num só servidor ce DNS seria impossivel e inviável ou seja este, está dividido:
__Disponibilidade:__ se o único servidor de DNS falhasse, o serviço se tornaria indisponível para o mundo inteiro.
__Volume de tráfego:__ o servidor deveria tratar os pedidos DNS do planeta inteiro.
__Distância:__ grande parte dos usuários estaria muito distante do servidor, onde quer que ele fosse instalado, gerando grandes atrasos para resolver pedidos DNS.
__Manutenção do banco de dados:__ o banco de dados deveria armazenar uma quantidade de dados enorme e teria que ser atualizado com uma frequência muito alta, toda vez que um domínio fosse associado a um endereço IP.
## BIND 9
* Nota: BIND (Berkeley Internet Name Domain ou, como chamado previamente, Berkeley Internet Name Daemon) é o servidor para o protocolo DNS mais utilizado na Internet, especialmente em sistemas do tipo __Unix__.
<center>

</center>
* O Bind 9 foi criado por quatro estudantes de graduação, membros de um grupo de pesquisas em ciência da computação da Universidade de Berkeley e foi distribuído pela primeira vez com o sistema operativo 4.3BSD. O programador Paul Vixie, enquanto trabalhava para a empresa DEC, foi o primeiro mantenedor do BIND. Atualmente o BIND é suportado e mantido pelo Internet Systems Consortium.
* Para a versão 9, o BIND foi praticamente reescrito. Ele passou a suportar, dentre outras funcionalidades, a extensão DNSSEC e os protocolos TSIG e IPv6.
# Instalação Server DNS + DHCP Server
service dnsmasq status
##### 1.apt-get update
##### 2.apt-get install dnsmasq
***NOTA:***
```
Ao instalar o dnsmasq teremos de inserir um cd
```
##### 3.nano /etc/dnsmasq.conf

Nesta imagens podemos ver duas linhas sublinhadas a linha de mostra **"interface_enp0s8"** significa que a interface que esta **disponivel para ser usada no dns ou dhcp** irá ser a **enp0s8**, na segunda linha sublinhada refere-se ao dhcp o **"no-dhcp-interfaces= "** o que isto faz é perguntar qual é a interface que nós não queremos que dê ip, no caso de não quereremos inserimos a interface,mas se quiseremos que o dnsmasq dê dhcp não inserimos nada.
**NOTA**
quando queremos validar a opção temos de retirar os cardinal que está atrás do comando. Se repararemos nos queremos validar a opção "interface=enp0s8" então nós tiramos o cardinal dque estava atrás dela.

Nesta imagem o que o "dhcp-range= x.x.x.x, x.x.x.x" diz é que o range de ip's será aquele durante aquele determinado tempo, o tempo pode ser mudado para mais ou para menos.

Para vizualizarmos se o dnsmasq está ativo e a funcionar podemos inserir os comandos a baixo, nesta imagem podemos ver que o dnsmasq está em funcionamento porque diz "active (runing)", e para vizualizar se o dhcp range está em funcionamento podemos ver mais embaixo.
service dnsmasq start
status
restart
stop
ou
/etc/init.d/dnsmasq start
status
restart
stop
# Instalar DNS Server(Apache Server)
apt-get install apache2
-------------------------------------------
# Modificação da Página do Apache
cd /var/www/html/
rm index.html
nano index.html