INSTALAÇÃO DO RADIUS: Integração com sistema de gestão

49
CENTRO UNIVERSITÁRIO DO SUL DE MINAS – UNIS MG BACHARELADO EM SISTEMAS DE INFORMAÇÃO ROGÉRIO RESENDE SOARES INSTALAÇÃO DO RADIUS: Integração com sistema de gestão Varginha-MG 2011

Transcript of INSTALAÇÃO DO RADIUS: Integração com sistema de gestão

Page 1: INSTALAÇÃO DO RADIUS: Integração com sistema de gestão

CENTRO UNIVERSITÁRIO DO SUL DE MINAS – UNIS MG

BACHARELADO EM SISTEMAS DE INFORMAÇÃO

ROGÉRIO RESENDE SOARES

INSTALAÇÃO DO RADIUS: Integração com sistema de gestão

Varginha-MG

2011

Page 2: INSTALAÇÃO DO RADIUS: Integração com sistema de gestão

ROGÉRIO RESENDE SOARES

INSTALAÇÃO DO RADIUS: Integração com sistema de gestão

Monografia apresentado ao curso de graduação em Bacharelado em Sistemas de Informação do Centro universitário do Sul de Minas – UNIS MG, como pré-requisito conclusão do curso, sob orientação do Prof. Ricardo Bernardes Mello.

Varginha-MG

2011

Page 3: INSTALAÇÃO DO RADIUS: Integração com sistema de gestão

ROGÉRIO RESENDE SOARES

INSTALAÇÃO DO RADIUS: Integração com sistema de gestão

Monografia apresentado ao curso de graduação em Bacharelado em Sistemas de Informação do Centro universitário do Sul de Minas – UNIS MG, como pré-requisito conclusão do curso, sob orientação do Prof. Ricardo Bernardes Mello.

Aprovado em _____/_____/_____

________________________________________________

Prof. Esp. Ricardo Bernardes de Mello

________________________________________________

Prof. Ms. Simone de Paula Teodoro Moreira

________________________________________________

Profª Ms. Letícia Rodrigues da Fonseca

OBS.:

1

Page 4: INSTALAÇÃO DO RADIUS: Integração com sistema de gestão

RESUMO

Esse projeto tem como objectivo desenvolver uma forma mais eficiente de autenticação dos usuários da rede sem fio do Grupo UNIS. Isso se fez necessário porque o sistema de autenticação da rede sem fio têm várias limitações. Por exemplo, a senha não pode ser alterada pelo usuário, não é possível obter informações estatísticas, os usuarios não podem usar a mesma senha do sistema de gestão, entre outras limitações. A principal hipótese é fazer uso dos usuários e senhas cadastrados no sistema de gestão acadêmica. Foi feita uma analise no atual sistema de gestão do Grupo UNIS para identificar os recursos disponíveis. Foi feita uma pesquisa bibliográfica sobre os principais recursos de rede e autenticação atualmente disponíveis, priorizando-se os recursos de código aberto por ser de menor custo. Decidiu-se usar o servidor RADIUS, com um método de autenticação externo, escrito em linguagem PHP. Com a flexibilidade disponível nesses recursos, foi possível fazer uso das senhas do sistema de gestão para autenticação dos usuários da rede sem fio. Conseguiu-se um sistema seguro, flexível e integrado de baixo custo de instalação, devido ao uso de sistemas de código aberto. O modelo abordado pode ser usado em outras instituições e empresas, bem como pode ser integrado com outros sistemas de gestão.

Palavras-chave: Autenticação , RADIUS, WIRELESS.

2

Page 5: INSTALAÇÃO DO RADIUS: Integração com sistema de gestão

ABSTRACT

This project aims to develop a more efficient way of authenticating users of wireless UNIS Group. This was necessary because the authentication system of wireless network have several limitations. For example, the password can not be changed by the user, it is not possible to obtain statistical information, users can not use the same password management system, among other restrictions. The main hypothesis is to make use of user names and passwords registered in the system of academic management. An analysis was made in the current management system UNIS Group to identify the resources available. A search of the literature on the key features and network authentication currently available, focusing on the capabilities of open source because of its lower cost. He decided to use the RADIUS server with an external authentication method, written in PHP. With the flexible features installed, it was possible to make use of the password management system for user authentication of the wireless network. We managed to a secure, flexible and integrated, low cost of installation, due to the use of open source systems. The model discussed can be used in other institutions and companies, and can be integrated with other management systems.

Key-Words: Authentication, Wireless, RADIUS.

3

Page 6: INSTALAÇÃO DO RADIUS: Integração com sistema de gestão

Índice de FigurasFigura 1: Protocolo. Fonte: Korose e Ross (2010).............................................................................11Figura 2: Arquitetura da LAN Wireless IEEE 802.11. Fonte: Korose e Ross (2010)........................13Figura 3: Arquitetura básica de um roteador. Fonte: Korose e Ross (2010)......................................14Figura 4: Requisições entre o servidor DHCP e servidor RADIUS...................................................17Figura 5: Dicionário de dados sistema Vetorh – Senior.....................................................................26Figura 6: Esquema estrutural da rede sem fio....................................................................................29Figura 7: Teste de requisição de endereço IP.....................................................................................32Figura 8: Resposta recebida após o teste............................................................................................33

4

Page 7: INSTALAÇÃO DO RADIUS: Integração com sistema de gestão

Índice de tabelasTabela 1: Tipos de redes.....................................................................................................................11Tabela 2: Pilha de protocolo da internet.............................................................................................12Tabela 3: Atributos do RADIUS.........................................................................................................17Tabela 4: Exemplo de uso da linguagem SQL...................................................................................20Tabela 5: Campos da tabela PESSOA................................................................................................24Tabela 6: Campos da tabela DADOSFUNC.......................................................................................24Tabela 7: Campos da tabela PROFDISC............................................................................................24Tabela 8: Campos da tabela 'Cadastro de Funcionários' (R034FUN)................................................27Tabela 9: Variáveis geradas pelo 'radtest' e enviadas ao servidor RADIUS.......................................31Tabela 10: Teste de autenticação........................................................................................................33

5

Page 8: INSTALAÇÃO DO RADIUS: Integração com sistema de gestão

Sumário 1 INTRODUÇÃO................................................................................................................................8

1.1 Justificativa..............................................................................................................................8 1.2 Objetivos..................................................................................................................................8

1.2.1 Objetivo Geral...................................................................................................................8 1.2.2 Objetivo Específico...........................................................................................................9

2 REFERENCIAL TEÓRICO...........................................................................................................10 2.1 Redes de computadores.........................................................................................................10

2.1.1 Redes e Internet...............................................................................................................10 2.1.2 Redes de acesso...............................................................................................................10 2.1.3 Protocolo.........................................................................................................................11 2.1.4 Camadas de protocolo.....................................................................................................12 2.1.5 Redes sem fio..................................................................................................................13 2.1.6 Roteador..........................................................................................................................14 2.1.7 Endereços MAC .............................................................................................................15 2.1.8 ARP – Protocolo de resolução de endereços...................................................................15 2.1.9 Protocolo DHCP.............................................................................................................16 2.1.10 Protocolo RADIUS.......................................................................................................16

2.2 Considerações Gerais sobre Segurança em Redes ................................................................18 2.2.1 Identificação e Autenticação de Usuários ......................................................................18

2.3 Banco de Dados.....................................................................................................................19 2.3.1 Conceitos de definições de Banco de Dados...................................................................19 2.3.2 Linguagens de manipulação de dados.............................................................................19 2.3.3 Estrutura básica do SQL.................................................................................................20

2.4 Sistema operacional ..............................................................................................................20 2.4.1 FreeBSD..........................................................................................................................21

2.5 Linguagens de programação..................................................................................................21 2.5.1 Linguagem PHP..............................................................................................................21

2.6 Gestão integrada de organizações..........................................................................................22 2.6.1 Sistemas Integrados de Gestão Empresarial...................................................................22 2.6.2 Sistema Universus...........................................................................................................23 2.6.3 Empresa CadSoft15.........................................................................................................23 2.6.4 Banco de dados do sistema de gestão acadêmica............................................................23 2.6.5 Funções do banco de dados definidas pela Cadsoft........................................................25 2.6.6 Filtros para liberação do acesso a rede sem fio no sistema acadêmico...........................25 2.6.7 Sistema Gestão de Pessoas Senior..................................................................................25 2.6.8 Empresa SENIOR...........................................................................................................26 2.6.9 Banco de dados do sistema Gestão de Pessoas...............................................................26 2.6.10 Filtros para liberação do acesso a rede sem fio no departamento de pessoal...............27 2.6.11 WGU - Wireless Grupo Unis.........................................................................................27

3 METODOLOGIA...........................................................................................................................28 3.1 Rede sem fio Grupo UNIS.....................................................................................................28 3.2 Instalação do sistema operacional..........................................................................................29 3.3 Configuração básica do servidor............................................................................................29 3.4 Servidor RADIUS..................................................................................................................30 3.5 Configuração do serviço Radius............................................................................................30 3.6 Testes de requisição de endereço IP.......................................................................................31 3.7 Testes de autenticação no servidor radius..............................................................................32

4 CONCLUSÃO................................................................................................................................34

6

Page 9: INSTALAÇÃO DO RADIUS: Integração com sistema de gestão

5 REFERENCIAS BIBLIOGRÁFICAS...........................................................................................36 6 APÊNDICES E ANEXOS..............................................................................................................38

6.1 Arquivos de configuração do FreeRADIUS..........................................................................38 6.1.1 Nets.php – Programação externa para autenticação no sistema de gestão......................38 6.1.2 radius.conf – Configuração do modulo sql no radius.....................................................40 6.1.3 sql.conf – Configuração UnixODBC no radius..............................................................40 6.1.4 sites-enabled/default – Configuração da autenticação externa.......................................41 6.1.5 clients.conf – Configuração de permissões de acesso para clientes do RADIUS...........41

6.2 UnixODBC e FreeTDS – Configuração UnixODBC no FreeBSD.......................................41 6.2.1 odbcinst.ini......................................................................................................................41 6.2.2 odbc.ini............................................................................................................................41 6.2.3 freetds.conf......................................................................................................................41

6.3 Procedimentos armazenados do banco de dados do sistema WGU.......................................42 6.3.1 status_DP – Verifica sistema de gestão de pessoas Senior..............................................42 6.3.2 status_OU – Verifica usuários do sistema WGU............................................................42 6.3.3 status_PF – Verifica professores.....................................................................................42 6.3.4 status_RA – Verifica alunos............................................................................................43 6.3.5 GetIP – Calcula próximo endereço de rede.....................................................................44 6.3.6 WGU – Atualiza e verifica dados dos usuários da rede sim fio......................................44

