# UFCD 0843 - Projeto - Rodrigo Oliveira - TIIGR0916B
## Formadora: Carla Macedo

## Instalação do Debian Server
:::danger
**A seguir encontram-se as definições mais importantes que aparecem durante a instalação do Debian Server.**
:::
**Selecionar a interface primária, ou seja a interface que tem conexão à internet.**

**Selecionar "Yes" para quando quisermos instalar algum pacote ou dependência ter um local para ir buscar o mesmo.**

**Caso a Internet esteja por detrás de um servidor proxy, introduzir o IP do mesmo, para que tenhamos acesso à Internet.**

**Deixamos os pacotes por defeito e adicionamos a opção de servidor SSH para depois ter acesso SSH ao servidor.**

## Instalação de DHCP
**Login com as credenciais definidas durante a instalação.**

**Realizar um update e um upgrade ao servidor para verificar que os pacotes estão atualizados e que a ligação à Internet funciona.**

**Caso necessário voltar a introduzir o IP do proxy.**

**Instalar o pacote ISC-DHCP-SERVER que irá fornecer o serviço DHCP aos clientes da rede.**

:::info
DHCP - Dynamic Host Configuration Protocol, forneçe IPs a dispositivos para que os mesmos comuniquem em rede.
:::
**Os servidores necessitam de IP estático na porta interna, para que os clientes saibam sempre onde ir pedir os serviços do mesmo.**

:::danger
**Caso o IP não apareça configurado na porta enp0s8, podem executar o comando ```/etc/init.d/networking restart``` para fazer refresh à configuração de IPs nas interface.**
**Reboot à máquina se mesmo assim não funcionar.**
:::
**Aceder ao ficheiro isc-dhcp-server e introduzir a interface interna como no exemplo a baixo, para que o serviço saiba em qual das portas o mesmo deverá ouvir pelos pedidos de DHCP.**

**Acedemos ao ficheiro dhcpd.conf e introduzimos uma pool de IPs que irão depois ser distribuidos. Dizemos qual é a rede com o limite de IPs e de seguida o default gateway.**

**Realizar um restart ao serviço para aplicar as alterações.**

:::danger
**Se o DHCP não esteja a funcionar, verificar que todas as configurações anteriores foram executas sem qualquer erro ortográfico ou de espaçamento.**
:::
## Instalação de pastas SAMBA
:::info
**Samba** é um serviço, utilizado em sistemas operativos baseados em Unix, que simula um servidor Windows, permitindo que seja feita a partilha de ficheiros numa rede Microsoft.
:::
**Instalar o SAMBA com o seguinte comando.**

**Criar manualmente as pastas a ser partilhadas.**

**Configurar as mesmas no ficheiro smb.conf como no exemplo abaixo.**
**Path - Localização da pasta que irá ser partilhada.**
**Guest - Permitir visitantes na pasta**
**Writeable - Permitir a escrita e execução dentro da pasta.**

**Atribuir as permissões desejadas às pastas da seguinte forma.**
**Na primeira pasta apenas permitimos leitura e execução.**
**Nas seguintes pastas deixamos que os utilizadores escrevam nas mesmas.**

**Executar um restart aos serviços SAMBA.**
**Assim o serviço assume as definições anterioremente aplicadas.**


## Instalação do Apache2
:::info
Apache2 é o nome de um programa que simula um servidor Web em sistemas operativos baseados em Linux.
:::
**Instalar o Apache2 com o seguinte comando.**

**Criar a página desejada no formato HTML e renomear o mesmo ficheiro para "index.html", depois copiar o mesmo e quaisquer ficheiros a incluir para a seguinte localização.**

**Confirmar que os clientes chegam à página web do servidor, procurando a mesma com o IP do servidor, caso não tenha sido ainda configurado nenhum DNS.**

## Instalação do Asterisk
:::info
Asterisk é um programa que permite que um sistema operativo baseado em Linux passe a servir de central telefónica através do serviço VOIP.
:::
**Para instalar o Asterisk, executar o seguinte comando.**

**Introduzir as seguintes configurações no ficheiro "sip.conf" e guardar as mesmas.**

**Configurar o ficheiro "users.conf" e "extensions.conf" como nos seguintes exemplos.**


**Entrar na consola do Asterisk com o seguinte comando.**

**Realizar um restart ao mesmo.**

### Instalar o Zoiper Windows
**Fazer download à versão mais atual do Zoiper no seu site oficial.**
https://www.zoiper.com/

**Selecionar a arquitetura igual ao computador onde o mesmo está a ser instalado.**

**Permitir ligações em redes privadas.**

**Nos seguintes campos introduzimos o número e password configurado no Asterisk.**

**Introduzir o IP do servidor com a porta 5060.**

**Esperar que a configuração SIP UDP seja encontrada podendo depois clicar em "Next".**

**Testar a ligação, fazendo uma chamada para outro número configurado.**

## Configuração das IPTABLES
:::info
**iptables** é o nome da ferramenta da interface do utilizador que permite a criação de regras de firewall e NATs.
:::
**Atribuir IPs preferidos na configuração do DHCP.**
**Tal como pedido pelo trabalho foram reservados dois IPs para ambos os clientes Windows.**
**Utilizamos o MAC Address que é único por equipamento.**

**Permitir NAT no servidor para os clientes internos.**
**Traduzir os IPs internos para um unico exterior.**


**Atribuir regras para permitir o NAT.**

