# **Relatório 0839: Linux - Serviços de Redes**
## **Introdução**
> Neste relatório irei demonstrar passo-a-passo como numa máquina virtual com o sistema operativo Debian, podemos instalar os serviços Dnsmasq (que vai incluir DNS e DHCP), Samba e Apache2.
## **1ª Fase - Instalação do Debian**
Primeiro de tudo quando somos recebidos com o menu de boot do instalador do Debian, selecionamos a opção ``Ìnstall`` pois não temos necessidade do instalador gráfico.

Agora vamos tratar de todas as definições relacionadas com a linguagem e a localização. Para começar selecionamos ``English`` como a linguagem do nosso sistema.
Depois vamos selecionar a nossa localização. Para selecionar Portugal, temos de selecionar ``other`` > ``Europe`` > ``Portugal``. Como não existe o "locale" para Portugal, temos de selecionar o mais semelhante ao do nosso país. Selecionamos então o ``United Kingdom - en_GB.UTF-8``.
Agora vamos selecionar o nosso esquema de teclado, que será ``Portuguese``.

Após as configurações anteriores, somos recebidos com um ecrã que nos pergunta qual a interface para ser utilizada como interface principal. A interface principal será aquela que se vai conectar á Internet, a outra será para falar com a rede interna. Por isso selecionámos a ``enp0s3``.

Agora vamos definir as configurações principais do server, começando pelo seu nome, ou seja, o ``hostname``.
Tendo em conta que o servidor não está em nenhum domínio, deixamos o ``Domain name`` em branco.
É nos pedido agora a atribuição da palavra passe do ``root``. O root é o utilizador com mais poder dentro de qualquer sistema, portanto é bom definir uma password que nunca seja esquecida.
Agora é nos pedido o nome do utilizador do servidor, onde podemos preencher com qualquer nome á nossa escolha. Depois definimos o nosso ``username`` e a respetiva password.
Agora escolhemos a ``time zone`` desejada, no meu caso será ``Lisbon``.

Neste passo vamos definir o esquema de partições do disco. Para manter isto simples selecionamos ``Guided - use entire disk``.
Depois selecionamos o disco onde vai ser instalado o Debian, e também definimos como queremos os nossos diretórios ``home``, ``var`` e ``tmp``, mais uma vez para simplificar, escolhemos a primeira opção ``All files in one partition`` onde os três diretórios ficarão na mesma partição.
Após essa seleção, basta verificar o esquema de partição e aceitar as mudanças no disco.

Agora, para o instalador fazer download de qualquer ficheiro que seja necessário, precisamos de configurar o ´´apt´´, que é o nosso gestor de pacotes.
Selecionamos que queremos um ``network mirror``, depois selecionamos o país, e uma lista de ``mirrors`` vai surgir. No meu caso selecionei o primeiro ``ftp.pt.debian.org``.
Agora o instalador pergunta se queremos utilizar um ``proxy``, apenas preenchemos se no nosso acesso á Internet, estiver um ``proxy``.
Depois vai aparecer uma janela onde é questionado o desejo de participar no inquérito de pacotes, qualquer resposta não terá influência na instalação.

Agora vai aparecer uma janela que nos pergunta qual o software a instalar. Para efeitos do servidor que queremos montar, basta estarem selecionados ``SSH Server`` e ``standart system utilities``. Para marcar ou desmarcar as opções, carregamos na ``Barra de Espaço``.

Para finalizar a instalação do Debian, apenas falta instalar uma importante peça de software, o ``bootloader``. Se não tivermos o mesmo, o disco não irá reconhecer o sistema operativo, e não será possível executa-lo. Para instalar o ``GRUB`` basta selecionar o disco onde está o nosso Debian.
E assim damos por concluida a instalação.

---
## **2ª Fase - Configuração dos interfaces de rede**
Agora após a instalação do Debian, necessitamos de configurar os nossos dois interfaces de rede. Para o fazer executamos o comando ``sudo nano /etc/network/interfaces``.
Observando o ficheiro, podemos que a nossa interface principal ``enp0s3`` que faz a nossa ligação para a Internet, está configurada para ``dhcp`` ou seja está a receber IP diretamente do router.
Agora precisamos de acrescentar informações em relação ao nosso interface que vai ser a porta para a rede interna, o ``enp0s8``.
A primeira informação a acrescentar vai ser ``auto enp0s8`` que indica que a interface vai subir cada vez que o sistema inicia.
Agora introduzimos a linha ``iface enp0s8 inet static`` que indica que a interface vai ter IP estático.
A nossa rede interna vai ser ``192.168.1.0/24``, portanto ao servidor vai ser atribuido o IP ``192.168.1.1/24``, por isso a proxima linha vai ser ``address 192.168.1.1``, complementada com ``netmask 255.255.255.0`` e finalizada com ``gateway 192.168.1.1``.

Depois para levantar a interface manualmente, inserimos o comando ``ip link set enp0s8 up``.