7

Page 10: INSTALAÇÃO DO RADIUS: Integração com sistema de gestão

1 INTRODUÇÃO

O uso de dispositivos móveis tem aumentado em grande escala. Diante disso as

organizações estão se aprimorando para disponibilizar meios para que seus usuários possam se

conectar a sua rede por meio destes dispositivos móveis.

As instituições de ensino, em especial, promovem o desenvolvimento da tecnologia e devem

ser referência em oferecer meios de acesso aos seus alunos, professores e colaboradores.

No entanto é um desafio restringir o acesso a apenas as pessoas que estão de vinculadas a

essas instituições, visto que a maioria destas instituições não dispõe de recursos suficientes para

fornecer acesso ilimitado a toda comunidade.

Portanto é importante um sistema de controle de acesso que atualize de modo automático a

situação atual de cada usuário do acesso a rede sem fio em relação a instituição que fornece o

acesso.

1.1 Justificativa

Existe uma grande rotatividade de pessoas a cada novo semestre em uma instituição de

ensino. Novos alunos se matriculam enquanto outros solicitam trancamentos. Além disso, ocorrem

também desistências. Novos professores são contratados e outros saem da instituição.

Com frequência, é necessário que outras pessoas que não têm vínculo direto com essas

instituições, tenham acesso a rede de dados, como por exemplo, palestrantes, consultores e outros.

Atualmente, é necessária uma intervenção manual para essa liberação de acesso, causando assim

falta de segurança e de controle na rede, como também retrabalho manual.

1.2 Objetivos

O objetivo desse projeto foi realizar melhorias no sistema de autenticação dos usuários da

rede sem fio.

1.2.1 Objetivo Geral

Esse projeto identificou os recursos disponíveis nos sistemas de gestão para autenticação dos

8

Page 11: INSTALAÇÃO DO RADIUS: Integração com sistema de gestão

usuários da rede sem fio, e instalou e configurou outras aplicações e serviços necessários para isso.

1.2.2 Objetivo Específico

Verificou-se nos atuais sistemas de gestão as informações e procedimento que poderiam ser

usados na autenticação de usuários da rede sem fio.

Instalou-se e configurou-se um servidor de autenticação que permite o uso das senhas já

cadastradas no sistema de gestão acadêmica e em com outros bancos de dados de usuários. O

sistema foi planejado para ter flexibilidade e ser adaptável as mudanças que poderão ocorrer nos

sistemas de gestão.

9

Page 12: INSTALAÇÃO DO RADIUS: Integração com sistema de gestão

2 REFERENCIAL TEÓRICO

Apresenta-se aqui uma breve descrição dos conceitos básicos encontrados na literatura que

se relacionam com as tecnologias utilizadas no desenvolvimento desse projeto, como também

alguns conceitos básicos de banco de dados e linguagem de programação.

2.1 Redes de computadores

As redes de computadores são muito comuns atualmente. A história delas é bastante recente

quando comparada a outras tecnologias como rádio e televisão por exemplo.

2.1.1 Redes e Internet

Segundo Korose e Ross (2010), na década de 60, as redes telefônicas eram o principal meio

de comunicação no mudo inteiro. Devido ao crescimento no uso dos computadores e da

multiprogramação, foi necessário interligá-los, tendo em vista que os usuários estão distribuídos em

várias localizações geográficas. Nesse momento surge a internet para realizar esse processo de

interligação.

A internet é uma rede de computadores que conecta vários dispositivos, basicamente

computadores, segundo Korose e Ross (2010). Entretanto um número cada vez maior de outros

dispositivos tem sido elaborado com a funcionalidade de conectar-se à internet. Além disso, existe

atualmente uma grande variedade de redes de acesso.

2.1.2 Redes de acesso

As redes de acesso, segundo Korose e Ross (2010), são enlaces físicos que fazem conexão

entre um sistema final e o primeiro roteador, que por sua vez faz a conexão com outro sistema e

assim por diante.

Existem vários tipos de redes acesso, que usam vários meios de acesso diferentes. Alguns

exemplos de redes de acesso estão listados na Tabela 1.

10

Page 13: INSTALAÇÃO DO RADIUS: Integração com sistema de gestão

Discadas - Usam as linhas telefônicas analógicas;

DSL - Usam linhas telefônicas digitais;

Cabo - Usam as redes de televisão por meio de um cabo coaxial;

FTTH – Fazem uso de cabos de fibra ótica;

Ethernet – Usam pares de fios de cobre trançados;

Wifi – Usam canais de rádio sem uso de cabos físicos;

Tabela 1: Tipos de redes

Os componentes que tornam possíveis as trocas de informações através de uma rede são

chamados de protocolos. Existe uma grande variedade de protocolos. Entender o que são e como

funcionam é essencial para compreender o funcionamento de qualquer tipo de rede.

2.1.3 Protocolo

Protocolo é um termo importante em redes de computadores. Sem ele as redes simplesmente

não funcionariam.

Em seu livro, Korose e Ross (2010) faz uma analogia a comunicação entre pessoas para

exemplificar o que é um protocolo dentro de redes de computadores, conforme apresentado na

Figura 1.

Figura 1: Protocolo. Fonte: Korose e Ross (2010)

11

Page 14: INSTALAÇÃO DO RADIUS: Integração com sistema de gestão

Quando se encontra com alguém com quem queremos falar, primeiramente cumprimenta-se

e espera-se uma resposta, depois fala-se ou pergunta-se algo e novamente aguarda-se a resposta, e

assim sucessivamente. O mesmo processo acontece em um protocolo de rede. Em qualquer tipo de

acesso na internet estão envolvidos duas ou mais unidades de rede que sejam capazes de entender

um mesmo protocolo.

Portanto, Korose e Ross (2010) define protocolo de rede como sendo o agente que determina

o formato, a ordem das trocas de informações e as ações em uma rede.

Os protocolos de rede estão organizados em camadas.

2.1.4 Camadas de protocolo

Segundo Korose e Ross (2010), cada camada provê seu serviço executando algumas ações e

utilizando os serviços da camada que está diretamente abaixo dela. As camadas podem ser

programas em hardware ou software.

A pilha de protocolo da internet está organizada em cinco camadas, conforme mostrado na

Tabela 2.

Aplicação

Transporte

Rede

Enlace

Físico

Tabela 2: Pilha de protocolo da internet

A camada de aplicação é onde estão os serviços de aplicações de redes e seus protocolos

como, por exemplo, serviços Http, Radius, Smtp etc.

Na camada de transportes temos na internet dois tipos de protocolos TCP1 e UDP2, que

fazem o transporte das mensagens entre servidores e clientes.

A camada de rede na internet possui dois componentes responsáveis pela movimentação de

pacotes. Um deles é o protocolo IP que define o datagrama da camada de rede. O outro é o

1 TCP é o acrônimo para o inglês Transmission Control Protocol2 UDP é o acrônimo para o inglês User Datagram Protocol

12

Page 15: INSTALAÇÃO DO RADIUS: Integração com sistema de gestão

protocolo de roteamento, que determina as rotas de entrega dos pacotes.

A camada de enlace atua entre cada roteador durante o transporte dos pacotes na internet,

que geralmente passam por vários roteadores até chegar ao seus destinos. É nessa camada está o

endereçamento de LAN3 ou endereço MAC4.

A camada física é responsável pelo transporte de bits individuais entre os nós de uma rede.

Os protocolos e suas camadas podem ser usados em diversos tipos de redes. Atualmente um

meio que tem se tornado cada vez mais comum são as redes sem fio.

2.1.5 Redes sem fio

Muitas tecnologias de redes sem fio foram desenvolvidas. A tecnologia 'LAN wireless IEEE

802.11', mais conhecida como Wi-Fi, tem sido a mais usada. Atualmente as redes sem fio estão

presentes em quase todo tipo de ambiente.

Segundo Korose e Ross (2010), o bloco básico de uma rede Wi-Fi é o BSS5, conjunto básico

de serviço, que contém uma ou mais estações sem fio e uma estação base central, conhecida como

um ponto de acesso. Os pontos de acesso são conhecidos pelas letras AP6.

Figura 2: Arquitetura da LAN Wireless IEEE 802.11. Fonte: Korose e Ross (2010)

Os dispositivos móveis devem estar dentro da área de cobertura do ponto de acesso para que

3 LAN é o acrônimo para o inglês local area network4 MAC é o acrônimo para o inglês media access control5 BSS é o acrônimo para o inglês basic service set6 AP é o acrônimo para o inglês acess point

13

Page 16: INSTALAÇÃO DO RADIUS: Integração com sistema de gestão

possam se conectar a rede.

Quando está dentro da área de cobertura, o dispositivo móvel pode solicitar uma conexão ao

ponto de acesso, conforme mostra a Figura 2.

Existem no mercado atualmente diverso tipos e modelos de ponto de acesso. Os modelos

mais simples de configurar que podem ser usados em pequenas redes domésticas ou escritórios. Os

mais complexos e robustos podem possuir elaborados sistemas de controle de acesso.

Depois de atender a uma requisição de um dispositivo móvel, o ponto de acesso pode passar

a atuar como roteador ou ponte de acesso até o próximo roteador.

2.1.6 Roteador

Roteador é o sistema que faz as conexões entre as redes de computadores. Segundo Korose e

Ross (2010), seria necessário um curso completo para tratar do projeto de roteadores em

profundidade.

Em uma visão de alto nível sobre roteadores consideraremos basicamente um roteador como

um conjunto de processos que encaminham os pacotes de informações aos seus destinatários,

composto de uma entrada, um elemento de comutação, um processador de roteamento e uma saída,

conforme mostra a Figura 3.

Figura 3: Arquitetura básica de um roteador. Fonte: Korose e Ross (2010)

A rede mundial de computadores foi elaboração, desde sua criação na década de 60, com o

conceito de rotas, roteadores e roteamento. Desta forma, a rede se torna bastante tolerante a falhas,

pois se um caminho for interrompido, outro caminho pode ser usado. O roteador identifica e

encaminha as diversas requisições usando o endereço de rede MAC de cada dispositivo .

14

Page 17: INSTALAÇÃO DO RADIUS: Integração com sistema de gestão

2.1.7 Endereços MAC

O endereçamento MAC7 foi projetado para ser único em cada adaptador, como por exemplo,

um número de documento CPF8 é para ser único para cada cidadão brasileiro. Mas é possível mudar

esse endereço por meio de um software, conforme descrito por Korose e Ross (2010), p. 339.

O IEEE9, Instituto de Engenheiros Eletricistas e Eletrônicos, é uma organização profissional

