Um dos meus interesses fora da minha área de investigação é administração de sistemas e de redes de computadores. Comecei a interessar-me particularmente por esta área depois de trabalhar mais de dois anos na Sala de Computadores do Departamento de Engenharia Eletrotécnica e de Computadores do Instituto Superior Técnico.
Depois de cessar funções, esta atividade tornou-se um hobby, e decidi aplicar alguns dos conhecimentos adquiridos para remodelar a intra-rede da minha casa. O meu objetivo com este projeto foi construir uma solução robusta que ao mesmo tempo permitisse a configurabilidade que a maior parte dos roteadores instalados pelas operadores não oferecem. A especificação inicial para esta solução foi a seguinte:
- Gerenciamento de IPs melhorado e possibilidade de criar IPs estaticamente atribuídos com base nos endereços MAC dos dispositivos;
- Criação de um servidor de nomes (DNS) interno para facilitar o acesso remoto entre máquinas;
- Criação de uma VPN;
- Automação do processo de Wake-On-Lan nos meus servidores de hardware;
- Criação de serviços centralizados para armazenamento de dados, autenticação, multimédia e web.
- Distribuíção de pontos de acesso pela casa para melhorar a rede Wifi.
Para suportar estes serviços, foi implementada uma estrutura física/virtual que corresponde à figura seguinte. 
A custom gateway foi implementada num computador antigo usando a solução OpenSource IPFire.
O host das máquinas virtuais foi construído a partir de peças usadas e atualizado para suportar os serviços requeridos. Uma versão minimalista do CentOS 7 foi instalada e a máquina foi configurada para ser um Virtual Host. Para isolar os serviços e garantir alguma robustez no sistema, foram criadas quatro máquinas virtuais:
- O servidor de armazenamento corre uma versão minimalista do CentOS 7 e dois serviços: NFS e SAMBA. Ambos os serviços estão protegidos pela autenticação centralizada providenciada pelo servidor de autenticação. Os HDDs que são usados por este servidor são diretamente gerenciados pela máquina virtual e não podem ser acedidos pelo host. Estes HDDs encontram-se montados em RAID 10 para garantir simultaneamente redundancia e escalabilidade.
- O servidor de autenticação corre uma versão minimalista do CentOS 7 e implementa o sistema de gerenciamento de identidades FreeIPA. Todos os serviços principais usam este serviço para autenticar os utilizadores.
- O servidor de multimédia corre o serviço DLNA suportado pela maioria das Smart TVs. Desta forma, uma Smart TV ligada à rede pode reproduzir facilemnte imagens, música e videos armazenados no espaço gerido pelo servidor de armazenamento.
- O servidor web é responsável por servir conteúdo HTTP/HTTPS e implementa automaticamente um servidor web para todos os utilizadores do sistema na diretoria /web das respetivas homes.
Para comunicar com a rede externa (internet), alguns portos foram redirecionados da gateway do operador para a custom gateway, e a gateway do operador foi associada a um serviço de DDNS para facilitar a resolução de nomes a partir de uma rede externa. Para providenciar uma camada básica de segurança, a infraestrutura conta com duas firewalls e todas as máquinas físicas e virtuais implementam uma terceira firewall e o serviço Security-Enhanced Linux. Por razões de segurança, eu não forneço nenhuma descrição de como fiz o forward dos portos ou de como as firewalls estão configuradas. No entanto, tenho todo o gosto em reponder a “questões académicas” sobre este assunto caso me sejam perguntadas diretamente. 🙂
O processo de configuração deste sistema megalómano, como é de esperar, deu-me bastante trabalho e algumas dores de cabeça. Envolveu muitas horas de pesquisa e tive criar bastantes ficheiros de configuração de raíz. Para ilustrar um pouco este processo, abaixo encontram-se alguns dos tutoriais originais, criados por mim, para configurar alguns dos serviços:
- Configure Apache server to serve subdirectory in the user’s home directory
- Configure DokuWiki to use FreeIPA authentication
- Configure Samba to use FreeIPA authentication
Todos estes tutoriais são originais e contém informação que não pode ser facilmente encontrada em mais lado nenhum!
Este foi, de longe, um dos projetos mais interessantes que completei até à data. Caso tenham questões de como alguma coisa foi implementada, não hesitem em contactar-me. 🙂