Ministério da Educação
Instituto Federal Educação, Ciência e Tecnologia de Goiás
Câmpus Jataí
Coordenação dos Cursos de Informática
Curso Superior em Análise e Desenvolvimento de Sistemas
CWC
CENTOS WEB CONTROL
Rogério Fabricio Sousa
Victor Gouveia de Andrade
Ministério da Educação
Instituto Federal Educação, Ciência e Tecnologia de Goiás
Câmpus Jataí
Coordenação dos Cursos de Informática
Curso Superior em Análise e Desenvolvimento de Sistemas
CWC
CENTOS WEB CONTROL
Trabalho de conclusão de curso apresentado ao IFG / Câmpus Jataí como parte dos requisitos necessários para obtenção do título de Tecnólogo em Análise e Desenvolvimento de Sistemas.
Rogério Fabricio Sousa Victor Gouveia de Andrade Orientador: Prof. ME. Renato Oliveira Abreu
Rogério Fabricio Sousa Victor Gouveia de Andrade
CWC
CENTOS WEB CONTROL
Trabalho de Conclusão de Curso apresentado à banca examinadora da Coordenação do Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas do Instituto Federal de Educação, Ciência e Tecnologia de Goiás – Câmpus Jataí, como parte dos requisitos para a obtenção do título de Tecnólogo em Análise e Desenvolvimento de Sistemas.
COMISSÃO EXAMINADORA
___________________________________ Prof. Esp. Daniel Silva Carvalho
IFG/Câmpus Jataí-GO
___________________________________ Prof. ME. Eliane Raimann
IFG/Câmpus Jataí-GO
___________________________________ Prof. ME. Renato Oliveira Abreu
IFG/Câmpus Jataí-GO
Agradecimentos Rogério Fabricio Sousa
Agradeço à duas pessoas mais importantes da minha vida. A quem soube educar, dar bons exemplos e ajudar em minha formação ética e moral.
Além de estar sempre presente quando precisei. A quem me possibilitou estudar, pois o sucesso não depende apenas de capacidade, mas também de oportunidade. A quem se preocupa, aconselha, incentiva e muitas vezes coloca a felicidade dos filhos acima da sua própria felicidade. O mínimo que posso fazer é dedicar este TCC aos meus pais, Joaquim e Jordina.
Victor Gouveia de Andrade
Аоs amigos е colegas, pelo incentivo е pelo apoio constante.
À minha família, pôr sua capacidade de acreditar em mim е investir em mim. Mãe, seu cuidado е dedicação foi que deram, em alguns momentos, а esperança para seguir. Pai, sua presença significou segurança е certeza de que não estou sozinho nessa caminhada.
RESUMO
As empresas de pequeno porte possuem um ou mais equipamentos que devem se comunicar entre si e a internet, seja para compartilhar recursos como impressora, documentos, banco de dados, aplicações como para acesso à internet, envio de e-mails, emissão de documentos fiscais eletrônicos, dentre outros, para que isso seja possível nós desenvolvemos a solução CWC – CentOS Web Control para auxiliar nessas atividades de forma simples clara e objetiva, fazendo com que pessoas que não tem o conhecimento de informática, de redes possam administrar esses serviços e aplica-los no seu dia a dia. A metodologia utilizada para gerenciar o projeto foi o PU – Processos Unificados ou também conhecido como UP – Unified Process. A Linguagem utilizada para programação foi a PHP -PHP: Hypertext Preprocessor juntamente com HTML Hyper Text Markup Language, Java Script, CSS – Cascading Style Sheets (CSS), C++, Structured Query Language, também foi utilizado bibliotecas como o jQuery, PHP Data Objects (PDO) e frameworks como, bootstrap, scrum e Design Patterns como o MVC e DAO, também foi utilizado diversos softwares como Virtualbox, Samba, Dhcp, Bind, Iptables, Ip, Sudo, Apache, MariaDB, vsftp, Netbeans, Arping, arp e sistema operacionais Windows e Linux. O resultado de todas essas ferramentas foi um software que consegue abstrair toda a complexidade dessas aplicações em uma única ferramenta aonde usuários sem um conhecimento das ferramentas acima, consigam controlar sua rede.
Palavras chaves: redes de computadores, desenvolvimento de software, aplicação web.
Abstract
The small company have one or more devices that need to communicate between each other and the Internet, to share resources how a printer, documents, databases, applications as to Internet access, sending e-mails, issuing electronic tax documents, among others. We have developed the solution: CWC- CentOS Web Control. It is program to assist the workers in these activities in a simple and objective way. Make people who do not have the knowledge of computers or networks in who can manage these services and apply them at daily routine of the company. The methodology used to manage the project was the UP- Unified Processes. The programming language was PHP -HP: Hypertext Preprocessor with HTML Hyper Text Markup Language, Java Script, CSS- Cascading Style Sheets (CCS), C ++, Structured Query Language, also it was used libraries such as jQuery, PHP Data Objects PDO) and frameworks such as bootstrap, scrum and Design Patterns such as MVC and DAO, also it has been used several software’s like Virtualbox, Samba, Dhcp, Bind, Iptables, Ip, Sudo, Apache, MariaDB, vsftp, Netbeans, Arping, arp and Windows and Linux operating systems. The result of all these tools was a software that can abstract all the complexity of these applications into a single program where users without a knowledge of the tools above, can control their network.
LISTA DE FIGURA
Figura 1 Desenvolvimento Iterativo...19
Figura 2: Básico Firewall...23
Figura 3: Tela de Apresentação Wizard...31
Figura 4: Wizard cadastro de empresa...32
Figura 5: Wizard cadastro de colaborador...33
Figura 6: Wizard cadastro do administrador...34
Figura 7: Painel Adm, Cadastro Colaborador...35
Figura 8: Painel adm Mobile...36
LISTA DE SIGLAS
AJAX –Asynchronous Javascript and XML
CentOS– Community Enterprise Operating System CSS – Cascading Style Sheet
CWC– Centos Web Control FTP–File Tranfer Protocol
HTTP – HipertextTransferProtocol HTML–HyperTextMarkupLanguage
PHP –"HypertextPreprocessir", originalmente Personal Home Page POO – Programação Orientada a Objeto
PU– Processo Unificado
SQL – Structured Query Language UP–Unified Processo
WEB- World Wide Web
MPES- Micro e pequenas empresas MVC- Model Designer Pattner
CAPÍTULO I...12 1. Considerações Iniciais...12 1.1 Justificativa...13 1.2 Objetivo Geral...13 1.3 Objetivos Específicos...13 1.4 Organização do trabalho...14 CAPÍTULO II...15
2. Contextualização do TI nas pequenas empresas...15
2.1 Principais dificuldades...15
2.2 Área de TI nas empresas...16
CAPÍTULO III...18
3. Metodologias de desenvolvimento de software, voltado ao PU...18
3.1 Desenvolvimento iterativo e evolutivo...18
3.2 PU e o CWC...19
CAPÍTULO IV...21
4. TECNOLOGIAS E FERRAMENTAS DE DESENVOLVIMENTO...21
4.1 CentOS 7...21
4.2 Ferramentas do Sistema Operacional...22
4.2.1 Samba...22 4.2.2 Squid...22 4.2.3 Iptables...23 4.2.4 BIND...23 4.2.5 Dhcp...24 4.2.6 Apache...24
4.3 Persistência de Dados e Linguagem SQL...25
4.3.1 MariaDB...25 4.4 Gearman...25 4.5 PDO...26 4.6 HTML e CSS...26 4.7 Bootstrap...26 4.8 JavaScript...27 4.9 JQuery...27 4.10 Ajax...27 4.11 PHP...27 4.12 Ferramentas de Desenvolvimento...28
Ferramentas utilizadas para desenvolvimento do CWC...28
CAPÍTULO V...29
5. O CWC – Funcionalidades, Características, cumprimento das exigências e principais diferenciais...29 5.1 Instalação...29 5.2 Configuração inicial...30 5.3 Facilidades do sistema...30 5.4 Wizard...31 5.5 Sistema Responsivo...35 5.6 Cadastros...36 5.7 Principais Módulos...37 5.7.1 Departamento...37 5.7.2 Equipamento...38 5.7.3 Colaborador...39 5.7.4 Controle de Sites...39 5.7.5 Controle de Aplicativos...40 5.7.6 Avançado...41 5.8 Painéis do sistema...41 5.9 Administrador...41 5.10 Visitante...41 5.11 Colaborador e Fornecedor...42 CONCLUSÃO...43 REFERÊNCIAS BIBLIOGRÁFICAS...44
CAPÍTULO I
1. Considerações Iniciais
Para ser um profissional de administração de redes de computadores é necessário muito estudo e um grande volume de conhecimento. Mesmo com a internet e com toda informação disponível,
O assunto de redes se torna escasso por não ser encontrado um software pronto que integre diversas soluções ao mesmo tempo, de maneira simples e de fácil compreensão, existem outras ferramentas disponíveis para gerenciamento mais as mesmas necessitam de um bom nível de conhecimento para que possam ser integradas aos sistemas. Por esse motivo propomos uma ferramenta que já vem pronto e integrada ao sistema operacional, utilizando técnica de virtualização do sistema operacional será possível gerar uma ferramenta completa, que atenda todas as dificuldades de uma microempresa, apenas sendo necessário importar está ferramenta para um gerenciador de máquinas virtuais.
Administradores e/ou gestores de pequenas e médias empresas têm muita dificuldade e na maioria das vezes não conseguem realizar tarefas de configurações básicas em servidores Linux, principalmente com distribuições muito específicas como é o caso do CentOS que é baseado em RedHat Enterprise Linux (RHEL) (MARIMOTO, 2009).
Existem no mercado diversas ferramentas de administração de serviços de servidores Linux mais específicos, tais como:
Squid Help;
Squid Internet Acess Controller (siac);
SWAT: The Samba Web Administration Tool.
Essas ferramentas são de extrema qualidade e eficácia, porém, ainda exigem que os usuários entendam cada serviço além de diversos conceitos para sua
administração. Ademais, o usuário necessita que essas ferramentas estejam instaladas e configuradas e ainda que o sistema operacional possua determinadas portas abertas.
Observando toda essa perspectiva propomos o desenvolvimento CWC – CentOS Web Control que é um software que facilita o trabalho do administrador de redes na instalação e gerenciamento dos principais serviços oferecidos por um servidor Linux (distribuição CentOS), e tudo isso é feito baseado em tarefas do mundo real, ou seja, ele atenderá necessidades do dia-a-dia das empresas tirando o foco das configurações complexas sobre serviços e priorizar a facilidade com que essas configurações serão feitas.
1.1 Justificativa
Facilitar o trabalho de administradores de redes de computadores para configurar os principais serviços de um servidor Linux de forma simples e integrada no qual um usuário sem conhecimento específico sobre cada serviço possa criar e administrar suas próprias regras em um único Local.
1.2 Objetivo Geral
Objetivo geral do CWC, e facilitar a administração dos serviços de rede, em uma interface amigável, de forma que os procedimentos antes complexos, que exigiam grande nível de conhecimento serão realizados de formas simples.
1.3 Objetivos Específicos
Para que seja alcançado o objetivo geral, faz-se necessário concluir às seguintes etapas específicas:
Analisar quais são, onde estão e como funcionam os arquivos de configuração do CentOS sobre a configuração da rede;
Analisar como o CentOS trabalha com suas tabelas de roteamento e como administrá-las;
Pesquisar como o Iptables, o Samba, o Squid, o Dhcp e o Bind funcionam e como administrá-los;
Abstrair todos os itens levantados para que possam ser manipulados no paradigma de programação orientada a objetos (POO);
Desenvolver algoritmos de gerenciamento de serviços Linux de redes, usuários, compartilhamento de dados, controle de navegação na internet, controle de arquivos, entre outros com a linguagem de programação PHP.
1.4 Organização do trabalho
Com o objetivo de descrever em detalhes todo o percurso investigativo que sustentou esse estudo e, ainda, apresentar os procedimentos, técnicas e tecnologias utilizadas para o desenvolvimento do software organizamos este trabalho em cinco capítulos – além da conclusão, conforme especificado abaixo.
Capítulo I: Mostra quais os objetivos deste trabalho, gerais e específicos. Capítulo II: Aspectos das empresas e suas dificuldades em encontrar um software desse nível de serviços.
Capítulo III: PU, Visa apresentar o que é PU e como ele foi utilizado no desenvolvimento do CWC.
Capítulo IV: Demonstra a ferramentas utilizadas no desenvolvimento do CWC e os serviços que serão controlados pelo mesmo.
Capítulo V: Apresentação da aplicação, principais módulos, funcionalidades e relatórios desenvolvidos.
CAPÍTULO II
2. Contextualização do TI nas pequenas empresas
O fortalecimento da economia global e a contínua transformação da sociedade industrial numa sociedade baseada na informação e conhecimento têm exigido mudanças na maneira como os administradores gerenciam as empresas, a tal ponto que informação se torna uma ferramenta fundamental para o crescimento e sobrevivência das organizações. Como a informação é o centro de todo o processo, é fundamental saber usá-la de forma estratégica, pois o sucesso empresarial passa a depender, fundamentalmente, da capacidade da organização de administrar sua base informacional e aproveitar as oportunidades de diferenciação que a tecnologia oferece (Torres, 1995). Dessa forma, a informação precisa ter como suporte uma adequada Tecnologia da Informação (TI), a fim de disponibilizar as respostas rápidas e eficientes que a competitividade está constantemente exigindo (Freitas et al. 1997).
Nesse contexto de gerenciamento empresarial, as micro e pequenas empresas (MPE), no que se refere à geração de emprego e renda, são especialmente importantes, tendo em vista que são responsáveis por mais da metade da geração de riquezas no setor comercial e mais de 20% da geração de riquezas dos setores industrial e de serviços (SEBRAE, 2014). Além disso, as MPEs são as alternativas mais viáveis para reciclar trabalhadores e oferecer a eles novas perspectivas de progresso (SEBRAE, 1998).
2.1 Principais dificuldades
Apesar da representatividade, as MPEs são susceptíveis a diversas vulnerabilidades e dificuldades. Elas precisam conquistar o mercado que disputam e atender, simultaneamente, exigências de preços, qualidade, confiabilidade e prazos, dispondo, na maioria das vezes, de poucos recursos. Isso é ainda mais evidente quanto menor for a quantidade de funcionários empregados, visto que, neste
cenário, os poucos funcionários são multifuncionais e não possuem conhecimentos específicos para todas as atividades que exercem.
Mesmo com todas as dificuldades, o segmento apresenta vantagens que se referem à agilidade, capacidade de adaptação e velocidade para atender as necessidades dos consumidores. A fim de consolidar essas vantagens, a Tecnologia da Informação (TI) pode ser fundamental para proporcionar maior flexibilidade, auxiliando na superação de alguns limites impostos pelo seu tamanho. Por exemplo, utilizando tecnologias e ferramentas adaptada à condição e estrutura da empresa pode facilitar a realização de atividades coordenadas com poucos gerentes e funcionários (Laudon e Laudon, 2000). Adicionalmente, no caso e MPEs em que os funcionários são multifuncionais, uma ferramenta de controle pode cobrir as exigências técnicas cabíveis e que não são dominadas por seus empregados.
2.2 Área de TI nas empresas
As empresas sofrem uma considerável desvantagem da TI no segmento de micro e pequenas empresas que é o seu valor, que pode ser claramente alto dependendo da forma de utilização e implementação. Segundo uma pesquisa realizada em 2000, em praticamente todas as organizações, os projetos de Sistema de Informação (SI) tomam mais tempo e dinheiro para serem implementados do que o originalmente previsto, ou o sistema não executa todas as tarefas previstas ou não as executa de maneira apropriada (Laudon e Laudon, 2000).
Nesse sentido, é consideravelmente importante desenvolver ferramentas e/ou mecanismos que implementem funcionalidades da TI, abstraindo terminologias e procedimentos técnicos de tal forma que o próprio micro e/ou pequeno empresário sem conhecimentos na área, consiga criar e gerir o projeto de SI adequado ao seu negócio. Dessa forma, a MPE pode reduzir custos de investimento na área enquanto ainda toma proveito das vantagens da TI anteriormente mencionadas e que serão detalhadas no decorrer deste trabalho.
O presente trabalho descreve o projeto e implementação do CWC, uma ferramenta para implementação de infraestrutura de TI, que abstrai conceitos técnicos da área. Basicamente, o CWC, cria regras para gerência de dispositivos de rede da organização (computadores, servidores, smartphones, impressoras, roteadores, etc.), gerência de usuários, com base nos funcionários que possuem
autorização para utilizar tais dispositivos, criação de compartilhamentos, definições de permissões, políticas de segurança e acesso. Além disso, ele outorga permissões para que apenas funcionários autorizados tenham acesso às regras criadas.
Embora o SI não se limite apenas à infraestrutura de TI, como também é um componente crítico para o planejamento estratégico de uma organização (Albertin, 1999), é esperado que o CWC seja uma ferramenta útil e de baixo custo para a gerência de hardware, software, redes e pessoas integradas a uma micro e pequena empresa.
CAPÍTULO III
3. Metodologias de desenvolvimento de software, voltado ao PU
Segundo Larman (2007, p. 46) o PU é um processo utilizado para desenvolvimento de um software, utiliza uma abordagem para construção, implantação e uma possível manutenção. O processo Unificado foi desenvolvido para ser um processo ágil para desenvolvimento e define uma abordagem realística para o desenvolvimento e condução de um projeto. Diferente do modelo em cascata, onde cada etapa do ciclo de vida é realizada de forma integralmente que é mais recomendado para a construção de prédios do que para softwares, no PU as atividades podem ser repetidas quantas vezes forem preciso, em ciclos controlados e organizados. Não existe um plano detalhado e completo para todo o projeto, mas sim um plano de alto nível (chamado Plano de fases), que estima o término de cada etapa do projeto. Desta forma o PU define passos adaptativos para o projeto, somente planeja a interação a ser feita em seguida, para que possa haver menos erros que prejudiquem o projeto como um todo
3.1
Desenvolvimento iterativo e evolutivo
O PU utiliza a metodologia de desenvolvimento interativo evolutivo. Nesta metodologia adota uma abordagem de ciclo de vidas, o projeto é organizado em sequência de miniprojetos curtos, com uma duração fixa que pode variar entre 3 ou 4 semanas são chamados de interações; o resultado de cada etapa, é um sistema parcial e executável, que pode ser testado e integrável.
O período de vida iterativo é constituído em refinamentos e incrementos sucessivos de um projeto através de múltiplas iterações, com finalidade de ter um feedback sobre cada parte do projeto que já foi desenvolvido. Desta maneira, cada ciclo do desenvolvimento pode ser recondicionado para melhor atender a necessidades do usuário. O sistema cresce de maneira incremental ao longo do
tempo, iteração por iteração, esta abordagem também é conhecida como desenvolvimento iterativo e incremental. A figura abaixo descreve os ciclos de funcionamento do desenvolvimento iterativo (LARMAN, 2007).
3.2 PU e o CWC
O processo unificado PU utiliza um paradigma de evolução para o desenvolvimento de softwares. O ciclo de vida iterativo consiste em refinamentos para atingir um sistema adequado. Em cada nova iteração e adicionado um pouco mais do software, baseado na experiência obtida nas iterações anteriores e no retorno visual do usuário sobre o funcionamento do sistema. A cada nova etapa pode ser considerada um miniprojeto de duração fixa, sendo que cada interação inclui suas próprias atividades de análise de requisitos, projeto, implementação e teste.
Dentro do paradigma do PU o CWC foi desenvolvido de forma modularizada onde cada modulo foi analisado, projetado, implementado e testado a cada ciclo. O que tornou possível uma evolução natural na qualidade do sistema como um todo, pois a cada modulo concluído o nosso conhecimento sobre o sistema operacional, as ferramentas administradas e o próprio php se tornava superior.
Outro ponto a se destacar e que os requisitos eram levantados a cada ciclo também durante os dias reservado para análise e planejamento. A cada modulo
Figura 1 Desenvolvimento Iterativo Fonte: (SANTOS, 2009)
(ferramenta administrada) nos verificamos suas principais funcionalidades e qual a sua real aplicação em uma microempresa, após isso substituíamos os termos técnicos por termos conhecidos para administrador. Neste ponto também era definido qual a versão que nosso sistema utilizaria e qual seria a configuração inicial para esta ferramenta onde seria possível administrar o maior número de pequenas empresas possíveis.
A fase de integração e testes do PU também foi amplamente utilizada durante o nosso desenvolvimento, dentro do PU essa faze e quando você pega o novo modulo ou parte do sistema desenvolvido e íntegra com o que já está em produção. O CWC além de realizar essa integração normal do desenvolvimento precisava realizar a integração entre as ferramentas o que ocasionava sempre alterações em módulos já concluídos para que ambos funcionassem de forma integrada e automatizada.
CAPÍTULO IV
4. TECNOLOGIAS E FERRAMENTAS DE DESENVOLVIMENTO
Para desenvolvimento do CWC foram estudas e utilizada diversas ferramentas e tecnologias, para controlar serviços do sistema operacional CentOS, através da linguagem de programação para web PHP e frameworks, assim simplificando de maneira bem simples para que um usuário leigo posso administrar a rede interna de sua empresa com facilidade. Nas seções seguintes serão apresentados os serviços do sistema operacional Centos e as ferramentas utilizadas para criar um controle simples.
Para desenvolvimento deste projeto foi utilizado o CentOS 7.0 minimal e todos os softwares utilizados no sistema vieram através de seu repositório oficial incluindo tanto as ferramentas administradas como as ferramentas para desenvolvimento.
Não é possível afirmar que o sistema ira ser compatível com novas versões ou versões anteriores, pois como a configuração é a administração foram abstraídas e os vários comandos estão junto com o código fonte do sistema com parâmetros já definidos se torna impossível o CWC acompanhar as mudanças de cada pacote.
Para verificar as versões utilizadas de cada ferramenta consultar o ANEXO A
4.1 CentOS 7
O CentOS é uma distribuição Linux, baseado no código fonte Red Hat Enterprise Linux, o sistema operacional Centos é distribuído por várias empresas como a Amazon o Google e outras, seu desenvolvimento e manutenção é realizada por desenvolvedores principais e apoiados pela comunidade de usuários sempre crescente.
O CentOS é basicamente, a versão grátis do Red Hat, possui uma excelente segurança com uma boa estrutura de suporte e atualizações pontuais de segurança, por este motivo o torna uma das versões de Linux mais populares entre servidores Linux.(MORIMOTO, 2009).
4.2 Ferramentas do Sistema Operacional
Os tópicos abaixo trazem as ferramentas abstraídas pelo CWC. 4.2.1 Samba
A forma mais simples de integrar, compartilhamentos de impressoras e pasta de dados do Windows para clientes é através do samba. O samba é conjunto de ferramentas que torna o Linux compatível com o protocolo SMB, que é base de funcionamento dos compartilhamentos Windows. O software é capaz de administrar com velocidade superior à do Windows pastas compartilhadas, o mesmo pode gerenciar qual usuário podem acessar os compartilhamentos criados ou até criar uma pasta de backup para arquivos apagados, desta forma samba é muito versátil com interação de usuários, impressoras e dados compartilhados, com clientes que utilizam sistema operacional Windows (DANESH, 2006)
Dentro deste projeto o samba foi disponibilizado de forma predefinida para trabalhar como PDC permitindo que computadores Windows compatível com esta versão do samba se autenticassem utilizando contas criadas no painel administrativo.
Também foi utilizado nesta versão o compartilhamento de pastas e outras ferramentas.
Não foi utilizado o compartilhamento de impressoras, pois não conseguimos abstrair a um nível que um administrador leigo conseguisse compartilhar sua impressora na rede e instalar em outras estações.
4.2.2 Squid
Segundo Carlos Eduardo Morimoto “O squid permite compartilhar a conexão entre vários micros, servindo como intermediário entre eles e a Internet.” (MORIMOTO, 2009, p. 133). O squid é servidor proxy (em português procurador), ele funciona como intermediário burocrata. Definindo a cada usuário ou equipamentos que podem acessar na rede de internet, também guardando informações sobre o tráfego de rede, para uso posterior. (MORIMOTO, 2009).
Para o funcionamento do squid junto com o Portal Captive foi necessário desenvolver um utilitário que comunicasse com o banco de dados aonde tinha todas as informações sobre as sessões. Essa é uma configuração relativamente simples o squid captura o ip e verifica no banco de dados para conceder o acesso à internet ou ao portal captive.
4.2.3 Iptables
O iptables é um firewall responsável, por criar uma barreira de defesa entre a rede local para rede externa (Internet). A partir do iptables é possível bloquear entradas de redes, que são conhecidas como portas de redes. Assim criam um canal de transferência de dados, entre um dispositivo de entrada na rede local, para uma saída externa, pode se referir a comunicação entre um computador e banco isso é de necessidade do usuário. Há casos de portas abertas que podem facilitar a invasão da rede, liberar uma porta de rede sem ter uma funcionalidade básica para ela, é um risco por definição básica (MORIMOTO, 2009).
Figura 2: Básico Firewall Fonte: .infowester.com– 2016
4.2.4 BIND.
Serviço responsável pelo DNS (em português, Sistema de Nomes de Domínios), tem a função de resolver nomes referente à IPs. Toda vez que acessar a internet, como por exemplo o Google, não estará acessando www.google.com, e sim
acessando por um endereço de IP formando por 4 blocos de 8 bits (177.99.203.244). Imagine ter que gravar o número ao invés dos nomes toda vez que você quiser acessar um site, seria complicado. Para isso o CWC utiliza o named como serviço de DNS, o mesmo é utilizando tanto para resolver IP de sites, como IP de equipamentos da rede local, uma vez que tudo estiver usando da rede local, estará passando pelo servidor. (MORIMOTO, 2009).
Dentro do nosso projeto essa ferramenta é configurada por padrão par realizar consultas reversas e para rede local. Ela foi integrada com DHCP para cadastrar os hostnames vindo junto com a requisição. E dentro do modulo de cadastro de equipamento do CWC nós adicionamos uma entrada para o apelido que administrador definir para cada equipamento utilizando o executável nsupdate.
4.2.5 Dhcp
O protocolo DHCP é utilizado em rede de computadores, possibilita que as máquinas recebam um endereço de IP automaticamente. O protocolo facilita a distribuição de IP em uma rede, onde não é necessário configurar manualmente cada equipamento, para que possam estar na mesma rede do servidor, basta simplesmente conectar o equipamento a rede. Utilizando um modelo cliente-servidor, o DHCP faz o seguinte:
Quando um equipamento se conecta à rede, o mesmo envia um pacote com um pedido de configurações DHCP.
O servidor de DHCP controla uma faixa fixa de IPs,e também envia configurações necessárias para que as conexões de dados do cliente funcione(gateway padrão, nome de domínio, DNS, etc).
Quando o servidor recebe uma solicitação, ele entrega um destes endereço de configuração para o cliente.
O DHCP tem suporte a diversas plataformas, o mesmo traz uma solução eficiente é de grande ajuda para administradores de redes. (MORIMOTO, 2009).
Neste projeto o DHCP tem a funcionalidade de fornecer IP para os equipamentos tanto de forma fixa como dinâmica. Ao cadastrar um equipamento no painel administrativo é criado a configuração estática para o mesmo.
4.2.6 Apache
O servidor Apache ou (Servidor HTTP Apache) é o software servidor web mais utilizado. O apache surgiu para consertar funcionalidades do NCSA httpd, onde foi implementado correções de alguns problemas e incluso funcionalidades novas. O servidor Apache, pode ser utilizado tanto em sistemas operacionais Windows como para Unix, o mesmo fornece numerosos recursos se tornando atraente para administradores de sistemas web, está disponível com seu código fonte completo, sobre licença livre. (DANESH, 2006).
O CWC utiliza o apache para disponibilizar seu painel administrativo e criar regras especificas para o mecanismo de captura da página inicial (Portal Captive) o que também exigiu que implementasse um certificado auto assinado pelo servidor. 4.3 Persistência de Dados e Linguagem SQL
O CWC utiliza as próprias ferramentas abstraídas para persistir seus dados, visto que cada ferramenta já possui seu próprio mecanismo de armazenar e recuperar as informações. Foi utilizado o MariaDB para gravar informações que as ferramentas abstraídas não suportavam.
4.3.1 MariaDB
Os bancos de dados relacionais estão comercialmente disponíveis as duas décadas. Alguns dos bancos de dados mais conhecidos, e difundidos incluem:
Oracle Database, da Oracle Corporation SQL Server, da Microsoft
DB2 Universal Database, da IBM Sybase Adaptive Server, da Sybas
Para armazenar dados do CWC, foram utilizados o bancos de dados MariaDB, o mesmo é baseado no MySQl e está disponível sob os termos da licença GPL v2 (BEAULIEU, 2010).
4.4 Gearman
É um framework (ou biblioteca) de aplicação genérica, para realizar diversos trabalhos em diversas máquinas ou processos. Ele também permite que processos
rodem em segundo plano, sem que aja necessidade do usuário espere o termino do serviço, apenas trazendo o resultado em porcentagem do que já foi completado. The PHP Group 2016. Disponível em: <http://php.net/manual/pt_BR/intro.gearman.php > Acesso em: 27 de setembro. 2016.
4.5 PDO
O PDO significa PHP Data Objects. É uma extensão do PHP que oferece diversas funcionalidade, para interação com banco de dados. A extensão trabalha na forma de drive (motorista), assim ela pode ser utilizada em outros sistema de banco, como por exemplo MySQL,PostreSQL,SQL, ODBC,etc, sem ter alteração na programação criada, será necessário apenas ativar o drive do novo banco de dados. Sua sintaxe é relativamente simples. (NIEDERAUER, 2009).
4.6 HTML e CSS
O significado de HTML é Hyper Text Markup Language, uma linguagem de programação utilizada para formatação de texto, que permite a criação de ficheiros de texto, com uma extensão HTML. Esses textos contêm tags são os elementos, definem o comportamento, a ser realizado a partir de uma sintaxe <nomeDaTag>, responsáveis por dinamizar e indicar ao Web browser, como apresentar o conteúdo, construindo um documento que pode conter imagens, áudios e vídeos.
Quando apresentamos um conteúdo HTML, em um navegador, podemos perceber que existem diversos estilos e cores em cada página. Podendo as tags HMTL serem escritas para gerar uma estilização própria do HTML, como por exemplo aumentar um tamanho de texto ou mudar sua cor. Atualmente esse tipo de estilização não é mais utilizada a partir da linguagem do HTML, considerada uma má prática, e sim através do CSS, que é uma outra linguagem, separada do HTML, o único objetivo do CSS é trabalhar em cima da estilização do HTML. A grande vantagem do CSS, é ser mais robusto para estilização do que nativamente, pelo HTML. Fazer toda estilização a partir do HTML, misturando a formatação visual com conteúdo de texto, mostrou se algo bem impraticável. O CSS separa as regras de estilização do HTML, as regras de estilo não aparecem no HTML, apenas no CSS. (NEVES, 2004).
4.7 Bootstrap
O Bootstrap é o mais conhecido framework, para desenvolvimento web, de maneira a facilitar o desenvolvimento de páginas responsivas e alinhadas e voltadas para todo tipo de equipamento como micro computadores e celulares, etc. O framework possui interação com java Script, HTML e CSS, tornando o desenvolvimento de páginas webs, mais simples e agíeis, apenas utilizando alguns parâmetros do Boostrap e possível criar páginas responsivas, sem necessidade de utilizar o CSS, pois Boostrap já uma gama de estilos prontas em sua programação.
(SILVA, 2015).
4.8 JavaScript
O JavaScript foi desenvolvido pela Netscape no ano de 1995. Foi muito bem aceita no desenvolvimento web, devido à grande interatividade que proporcionava com usuários, foi uma das maiores novidades da época muito aceita nos primórdios da web. A linguagem JavaScript é utilizada no CWC para gerar mais dinamismo e interação do usuário, como sistema de controle do centOS, facilitando a interação. (SILVA, 2009).
4.9 JQuery
Para simplificar as principais funções do JavaScript, para páginas web, foi desenvolvida uma biblioteca com nome de Jquery , que já traz consigo uma gama de funcionalidades voltadas à solução dos problemas mais difíceis de serem realizados pelo Java Script puro. (SILVA, 2009).
4.10 Ajax
Ajax é uma sigla em inglês para Asynchronous Java Scriptand XML, é utilizada para carregamento de conteúdo em uma página web, utilizando o Java Script. Está linguagem executa scripts que podem rodar do lado do cliente, de formar assíncrona alterando o conteúdo do documento exibido. (SILVA, 2009).
4.11 PHP
O PHP (um acrônimo recursivo para PHP: Hypertext Preprocessor) é linguagem de programação criada no ano de 1994 por Rasmus Lerdorf, em sua primeira versão o PHP, era simples conjuntos de funções, em que Rasmus utilizou para acompanhar visitas online ao seu currículo. Ao longo do tempo, a linguagem foi reescrita gerando uma versão mais completa que possuía a acesso ao banco de dados. Em 1995 o criador do PHP disponibilizou uma versão melhorada, assim outros programadores puderam ter acesso ao seu código fonte e melhorando ainda mais. (DALLÒGLIO 2009).
4.12 Ferramentas de Desenvolvimento
Ferramentas utilizadas para desenvolvimento do CWC 4.12.1 NeatBeans
O NetBeans é uma ferramenta de desenvolvimento de código aberto, é um ambiente de desenvolvimento para programadores, que permite escrever, compilar e depurar. O IDE é totalmente escrito em Java, mas também pode suportar outras linguagens de programação. Existe uma extensa quantidade de módulos para estender a funcionalidade do Neatbeans. Para desenvolvimento do CWC foi utilizado o IDE, nas linguagens PHP, HTML, JavaScript, Jquery e Ajax, está ferramenta promove uma grande melhoria no desenvolvimento, a mesma ajuda na correção de erros digitados, durante a programação, tem capacidade de organizar de forma claro todo texto de programação digitada. Oracle CORPORATION 2016. NeatBeans. Disponível em: <https://netbeans.org/features/index_pt_BR.html>. Acesso em: 30 set. 2016.
CAPÍTULO V
5. O CWC – Funcionalidades, Características, cumprimento das exigências e principais diferenciais.
O CWC é um sistema web para gerenciar, com facilidade o sistema operacional CentOS, e os respectivos serviços squid, iptables, samba, named e dhcp. Foi desenvolvido para atender as necessidades, de pequenas empresas, com a finalidade de um usuário leigo possa realizar tarefas complexas. Devido à dificuldade de configuração das ferramentas, que são complexas e com pouca documentação.
No entanto, o CWC possui um grande diferencial que é estar disponível via web, onde todos funcionários, fornecedores ou visitantes, podem acessar o sistema via WEB, solicitando cadastros de seu equipamento, ao administrador do sistema que será informado sobre a solicitação, assim decidindo se cabível que este equipamento possa utilizar a rede, com suas devidas funcionalidades, como acesso à internet e compartilhamentos de pastas. O sistema CWC ainda pode realizar bloqueios de sites, criar novos compartilhamentos que são agregados com a criação de departamentos. O administrador pode escolher quais funcionários participaram dos departamentos, desta maneira a pasta de cada departamento só podem ser acessadas pelos seus respectivos funcionários.
5.1 Instalação
Como visto no capítulo I e II existe uma dificuldade tanto por parte dos profissionais de T.I como para os gestores das empresas em instalar o sistema operacional todas as suas ferramentas de rede e ainda criar uma configuração inicial para só depois conseguir administrar e personalizar essas ferramentas de acordo com a microempresa. Outro ponto observado é que as MPEs não possuem equipamentos disponíveis para funcionar exclusivamente como servidores de rede.
Diante desta realidade o CWC foi projetado para ser distribuído como uma ferramenta integrada contendo sistema operacional, ferramentas de rede já instaladas e previamente configuradas para funcionamento genérico e software
CWC embutido. Para tal demanda utilizamos o virtualbox por ser uma ferramenta leve simples e compatível com quase todos sistemas operacionais do mercado.
Desta forma o CWC não será “instalado” na máquina e sim importado através do virtuabox e funcionará como um programa no computador escolhido para ser o servidor da rede.
Como pré-requisito para o sistema funcionar corretamente o computador deverá ter duas placas de rede, uma que irá ser ligada diretamente no gateway da rede como, por exemplo, um modem ADSL, e a segunda placa será utilizada para se conectar aos demais computadores da rede como por exemplo um switch.
Dentro das configurações do virtualbox a primeira placa de rede deverá ser vinculada ao adaptador que possui a conexão com a internet e a segunda placa deve ser conectada ao switch ou integrador da rede.
Esta é uma das poucas partes mais técnicas que o sistema exige do seu administrador. Mas mesmo assim consideramos que é possível realizar sem muito esforço ou conhecimento
5.2 Configuração inicial
O CWC possui um sistema de interceptação do acesso às páginas de internet, também conhecido como Portal Captive, dentro deste mecanismo o sistema captura o acesso do usuário e redireciona para seu painel. Percebendo que não existe os dados da Empresa em sua base de dados, ele automaticamente redireciona o usuário para seu Wizard para que seja feita a configuração inicial.
5.3 Facilidades do sistema
O sistema (CWC) foi desenvolvido para simplificar o gerenciamento do sistema Linux CentOS, via web para auxiliar a administração nos recursos da rede local e controle de navegação. A fim de simplificar a administração do sistema e os serviços squid, iptables, named, dhcp e samba, através de uma interface amigável, o gestor poderá controlar de maneira simples e com eficiência as ferramentas mencionadas. Por finalidade o CWC utiliza uma interface simples via web, como por exemplo ao realizar o cadastro de funcionários ou departamentos serão realizados várias configurações complexas nos serviços e no próprio sistema operacional, para
que além de haver um simples cadastro em banco dados, também seja realizado configurações nos serviços, está ferramentas possuem uma grande dificuldade de serem configurados por uma pessoa com pouco conhecimento em Linux, para serem configurado é necessário que aja interação com sistema operacional Centos, através de linha de comandos, acessando arquivos de configuração correspondente a cada serviço. O CWC possui configurações predefina das, utilizando a linguagem de programação php, de maneira que todas as configurações já foram pré-configuradas para cada serviço, bastando apenas que o usuário realize um simples cadastro.
5.4 Wizard
Para poder utilizar dos serviços do CWC, será necessário realizar uma configuração rápida chamada de (Wizard), a mesma estará disponível no primeiro acesso, via web, qualquer página que o usuário tente carregar será redirecionado para página de configurações wizard, demonstrada na (figura 5). Está e a primeira etapa apenas, exemplifica os passos necessários para completar o Wizard.
Figura 3: Tela de Apresentação Wizard Fonte: Autoria Própria, 2016
Na tela de apresentação do Wizard, será exemplificado para o usuário os passos necessários, para concluir está primeira etapa para utilizar o CWC, cada
etapa já configurar inicia os serviços squid, iptables, named, samba e dhcp, o sistema de cadastro de wizard segue uma linha de passos, que são numeradas através da barra de progresso, desta maneira facilitando para usuário, que será responsável por administrar o CWC.
A figura 05, demonstra a tela de cadastro de empresa, referente ao passo 2. Após preencher todo formulário e clicar em próximo, o CWC utilizara do campo “Nome curto”, para definir as principais funcionalidades dos serviços. No samba será criado o nome do Domínio local este serviço iria gerenciar o grupo de trabalho da rede local, Squid será definido o visible_hostname, este será o nome do proxy, O DHCP recebera um nome para a subnet, zona e zona reversa isso facilitara a comunicação entre computadores e demais serviços na rede, O DHCP também gerencia os IPs para cada equipamento na rede, O BIND recebera as configurações por qual domínio ele deve funcionar, está funcionalidade permite, que as maquinas locais sejam encontradas pelo nome de hostname ao invés de serem encontradas por número de ip. .
Figura 4: Wizard cadastro de empresa Fonte: Autoria Própria-2016
Na etapa três do wizard o gestor poderá cadastrar departamentos, que serão responsáveis por interagir, entre os colaboradores, cada departamento cadastrado gera a criação de um grupo de trabalho que é referente um cadastro de um grupo no sistema operacional centOS e também no serviço SAMBA. Este cadastro define também um compartilhamento, para que os colabores que pertença ao mesmo departamento, possam usufruir de uma pasta que será alocada no servidor, e compartilhada entre os usuários do mesmo departamento, assim os colaboradores cadastrados em um departamento não poderão acessar arquivos de outro grupo de trabalho.
A etapa quatro referente a figura 06 é responsável pelo cadastro de colaboradores, nesta interface web, o administrador realizara um simples cadastro, já podendo selecionar a qual departamento o colaborador pertence. Por trás deste cadastro o CWC, realizara um cadastro de usuário no sistema operacional e também no samba, adequando o colaborador para seu respectivo departamento, com suas devidas configurações e permissões.
Figura 5: Wizard cadastro de colaborador Fonte: Autoria Própria-2016
Por fim a etapa cinco, cadastro do Administrador, demonstrada na tela abaixo figura 08. Nesta etapa será necessário cadastrar um usuário para ser o administrador do sistema, este usuário terá acesso a (painel administrativo) e a todos os compartilhamentos referentes aos departamentos. Ao cadastrar um administrador, o sistema CWC, reconfigurará todas as permissões de acesso aos compartilhamentos de departamentos, adicionando este usuário a todos os grupos já criado no Linux e no serviço samba, este usuário terá acesso ao painel administrativo, neste painel terá acesso as demais ferramentas, do CWC como cadastro de equipamentos, departamentos, usuários e outras funcionalidades.
Figura 6: Wizard cadastro do administrador Fonte: Autoria Própria -2016
Após término das configurações inicias WIZARD, o sistema mudará a regra responsável por redirecionar todas as páginas para endereço de configuração do Wizard, está regra será mudado para que redirecione os usuários a página de login, do portal administrativos, nesta página web, haverá 3 campos para realizar login: acesso ao administrador, colaborador e visitantes. Os colaboradores e visitantes, receberam definições para qual sites podem acessar, vindas do administrador, só após realizar o acesso no portal, que poderão navegar nos respectivos sites liberados.
5.5 Sistema Responsivo
Com a diversidade de dispositivos existentes e suas diferentes resoluções, a ferramenta CWC foi preparada para se adaptar aos diferentes tamanhos de tela, através de um layout responsivo, tornando assim possível a administração através de vários equipamentos. A figura 8 demostra o layout do sistema em um desktop, nesta tela a barra do menu principal está disposta mostrando todo seu conteúdo, em quantos outros elementos estão distribuídos na horizontal ocupando todo espaço disponível, já na figura 9 o layout está adaptado a um equipamento portátil, onde o menu principal foi compactado a um botão.
Figura 7: Painel Adm, Cadastro Colaborador Fonte: Autoria Própria-2016
Figura 8: Painel adm Mobile Fonte: Autoria Própria- 2016
5.6 Cadastros
Como visto no capitulo 5.2.1, grande parte dos cadastros necessários para funcionamentos, são realizados durante a etapa inicial de configuração pelo administrador. As demais funcionalidades estão disponíveis no portal administrativo. Os cadastros com poucos campos são de fácil compreensão para o administrador, por trás de uma simples interface o sistema realiza diversas configuração, que vão desde o sistema Linux e chegando a rede Windows, onde usuários cadastrados no sistema Unix, podem se autenticar no sistema operacional da Microsoft, isso é possível a partir da ferramenta SAMBA. Cada cadastro realizado no CWC, cria uma interação entre vários serviços Linux, que interagem com demais sistemas operacionais.
5.7 Principais Módulos
A ferramenta possui vários módulos de funcionamento, este módulos são divididos em camada como previsto pelo design pattern MVC (model, view,controller). Como por exemplo o controle de sites, responsável por realizar bloqueios e liberação de URLs, para o administrador esta função é administrada através das janelas (view). Esta janela irá capturar os dados, e enviar ao seu controller que tem por responsabilidade por aplicar regras negócio, neste momento e envia-las aos seus respectivos controllers.
5.7.1 Departamento
O módulo cadastro de departamentos, referência os setores da empresa, como por exemplos: administrativo, vendas, financeiro, entre outros. A partir deste modulo o administrador realizara cadastros dos respectivos setores existente em sua empresa e também criara uma associação dos colaboradores para qual setores pertencem. Ao cadastrar departamentos, resultara na criação de compartilhamentos, estes mesmo ficaram armazenados no servidor, para uma maior confiabilidade dos dados armazenados, apenas os colaboradores, associados ao departamento criados terão acesso a estes dados.
O menu de cadastro departamentos, dispõe-se em três partes: a etapa de número um é apenas informativo explicando a funcionalidades deste módulo; A segunda etapa, tem a função de realizar os cadastros de departamentos, cada departamento cadastrado já é automaticamente listado na mesma janela; A última fase três, tem por finalidade associar os colaboradores a cada setor pertencem. O gestor pode retorna o módulo de cadastro de departamento pulando a fase dois, caso queria apenas associar um colaborador à um setor.
Este modulo gerencia as funcionalidades da ferramenta SAMBA e usuários criados no sistema operacional. Ele abstrai funcionalidades da ferramenta, com interações escritas diretas, nos arquivos de configuração do SAMBA e do sistema operacional. Estás interação criam vínculos para que funcionalidades, funcionem de maneira eficaz para seu gestor.
5.7.2 Equipamento
Para realizar governança, de equipamentos conectados à rede da empresa, o sistema possui o módulo de equipamento. Este módulo tem funcionalidades para buscar todos os equipamentos conectados à rede, de maneira eficiente e automática, apenas cabendo ao gestor autorizar e criar um apelido para cada equipamento na rede. Os equipamentos cadastros terão permissão para utilizar dos recursos da rede, como por exemplo acesso a navegação web.
A figura 10, demostra o percentual de busca por equipamentos na rede local, esta busca é realizada automaticamente em loop constante, cada equipamento encontrado inflige um alerta sobre o menu “cadastro de equipamentos” alertando o administrador sobre equipamentos localizados, está barra está disponível na etapa um, deste módulo. O funcionamento automático permite ao gestor realizar outras tarefas, enquanto a busca continua rodando em segundo plano, sem que seja necessário aguardar por sua conclusão.
A interação em segundo plano roda a partir do módulo PHP GEARMAM, aliado com configurações que interagem com a ferramenta ARPING, está ferramenta realiza uma sonda na rede local, por toda a classe, num total de 254 IPs. Na etapa dois, o gestor pode realizar o cadastro de equipamentos a partir de uma lista dos equipamentos encontrados. Todos os equipamentos cadastrados podem ser listados, na opção “listar equipamentos”.
Figura 9: Portal adm, Cadastro Equipamento Fonte: Autoria Própria-2017
5.7.3 Colaborador
O cadastro de colaboradores é um importante instrumento para gerar e integrar as funcionalidades das ferramentas do sistema, está funcionalidade do módulo de usuários, realiza uma interação entre a ferramenta samba e o sistema operacional e também armazena informações do usuário em banco de dados, estás informações são utilizados para que os mesmos possam acessar o painel do usuário.
Realizar um cadastro de colaborador é simples, basta acessar o menu cadastro de colaboradores e preencher os campos, este cadastro é especificamente para colaboradores que façam parte da empresa os visitantes serão redirecionados para o portal do usuário, preenchendo as mesma informação do cadastro de colaboradores está informação serão enviadas ao gestor em forma de alerta e gerando uma lista de solicitações , ele apenas terá que autorizar os visitantes após sua autorização os visitantes poderão realizar a autenticação no portal de usuários e obter acesso a navegação web.
As funcionalidades aplicadas aos colaboradores são, acesso a navegação e ao sistema operacional Windows a partir do domínio que gera uma hierarquia onde usuários são agregados as suas permissões de execução de softwares, apenas o administrador terá permissão total para acessar qualquer propriedade do sistema.
5.7.4 Controle de Sites
Este modulo é responsável por administrar quais sites deverão ser bloqueados. O sistema parte do princípio que todos os sites são permitidos, restando ao administrador efetuar apenas o bloqueio dos endereços que ele julgar inadequado. Na primeira janela deste modulo é informado ao administrador como o sistema trabalha e como ele deve preencher os dados.
Apenas dois campos são necessários para efetuar o bloqueio: equipamento e endereço. O primeiro traz uma lista oriunda do cadastro de equipamentos, evitando que o administrador precise inserir alguma informação técnica. Já o segundo campo
deve ser preenchido com o endereço do site que se deseja bloquear.
Dentro deste modulo existe três sub menu que respectivamente são responsáveis por bloquear um site, remover um bloqueio previamente definido e mostrar um relatório com os últimos acessos.
Por trás das janelas aparentemente simples o CWC efetua uma complexa cadeia de processos e comandos interagindo com as ferramentas de bloqueio que neste projeto são o iptables e o squid.
5.7.5 Controle de Aplicativos
O controle de aplicativos tem como finalidade controlar o tráfego de dados dos aplicativos que utilizam a conexão com a internet, este controle se faz diferente do controle de sites porque ele atua diretamente na camada de Transporte tanto no Modelo OSI quanto no Modelo TCP/IP enquanto o controle de Sites atua na camada da Aplicação.
Para tornar este controle simples, possível de um administrador sem conhecimento específico de rede e/ou do aplicativo a ser controlado. Primeiramente é solicitado qual o equipamento que possui o aplicativo instalado, logo em seguida é solicitado se ele deseja bloquear ou liberar.
Neste ponto é preciso compreender como o CWC trabalha com os conceitos de bloqueio e liberação. Por predefinição o CWC possui todos os aplicativos liberados, exceto para os computadores não cadastrados. O que a liberação na realidade faz é o encaminhamento do trafego oriundo da internet para o equipamento que possui a aplicação instalada tornando assim o acesso “Liberado” de fontes externas, visto que o CWC não atua no controle da instalação ou execução do aplicativo no equipamento e sim no acesso deste aplicativo a internet ou da internet para este aplicativo.
Caso o Administrador selecione a opção de liberar, o sistema irá trazer uma lista dos softwares instalados e em execução, isso é possível pois o sistema utilizara o software NMAP para fazer a varredura dos aplicativos, trazendo assim uma lista dos aplicativos e os dados necessários para liberar o mesmo. Neste ponto basta o administrador selecionar a opção e liberar o aplicativo para acesso externo.
Do contrário selecionando a opção bloquear o sistema irá trazer uma lista mostrando o trafego recente do equipamento, bastando ao administrador marcar
qual trafego ele deseja bloquear, esta lista vem do log do Iptables previamente configurado durante o Wizard.
Para tornar ainda mais eficiente este modulo ele possui um botão que permitir simular a liberação ou o bloqueio fazendo que o administrador tenha certeza que selecionou a opção correta.
5.7.6 Avançado
Como o próprio nome diz este modulo traz a possibilidade de configurar de forma avançada os módulos descritos nos tópicos acima. Para administrar as opções neste modulo o administrador tem que possuir um conhecimento profundo das ferramentas abstraídas pelo CWC pois neste ponto não são mais utilizados os nomes: Colaborador, Departamento, aplicativos… e sim o nome das ferramentas como Squid, Iptables, Bind…. Este modulo permite que o administrador tendo conhecimento sobre as ferramentas possa personalizar o CWC de acordo com suas necessidades disponibilizando assim funcionalidades que o CWC não possuí.
Além de fornecer a possibilidade de editar as configurações dos aplicativos este modulo traz ainda a possibilidade de iniciar, parar ou reiniciar um serviço como também verificar os logs do sistema e executar comandos diretamente no shell.
5.8 Painéis do sistema
O sistema possui dois portais um voltado para o administrador e outro para os colaboradores, visitantes e fornecedores. Esses portais são páginas web que agregam diversas funcionalidades de acordo com o seu perfil.
5.9 Administrador
Este Painel é dedicado apenas ao administrador do sistema, todos os itens do capítulo anterior são voltados ao administrador. O administrador pode se autenticar neste painel através do acesso à página inicial do sistema previamente configurada como http://192.168.73.1 lembrando que sempre que o usuário iniciar sua navegação ele automaticamente é redirecionado esta página.
5.10 Visitante
Este painel é muito objetivo pois se entende que um visitante está na empresa basicamente para consumir/conhecer algum produto ou serviço sendo assim para que ele possa utilizar dos recursos da rede ele deve primeiramente solicitar o cadastro do seu equipamento ao administrador.
Para solicitar a liberação e o acesso aos recursos voltado para o visitante o mesmo deve apenas acessar o navegador e tentar realizar o acesso a qualquer site, neste ponto o CWC irá identificar que este computador ainda não está cadastrado em sua base de dados e irá redirecionar seu acesso a uma página onde existira a opção de solicitar o acesso. Seguindo a principal característica do software, a simplicidade, o sistema vira com um formulário automaticamente preenchido com os dados técnicos como: MAC, IP, Hostname…, bastando o visitante entrar apenas com seus dados pessoais para acesso.
Esta solicitação vai aparecer no painel administrativo para que o Administrador possa conceder o acesso a este equipamento.
Com o equipamento devidamente cadastrado o visitante ao acessar a internet será redirecionado a página de autenticação. Após efetuar a autenticação o usuário terá acesso a um painel onde ele poderá alterar seus dados e efetuar o download de arquivos previamente disponibilizado pelo administrador aos visitantes e também poderá efetuar a sua navegação normalmente.
5.11 Colaborador e Fornecedor
O painel voltado aos colaboradores e fornecedores é praticamente idêntico ao do visitante mudando apenas o conteúdo que eles terão acesso. O Fornecedor terá acesso apenas a pasta de Fornecedores, para que ele possa colocar seus arquivos como: catálogos, tabelas e outros documentos. Já o colaborador terá acesso a todas as pastas que o mesmo pertencer.
É importante fresar que este conteúdo que aparece disponível no portal é o mesmo fornecido pelo software SAMBA o CWC busca no arquivo de configuração verifica as regras de permissão e apresenta via web praticamente da mesma forma que acessando o servidor através dos protocolos suportados pelo SAMBA.
CONCLUSÃO
Com este estudo foi possível compreender as principais dificuldades para gerenciamento da TI de uma pequena empresa, com relação a configuração de um servidor, utilizando ferramentas para gestão de compartilhamento de arquivos, controle de navegação web, controle de equipamentos na rede e controle de usuários para sistema operacionais.
Ouve uma grande dificuldade em encontrar a documentação oficial das ferramentas e quando encontrada trazia funções obsoletas ou que trazem um resultado diferente do esperado. Devido a isto foi necessário realizar uma grande pesquisa nas mais diversas fontes a procura da melhor funcionalidade. Além disso tivemos que abstrair diversas configurações desnecessárias paras as microempresas.
Acreditamos que o sistema ainda precisa melhorar em três pontos: Estilização, Rollback, Backup. Essas implementações não foram realizadas por conta do escopo principal do projeto, que era apenas administrar as ferramentas de forma simples.
Está ferramenta não foi testada em um local de produção, apenas houve testes realizados em laboratório.
Contudo acreditamos que o CWC conseguiu atender a sua principal funcionalidade que é de tornar a possível a administração de um servidor e suas principais ferramentas de rede gerenciáveis por um Gestor sem conhecimentos específicos da área de TI.
REFERÊNCIAS BIBLIOGRÁFICAS
ALBERTIN, A.L. Comércio eletrônico: Modelo, aspectos e contribuições para sua
aplicação. São Paulo, Atlas, 1999, 242 p
ALTER, S.. Information Systems: a Management Perspective. 2ed. Menlo Park, Califórnia: Benjamin Cummings, 1996.
BEAULIEU, Alan. Aprendendo Sql. São Paulo: Novatec, 2010. 353 p. Tradução de : Edgard Batista Daminiani Titulo Original: Learning SQL.
BENAMATI, S. e LEDERER, A. L.. Copying with Rapid Change in Information Technology. Proceedings of the 1998 ACM special interest group on Computer Personnel Research Conference, Boston, MA, p. 37-44, 1998.
DANESH, Arman. Dominando o Linux "A Biblia": Red Hat Linux 6.0 - A Bíblia. SÃo Paulo: Makron Books, 2006. 576 p.
FERNANDES, A. A. e ALVES, M. M.. Gerência estratégica da tecnologia da informação: obtendo vantagens competitivas. Rio de janeiro: Ed. LTC – Livros Técnicos e Científicos, 1992.
FREITAS, H.; BECKER, J. L.; KLADIS, C. M. e HOPPEN, N.. Informação e Decisão: Sistemas de Apoio e seu Impacto. Porto Alegre: Ortiz, 1997.
FURLAN, J. D.. Reengenharia da Informação: Do Mito à Realidade. São Paulo: Makron Books, 1994.
GROUP, Copyright © 2001-2017 The Php. PHP Introdução Manual. 2001-2017. Disponível em: <http://php.net/manual/pt_BR/intro.gearman.php>. Acesso em: 27 set. 2016.
HAMMER, M. e CHAMPY, J.. Reengenharia: Revolucionando a Empresa. 17ed. Rio de Janeiro: Campus, 1994.
LARMAN, Craig. Utilizando Uml e Padrões. 3. ed. Porto Alegre: Bookman, 2007. 696 p. Tradução: Rosana Vaccare Braga.
LAUDON K. C. e LAUDON, J. P.. Management Information System: Organization and Tecnhnology in the networked enterprise. 6ed. New York: Prentice Hall, 2000.
MORIMOTO, Carlos Eduardo. Servidores Linux: Guia Prático. Porto Alegre: Sul Editores, 2009. 719 p.
NETBEANS. Visão Geral do NetBeans IDE: A Forma Mais Inteligente e Rápida
de Codificar. 2016. Disponível em:
<https://netbeans.org/features/index_pt_BR.html>. Acesso em: 02 out. 2016.
NEVES, Pedro M C. O Guia Prático da HTML. Lisboa Portugal: Centro Atlântico, 2004. 281 p.
NIEDERAUER, Juliano. PHP para quem conhece: Recursos avançados para a criação de Websites Dinâmicos. 4. ed. São Paulo: Novatec, 2013. 528 p.
PABLO, Dall'oglio. PHP PROGRAMANDO COM ORIENTAÇÃO A OBJETOS. 2. ed. São Paulo: Novatec, 2009. 574 p
SEBRAE. Coletânea Estatística da Micro e Pequena Empresa. Brasília, 1998. SEBRAE. Sondagem Balcão: A Voz e a Vez dos Pequenos Empresários. Informatização. 1997. Disponível em:<http://www.sebrae.com.br>. Acesso em: 18 nov. 2016.
SILBERSCHATZ, Abraham; KORTH, Henry F.; SUDARSHAN, S.. Sistema de banco de dados. Rio de Janeiro: Campus - Rj, 2006, 2006. 781 p.
SILVA, Maurício Samy. Ajax com Jquery: Requisições AJAX com a simplicidade de JQuery. São Paulo: Novatec, 2009. 327
SILVA, Maurício Samy. Bootstrap 3.3.5: Aprenda a usar framework bootstrap. São Paulo: Novatec, 2015. 226 p.
TORRES, N. A.. Competitividades Empresariais com a Tecnologia de Informação. São Paulo: Makron Books, 1995.
APENDICE A
Lista de versão dos aplicativos instalados no CentOS Minimal libICE-1.0.9-2.el7.x86_64 perl-Carp-1.26-244.el7.noarch poppler-data-0.4.6-3.el7.noarch perl-File-Temp-0.23.01-3.el7.noarch libXfont-1.5.1-2.el7.x86_64 perl-Filter-1.49-3.el7.x86_64 liberation-fonts-common-1.07.2-15.el7.noarch passwd-0.79-4.el7.x86_64 libXau-1.0.8-2.1.el7.x86_64 perl-Net-Daemon-0.48-5.el7.noarch perl-DBI-1.627-4.el7.x86_64 sed-4.2.2-5.el7.x86_64 libXdamage-1.1.4-4.1.el7.x86_64 gpg-pubkey-1bb943db-511147a9 libcom_err-1.42.9-7.el7.x86_64 libXt-1.1.4-6.1.el7.x86_64 MariaDB-server-10.1.3-1.el7.centos.x86_64 libtiff-4.0.3-25.el7_2.x86_64 NetworkManager-tui-1.0.6-27.el7.x86_64 bc-1.06.95-13.el7.x86_64 libtalloc-2.1.2-1.el7.x86_64 libacl-2.2.51-12.el7.x86_64 cups-filesystem-1.6.3-22.el7.noarch libtalloc-devel-2.1.2-1.el7.x86_64 centos-release-7-2.1511.el7.centos.2.10.x86_64 cups-1.6.3-22.el7.x86_64 pyldb-1.1.20-1.el7_2.2.x86_64 cups-lpd-1.6.3-22.el7.x86_64 libarchive-3.1.2-7.el7.x86_64 glibc-2.17-106.el7_2.4.x86_64 cups-devel-1.6.3-22.el7.x86_64 glusterfs-client-xlators-3.7.1-16.0.1.el7.centos.x86_64 libnetfilter_queue-1.0.2-2.el7.x86_64 bzip2-libs-1.0.6-13.el7.x86_64 libnetfilter_log-devel-1.0.1-7.el7.x86_64
chkconfig-1.3.61-5.el7.x86_64 libunistring-0.9.3-9.el7.x86_64 libnetfilter_queue-devel-1.0.2-2.el7.x86_64 samba-python-4.2.3-12.el7_2.x86_64 pcre-devel-8.32-15.el7_2.1.x86_64 perl-Parse-Yapp-1.05-50.el7.noarch newt-0.52.15-4.el7.x86_64 libgcc-4.8.5-11.el7.x86_64 gdbm-1.10-8.el7.x86_64 libgfortran-4.8.5-11.el7.x86_64 samba-vfs-glusterfs-4.2.3-12.el7_2.x86_64 libnl3-cli-3.2.21-10.el7.x86_64 vim-common-7.4.160-1.el7_3.1.x86_64 libteam-1.17-5.el7.x86_64 gcc-4.8.5-11.el7.x86_64 gsettings-desktop-schemas-3.14.2-1.el7.x86_64 gcc-c++-4.8.5-11.el7.x86_64 libtool-ltdl-2.4.2-21.el7_2.x86_64 php-devel-5.4.16-42.el7.x86_64 coreutils-8.22-15.el7_2.1.x86_64 wget-1.14-13.el7.x86_64 bind-license-9.9.4-29.el7_2.3.noarch pinentry-0.8.1-14.el7.x86_64 libX11-1.6.3-3.el7.x86_64 autogen-libopts-5.18-5.el7.x86_64 python-2.7.5-34.el7.x86_64 expat-2.1.0-10.el7_3.x86_64 glibc-headers-2.17-106.el7_2.4.x86_64 centos-logos-70.0.6-3.el7.centos.noarch libxcb-1.11-4.el7.i686 unixODBC-2.3.1-11.el7.x86_64 grubby-8.28-17.el7.x86_64 expat-2.1.0-10.el7_3.i686 libmpc-1.0.1-3.el7.x86_64 nss-3.19.1-19.el7_2.x86_64 libverto-0.2.5-4.el7.x86_64 gd-2.0.35-26.el7.i686 unzip-6.0-15.el7.x86_64 openssl-1.0.1e-51.el7_2.4.x86_64 freetype-devel-2.4.11-12.el7.x86_64 perl-Thread-Queue-3.02-2.el7.noarch libsemanage-2.1.10-18.el7.x86_64 cracklib-dicts-2.9.0-11.el7.x86_64 libpng-devel-1.5.13-7.el7_2.x86_64 curl-7.29.0-25.el7.centos.x86_64 glib2-devel-2.46.2-4.el7.x86_64 dyninst-8.2.0-2.el7.x86_64 dhcp-libs-4.2.5-42.el7.centos.x86_64 ncurses-libs-5.9-13.20130511.el7.i686 dwz-0.11-3.el7.x86_64
policycoreutils-2.2.5-20.el7.x86_64 libX11-devel-1.6.3-3.el7.x86_64 rpm-python-4.11.3-17.el7.x86_64 libxml2-devel-2.9.1-6.el7_2.3.x86_64 libgnome-keyring-3.8.0-3.el7.x86_64 kpartx-0.4.9-85.el7.x86_64 dbus-python-1.1.1-9.el7.x86_64 fontconfig-devel-2.10.95-10.el7.x86_64 gettext-common-devel-0.18.2.1-4.el7.noarch dracut-033-360.el7_2.x86_64 sqlite-3.7.17-8.el7.i686 systemtap-devel-2.8-10.el7.x86_64 iputils-20121221-7.el7.x86_64 xz-libs-5.2.2-1.el7.i686 mokutil-0.9-2.el7.x86_64 dhclient-4.2.5-42.el7.centos.x86_64 yum-metadata-parser-1.1.4-10.el7.x86_64 yum-3.4.3-150.el7.centos.noarch systemtap-2.8-10.el7.x86_64 dnsmasq-2.66-14.el7_1.x86_64 newt-python-0.52.15-4.el7.x86_64 util-linux-2.23.2-33.el7.x86_64 subversion-1.7.14-10.el7.x86_64 pcre-devel-8.32-15.el7_2.1.i686 flex-2.5.37-3.el7.x86_64 cronie-anacron-1.4.11-14.el7.x86_64 gnutls-3.3.24-1.el7.i686 patchutils-0.3.3-4.el7.x86_64 libdrm-2.4.60-3.el7.x86_64 gupnp-0.20.13-1.el7.x86_64 byacc-1.9.20130304-3.el7.x86_64 kernel-tools-libs-3.10.0-327.10.1.el7.x86_64 libsoup-2.48.1-6.el7.i686 dmidecode-2.12-9.el7.x86_64 gupnp-igd-devel-0.2.2-3.el7.x86_64 libcom_err-1.42.9-7.el7.i686 lvm2-2.02.130-5.el7_2.1.x86_64 compat-libstdc++-33-3.2.3-72.el7.i686 krb5-libs-1.13.2-12.el7_2.x86_64 kernel-tools-3.10.0-327.10.1.el7.x86_64 iptables-services-1.4.21-17.el7.x86_64 libselinux-devel-2.2.2-6.el7.x86_64 kernel-3.10.0-327.10.1.el7.x86_64 iptables-devel-1.4.21-17.el7.i686 m2crypto-0.21.1-17.el7.x86_64 microcode_ctl-2.1-12.el7.x86_64 os-prober-1.58-5.el7.x86_64 openssl-devel-1.0.1e-51.el7_2.4.i686 dracut-config-rescue-033-360.el7_2.x86_64 samba-common-tools-4.2.3-12.el7_2.x86_64