sem fins lucrativos, fundada nos Estados Unidos, e tem como meta é promover conhecimento no

campo da engenharia elétrica, eletrônica e computação. Um de seus papéis mais importantes é o

estabelecimento de padrões para formatos de computadores e dispositivos. Um desses padrões

organiza os endereçamentos entre os diversos fabricantes de adaptadores de redes no mundo todo.

Alocando parcelas de 224 endereços, e fixando os primeiros 24 bits, permite assim que o fabricante

do dispositivo crie combinações exclusivas com os últimos 24 bits para cada unidade.

Cada endereço MAC é composto por 6 bytes expressos em notação hexadecimal. As

informações de todos os endereços MAC dentro de uma mesma rede são armazenadas na memória

do roteador e nos dispositivos móveis em uma tabela camada ARP.

2.1.8 ARP – Protocolo de resolução de endereços

O protocolo ARP10, segundo Plummer (1982), é o protocolo que faz a tradução entre a

camada de rede e a camada de enlace, identificando que endereçamento MAC pertence a qual

endereço IP. Os protocolos ARP atuam apenas em uma mesma sub-rede. Para que os endereços

ARP sejam encaminhados a outra rede, é preciso que o roteador faça essa cópia entre elas. O

manual de Socolofsky (1991) faz uma abordagem abrangente do TCP/IP e ARP.

Os pontos de acesso usados nesse projeto, fabricados pela empresa MikroTic11, possuem um

sistema embarcado com a funcionalidade de transportar a tabela ARP entre as sub-redes gerenciadas

por ele. O endereço MAC é usado apenas uma mesma sub-rede, portanto outro tipo de

endereçamento chamado IP é usado para identificar o local de uma conexão em uma rede local ou

pública.

7 MAC é a sigla para Media Access Control8 CPF é o acrônimo para Cadastro de Pessoas Físicas, é o registro de um cidadão na Receita Federal brasileira.9 A página no brasil do IEEE é http://www.ieee.org.br10 ARP é o acrônimo para o inglês Address Resolution Protocol11 A página official da empresa MikroTic é http:///www.mikrotic.com

15

Page 18: INSTALAÇÃO DO RADIUS: Integração com sistema de gestão

2.1.9 Protocolo DHCP

Os endereçamentos de rede IP podem ser configurados manualmente, mas esse processo

pode ser automatizado com o uso dos servidores DHCP12, conforme Korose e Ross (2010), p. 257.

O servidor DHCP pode ser configurado para que um mesmo cliente, identificado pelo seu

endereçamento MAC, receba sempre o mesmo número IP.

Com o uso do protocolo DHCP, além de receber o endereçamento IP, o cliente pode também

receber mais informações como a mascara de sub-rede, endereço do roteador e endereço servidor de

DNS.

Após receber o endereçamento IP, o cliente pode acessar outros serviços disponíveis na rede.

Podendo assim autenticar-se e receber autorização para ter acesso a outros recursos. Nesse projeto

foi utilizado o servidor RADIUS para autenticar, autorizar e gerar estatísticas dos acessos.

2.1.10 Protocolo RADIUS

Conforme Korose e Ross (2010), p. 389, §5, existem várias alternativas para autenticar uma

associação entre um cliente e um determinado ponto de acesso. É muito comum entre as empresas

usarem o endereçamento MAC para fazer essa autenticação. Outra forma bastante comum é usar

usuário e senha. De qualquer forma, nos dois casos, o ponto de acesso geralmente se comunica com

um servidor de autenticação para validar o usuário e senha, determinar quais serviços estarão

disponíveis e também manter um registro dos acessos feitos.

Ter um servidor de autenticação separado do ponto de acesso permite que vários outros

usem a mesma estrutura de autenticação, facilitando assim a manutenção dos usuários, senhas,

permissões e relatórios de acessos. Para isso foi escolhido o servidor RADIUS nesse projeto.

RADIUS é um protocolo da camada de aplicação tipo AAA para acesso à rede de

computadores e mobilidade através de rede IP.

Os protocolos do tipo AAA são usados em sistemas de autenticação, autorização e

accouting. Referindo-se respectivamente ao processo de verificar a identidade do usuário, garantir

que o usuário tenha acesso apenas aos recursos autorizados, e a coleta de informações sobre o uso

dos recursos de um sistema.

O pontos de acesso MikroTik (2011) possuem embarcado em seu sistema operacional um

12 DHCP é o acrônimo para o inglês Dynamic Host Configuration Protocol

16

Page 19: INSTALAÇÃO DO RADIUS: Integração com sistema de gestão

servidor DHCP que pode ser configurado para obter o endereço IP de um servidor RADIUS,

conforme mostra a Figura 4.

Figura 4: Requisições entre o servidor DHCP e servidor RADIUS

A norma RFC 2865, conforme descrito por Rigney (2000), descreve os padrões para o

protocolo RADIUS. O protocolo RADIUS é resumidamente, um serviço baseado em UDP de

pergunta e resposta. As requisições e respostas seguem um padrão de tabelas (variável=valor).

Atributo id tipo

User-Name 1 string

Password 2 string

Tabela 3: Atributos do RADIUS

No RADIUS, as variáveis são identificadas por um número. A relação entre este número e

seu nome é obtida através de dicionários. Podemos ver um exemplo de dicionário padrão na Tabela

3. O valor tem um tipo definido no dicionário, e os tipos comuns são: string, inteiro (numero),

octeto ou ipaddr (endereço IP: 4 bytes) e tipo estendido (usado para transportar parâmetros

personalizados de fabricantes de equipamentos). O RADIUS tem uma porta para autenticação (UDP

1645 ou UDP 1812) e outra para contabilidade (UDP 1646 ou UDP 1813).

Segundo Rigney (2000), o RADIUS opera em uma arquitetura cliente/servidor. O cliente do

servidor RADIUS é responsável por enviar informações do usuário ao RADIUS e depois agir sobre

a resposta que é retornada. O servidor RADIUS é responsável por receber as informações e retornar

ao cliente as informações necessárias para entregar o serviço ao usuário. A segurança é feita por

uma senha informada no cliente e no servidor. A senha pode ser vinculada ao endereço IP do cliente,

17

Page 20: INSTALAÇÃO DO RADIUS: Integração com sistema de gestão

aumentando assim a segurança. Essa senha nunca é enviada pela rede. Isso garante que apenas

clientes autorizados poderão enviar informações ao servidor.

Os servidores RADIUS suporta uma variedade de métodos de autenticação de usuários e

pedidos de informações. Portanto foi utilizado nesse projeto um método integrado à um banco de

dados SQL, que facilita a manutenção dos usuários.

2.2 Considerações Gerais sobre Segurança em Redes

Considera-se aqui algumas medidas de segurança das redes cabeadas que podem e devem se

aplicadas às redes Wi-Fi.

2.2.1 Identificação e Autenticação de Usuários

Como o objetivo de disponibilizar os dados e recursos de uma rede apenas às pessoas

autorizadas, devemos identifica-las meio de se estabelecer uma identidade do usuário. Depois de

identificado, o usuário precisa ser autenticado, por meio de uma verificação da veracidade da

identidade do usuário. Essa identificação se relaciona com o nome do usuário na rede, e a

autenticação geralmente é feita com o uso da senha, tokens e outros métodos.

Existem várias formas de se fazer autenticação de usuário, sendo que alguns métodos são

mais eficientes que outros. Alguns dos métodos de autenticação de usuários mais usados são as

senhas e tokens. Considera-se aqui o médodo de autenticação por senha e validação do endereço de

rede MAC. Neste método, o usuário se identifica com um nome de usuário e se autentica através de

uma senha. Em seguida o sistema verifica se o endereço de rede MAC do dispositivo usado pelo

usuário está registrado em seu cadastrado.

Entretanto, ainda assim é importante ter cuidado ao utilizar senhas. Segundo Tittel (2001), p.

214, de acordo com alguns peritos em segurança, a maior causa de furto de dados e vandalismo

eletronico são os próprios usuários. Isso não quer dizer que tenham a intenção de causar dando, mas

devido a falta de cuidados básicos, facilitam a entrada de invasores. Portanto, ao cadastrar senhas

deve-se evitar o uso de palavras óbvias. Senhas criadas a partir de dados pessoais como data de

nascimento, por exemplo, são facilmente descobertas. A definição e divulgação de uma política de

senhas aos usuários pode orientar e regulamentar o uso das senhas e outros procedimentos que

podem aumentar a segurança da rede.

18

Page 21: INSTALAÇÃO DO RADIUS: Integração com sistema de gestão

Outro fator importante na segurança de redes é a manutenção do cadastro dos usuários

demitidos e afastados das instituições. Esses cadastros devem ser prontamente suspensos e seu

acesso bloqueado imediatamente. Nesse projeto, um procedimento armazenado no servidor de

banco de dados verifica periodicamente a situação cadastral dos funcionarios. Esse procedimento

pode ser visto no anexo 6.3.1 .

2.3 Banco de Dados

Devido ao grande volume de informações e a necessidade de acessá-las com agilidade foram

criados sistemas de armazenamento e mecanismos de acesso chamados bancos de dados.

2.3.1 Conceitos de definições de Banco de Dados

Um Sistema Gerenciador de Banco de Dados (SGBD) é um conjunto de dados inter-

relacionados e uma coleção de ferramentas para acessá-los, segundo Silberschatz (2006). Os SGDB

são projetados para armazenar, manipular e garantir a segurança das informações contidas nele.

Os SGBDs são organizados por modelos de dados que descrevem a forma como os dados

são armazenados, suas relações, sua semântica e restrições. Os modelos de dados são classificados

em quatro categorias: Modelo relacional, Modelo entidade/relacionamento, Modelo de dados

baseado em objeto e Modelo de dados semi-estruturado, segundo Date (2003).

Historicamente, os primeiros modelos de Banco de Dados surgiram na década de 60, desde

então, a pesquisa científica na área procura evoluir no sentido de definir e encontrar modelos que

representem da melhor maneira possível os dados de uma realidade, ou seja, que organizem os

dados de uma forma mais próxima à maneira como estes são vistos e manipulados pelas pessoas no

mundo real.

O modelo relacional que usaremos nesse projeto é o mais usado atualmente. Segundo

Silberschatz (2006), consiste em um conjunto de tabelas para representar os dados e as relações

entre eles. Cada tabela pode possuir uma ou mais colunas, e cada uma possui um nome único.

2.3.2 Linguagens de manipulação de dados

Uma linguagem de manipulação de dados, segundo Silberschatz (2006), permite aos

19

Page 22: INSTALAÇÃO DO RADIUS: Integração com sistema de gestão

usuários acessar ou manipular dos dados para recuperar as informações armazenadas, inserir novas

