Coder Social home page Coder Social logo

jpmoura / macnager-ufop Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 0.0 2.64 MB

Sistema de Gerenciamento da rede interna do Instituto Ciências Exatas e Aplicadas (ICEA) da Universidade Federal de Ouro Preto (UFOP)

PHP 8.91% Batchfile 0.01% JavaScript 13.43% ApacheConf 0.03% HTML 77.63%
ufop icea pfsense rede gerenciador laravel freebsd dhcp firewall server

macnager-ufop's Introduction

MACnager - Sistema de Gerenciamento de Rede

O MACnager é o sistema usado pelos corpos acadêmico e administrativo presentes no Instituto de Ciências Exatas e Aplicadas (campus João Monlevade) da Universidade Federal de Ouro Preto para o gerenciamento dos IP reais pertencentes ao campus. O objetivo da criação deste sistema visa facilitar o gerenciamento dos dispositivos integrantes a rede, onde cada um utiliza um IP real, evitando a manipulação e manutenção direta de diversos arquivos de configuração de servidores Firewall e DHCP bem como a facilitar a geração e manipulação de informações sobre esses dispositivos. Outro motivo foi a possibilidade de histórico da relação usuário e endereço IP atribuído ao mesmo em um determinado intervalo de tempo.

Sua necessidade surgiu dada a dificuldade de se gerenciar todos os dispositivos e arquivos de configurações entre os servidores de Firewall e DHCP, onde cada inserção ou remoção eram bastante custosas, necessitando edição de linhas em diferentes arquivos e execuções de comandos em diferentes servidores com o objetivo de proibir ou conceder acesso a um dado dispositivo. Existia também a dificuldade de se verificar se um dispositivo já fazia parte da rede ou não e de monitorar a sua utilização da rede. Outra dificuldade era a requisição de inclusão de um dispositivo por parte dos discentes, que necessitavam desloca-se até a sala dos administradores da rede e entregar o termo de compromisso em mãos para que pudessem ter sua requisição atendida.

O sistema foi desenvolvido usando a versão 5.3 do framework Laravel para aplicações web, um dos mais usados no mercado durante o período de desenvolvimento.

Funcionamento

O sistema se baseia que existem dois servidores, um que provê a interface de Firewall e outra que provê os parâmetros de conexão, o DHCP. O servidor de Firewall é o responsável pela liberação do acesso do dispositivo a Internet enquanto o DHCP provê as configurações necessárias

Os usuários de nível docente podem solicitar novas conceções de endereços IP para utilizar nos recursos adquiridos ou distribuir entre alunos bolsistas de projetos e/ou laboratórios. Podem também, caso sejam de cargo temporário, também solicitar a integração de sesus dispositivos a rede, porém com uma validade máxima de 2 anos a partir da data de aprovação da requisição. Não existe limite de quantidade de dispositivos por pessoa, cabendo aos administradores do sistema julgar se a requisição será aceita ou não.

Aos administradores, que correspondem aos técnicos do Núcleo de Tecnologia da Informação, cabe a tarefa de julgar toda e qualquer requisição feita mas tendo a opção de manipular os dados da mesma antes ou depois da aprovação mas nunca depois de uma negação ou desativação do dispositivo.

Para autenticação foi usado a mesma base de dados LDAP utilizada pelo sistema Minha UFOP, facilitando o uso para o usuário fazendo com que ele não precise de um login e senha específicos para utilizar o sistema.

Para o layout, foi usado como base o design AdminLTE desenvolvido por Abdullah Almsaeed, alterando-se basicamente só a palheta de cores do tema.

Instalação

Para instalação é necessário ter o gerenciador de dependências Composer instalado e também o Node.js entre as versões 0.12 e 6.9.4, de preferência globalmente, e ainda o Gulp.js. No diretório raiz do projeto, execute os seguintes comandos:

$ composer install
$ npm install
$ gulp --prod

Para usuários de sistemas UNIX, será necessário conceder permissão de leitura, gravação e execução da pasta em que se encontra o sistema para o grupo www-data que pode ser dado pelo seguinte comando usando a permissão de administrador:

chown -R www-data:USUARIO_DO_SISTEMA PASTA_DE_DESTINO

Basta usar o comando sudo ou su dependendo da distribuição Linux juntamente com este comando. Além disso, no arquivo de ambiente .ENV é necessário criar as seguintes a seguir, onde elas devem representar o endereço do servidor, o usuário e senha do mesmo em cada um deles, tanto Firewall como DHCP:

  • FIREWALL_HOST
  • FIREWALL_USER
  • FIREWALL_PASS
  • DHCP_HOST
  • DHCP_USER
  • DHCP_PASS

A estrutura do banco de dados usada pelo sistema pode ser criada a partir do script SQL encontrado aqui. Além disso é necessário configurar as variáveis de ambiente do Laravel a partir do arquivo na raiz do projeto sem nome mas de extensão ENV. Existe um arquivo de exemplo aqui que pode ser editado e depois renomeado apropriadamente apenas para .env onde nele deve-se encontrar o endereço, senha, usuário e nome da base do banco de dados além dos endereços, usuários e senhas dos servidores de Firewall e DHCP.

Erros conhecidos

  • Após retirada das requisições com prazo de validade vencido, não é gerado nem enviado os novos arquivos de configuração da tabela ARP e DHCP aos servidores;

TODO

  • Utilizar middlewares de autenticação e autorização nativos do Laravel;
  • Otimização do carregamento dos elementos CSS e Javascript usando Gulp juntamente com SASS ou LESS.
  • Permitir a importação dos arquivos de configuração;
  • Permitir que as configurações dos bancos possam ser alteradas sem a necessidade de manipulação direta do arquivo .ENV;
  • Otimizar a renderização da página para tabelas com grande quantidade de dados (tabelas de pedidos e de dispositivos ativos);

macnager-ufop's People

Contributors

jpmoura avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.