Para confirmar que a interface subiu, e se ficou com o IP que nós atribuimos, executamos o comando ``ip addr``. Onde podemos observar que na ``enp0s8`` tem os pârametros ``UP`` e está com o IP ``192.168.1.1/24``.
---
## **3ª fase - Instalação e configuração do dnsmasq**
Para que na nossa rede interna operem os serviços DHCP e DNS, necessitamos de instalar o serviço ``dnsmasq``. Para o fazermos executamos o comando ``sudo apt-get install dnsmasq``.
Para qualquer configuração referente ao serviço dnsmasq, temos de editar o ficheiro ``/etc/dnsmasq.conf``. Para começarmos a edição do ficheiro, executamos o comando ``sudo nano /etc/dnsmasq.conf``.
A primeira configuração a inserir, vai ser a definição da interface onde o ``dnsmasq`` vai trabalhar, portanto acrescentamos a linha ``interface=enp0s8``.
A próxima configuração a inserir vai ser referente a funcionalidade de DHCP do dnsmasq, portanto acrescentamos a linha ``dhcp-range=192.168.1.10,192.168.1.254,12h``, com esta configuração estou a reservar os primeiros 10 IP's da minha rede, e estou a indicar que os IP's atribuidos vão estar no ativo durante 12h.
E para terminar a edição da configuração, defini um nome e um IP fixo para a minha máquina cliente, de modo a não ter que decorar o IP para questões de facilidade de acesso á mesma. Para o fazer acrescentamos a linha ``dhcp-host=08:00:27:0A:C1:D5,teste,192.168.1.88``.
O MAC Address da máquina cliente, que tem o sistema operativo Windows XP, foi descoberto abrindo uma linha de comandos, e digitando o comando ``ipconfig /all``. O nome atribuido á máquina será ``teste``, e ficará com o IP fixo ``192.168.1.88``.

O ficheiro ``/etc/dnsmasq.con`` terá de ficar com o seguinte aspecto:

Para colocarmos o serviço a funcionar, executamos o comando ``sudo /etc/init.d/dnsmasq restart``.
Agora necessitamos de voltar a editar o ficheiro ``/etc/network/interfaces`` para adicionar o servidor como servidor DNS, e permitir que se estabeleça comunicação com o servidor utilizando o nome ``oliveira``.
Para isso vamos acrescentar as linhas ``dns-nameservers 192.168.1.1`` e ``dns-search oliveira``.

Precisamos agora de editar o ficheiro ``/etc/resolv.conf`` de modo a designar o nosso servidor, como o servidor DNS da rede. Para editar o ficheiro executamos o comando ``sudo nano /etc/resolv.conf``. Damos comment ``#`` a todas linhas presentes no ficheiro, e acrescentamos a linha ``nameserver 192.168.1.1``.

Agora de modo a evitar que o ficheiro seja editado automaticamente pelo sistema, necessitamos de acrescentar o comando ``sudo chattr +i /etc/resolv.conf``.
---
## **4ª fase - Instalação e configuração do Samba**
A partir de uma instalação limpa e já com o serviço do dnsmasq devidamente configurado, prossiga para a instalação do samba.
Execute o seguinte comando para instalar o samba.
``sudo apt-get install samba``
Em seguida crie um diretorio para ser a primeira pasta de partilha.
``sudo mkdir /srv/share``
(assim como share, pode ser outro nome qualquer)
De seguida dê permissões à pasta, que neste caso vão ser dadas todas as permissões. (mais informações de opções no final)
``sudo chmod 777 /srv/share``
Agora configure o samba.
``sudo nano /etc/samba/smb.conf``
Dentro do mesmo procure por “homes” usando (ctrl+w) e coloque como demonstrado abaixo. (Sem substituir nada, a não ser o “yes” e o “no”.)
``
[homes]
browseable = yes
read only = no
``
Agora crie e configure a pasta partilha.
``
[Nome_da_pasta]
comment = (comentário, ex: First share)
path = (link, ex: /srv/share)
guest ok = yes
browseable = yes
create mask = 0777
directory mask = 0700
read only = no
``

Agora para pôr a funcionar reinicie o serviço.
`` sudo nano /etc/init.d/samba restart``
Adicionar um utilizador
``sudo adduser (utilizador)``
Associar uma password ao utilizador
``sudo smbpasswd -a (utilizador)``

Após isso, crie uma pasta para o mesmo.
``sudo mkdir (link, ex: /srv/share/usershare)``
Para criar pastas pessoais aceda as configurações do samba.
``sudo nano /etc/samba/smb.conf``
Dentro do ficheiro
``
[Nome da pasta]
comment = (Comentário)
path = (link, ex: /srv/share/usershare)
guest ok = no
browseable = yes
create mask = 0600
directory mask = 0700
read only = no
valid users = (utilizador)
``
Tornar o utilizador dono da pasta.
``sudo chown (utilizador):users (link)/ -R``
---
## **Fase final - Instalação e configuração do Apache 2**
Instalar o apache
``apt-get install apache2``
Configurar o apache
Primeiro vá até à pasta html.
``cd /var/www/html``
Dentro da pasta troque o dono da mesma para o seguinte grupo
``sudo chown www-data:www-data . -R``
Agora adicione o grupo ao utilizador principal (aquele que tem permissões de administrador).
``sudo usermod -a -G www-data [username]``
Por fim altere as permissões do grupo, de forma a que os membros do mesmo tenha permissão de ler, escrever e executar.
``sudo chmod g+wxr . -R``
### **Rodrigo Oliveira TIIGR0916B**