informações, excluir informações do bando de dados, modificarem os dados dessas informações.

Existem várias linguagens de banco de dados. Neste projeto foi usando a linguagem SQL

(Structured Query Language).

2.3.3 Estrutura básica do SQL

Visto que um banco de dados relacional consiste em uma coleção de relações, cada uma com

um nome único, o SQL usa esses nomes em uma estrutura que é formada básica por três expressões:

select, from e where.

Conforme descrito por Silberschatz (2006), o SQL forma o produto cartesiano das relações

nomeadas na clausula from, realiza uma seleção com os parâmetros da cláusula where, e, depois,

projeta o resultado nos atributos da cláusula select.

Como pode-se ver na Figura 4, o SQL encontrará os nomes de todos os produtos da tabela

produtos, que possuem quantidade maior que 10.

Select produto.nome_produto

from produtos

where quantidade_produto > 10

Tabela 4: Exemplo de uso da linguagem SQL

A linguagem SQL é bastante flexível e se adéqua a uma infinidade de tipos de dados e

relacionamentos. Existem pequenas diferenças de sintaxe entre os diversos fornecedores de sistemas

SGDBs, entretanto a lógica e os conceitos fundamentais da linguagem SQL permanece o mesmo

entre eles. Tanto os sistemas SGDBs como os sistemas de rede são instalados em sistemas

operacionais.

2.4 Sistema operacional

Os sistemas operacionais fazem a comunicação entre o hardware e a aplicação em uso. Sem

o sistema operacional seria muito complicada a criação e distribuição de software para usuários

finais, pois cada software teria que ser capaz de identificar os diversos tipos de hardware existente

no mercado.

Os sistemas operacionais mantêm uma coleção de configurações chamadas drivers, em geral

20

Page 23: INSTALAÇÃO DO RADIUS: Integração com sistema de gestão

fornecidos pelos fabricantes, para identificar e utilizar os diversos periféricos que compõe um

computador. Atualmente existe uma grande variedade de sistemas operacionais gratuitos e

proprietários disponíveis para uso. Nesse projeto foi escolhido o FreeBSD.

2.4.1 FreeBSD

O sistema operacional FreeBSD é derivado do BSD Unix desenvolvido pela Universidade

da Califórnia, Berkeley. O FreeBSD oferece um conjunto de avançados recursos tecnológicos de

rede, segurança, desempenho e compatibilidade ainda não encontrada em outros sistemas

operacionais, até mesmo entre os melhores sistemas comerciais, segundo FreeBSD (2011).

Segundo as estatísticas do Netcraft (2011), que monitora vários servidores e serviços da

internet, os servidores FreeBSD são os mais confiáveis quanto a estabilidade e segurança, entre

outros fatores bastante relevantes para segurança e estabilidade dos servidores. No ano de 2011, o

FreeBSD liderou as estatísticas dos servidores mais estáveis por sete vezes.

Para desenvolvimento de aplicações, os sistemas operacionais permitem o uso de diversas

linguagens de programação.

2.5 Linguagens de programação

Os computadores são capazes de executar ações através de instruções uma linguagem

específica chamada linguagem de máquina. A linguagem de máquina é um conjunto de números

que são entendidos pelo computador, mas é muito difícil de ser entendido pelo homem.

Já as linguagens de programação são conjuntos de instruções que podem ser entendidos

tanto por homens e máquinas. Segundo Medina e Fertig (2006), p. 15, as linguagens de

programação são classificadas conforme sua semelhança com a linguagem de máquina. Quanto

mais próximas da linguagem de máquina, mais baixo é o nível da linguagem. As linguagens mais

semelhantes a linguagem humana são as de alto nível.

Existe uma grande variedade de linguagens de programação. Foi escolhido para esse projeto

a linguagem PHP.

2.5.1 Linguagem PHP

21

Page 24: INSTALAÇÃO DO RADIUS: Integração com sistema de gestão

A linguagem PHP teve seu inicio em 1994 e, segundo Muto (2006), foi criada por Rasmus

Lerdorf. Em 1997 houve uma mudança em seu desenvolvimento, pois nessa época o PHP foi

reescrito por Zeev Suraski e Andi Gutmans. A partir da versão 4.3.0, a linguagem PHP possui uma

outra SAPI13 além da CGI, chamada de PHP-CLI. A nova PHP-CLI permite acesso a toda gama de

funções da linguagem PHP através da linha de comando ou de pequenos códigos conhecidos como

scripts. Mais informações sobre esta SAPI podem ser encontradas na página oficial da internet

PHP-CLI14. Neste projeto, foi usado a linguagem PHP em SAPI CLI porque sua documentação é

ampla e acessível. Além disso, sua SAPI CLI pode ser executada pelo serviço do RADIUS.

Como o uso das diversas linguagens de programação foi criado várias aplicações para

diversas áreas de atividade. Com o crescimento do uso das aplicações de sistemas de informações e

grande importância que passaram a ter, foram elaborados grandes sistemas integrados.

2.6 Gestão integrada de organizações

Na atual era do conhecimento as organizações conseguem ser competitivas fazendo bom uso

das informações, dominando bem suas operações, entendendo seus processos e se aproximando de

seus clientes, segundo Chamon (2008).

As organizações fazem uso de diversos mecanismos de medição direcionados aos controles

operacionais para tomada de decisões estratégicas.

Os sistemas informatizados de gestão são hoje essenciais para armazenagem, processamento

e recuperação das informações para esses mecanismos de medição.

2.6.1 Sistemas Integrados de Gestão Empresarial

Os Sistemas Integrados de Gestão Empresarial (SIGE ou SIG) são amplamente conhecidos

por sua sigla em inglês ERPs. Sistemas ERPs são sistemas que são projetados com o objetivo de

integrar dados e processos dentro de uma organização. No entanto existem processos dentro da

diversidade de organizações que os sistemas de gestão ERPs não são capazes de atender, visto que

tais processos não fazem parte do escopo do projeto dos sistemas ERPs.

Um exemplo disso é a autenticação de usuários de uma rede sem fio. Visto que a permissão

de acesso a rede sem fio e uso depende da situação cadastral dos usuários nos sistemas ERPs,

13 SAPI é o acrônimo para o inglês Server Application Programming Interface14 A página oficial na internet do PHP-CLI é http://www.php-cli.com

22

Page 25: INSTALAÇÃO DO RADIUS: Integração com sistema de gestão

haveria um grande retrabalho e um enorme risco de erros se a inclusão e manutenção dos dados

forem feita manualmente. Diante desse cenário, é necessário um terceiro sistema que faça a junção

das informações destes sistemas ERPs com o objetivo de atender uma necessidade específica da

organização fora do escopo do projeto do sistema ERP em uso.

Existe a possibilidade que uma melhoria futura em alguns desses sistemas ERPs venha a

atender essa necessidade. Contudo as empresas desenvolvedoras dos sistemas em questão não

manifestaram nenhuma possibilidade desse tipo de suporte para as próximas atualizações. Portanto,

foi necessário desenvolver aplicações que façam essa integração entre esses sistemas conforme a

necessidade da organização.

O sistema em uso atualmente no UNIS MG é o sistema Universus da empresa CadSoft15.

2.6.2 Sistema Universus

O sistema Universus é um aplicativo especializado em gestão acadêmica, desenvolvido com

foco em atender os requisitos do MEC16. O sistema Universus foi desenvolvido pela empresa

CadSoft15.

2.6.3 Empresa CadSoft15

CadSoft15 é uma empresa da área de tecnologia da informação que tem como ideologia

participar do aprimoramento educacional visando o progresso humano, em conjunto com

instituições éticas e atentas ao bem-estar social, contribuindo para formação de uma comunidade

próspera e humana que compartilha, ensina, aprende e se doa.

A empresa CadSoft15 não fornece dicionário de dados do seu sistema de gestão acadêmica,

mas coloca-se à disposição para quaisquer informações sobre o banco de dados aos seus clientes.

Dessa forma foi possível saber quais tabelas e funções são necessárias para integrar com o sistema

de autenticação.

2.6.4 Banco de dados do sistema de gestão acadêmica

Muitas tabelas foram usadas para consulta de informações, e cada uma delas possui vários

15 Página oficial na internet: http://www.cadsoft.com.br16 Ministério da Educação: http://www.mec.gov.br/

23

Page 26: INSTALAÇÃO DO RADIUS: Integração com sistema de gestão

campos. O objetivo desse projeto é documentar apenas as tabelas e os campos que contém as

informações necessárias para autenticação na rede sem fio.

A Tabela PESSOA contém dados pessoais de todos os alunos e outras pessoas diretamente

vinculadas aos alunos, como familiares e responsáveis financeiros. Os campos da tabela PESSOA

que são usados no sistema de autenticação estão relacionados na Tabela 5.

CODPESSOA - Chave primaria da tabela pessoa.

CICCPF - Número do CPF.

NOME - Nome da pessoa.

SENHA – Senha da pessoa.

LOGIN – Nome de login da pessoa.

Tabela 5: Campos da tabela PESSOA

A tabela DADOSFUNC contém os dados dos professores. Os campos usados das tabelas

DADOSFUNC estão relacionados na Tabela 6.

DADOSFUNC.ATIVO - status do professores, código 1 é ativo.

DADOSFUNC.CODFUNCIONARIO - código do funcionário.

DADOSFUNC.CODPESSOA – código da pessoa.

Tabela 6: Campos da tabela DADOSFUNC

A tabela PROFDISC contém a relação de disciplinas dos professores. Os campos usados das

tabelas PROFDISC são:

PROFDISC.CODFUNCIONARIO - código do funcionário.

PROFDISC.PERIODO - período no qual o professores está

vinculado a disciplina.

PROFDISC.ANO - ano no qual o professores está vinculado a

disciplina.

Tabela 7: Campos da tabela PROFDISC

24

Page 27: INSTALAÇÃO DO RADIUS: Integração com sistema de gestão

2.6.5 Funções do banco de dados definidas pela Cadsoft

A empresa CadSoft desenvolveu um algorítimo próprio para criptografia das senhas

armazenadas no campo SENHA da tabela PESSOA. A função responsável por esse algorítimo é a

dbo.GETPASSWORDHASH('senha'), com um único parâmetro. Essa função recebe uma cadeia de

caracteres com a senha e retorna uma cadeia de caracteres criptografados de modo irreversível.

2.6.6 Filtros para liberação do acesso a rede sem fio no sistema acadêmico

Foi definido que apenas os alunos matriculados no período corrente devem ter acesso a rede

sem fio. No entanto, o conceito de aluno matriculado depende da área de negócio.