:::info
**Limpar todas as regras no caso de engano.**
```
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -t nat -F
iptables -t mangle -F
iptables -F
iptables -X
```
:::
**Bloquear o endereço "facebook.com" ao segundo Windows e bloquear o endereço "youtube.com" ao Linux, utilizando os MAC Address de cada um.**

**Instalar o iptables-persistent.**

## Instalação de Webchat - OpenFire
**Fazer download da versão mais recente do Openfire no website do mesmo.**

**Instalar o Gdebi com o seguinte comando para depois instalar o Openfire.**

**Abrir o ficheiro com o Gdebi para instalar o mesmo.**

**Inciar o serviço do Openfire.**

**Entrar na consola através de um browser através do IP do servidor com a porta "9090".**

### Configuração do OpenFire
:::warning
**Alterar as portas para ""9091"" e ""9092"" respetivamente.**
**Mais tarde o Cockpit irá utilizar as portas 9090 e existe um conflito se deixarmos as portas iguais.**
:::
**Continuar a configuração da mesma forma como nas imagens abaixo.**


:::warning
**Poderá ser necessário reiniciar o serviço para que a alteração da porta seja aplicada.**
:::

**Entrar com as credenciais anteriormente configuradas.**

### Configuração de Utilizadores no Openfire


### Iniciar o Spark no Windows
**Fazer download do cliente Spark do website do Openfire e instalar o mesmo.**

**Iniciar o Spark com as identificações configuradas no servidor.**

**Selecionar Advanced e verificar que as seguintes definições estão selecionadas.**

**Iniciar a conversa para testar que funciona.**

## Configuração de Email Server - Postfix/Courier-IMAP/Thunderbird
### SMTP
SMTP significa **Simple Mail Transfer Protocol**.
SMTP é usado quando queremos enviar um e-mail, utilizando uma aplicação de e-mail, como o Outlook ou ThunderBird.
O protocolo também é utilizado na comunição entre servidores de e-mail, para comunicar onde está o destinatário do e-mail, tudo isto em frações de segundo.
A porta mais comum usada pelo protocolo é a porta 25.
<center>

</center>
---
### POP3
POP3 significa **Post Office Protocol**.
O protocolo POP3 é simples e não oferece muitos recursos, excepto para download. O seu conceito pressupõe que o cliente de e-mail faça download de todo o e-mail disponível no servidor, apagando os mesmos do servidor e, em seguida, desliga-se.
Ao utilizar este procolo, conseguimos visualizar os emails caso não tenhamos acesso à Internet.
<center>

</center>
---
### IMAP
IMAP significa **Internet Message Access Protocol**.
O IMAP partilha muitas características semelhantes com o POP3, mas o IMAP inclui mais recursos do que POP3.
O protocolo IMAP foi desenvolvido para permitir que os utilizadores mantenham seus e-mails no servidor.
O IMAP requer mais espaço em disco no servidor e no geral mais recursos de servidor do que POP3, já que todos os e-mails são armazenados no servidor.
Ao utilizar este procolo, apenas irá conseguir visualizar os seus emails, caso não tenha acesso à Internet, se o seu cliente de e-mail estiver configurado especificamente para tal.
<center>

</center>
---
### MTA
MTA significa **Message Transfer Agent**.
É um programa (ex: Postfix) de computador responsável por transferências de mensagens de correio electrônico entre um computador e outro, podendo receber mensagens de outro MTA (relaying), e fazendo o seu trabalho sem interação directa do utilizador.
<center>

</center>
---
### MUA
MUA significa **Message User Agent** e é simplesmente é um programa que intrepeta o e-mail recebido de um SMTP Server (MTA) através de POP3 ou IMAP e o disponibliza para leitura do utilizador.
Existem vários programas desse tipo, mas entre os mais conhecidos temos o Outlook, Thunderbird e o Apple Mail.
<center>

</center>
---
### MDA
MDA significa **Mail Delivery Agent** e é responsável pela entrega do email para a caixa de correio do receptor.
Existem programas que fazem o trabalho tanto de MUA como MDA, mas fazendo só o trabalho de MDA temos como por exemplo o Procmail
<center>

</center>
---
### Exemplo do processo completo
<center>

</center>
---
### Instalação do Postfix e Courier-IMAP
**Instalar o Postfix da seguinte forma.**

**Na configuração do Postfix escolher as seguintes opções.**


**Fazer o seguinte comando para reconfigurar o Postfix e adicionar as seguintes definições.**




**Editar o ficheiro "main.cf" e incluir "home_mailbox = Maildir/".**

**Instalar o Mail-utils com o seguinte comando.**

**Instalar o Courier-imap com o seguinte comando.**

**Selecionar a seguinte opção.**

**Criar a pasta Maildir no skel para ser adicionada uma caixa de correio automaticamente a qualquer novo utilizador.**

**Adicionar os utilizadores ao servidor.**

**Comandos para reiniciar aos serviços.**



### Instalação do Thunderbird
**Fazer download do cliente Thunderbird do website https://www.thunderbird.net/**
**Instalar o mesmo da seguinte forma.**


**Configurar as contas com as seguintes definições.**


:::warning
**Certificar-se que as opções estão todas corretas ou iguais às seguintes.**
:::

**Testar os e-mails entre utilizadores.**

## Configurar Web Administration - Cockpit
**Realizar o seguinte comando para adicionar as dependências necessárias para instalar o Cockpit.**

**Fazer update ao servidor com o seguinte comando.**

**Instalar o Cockpit com o seguinte comando.**

**Fazer enable ao webInterface com o seguinte comando.**

**Ao aceder com o IP do server e a porta "9090", seguir os seguintes passos para entrar no webInterface.**