Dentro dos cursos de graduação (CURSO.CURSOEQUIVALENTE=5) um aluno é

considerado matriculado quando seu status (ENTURMA.CODSTATUS) está 'cursando' (código 2)

em pelo menos uma disciplina no ano e período corrente.

Nos cursos de pós-graduação considera-se que um aluno está matriculado quando seu status

curricular (ALUCURRICULO.CodStatus) está cursando (código 402) ou em transferência interna

(código 403).

Nos cursos do ensino fundamental e médio, a regra é a mesma dos cursos de pós-graduação,

levando-se em conta apenas que o código da escola é diferente dos demais alunos

(ALUNO.CODESCOLA=2).

Quanto aos professores a regra para que eles tenham acesso a rede sem fio é que estejam

com status 'ativo' (DADOSFUNC.ATIVO) em pelo menos uma disciplina no período corrente.

2.6.7 Sistema Gestão de Pessoas Senior

Segundo Senior (2011), a ‘Solução de Gestão de Pessoas’ que aplica conceitos inovadores

no gerenciamento estratégico do capital humano. O software é ideal para a descentralização da área

de Recursos Humanos (RH), pois torna as informações disponíveis e acessíveis aos colaboradores

em tempo real, pela internet, intranet, portais e dispositivos móveis. A solução é dividida em cinco

áreas para atender às rotinas legais e às práticas de gestão.

25

Page 28: INSTALAÇÃO DO RADIUS: Integração com sistema de gestão

2.6.8 Empresa SENIOR

Segundo Senior (2011), ela é uma das maiores desenvolvedoras de software para gestão

empresarial do Brasil. As soluções de Gestão Empresarial (ERP), Gestão de Pessoas (RH), Gestão

de Acesso e Segurança, Tecnologia da Informação, Gestão Estratégica e Serviços são direcionadas a

clientes de todos os portes e têm como objetivo garantir total domínio sobre informações e

processos empresariais.

Com matriz em Blumenau (SC), a empresa possui filial em São Paulo e unidades localizadas

nos principais centros do País, atuando também no mercado latino-americano. Atualmente conta

com mais de 9.500 clientes e cerca de 3 mil pessoas envolvidas — entre colaboradores, parceiros

comerciais e canais de distribuição —, além de mais de 100 canais distribuídos pelo Brasil.

Focada na evolução desde a sua fundação, em 1988, a Senior investe no conhecimento de

cada profissional, criando oportunidades de aperfeiçoamento técnico e comercial para os seus

colaboradores.

Os sistemas da empresa Senior possuem dicionário de dados dentro da aplicação, conforme

mostra Figura 5.

Figura 5: Dicionário de dados sistema Vetorh – Senior

Desta forma foi possível identificar as tabelas e campos necessários para obter a situação

cadastral atual dos funcionários.

2.6.9 Banco de dados do sistema Gestão de Pessoas

O banco de dados do sistema Gestão de Pessoas possui uma tabela 'Cadastro de

26

Page 29: INSTALAÇÃO DO RADIUS: Integração com sistema de gestão

Funcionarios' (R034FUN) que contém os dados dos funcionários. Os campos usados na integração

com a autenticação da rede sem fio estão relacionados na Tabela 8.

TipCol – Tipo do funcionário.

Numcpf – Número do documento CPF.

SitAfa – Situação cadastral atual.

Tabela 8: Campos da tabela 'Cadastro de Funcionários' (R034FUN)

2.6.10 Filtros para liberação do acesso a rede sem fio no departamento de pessoal

O Grupo UNIS definiu que apenas funcionários com situação cadastral diferente de

'Afastado' (R034FUN.SitAfa<>7) podem ter acesso a rede sem fio.

Além dos sistemas de gestão ocasionalmente outras pessoas que não estão cadastradas

nesses sistemas podem requerer acesso a rede sem fio. Por isso foi criado uma banco de dados para

o cadastro desses usuários denominado WGU (Wireless Grupo Unis).

2.6.11 WGU - Wireless Grupo Unis

O sistema de cadastro WGU é uma página na internet onde o usuário poderá fazer o cadastro

do seu endereçamento MAC. Desta forma o seu MAC fica vinculado ao seu usuário e senha.

Nesta mesma página é possível cadastrar outros usuários que não tem suas informações

registradas nos sistemas de gestão.

O sistema possui um banco de dados simples. Uma tabela registra os dados e senhas dos

usuários e seus respectivos endereçamentos de rede MAC.

Alguns procedimentos armazenados no servidor de banco de dados do sistema WGU

verificam e atualizam o banco de dados do servidor RADIUS. Estes procedimentos estão descritos

no anexo 6.3 .

27

Page 30: INSTALAÇÃO DO RADIUS: Integração com sistema de gestão

3 METODOLOGIA

Diante dos procedimentos técnicos envolvidos no projeto e do tipo de problema, foi

realizado um pesquisa-ação, concebida e realizada direcionada melhorias no sistema de

autenticação da rede sem fio. A pesquisa-ação envolveu pessoas do departamento de tecnologia da

informação envolvidas de modo cooperativo.

O levantamento das informações foi feita de modo tradicional, por observação individual

realizada por um pesquisador. O problema foi identificado diante da necessidade dos usuários e

administradores terem melhores controles e estatísticas dos acessos à rede sem fio.

A pesquisa foi feita primeiramente com base em um levantamento para determinar quais

recursos dos sistemas de gestão atualmente utilizados na instituição poderiam ser usados em um

sistema de autenticação. Depois foi feita um análise junto ao departamento de Tecnologia da

informação do para identificar quais os recursos técnicos estariam disponíveis para o

desenvolvimento do projeto.

Com estas informações, a próxima etapa foi eleger quais sistemas e softwares seriam

instalados, e quais módulos seriam desenvolvidos. Os sistemas escolhidos foram instalados e

configurados. Foram feitos testes e simulações com diversos dispositivos. Verificou-se então que o

projeto funcionou conforme esperado e poderia ser colocado em uso.

Por meio deste projeto confirmamos que existem recursos de baixo custo, de alta tecnologia,

disponíveis para o desenvolvimento de pesquisas e integração de tecnologias, que podem agregar

mais qualidade aos serviços prestados pelas instituições de ensino.

3.1 Rede sem fio Grupo UNIS

A rede sem fio usa uma infraestrutura de pontos de acesso MikroTik (2011) que fornecessem

acesso a internet.

28

Page 31: INSTALAÇÃO DO RADIUS: Integração com sistema de gestão

Figura 6: Esquema estrutural da rede sem fio

O serviço RADIUS foi instalado no ‘Servidor Virtual - 2 -’, visto na Figura 6. Este servidor

é uma maquina virtual com o sistema operacional FreeBSD.

3.2 Instalação do sistema operacional

A instalação foi feita por meio de uma imagem de CD disponibilizada por FreeBSD (2011).

Foi selecionado o tipo de instalação 'Standard', e depois foi incluída a opção de compilação do

kernel. Após a instalação é importante informar corretamente a senha do usuário root. Além disso, é

recomendável criar um usuário para cada pessoa vai administrar o servidor. Após a criação do

usuário administrador podemos fazer as configurações básicas.

3.3 Configuração básica do servidor

Após a instalação básica, foi executados procedimentos de atualização da coleção de pacotes

de aplicativos preparados para instalação no sistema FreeBSD, chamada de Ports. Esta coleção

conta com mais de 22 mil aplicativos preparados para instalação no FreeBSD.

Para atualizar a árvore de diretórios Ports podemos usar vários meios. Foi usado a aplicação

Portsnap executando o comando 'portsnap fetch extract update' para essa atualização. Depois de

atualizar a árvore de diretórios, foram atualizados todos aplicativos já instalados junto com o

sistema operacional. O aplicativo que atualiza os programas instalados não faz parte a instalação

29

Page 32: INSTALAÇÃO DO RADIUS: Integração com sistema de gestão

inicial, por isso deve ser instalado executando o comando 'cd /usr/ports/ports-mgmt/portupgrade

&& make install clean'. Após instalação, foi executado 'portupgrade -a' para que todos aplicativos

instalados fossem atualizados.

Com o sistema atualizado, o servidor RADIUS pode ser instalado, executando o comando

'cd /usr/ports/net/freeradius 2 & make install clean'. O sistema do 'Ports' analisou os pré-requisitos

para instalação e fez as instalações dos necessárias.

Para ativar o serviço do FreeRADIUS (2011), foi colocada a linha de configuração

'radiusd_enable="YES"' no arquivo '/etc/rc.conf'. A pasta padrão de configuração é

'/usr/local/etc/raddb' . Para iniciar o serviço do FreeRadius manualmente, execute

/usr/local/etc/rc.d/radiusd start'.

3.4 Servidor RADIUS

O servidor RADIUS entregará endereços de internet correspondentes endereçamentos de

redes específicos, através de uma relação com o serviço de configuração dinâmica de

endereçamento de internet embarcados nos pontos de acesso da rede sem fio.

Um recurso de personalização do servidor RADIUS, através de programação externa,

descrito no apêndice 6.1.1 , permite consultar no banco de dados a senha dos usuários do sistema

de gestão.

Não foi possível usar os métodos de criptografia de senhas nos padrões aceitos pelo servidor

RADIUS, como o MD5, porque o sistema de gestão possui método de criptografia proprietário

(dbo.GETPASSWORDHASH), desenvolvido pela CadSoft.

3.5 Configuração do serviço Radius

O servidor Radius aqui está sendo configurado para usar o banco de dados na armazenagem

de suas configurações de autorização, autenticação e registro de acesso. Portanto, deve-se incluir o

módulo SQL em seus arquivos de configurações, conforme mostra o apêndice 6.1.2 . Após isso,

deve-se colocar os parâmetros referentes a conexão como banco e dados no arquivo de configuração

do SQL, conforme vemos no apêndice 6.1.3 .

Para realizar a conexão entre o Radius no FreeBSD e o Microsoft SQLServer 200817 vamos

17 Site ofical do SQL Server 2008 http://www.microsoft.com/sqlserver/2008/pt/br/default.aspx

30

Page 33: INSTALAÇÃO DO RADIUS: Integração com sistema de gestão

utilizar a UnixODBC, as configurações da ODBC estão no apêndice 6.2 .

3.6 Testes de requisição de endereço IP

No primeiro teste foi enviado um endereço MAC válido executando o comando no próprio

servidor Radius '/usr/local/etc/raddb/Nets.php 00:1f:3c:7f:d7:34'.

Foi recebido a resposta 'Accept' no teste, indicando assim que o endereço MAC é válido. Se

resposta recebida fosse 'Reject', isso indicaria que o endereçamento MAC foi enviado no formato

incorreto ou é invalido. O endereço MAC é composto por 6 bytes expressos em notação

hexadecimal. Na autenticação nos sistemas de gestão usamos a função 'preg_match' do PHP para

fazer essa validação, como pode ser visto no apêndice 6.1.1 .

Como o endereço MAC enviado foi válido, o sistema buscou por ele no banco de dados

WGU, e se existisse nenhuma ação seria executada. No entanto, se o MAC não fosse encontrado,

um IP seria gerado dentro da faixa predefinida e gravado no banco de dados.

Desta forma verificou-se que sistema respondeu corretamente a primeira etapa da conexão,

que foi a requisição de endereço IP fixo para cada endereçamento MAC.

O segundo teste foi feito com o 'radtest'. O 'radtest' faz parte do pacote de instalação do

servidor RADIUS. O teste poderia ter sido feito de qualquer computador conectado a rede ou no

terminal do próprio servidor Radius, deste que esteja corretamente configurado.

O teste foi feito executando a linha de comando 'radtest -x 00:1f:3c:7f:d7:34 '' 172.16.0.103

0 zxczxc'. Para ter êxito no teste, o cliente '172.16.0.103 ' e a chave secreta 'zxczxc' forão

configuradas no arquivo 'clients.conf', como pode ser visto no apêndice 6.1.5 . A opção '-x' habilita

o modo de depuração do cliente, exibindo assim mais informações sobre a requisição enviada e a

resposta recebida. Dessa forma foi enviado ao servidor RADIUS as variáveis vista na tabela 9.

User-Name 00:1f:3c:7f:d7:34

User-Password

NAS-IP-Address 172.16.0.103

NAS-Port 0

Tabela 9: Variáveis geradas pelo 'radtest' e enviadas ao servidor RADIUS

No terminal foi exibido as informações vista na Figura 7.

31

Page 34: INSTALAÇÃO DO RADIUS: Integração com sistema de gestão

Sending Access-Request of id 204 to 172.16.0.103 port 1812

User-Name = "00:1f:3c:7f:d7:34"

User-Password = ""

NAS-IP-Address = 127.0.1.1

NAS-Port = 0

Figura 7: Teste de requisição de endereço IP

Nesse caso a resposta do servidor RADIUS foi o numero IP que deverá ser atribuído ao

endereço MAC, enviado como resposta da requisição, na variável 'Framed-IP-Address' e valor

'172.17.1.133'.

No terminal foi exibido a resposta 'Access-Accept' indicando assim o sucesso no

procedimento de requisição de endereço IP para o MAC enviado. Se uma requisição com endereço

MAC incorreto fosse enviada, a resposta 'Access-Reject' indicaria esse erro e nenhum endereço IP

seria enviado como resposta.

3.7 Testes de autenticação no servidor radius

O teste de autenticação é semelhante ao teste de requisição de endereço IP, mas desta vez foi

verificado o usuário e a senha integrado com o sistema de gestão acadêmica. Foi também verificado

se o endereço MAC cadastrado corresponde ao endereço do dispositivo que solicitou o acesso.

No primeiro teste foi enviado um usuário com numero de R.A.18 '0803397', uma senha

'xxxxx' e um endereço MAC válido, já cadastrado no site WGU19, na linha de comando

'/usr/local/etc/raddb/Nets.php 0803397 xxxxx 01:1f:3c:7f:d7:71'.

A resposta 'Accept' no teste indicou que o usuário e a senha foram validados no banco de

dados do sistema acadêmico e que o endereço MAC corresponde ao endereço cadastrado para esse

usuário. Caso o usuário não fosse localizado no sistema acadêmico, o mesmo usuário e senha seria

validado no sistema WGU, que mantém registros de funcionários e outros usuário que não possuem

senha no sistema acadêmico.

Para verificar uma autenticação de um usuário que não estava cadastrado no sistema de

gestão acadêmica, foi usado o mesmo comando e foi utilizado o número do CPF como usuário,

desta forma: '/usr/local/etc/raddb/Nets.php 96364289649 321231 01:1f:3c:7f:d7:71 '

A resposta 'Reject' indicaria que o usuário e senha estariam incorretos ou que o endereço

18 R.A. Refere-se ao número de matrícula no registro acadêmico.19 http://www.wgu.unis.edu.br

32

Page 35: INSTALAÇÃO DO RADIUS: Integração com sistema de gestão

MAC cadastrado não correspondeu ao endereço do dispositivo que fez a requisição. Desta forma

verificamos que sistema respondeu corretamente a primeira etapa da conexão, que é a validação do

usuário e seu endereço MAC.

O segundo teste foi feito com o aplicativo 'radclient'. O 'radclient' também faz parte do

pacote de instalação do servidor Radius. O teste foi feito com esse aplicativo porque foi preciso

simular o envio de um endereço MAC.

O teste foi feito executado a linha de comando 'echo -e "User-Name

= \"0803397\"\nUser-Password = \"xxxxx\"\nNAS-Port = 0\nCalling-Station-Id =

01:1f:3c:7f:d7:71" | radclient -x 172.16.0.103:1812 auth zxczxc'.

A opção '-x' habilitou o modo de depuração do cliente, exibindo assim mais informações

sobre a requisição enviada e a resposta recebida. Dessa forma foi enviado ao servidor RADIUS as

seguintes variáveis vistas na Tabela 10.

User-Name 0803397

User-Password xxxxx

NAS-IP-Address 172.16.0.103

Calling-Station-Id 01:1f:3c:7f:d7:71

Tabela 10: Teste de autenticação

No terminal foi exibido as informações de envio mostradas na Figura 8.

Sending Access-Request of id 29 to 172.16.0.103 port

1812

User-Name = "0803397"

User-Password = "xxxxx"

NAS-Port = 0

Calling-Station-Id = "01:1f:3c:7f:d7:71"

Figura 8: Resposta recebida após o teste

Logo em seguida foi exibido a resposta 'Access-Accept' indicando o sucesso no

procedimento. Se uma requisição com endereço MAC válido fosse enviada, mas o cadastro desse

endereçamento não estive vinculado ao usuário, a resposta seria 'Access-Reject'. Isso indicaria uma

tentativa de usar um dispositivo móvel não cadastro para esse usuário.

33

Page 36: INSTALAÇÃO DO RADIUS: Integração com sistema de gestão

4 CONCLUSÃO

O desenvolvimento deste projeto, bem como a instalação do servidor, proporcionou uma

excelente experiência em segurança de rede sem fio. A fundamentação teórica mostra que o

protocolo Radius é amplamente utilizado para controlar acesso a recursos de rede, e atendeu ao

objetivo de fornecer controle de acesso à internet em uma rede sem fio.

Os resultados obtidos com o uso do FreeRadius e banco de dados demonstram um

mecanismo eficiente de controle para acesso utilizando usuário e senha do sistema de gestão

acadêmica, além de controlar o acesso por endereço MAC de origem, mantém um histórico dos

acessos dos clientes.

A maior dificuldade encontrada não foi a configuração do servidor RADIUS, mas foi a falta

de documentação do banco de dados do sistema de gestão acadêmica. Foram necessários vários

ajustes até conseguir menor erro na identificação dos alunos atualmente matriculados na instituição.

Esse conhecimento foi adquirido ao longo da instalação do sistema acadêmico e de outros sistemas

que necessitavam dessas informações. Embora a empresa desenvolvedora sempre esteve disposta a

colaborar, muitas vezes não dava respostas satisfatórias.

A expectativa da Assessoria de Tecnologia da Informação era conseguir melhor controle e

registro do acesso a rede sem fio. Espera-se melhor monitoramento dos recursos com o uso da

senha do sistema acadêmico em conjunto com o registro do endereço MAC do dispositivo móvel.

Pretende-se assim limitar o uso indevido dos recursos da rede sem fio. Direcionando assim esses

recursos a quem realmente faz uso da rede para fins acadêmicos.

O cenário atual é sem precedentes com relação à segurança da informação. Portanto as

instituições precisam estar cada vez mais atentas a sua segurança de rede. Principalmente nas redes

internas, onde geralmente encontra-se o maior número de falha nesta área. Após pesquisas

realizadas dentro desta área foi verificado que uma das soluções possíveis para amenizar este

problema encontra-se em autenticar o usuário ainda na camada de enlace, designando a ele o que

pode ou não fazer dentro da rede.

Nesse sentido, o padrão de protocolo utilizado foi de grande importância. O protocolo

Radius tem grande vantagem de possuir vários métodos de autenticação. Os experimentos

realizados com o servidor FreeRadius foram fundamentais para demonstrar o resultado do projeto.

É importante destacar, que toda a instalação do servidor de autenticação foi baseada em aplicativos

dentro da filosofia do software livre. Com exceção apenas do SQL Server da empresa Microsoft,

34

Page 37: INSTALAÇÃO DO RADIUS: Integração com sistema de gestão

que foi usado porque já havia sido adquirido em função do sistema de gestão acadêmica já

anteriormente instalado.

A implantação de uma solução de controle de acesso acrescenta vários benefícios

importantes em uma rede de computadores. Por se tratar de um projeto inovador no contexto das

instituições de ensino da região, mesmo que os elementos utilizados sejam bem conhecidos

individualmente, existe pouca pesquisa no que se diz respeito à integração destes elementos. A

integração de todos esses serviços permite melhor controle de usuários sem duplicação de cadastros

ou de senha inseguras.

Por ser o FreeBSD um sistema bastante estável e que não exige tantos recursos a nível de

hardware, os custos financeiros para a implementação do conjunto foram relativamente baixo.

Para trabalhos futuros serão importantes as documentações e melhorias nos procedimentos

armazenados no servidor de banco de dados relacionados ao sistema de autenticação. São

necessários ajustes e novas opções na página do sistema WGU para cadastro e manutenção dos

usuários que não estão nos sistemas de gestão. Desenvolvimento de um sistema automatizado para

controle de conteúdo de páginas seguras criptografadas que estão sendo usadas para transportes de

conteúdos impróprios, limitando e tendo melhor controle no acesso aos mesmos.

35

Page 38: INSTALAÇÃO DO RADIUS: Integração com sistema de gestão

5 REFERENCIAS BIBLIOGRÁFICAS

CHAMON, Edna Maria Querido de Oliveira , Gestão integrada de organizações, 2008, Rio de

Janeiro: Brasport, .

DATE, C. J., Introdução a sistemas de bancos de dados, 2003, Rio de Janeiro: Elsevier, .

FREEBSD, The FreeBSD Project, 2011, Disponível em: <http://www.freebsd.org>. Acesso em:

25/11/2011.

FREERADIUS, The FreeRADIUS Project, , Disponível em: <http://freeradius.org>. Acesso em:

02/12/2011.

KUROSE, James F.; ROSS, Keith W., Redes de computadores e a internet: uma abordagem top-

down, 2010, São Paulo: Editora Addison Wesley, 5ª Edição.

MEDINA, Marco; FERTIG, Cristina, Algoritmos e programação: teoria e prática, 2006, São Paulo:

Novatec, .

MIKROTIK, Routers and Wireless, 2011, Disponível em: <http://www.mikrotik.com>. Acesso em:

17/11/2011.

MUTO, Claudio Adonai, Php e MySQL: guia introdutorio, 2006, Rio de Janeiro: Brasport, 3. ed..

NETCRAFT, Most Reliable Hosting Company Sites in November 2011, 2011, Disponível em:

<http://news.netcraft.com/archives/2011/12/06/most-reliable-hosting-company-sites-in-november-

2011.html>. Acesso em: 07/12/2011.

PLUMMER, David C. , An Ethernet Address Resolution Protocol, 1982. Disponível em:

<http://tools.ietf.org/html/rfc826>. Acesso em: 22/11/2011.

RIGNEY, C.; Willens, S., Remote Authentication Dial In User Service, 2000, Disponível em:

<http://www.ietf.org/rfc/rfc2865.txt>. Acesso em: 23/11/2011.

SENIOR, Soluções em Gestão Empresarial, Gestão de Pessoas e Acesso e Segurança, 2011,

Disponível em: <http://www.senior.com.br>. Acesso em: 26/11/2011.

36

Page 39: INSTALAÇÃO DO RADIUS: Integração com sistema de gestão

SILBERSCHATZ, Abraham, Sistema de banco de dados, 2006, Rj: Editora Campus, .

SOCOLOFSKY, T. e Kale, C., A TCP/IP Tutorial, 1991. Disponível em:

<http://www.ietf.org/rfc/rfc1180.txt>. Acesso em: 16/10/2011.

TITTEL, Ed., Rede de Computadores, 2002, São Paulo: Artmed Editora SA, .

37

Page 40: INSTALAÇÃO DO RADIUS: Integração com sistema de gestão

6 APÊNDICES E ANEXOS

Foram relacionados nestes apêndices os principais arquivos de configurações e os códigos fontes desenvolvidos para a autenticação dos usuários nos sistemas de gestão.

6.1 Arquivos de configuração do FreeRADIUS

Arquivos necessários para conexão com o banco de dados e para autenticação no sistema de gestão.

6.1.1 Nets.php – Programação externa para autenticação no sistema de gestão

#!/usr/local/bin/php <?php

$log=false;

if ($log) { $f = fopen('/var/log/NetStudent.log','a'); } #fwrite($f,print_r($argv,TRUE));

$wuser = (isset($argv[1]) ? $argv[1] : '' ); $wpass = (isset($argv[2]) ? $argv[2] : '' ); $wmac = (isset($argv[3]) ? strtoupper($argv[3]) : '') ; $ok=false; $wcpf = '';

$user="xxx"; $pass="xxx"; $mslink = mssql_connect("PIAU",$user,$pass); mssql_select_db('Universus', $mslink);

if (($wpass!='') and ($wuser!='')) { //--- Verifica RA $sSql="select pessoa.nome NOME, pessoa.ciccpf cpf

from pessoa where

(LOGIN='$wuser' --- login e senha de professores ou alunos AND dbo.GETPASSWORDHASH('$wpass')=SENHA)

or exists ( select codpessoa --- RA e senha de alunos

from aluno where aluno.CODPESSOA = pessoa.CODPESSOA

and aluno.CODALUNOESCOLA='$wuser' AND dbo.GETPASSWORDHASH('$wpass')=SENHA) ";

$rs=mssql_query($sSql, $mslink); if ($rs<>'1') if (mssql_num_rows($rs)>0) {

$ok=true; $row = mssql_fetch_assoc($rs); $wcpf = $row['cpf'];

} else { $ok=false; $wcpf = ''; if ($log) { fwrite($f,strftime('%Y-%m-%d %H:%M:%S')); } if ($log) { fwrite($f,print_r($argv,TRUE)); }

} }

38

Page 41: INSTALAÇÃO DO RADIUS: Integração com sistema de gestão

if ($ok) { //--- se encontrou usuario e senha validos no RA, verifica MAC e CPF mssql_select_db('radius', $mslink); $sSql="SELECT id FROM wireless where cpf='$wcpf' and upper(mac) = replace(upper('$wmac'),':','') "; $rs=mssql_query($sSql, $mslink); if ($rs<>'1') if (mssql_num_rows($rs)>0) { $ok=true; } else {

if ($log) { fwrite($f,strftime('%Y-%m-%d %H:%M:%S')); } if ($log) { fwrite($f,print_r($argv,TRUE)); } $ok=false;

} } elseif ( ($wpass!='') and ($wuser!='') ) { // -- Se nao existe usuario no RA, verifica outros mssql_select_db('radius', $mslink); $sSql="SELECT wireless.id

FROM wireless_usuarios inner join wireless

on wireless.cpf = wireless_usuarios.cpf where wireless.codigo='$wuser'

and senha='$wpass' and upper(mac) = replace(upper('$wmac'),':','') ";

$rs=mssql_query($sSql, $mslink); if ($rs<>'1') if (mssql_num_rows($rs)>0) { $ok=true; } else {

if ($log) { fwrite($f,strftime('%Y-%m-%d %H:%M:%S')); } if ($log) { fwrite($f,print_r($argv,TRUE)); } $ok=false;

} }

if ((!$ok) and ($wpass=='') and ($wuser!='')) { //--- Se usuario e senha nao validaram e senha esta em branco, verifica se é uma requisicao do DHCP Server

mssql_select_db('radius', $mslink); $sSql="SELECT id FROM wireless where mac=replace(upper('$wuser'),':','')

"; $rs=mssql_query($sSql, $mslink); if ($rs<>'1') if (mssql_num_rows($rs)>0)

{ $ok=true; } else { if(preg_match('/^[0-9a-fA-F]{2}(?=([:;.-]?))(?:\\1[0-9a-fA-F]{2})

{5}$/', $wuser)) { $sSql="select mac from wireless_tmp where mac =

replace( upper('$wuser'), ':', '') "; $rs=mssql_query($sSql, $mslink); if (($rs=='1') or (mssql_num_rows($rs)==0) ) {

$sSql="select dbo.GetIP() as ip "; $rs=mssql_query($sSql, $mslink); $row = mssql_fetch_assoc($rs); $ip = $row['ip']; $ip1 = intval($ip/256); $ip2 = $ip - ($ip1*256);

$sSql="update ip set ip=$ip"; $rs=mssql_query($sSql, $mslink);

39

Page 42: INSTALAÇÃO DO RADIUS: Integração com sistema de gestão

$sSql="insert into wireless_tmp ( mac , ip , data_cadastro )

values ( replace(upper('$wuser'),':','') , '172.17.".$ip1.".".$ip2."' , getdate() ) ";

$rs=mssql_query($sSql, $mslink);

$sSql="insert into radcheck (UserName,Attribute,op,Value)

values ( upper('$wuser') , 'Auth-Type', ':=', 'Accept') ";

$rs=mssql_query($sSql, $mslink);

$sSql="insert into radreply (UserName,Attribute,op,Value)

values ( upper('$wuser'), 'Framed-IP-Address', '=', '172.17.".$ip1.".".$ip2."') ";

$rs=mssql_query($sSql, $mslink);

} $ok=true;

} else { $ok=false;

} }

}

if ($ok) { echo "Accept"; }

else { echo "Reject"; }

if ($log) { fclose($f); } ?>

6.1.2 radius.conf – Configuração do modulo sql no radius

modules {...

$INCLUDE sql.conf}

6.1.3 sql.conf – Configuração UnixODBC no radius

sql {...

database = "unixodbc"driver = "rlm_sql_${database}"server = "XXXX"login = "XXXX"password = "XXXX"radius_db = "radius"

...}

40

Page 43: INSTALAÇÃO DO RADIUS: Integração com sistema de gestão

6.1.4 sites-enabled/default – Configuração da autenticação externa

authorize {…sql…update control { Auth-Type := `/usr/local/etc/raddb/Nets.php %{User-Name} %{User-Password} %{Calling-Station-Id} ` }}

6.1.5 clients.conf – Configuração de permissões de acesso para clientes do RADIUS

client 127.0.0.1 { secret = xxxxxx shortname = local}client X.X.X.X { secret = xxxxxx shortname = self}

6.2 UnixODBC e FreeTDS – Configuração UnixODBC no FreeBSD

Arquivos necessários para configuração da conexão entre o FreeBSD e o SQL Server.

6.2.1 odbcinst.ini

[FreeTDS] description = FreeTDS driver for MSSQL driver = /usr/lib/libtdsodbc.so setup = /usr/lib/libtdsS.so fileusage = 1

6.2.2 odbc.ini

[PIAU] description = FreeRADIUS ODBC for MSSQL driver = FreeTDS server = NOME port = 1433 database = radius tds_version = 8.0 language = us_english

6.2.3 freetds.conf

# Sql 2008 [NOME] host = x.x.x.x port = 1433 tds version = 8.0 charset = LATIN1 timeout = 30 connect timeout = 30

41

Page 44: INSTALAÇÃO DO RADIUS: Integração com sistema de gestão

6.3 Procedimentos armazenados do banco de dados do sistema WGU

6.3.1 status_DP – Verifica sistema de gestão de pessoas Senior

CREATE PROCEDURE [dbo].[status_DP]@cpf varchar(15)

ASBEGIN

SET NOCOUNT ON;if exists (SELECT R034FUN.SitAfa

FROM senior.rhsenior.R034FUN R034FUNWHERE (R034FUN.TipCol = 1)

and R034FUN.numcpf = @cpfand R034FUN.SitAfa <> 7)

return 1else

return 0return

END

6.3.2 status_OU – Verifica usuários do sistema WGU

CREATE PROCEDURE [dbo].[status_OU]@cpf varchar(15)

ASBEGIN

SET NOCOUNT ON;declare @status intSELECT @status = wireless_usuarios.status

FROM radius..wireless_usuarios wireless_usuariosWHERE wireless_usuarios.cpf = @cpf

return isnull(@status,0)END

6.3.3 status_PF – Verifica professores

CREATE PROCEDURE [dbo].[status_PF]@cpf varchar(15)

ASBEGIN

SET NOCOUNT ON;declare @ano intdeclare @periodo intdeclare @status int

select @ano=ano, @periodo=periodo from wireless_ano_periodoset @status=0select @status=1 where exists ( select DADOSFUNC.CODPESSOA from

Universus..PROFDISC PROFDISCinner join Universus..DADOSFUNC DADOSFUNC

on DADOSFUNC.CODFUNCIONARIO = PROFDISC.CODFUNCIONARIOinner join Universus..PESSOA PESSOA

on PESSOA.CODPESSOA = DADOSFUNC.CODPESSOA

42

Page 45: INSTALAÇÃO DO RADIUS: Integração com sistema de gestão

where ano=@anoand (PERIODO=@periodo or PERIODO=0)and DADOSFUNC.ATIVO=1and PESSOA.CICCPF=@cpf )

return @statusEND

6.3.4 status_RA – Verifica alunos

CREATE PROCEDURE [dbo].[status_RA]@cpf varchar(15)

ASBEGIN

SET NOCOUNT ON;declare @ano intdeclare @periodo intdeclare @status int

select @ano=ano, @periodo=periodo from wireless_ano_periodoselect

@status = case/* PIO XII: se curriculo cursando, liberado acesso */when ALUNO.CODESCOLA = 2 then

casewhen (select min(CodStatus) from universus..ALUCURRICULO ALUCURRICULO WITH (NOLOCK) where ALUCURRICULO.CODESCOLA=ALUNO.CODESCOLA

AND ALUCURRICULO.CODALUNO=ALUNO.CODALUNO and CodStatus<>401) = 402

or (select max(CodStatus) from universus..ALUCURRICULO ALUCURRICULO WITH (NOLOCK)

where ALUCURRICULO.CODESCOLA=ALUNO.CODESCOLA AND ALUCURRICULO.CODALUNO=ALUNO.CODALUNO) = 403

then 1else 0

end/* Pos-graducao:

status codigo 5 contido em CURSO.CURSOEQUIVALENTE e curriculo cursando, libera acesso

*/when 5 IN (SELECT CURSO.CURSOEQUIVALENTE

FROM universus..ALUCURRICULO ALUCURRICULO WITH (NOLOCK) INNER JOIN universus..CURRICULO CURRICULO WITH (NOLOCK) ON ALUCURRICULO.CODCURRICULO = CURRICULO.CODCURRICULO

AND ALUCURRICULO.CODESCOLA = CURRICULO.CODESCOLA INNER JOIN universus..CURSO CURSO WITH (NOLOCK)

ON CURRICULO.CODCURSO = CURSO.CODCURSO AND CURRICULO.CODESCOLA = CURSO.CODESCOLA

WHERE (ALUNO.CODESCOLA = ALUCURRICULO.CODESCOLA AND ALUNO.CODALUNO = ALUCURRICULO.CODALUNO)) then

casewhen (select min(CodStatus) from universus..ALUCURRICULO ALUCURRICULO WITH (NOLOCK) where ALUCURRICULO.CODESCOLA=ALUNO.CODESCOLA

AND ALUCURRICULO.CODALUNO=ALUNO.CODALUNO and CodStatus<>401) = 402

43

Page 46: INSTALAÇÃO DO RADIUS: Integração com sistema de gestão

or (select max(CodStatus) from universus..ALUCURRICULO ALUCURRICULO WITH (NOLOCK)

where ALUCURRICULO.CODESCOLA=ALUNO.CODESCOLA AND ALUCURRICULO.CODALUNO=ALUNO.CODALUNO) = 403

then 1else 0

end/* demais alunos: verifica pelas disciplinas,

se cursando em alguma, libera acesso */when (SELECT MIN(ENTURMA.CODSTATUS) AS menorstatus

FROM universus..ENTURMA WITH (NOLOCK)WHERE ALUNO.CODESCOLA = ENTURMA.CODESCOLA

AND ALUNO.CODALUNO = ENTURMA.CODALUNO and ENTURMA.ANO = @ano AND ENTURMA.PERIODO = @periodoand ENTURMA.CODSTATUS <> 1 ) = 2

then 1else 0

endFROM universus..ALUNO ALUNO

inner join universus..pessoa pessoaon pessoa.codpessoa = aluno.CODPESSOA

where pessoa.CICCPF = @cpfreturn isnull(@status,1)

END

6.3.5 GetIP – Calcula próximo endereço de rede

ALTER FUNCTION [dbo].[GetIP] () RETURNS int AS BEGIN

declare @ip int declare @ip1 decimal declare @ip2 decimal select @ip=ip from ip set @ip2=0 while @ip2 in (0,1,2,3,4,5,6,7,8,9,254,255) begin

set @ip=@ip+1 set @ip1=floor(@ip/256) set @ip2=@ip - (@ip1*256)

end return @ip

END

6.3.6 WGU – Atualiza e verifica dados dos usuários da rede sim fio

CREATE PROCEDURE [dbo].[WGU] ASBEGIN

SET NOCOUNT ON;

declare @ano intdeclare @periodo intselect @ano=ano, @periodo=periodo from wireless_ano_periodo

declare @wl_status varchar

44

Page 47: INSTALAÇÃO DO RADIUS: Integração com sistema de gestão

declare @id intdeclare @mac varchar(20)declare @origem varchar(2)declare @codigo varchar(15)declare @cpf varchar(15)declare @nip varchar(15)declare @ip decimaldeclare @ip1 decimaldeclare @ip2 decimaldeclare @status varchar

if (select ip from ip) >= ((256*256)-(256*2)) begindelete FROM [radius].[dbo].[radcheck]delete FROM [radius].[dbo].[radreply]delete FROM [radius].[dbo].[radgroupcheck]delete FROM [radius].[dbo].[radgroupreply]delete FROM [radius].[dbo].[radusergroup] update wireless set ip=nullupdate ip set ip=1

end

DECLARE wireless Cursor For select id,mac,origem,codigo,cpf,status,ip

from wireless where origem in ('AC','OU')order by origem, cpf

OPEN wireless fetch next from wireless into @id,@mac,@origem,@codigo,@cpf,@status,@nip while

@@fetch_status = 0 begin

if @origem = 'AC' begin -- se ALUNO/PROFexec @wl_status = status_RA @cpf -- busca status ALUNOif @wl_status = '1' begin -- se ALUNO ativo

if @status = 'B' update wireless set status='L' where id = @id -- libera WL

end else begin -- se NAO ALUNO ativoexec @wl_status = status_PF @cpf -- busca status PROFif @wl_status = '1' begin -- se PROF ativo

if @status = 'B' update wireless set status='L' where id = @id -- libera WL

end else begin -- se NAO PROF ativoexec @wl_status = status_DP @cpf -- busca status

FUNCif @wl_status = '1' begin -- se FUNC ativo

if @status = 'B' update wireless set status='L' where id = @id -- libera WL

end else beginexec @wl_status = status_OU @cpf -- busca

status OUTROSif @wl_status = '1'begin -- se OUTROS ativo

if @status = 'B' update wireless set status='L' where id = @id -- libera WL

end else beginif @status = 'L' update wireless set

status='B' where id = @id -- bloqueia WLend

endend

end

45

Page 48: INSTALAÇÃO DO RADIUS: Integração com sistema de gestão

end else if @origem = 'OU' beginexec @wl_status = status_DP @cpf -- busca status FUNCif @wl_status = '1' begin -- se FUNC ativo

if @status = 'B' update wireless set status='L' where id = @id -- libera WL

update wireless_usuarios set status=1 where cpf=@cpfend else begin

exec @wl_status = status_OU @cpf -- busca status OUTROSif @wl_status = '1' begin -- se OUTROS ativo

if @status = 'B' update wireless set status='L' where id = @id -- libera WL

end else beginif @status = 'L' update wireless set status='B'

where id = @id -- bloqueia WLend

end end

if @nip is null or @nip='' beginset @nip=''select @nip=Value from radreply

where Attribute = 'Framed-IP-Address'and upper(@mac)=replace(UserName,':','')

if @nip='' beginset @ip = dbo.GetIP()set @ip1=floor(@ip/256)set @ip2=@ip - (@ip1*256)update ip set ip=@ipset @nip = '172.17.'+cast(@ip1 as varchar)

+'.'+cast(@ip2 as varchar)end update wireless set ip = @nip where id = @id

end

fetch next from wireless into @id,@mac,@origem,@codigo,@cpf,@status,@nip end close wireless

deallocate wireless

-- insere no radius MAC para DHCPinsert into radcheck (UserName,Attribute,op,Value)

select substring(upper(mac),1,2)+':'+substring(upper(mac),3,2)+':'+substring(upper(mac),5,2)+':'+substring(upper(mac),7,2)+':'+substring(upper(mac),9,2)+':'+substring(upper(mac),11,2), 'Auth-Type', ':=', 'Accept'

from wireless where status='L'and not exists (select UserName from radcheck where

upper(wireless.mac)=replace(UserName,':','') )

-- insere no radius IP/MACinsert into radreply (UserName,Attribute,op,Value)

SELECT substring(upper(mac),1,2)+':'+substring(upper(mac),3,2)+':'+substring(upper(mac),5,2)+':'+substring(upper(mac),7,2)+':'+substring(upper(mac),9,2)+':'+substring(upper(mac),11,2), 'Framed-IP-Address', '=', ip

FROM wireless where status='L'and not exists (select UserName from radreply where

upper(wireless.mac)=replace(UserName,':','') )

-- exclui MACs temporarios (cadastros via wireless)

46

Page 49: INSTALAÇÃO DO RADIUS: Integração com sistema de gestão

delete from wireless_tmpwhere datediff(minute,data_cadastro,GETDATE())>=5

-- exclui no radius MAC para DHCP bloqueadosdelete from radcheck

where Attribute = 'Auth-Type'and exists (select mac from wireless where status='B' and

upper(mac) = replace(radcheck.UserName,':',''))and not exists (select mac from wireless_tmp where upper(mac)

= replace(radcheck.UserName,':',''))-- exclui no radius IP/MAC bloqueadosdelete from radreply

where Attribute = 'Framed-IP-Address'and exists (select mac from wireless where status='B' and

upper(mac) = replace(radreply.UserName,':',''))and not exists (select mac from wireless_tmp where upper(mac)

= replace(radreply.UserName,':',''))

-- exclui no radius MAC para DHCP excluidosdelete from radcheck

where Attribute = 'Auth-Type'and not exists (select mac from wireless where upper(mac) =

replace(radcheck.UserName,':',''))and not exists (select mac from wireless_tmp where upper(mac)

= replace(radcheck.UserName,':',''))-- exclui no radius IP/MAC excluidosdelete from radreply

where Attribute = 'Framed-IP-Address'and not exists (select mac from wireless where upper(mac) =

replace(radreply.UserName,':',''))and not exists (select mac from wireless_tmp where upper(mac)

= replace(radreply.UserName,':',''))

END

47