Baixar este arquivo PDF - Revista TIS

Propaganda
ISSN 2316-2872
T.I.S. São Carlos, v. 4, n. 2, p. 155-164, mai-ago 2015
©Tecnologias, Infraestrutura e Software
Serviço de autenticação, identificação e registro
de usuários para redes sem fio públicas usando
infraestrutura em nuvem
Lucas Tebaldi, Hélio Crestana Guardia
Resumo: A recente lei de n° 12.965, considerada o marco civil da Internet, estabelece princípios, garantias, direitos e deveres para o uso da
Internet no Brasil. Tendo em vista a necessidade de identificação de usuários nas redes Wi-Fi públicas, determinada pela lei, esse trabalho
apresenta uma solução eficiente para essa demanda.Utilizando software de código aberto, a proposta desenvolvida utiliza um mecanismo de
captive portal em que o próprio usuário se cadastra para utilizar aInternet. Recursos de gerenciamento de informações para autenticação
usando um servidor RADIUS e um sistema de log para contabilização dos dados permitem o cumprimento da necessidade de manutenção de
registros de usuários.
Palavras-Chave: rede sem fio pública, autenticação de usuário, infraestrutura em nuvem
Authentication, identification and user register service for public wireless using cloud structure
Abstract: The recent law no. 12, 965, considered the the civil landmark ofthe Internet, establishes principles, guarantees, rights and duties for
the use ofthe Internet in Brazil. Given the need for identification ofusers on public Wi-Fi networks, determined by law, this work presents an
efficient solution to this demand. Using open-source software, the the developed system uses uses a captive portal mechanism in which the
user himself register to use the internet. Information management resources for authentication using a RADIUS server and a log system for
accounting data allow meeting the need for maintenance ofuser’s access records.
Keywords: public wireless network, user authentication, cloud infrastructure.
I. INTRODUÇÃO
Com a crescente expansão do número de dispositivos
móveis utilizados no Brasil, surgem cada vez mais pontos de
acesso à Internet via rede sem fio ou om a tecnologia Wi-Fi,
disponíveis em grande parte dos centros urbanos. Segundo a
ANATEL (2015) o número de celulares já ultrapassou a
população nacional. Hoje é possível acessar a Internet a partir
de redes Wi-Fi gratuitamente em estabelecimentos
comerciais, como cafés, lanchonetes, shoppings, e até mesmo
em praças ‘digitais’, onde as prefeituras dos municípios
disponibilizam acesso gratuito. Segundo aferiu o IBGE
(2012), em pesquisa realizada em todos os municípios do
Brasil, em 795 deles a prefeitura já provia acesso à Internet
via conexão Wi-Fi gratuita. Com a tecnologia Wi-Fi, que
utiliza transmissão sem fio, é possível prover acesso à rede a
vários dispositivos ao mesmo tempo, sem a necessidade de
investimento em infraestrutura cabeada, sendo possível até
mesmo prover acesso em áreas remotas e afastadas das
cidades, aumentando assim a inclusão digital.
Com a expansão do acesso à Internet, foi criada no Brasil a
lei considerada o marco civil da Internet, a lei de n° 12.965 de
23 de abril de 2014, que estabelece os princípios, garantias,
direitos e deveres para o uso da Internet no país. Por outro
lado, essa lei indica também que é preciso armazenar
registros de acessos de seus utilizadores por meio do registro
do IP (Endereço de Internet) pelos provedores de acesso (ISP)
e pelos administradores de rede. Como atestado no capítulo
VI “- registro de conexão: o conjunto de informações
referentes à data e hora de início e término de uma conexão à
Internet, sua duração e o endereço IP utilizado pelo terminal
para o envio e recebimento de pacotes de dados;” (BRASIL,
2014).
Para atender os requisitos da lei, os provedores de acesso à
Internet gravam informações dos endereços IPs utilizados
pelos dispositivos dos seus clientes. Esse endereço IP
atribuído ao usuário é um IP chamado de endereço público,
atribuído a apenas um dispositivo de usuário de cada vez.
Usando a versão 4 do protocolo IP, há ainda os chamados
endereços privados. O endereço IPv4 é um endereço de
identificação composto por 32bits escrito com quatro octetos.
Entre os valores possíveis, os números privados são algumas
faixas de números utilizadas para o uso de redes locais, para
os quais não há rotas disponíveis na internet, 10.0.0.0/8,
172.16.0.0/12 e 192.168.0.0/16. Excluindo mais algumas
faixas que são reservadas, o restante dos números é
distribuído pela IANA (Internet Assigned Numbers Authority)
Departamento de Computação - Universidade Federal de São Carlos (UFSCar)
Caixa Postal 676 – 13.565-905 – São Carlos – SP – Brasil
Autor para correspondência: [email protected], [email protected]
Serviço de autenticação, identificação e registro de usuários para redes sem fio públicas usando infraestrutura em nuvem
para os provedores de Internet atribuírem a seus usuários.
Assim, mesmo que contássemos o valor total de endereços
possíveis, haveria 4 294 967 296 endereços, que não seriam
suficientes para todos os dispositivos conectados. Assim, é
comum que provedores de acesso à Internet entregam apenas
um número IP para cada conexão de usuário (IETF, 1996).
Se o local do ponto de acesso já oferecer um conjunto de
endereços IP públicos disponíveis a todos os usuários, isso já
atenderia a lei do marco civil, pois esse registro já garantiria a
identificação do usuário, e o administrador da rede não
precisaria armazenar mais nenhum tipo de registro. Porém,
como a maioria dos locais públicos são de pequeno porte, tais
como cafés e bares, e têm apenas um endereço de IP
disponibilizado pelos provedores de Internet, o acesso à
Internet para vários usuários ao mesmo tempo é comumente
feito com o método chamado de NAT, disponível em quase
todos os roteadores ou modems de borda.
O NAT (Network Address Translation ) consiste em traduzir
os endereços IP da rede local para o único IP público da rede.
Isso é possível por meio da substituição de endereços e
controle dos números de portas, nas conexões TCP e UDP
iniciadas na rede local. Para resolver esse problema e atender
ao marco civil, administradores de rede devem criar mais um
sistema de registro, o log de acesso, que faz o registro de
acesso de todas as conexões de cada usuário, para todos os
endereços conectados, mas não das URLs e nem do conteúdo
enviado ou compartilhado, evitando invadir a privacidade dos
usuários (IETF, 2001).
Assim, a criação de um ambiente de acesso à Internet que
seja seguro, fácil de usar e eficiente, e possibilite o
compartilhamento de um endereço válido, mas de forma a
permitir a identificação dos usuários sem o salvamento de
informações sobre os conteúdos acessados, é uma demanda
crescente no uso da Internet.
Para atender essa demanda, a proposta desse trabalho é
criar uma solução de compartilhamento de endereço no acesso
à Internet que atenda a lei do marco civil, e que seja eficaz em
seus cadastros e registros. Parte-se do pressuposto que a
simplicidade para o usuário final é algo fundamental, onde o
mesmo deve poder se conectar à rede, cadastrar-se, e realizar
acessos à Internet. A proposta também deve criar algo amplo
em seu funcionamento, de forma que cada solução poderá
atender inúmeros roteadores sem fio da mesma rede ou em
lugares diferentes. Para atender esse objetivo, esse trabalho
trata da configuração e instalação de um servidor e roteador
sem fio, do desenvolvimento de uma plataforma web para o
sistema de captive portal e da criação de um sistema de log
para realizar o registro de acessos, tornando possível a
identificação de usuários em caso de investigação.
Para prover acesso ao cadastro e à autenticação de usuários
seria necessário, além do roteador sem fio como ponto de
acesso, um servidor local com duas placas de rede, uma ligada
à conexão de Internet e outra conectada à rede local. Também
é preciso um servidor DHCP e uma plataforma de capitive
portal.
Pensando em uma estrutura baseada na computação em
nuvem, utilizou-se um roteador da marca Mikrotik
Routerboard 951UI-2HND que faz o trabalho de AP (Access
Point) e Hotspot, e também oferece páginas de cadastro e o
serviço capitive portal. Também foi utilizado, um servidor
com sistema operacional Linux Ubuntu (UBUNTU, 2015),
não local, mas acessível via serviços em ‘nuvem’. No
servidor, instalou-se um software como serviço que será
somente responsável pela captura do cadastro e
posteriormente pela verificação de usuário e senha para
liberação ou não de acesso. Um segundo software no servidor
é responsável pelos logs de acesso.
O sistema proposto foi avaliado em um pequeno ambiente
de produção. As análises possibilitaram concluir que foi
possível bloquear o acesso aos usuários não autorizados, e
também foi possível realizar a identificação dos usuários
associados aos endereços IP, por meio dos dados armazenados
no banco de dados e pelos arquivos gerados pelo sistema de
log. Foi possível também medir o desempenho do sistema,
comprovando que o serviço de log não atrapalhou o
desempenho da rede, não afetando a experiência de navegação
na Internet pelos seus utilizadores.
II. REDES WIRELESS
Uma rede local sem fio, denominada WLAN, é tipicamente
usada para permitir acesso de equipamentos à rede local
cabeada (LAN) e às demais redes interligadas, como a
Internet. Quem define os padrões desse tipo de rede é o
instituto IEEE (Instituto de Engenheiros Eletricistas e
Eletrônicos), que mantém o grupo The Working Grupo for
WLAN Standards1 , responsável pelo estabelecimento de
padrões como o ‘802.11’ para rede local sem fio (IEEE, 2015).
Diferentes padrões associados ao 802.11 foram criados,
incluindo as variações a, b, g, n e o mais recente ac. O padrão
IEEE 802.11a trata da transmissão de dados usando as
frequências 2.4GHZ ou 5GHZ com capacidade equivalente a
2Mbps. O padrão IEEE 802.11b funciona apenas na
frequência 2,4GHz com velocidade de 11Mbps. O padrão
IEEE 802.11g também só funciona na frequência 2,4GHz e
com velocidade de 54Mbps. Já o padrão IEEE 802.11n
funciona tanto em 5GHz quanto em 2.4GHz com velocidade
de 150 a 300Mbps. Isso é possível por um método chamado
MIMO (Multiple-Input Multiple-Output), que utiliza múltiplas
antenas para transmitir e receber sinal diferentes, aumentando
a taxa de transferência (KUROSE, ROSS 2006). Já o padrão
802.11ac funciona somente na frequência de 5GHz, com
suporte a multiusuários MIMO (MU-MIMO) e modulação de
alta densidade até o 256-QAM. Deste modo, permite taxas de
transferência de até 1,3Gbps (IEEE, 2012).
Utilizando os padrões WLAN, as conexões Wi-Fi públicas,
na sua maioria, são abertas ou com segurança de uma chave
de acesso (senha). Um dos primeiros métodos utilizados para
proteger o fluxo de dados transferido entre equipamentos
utilizando chave foi o WEP (Wired Equivalent Privacy), em
desuso devido a suas vulnerabilidades. O protocolo WPA (WiFi Protected Access) foi criado para corrigir os problemas de
segurança do WEP. A autenticação no WPA, diferente do
_________________________________
1 http://www.ieee802.org
156
T.I.S. 2015; 4 (2): 155-164
Lucas Tebaldi, Hélio Crestana Guardia
WEP, utiliza troca de chaves dinâmicas geradas a cada
conexão distinta. Além de que, sua criptografia visa à
integridade e privacidade das informações trafegadas na rede.
Também existem variações do WPA, como WPA2 (RUFINO,
2005). Embora esses métodos de autenticação permitam que
usuários convidados tenham acesso a uma rede de forma
restrita, eles não se enquadram nos requisitos determinados
na lei, e nem mesmo permitem identificar os usuários na rede.
A) Autenticação em redes Wireless
Os métodos que se baseiam em chave única de acesso à
rede, não satisfazem os requisitos da lei do marco civil pois
não permitem a identificação única dos usuários. Uma
solução para essa problema é a utilização de uma estrutura de
autenticação de usuários usando o conceito e o padrão de
arquitetura AAA, autenticação, autorização e contabilização,
definida na RFC 2904 (IETF, 2000). Nesse processo de
autenticação, verifica-se a identidade do usuário cadastrado
em um servidor, permitindo ou não seu acesso à rede. Caso
seja válido, o próximo processo é o de autorização, liberada
conforme o perfil de usuário ou perfil de grupo de usuários
durante a autenticação. O perfil de permissões de usuário
pode ser baseado em restrições ou liberações, como por
exemplo, horários e AP (Access Point) que o usuário está
permitido a acessar, ou mesmo filtros de conteúdos, como
exemplo, sites que ele pode ou não ter acesso (BARROS,
FOLTRAN 2008). Caso essas etapas sejam bem-sucedidas, é
realizada a contabilização que se refere à coleta de
informações sobre o uso dos recursos, armazenando logs de
uso.
Pensando nessa arquitetura de autenticação, é comum usarse protocolo RADIUS, Remote Access Dial In User Service,
baseado na arquitetura AAA, descrita na RFC 2058 de 1997 e
atualizada posteriormente na RFC 2865 do ano 2000. O
protocolo RADIUS foi desenhado para desempenhar as
tarefas da arquitetura AAA, integrando um AP (ponto de
acesso) ou um NAS (Network Access Server) e um servidor
RADIUS. RAIDUS funciona como autenticador PPP (PointTo-Point Protocol) ou até mesmo no protocolo IEEE 802.1x
para redes cabeadas ou sem fio. Suas transmissões
tipicamente utilizam porta UDP 1812 para autenticação e
autorização e a porta 1813 para associação (IETF, 2000).
Quando um usuário tenta conectar-se ao ponto de acesso, o
mesmo pode solicitar suas credenciais de diversas formas.
Após obter suas credenciais do usuário, o AP comumente
delega ao servidor RADIUS o processo de autorização. Com
base na resposta do servidor RADIUS o AP fornece ou não o
acesso ao cliente que está tentando conectar-se à WLAN. Para
poder enviar e obter resposta do servidor RADIUS o AP deve
estar liberado e configurado no servidor RADIUS, permitindo
suas solicitações de autorização. Isso impede que qualquer
um tente se autenticar no servidor e praticar métodos de
invasão, como o método de força bruta para descobrir um
usuário e senha válidos cadastrados. Após o AP ter acesso
liberado para se comunicar com o servidor esse processo se
dá com o AP enviando um pedido de autorização com um
pacote Access-Request, que contém os dados do usuário como
T.I.S. 2015; 4 (2): 155-164
login e senha. Geralmente a senha é protegida com a
criptografia MD5 e, se as credenciais estiverem corretas o
servidor responde com uma mensagem Access-Challenge, ou
Access-Reject, caso contrário (ANTUNES, 2009).
Uma das formas do ponto de acesso solicitar as credenciais
dos usuários é através do protocolo 802.1x, que também
atende a arquitetura AAA e realiza a autenticação a partir de
um servidor com o protocolo RADIUS. 801.1x é um protocolo
em que a segurança é levada com muita consideração, sendo
possível utilizar vários métodos de criptografia com
mecanismos de autenticação através do protocolo PPP, com
criptografia EAP, TLS, por exemplo, e utilizando chave
pública, entre outras opções. Com o padrão 802.1x, o processo
de autenticação, além de liberar o acesso ao usuário já permite
identificá-lo (BARROS, FOLTRAN 2008).
Outro método de autenticação que atente a arquitetura AAA
é a utilização de um elemento intermediário de rede conhecido
como captive portal. Do ponto de vista do usuário, a ideia é
bastante simples, o usuário se conecta a uma rede sem fio de
acesso aberto, sem senha, e automaticamente ou ao tentar
acessar algum site, seu acesso é redirecionado para uma
página de login , em que são solicitadas suas credencias,
fornecendo informações sobre o ponto de acesso ao qual esse
usuário está conectado. Sem autenticar-se via portal, o usuário
consegue se conectar-se à rede, porém não tem acesso à
Internet e nem à comunicação com outros computadores ou
dispositivos da mesma rede. Há duas maneiras típicas para
esse processo de captura de acesso ser realizado. Uma forma é
o ponto de acesso (AP) já ter um captive portal embutido,
sendo que o cadastro de usuário fica no próprio equipamento.
Neste caso, a autenticação com o AP já dá acesso à rede. A
outra é a baseada em software em um elemento intermediário
na rede, responsável por filtrar os acessos realizados. Para
tanto, é necessário além do ponto de acesso, que não restringe
o uso pelos usuários, também um computador que servirá
como servidor para a autenticação. Esse método é interessante
para atender vários pontos de acesso de uma mesma rede de
usuários (FLICKENGER, 2002).
III. PROPOSTA DE UM SISTEMA DE ACESSO CONTROLADO À
INTERNET
Tendo em vista as exigências legais para identificação de
usuários e endereços usados no acesso à Internet no Brasil,
este trabalho apresenta uma proposta de solução para o
provimento de acesso usando redes sem fio. Para tanto, essa
proposta leva em conta uma estrutura baseada na computação
em nuvem, e criou uma solução utilizando um roteador
wireless com suporte nativo ao serviço de captive portal.
Um equipamento que atende essas exigências e possui
baixo custo no mercado é o roteador da marca Mikrotik
Routerboard modelo 951UI-2HND. Nessa proposta, então, ele
fará o trabalho de ponto de acesso e captive portal, sendo que
páginas de login e cadastro serão de sua responsabilidade.
Pensando no lado do servidor, utilizou-se um sistema
operacional de código livre e gratuito, o Linux Ubuntu Server
na versão 14.04.2 LTS, hospedado em nuvem e configurado
com um serviço RADIUS. Esse servidor será responsável pelo
157
Serviço de autenticação, identificação e registro de usuários para redes sem fio públicas usando infraestrutura em nuvem
armazenamento em banco de dados dos cadastros de usuários
e pela verificação e liberação ou não de acesso desses
usuários aos pontos de acesso configurados. O servidor
também será responsável por armazenar os registros de
acesso necessários para o cumprimento da lei.
A figura 1 apresenta a arquitetura do sistema proposto.
Nela, vê-se pontos de acesso para os usuários aos quais se
deseja prover acesso de forma controlada, interligados ao
roteador da infraestrutura de acesso local à Internet, e o
servidor responsável tanto pela identificação dos usuários
quanto pelo registro dos logs de acesso.
Figura 1. Arquitetura da solução
Instalação e configuração do servidor
Para atuar como servidor RADIUS, um sistema gratuito e
de código aberto que atende as necessidades é o
FreeRADIUS. Esse projeto foi desenvolvido pra sistemas
operacionais Linux, baseado em Unix. O servidor
FreeRADIUS permite o armazenamento das contas de
usuários e grupos na forma de arquivos de texto simples no
próprio servidor, ou integrado com um banco de dados
MySQL, que é a proposta escolhida para esta solução. Para
criar esse ambiente, é preciso adicionar esses recursos no
servidor Linux selecionado (Ubuntu). Para instalar recursos,
programas e pacotes no Ubuntu, é possível usar o gerenciador
de pacotes ‘ apt-get’. Para instalar o FreeRADIUS e seu
módulo de comunicação com o banco de dados MySQL,
basta executar os comandos ‘ apt-get install freeradius’ e’ aptget install freeradius-mysql’ respectivamente. Por fim, para
instalar o banco de dados utiliza-se o comando ‘ apt-get install
mysql-server’ (FREERADIUS, 2015).
ajuste a solução. No arquivo principal, ‘ radiusd. conf’, foi
necessário incluir a linha ‘ $INCLUDE sql. conf’, para que o
servidor FreeRADIUS integrasse seu módulo de banco de
dados.
Também foi necessário adicionar o modelo SQL no arquivo
‘ /etc/freeradius/sites-availible/default, tirando o caractere de
comentário ‘#’ nas opções de ‘ authorize’, ‘ acconting’ e
‘ session ’. Por padrão é preciso criar uma base de dados no
MySQL com o nome ‘radius’ e importar as tabelas conforme o
exemplo do arquivo ‘/etc/freeradius/sql/mysql/schema.sql’.
Deve-se ajustar o arquivo ‘ /etc/freeradius/sql . conf’ com as
credencias corretas para a comunicação com o banco de dados
MySQL, configuradas no ato de sua instalação
(FREERADIUS, 2015).
A figura 2, apresentada a seguir, mostra um esquema das
tabelas do banco de dados configurado para as autenticações e
registros de acesso.
Figura 2. Modelo das tabeladas do banco de dados do
FreeRADIUS (ANTUNES p.28, 2009)
Nesse projeto, duas tabelas são de extrema importância. A
tabela ‘ radcheck’, é onde será armazenado o cadastro dos
usuários. Nessa tabela, a coluna ‘ username’ representará cada
login do usuário, o ‘ attibute’ poderá ser ‘ MD5-Password’, que
salva a senha do usuário de forma criptografada, ou mesmo
pode ser ' Cleartext-Password', que armazena a senha em texto
puro. No campo ‘ value’ sempre será armazenado o atributo
‘:=’ e, por fim, no campo ‘ op’ será armazenada a senha
(FREERADIUS, 2015).
Tabela 1. Script SQL para inserir usuários no banco de
dados MySQL
Configuração do banco de dados
Após a instalação, os arquivos de configuração do
FreeRADIUS ficam armazenados em ‘ /etc/freeradius’. Para
que o armazenamento dos arquivos necessário foi preciso
editar alguns arquivos básicos de configuração para que se
158
T.I.S. 2015; 4 (2): 155-164
Lucas Tebaldi, Hélio Crestana Guardia
Para atender aos requisitos de identificação de usuários
previstos na lei do marco civil da Internet, além das tabelas
padrão, foi necessário criar mais uma tabela de cadastro de
usuário, para que sejam cadastrados os dados dos usuários
com validade jurídica, como nome completo e número de
CPF. Para isso deve-se criar a tabela usuários, de acordo com
estrutura definida na tabela 2.
Tabela 2. Estrutura da tabela ‘usuarios’ do banco de dados
Configuração do FreeRADIUS
Para liberar o acesso dos pontos de acesso ao servidor
FreeRADIUS, foi preciso configurar informações de cada AP
no arquivo de configuração ‘ /etc/freeradius/clients. conf’.
Nele, cria-se a referência ‘ client IP_do_AP’, abre-se chaves e
utiliza a referência ‘ secret = senha’, definindo uma senha de
acesso para cada AP no servidor. Sem essa senha, o AP não
tem respostas em suas requisições.
Figura 3. Senha do roteador cliente do RADIUS
Por questões de segurança, como o servidor de
armazenamento está hospedado em ‘nuvem’, sem acesso
local, é de extrema importância configurar uma rede virtual
entre servidor e roteadores, ou seja, uma VPN (Virtual private
network), descrita na RFC 4026 (IETF, 2005). Para tanto, foi
utilizado o protocolo PPTP, para que a comunicação entre o
AP e o servidor RADIUS seja totalmente criptografada e sem
qualquer possibilidade de escuta na rede local ou internet.
O sistema operacional Ubuntu já tem o protocolo PPTP
como solução integrada padrão, bastando instalá-lo. Para
instalar é preciso somente utilizar o comando ‘ apt-get install
pptpd’. Após sua instalação, deve-se configurar alguns
arquivos para funcionar a VPN, primeiro o arquivo
‘ /etc/pptd. conf’, onde fica definido o endereço IP da rede
virtual. No final do arquivo, basta adicionar uma linha com o
parâmetro ‘ localip’ mais o endereço IP do servidor VPN, e
outra linha com o parâmetro ‘ remoteip’ e endereço IP das
possíveis conexões VPN, separando por hífen o IP de início e
fim (IETF, 1999), tal como mostrado na Figura 4.
Figura 4. Configuração IPs da VPN
Para configurar os números dos servidores DNS para fazer
as traduções de nomes dos computadores externos que se
queira acessar, a configuração deve ser feita no arquivo
T.I.S. 2015; 4 (2): 155-164
‘ /etc/ppp/options’, utilizando o parâmetro ‘ ms-dns’ para cada
IP de servidor DNS. Isso é ilustrado na Figura 5.
Figura 5. Configuração DNS da VPN
Para cada roteador de ponto de acesso, foi preciso criar um
usuário e senha para que esse AP se conecte à VPN do
servidor. A configuração é feita por meio do arquivo de texto
localizado em ‘ /etc/ppp/chap-secrets’. A estrutura do arquivo
de configuração é separada cada parâmetro em uma coluna.
Cada linha representa um novo AP, contendo os parâmetros
‘ client’ com o nome do roteador, ‘ server’, que configura o tipo
de protocolo utilizado, que no caso é o PPTP, o parâmetro
‘ secret’, que é a senha de conexão, e por fim o parâmetro ‘ IP
address’, que é o número de IP virtual que o roteador irá
receber para a rede VPN (IETF, 2005). Exemplos desses
dados e suas organizações no arquivo de configuração são
apresentados na Figura 6.
Figura 6. Senha do cliente VPN
Configuração do roteador de ponto de acesso
Após a configuração do servidor, a segunda etapa é
configurar o ponto de acesso Mikrotik Routerboad. Esse
equipamento possui seu próprio sistema operacional, o
RouterOS. Por ser um roteador bastante simples, esse
equipamento não tem porta console, mas é possível configurálo via navegador web a partir de seu endereço IP, ou utilizar
um software chamado Winbox, disponibilizado pelo próprio
fabricante2. Um exemplo da interface de configuração do
sistema pode ser visto na Figura 7.
Nas configurações de teste foi necessário habilitar o serviço
de Hotspot, que é o captive portal que foi utilizado na solução
(MIKROTIK, 2015).
Figura 7. Menu de configuração do Hotspot
_________________________________
2 http://www.mikrotik.com/download
159
Serviço de autenticação, identificação e registro de usuários para redes sem fio públicas usando infraestrutura em nuvem
O próximo passo para a criação de um sistema de controle
e registro de acesso foi fazer a edição dos arquivos do Hotspot
padrão, para cada necessidade. Além dos aquivos padrões
foram criados arquivos de cadastro de usuários, arquivos para
recuperação de senha e páginas de informações. Todos esses
arquivos foram criados usando linguagem de programação
web, como HTML, CSS, JavaScript e PHP. Para acessar os
arquivos é possível acessá-los via FTP na porta padrão 21
com o endereço IP do roteador. O arquivo de página inicial e
de login padrão é o ‘ login. html’, que pode ser editado
conforme a necessidade. Para página de cadastro e
recuperação de senha, nessa solução foram criados os
arquivos ‘ cadastro. html’ e ‘ recsenha. html’, respectivamente
(MIKROTIK, 2015). A Figura 8 ilustra a interface para autocadastramento de usuário.
Figura 8. Tela de login e cadastro do captive portal
Configuração do serviço de registro de acesso (logs)
O servidor FreeRADIUS armazena em seu banco de
dados, por padrão, além de todos os cadastros dos usuários, o
registro de todas as autenticações de usuários realizadas, que
são mantidas na tabela ‘ radacct’. Essa tabela grava nome de
usuário, hora de início da conexão e hora de término, o
endereço MAC do dispositivo e o IP que foi atribuído a ele.
Exemplo desses registros podem ser vistos na figura 9
(FREERADIUS, 2015).
Figura 9. Tabela ‘radacct’, mostrando registro de conexões
do usuário ‘lucas’
Como a maioria das redes locais domésticas e de pequenas
empresas têm apenas um endereço IP público disponível, é
comum que utilizem o mecanismo NAT para compartilhar o
endereço no acesso à Internet. Assim, para poder identificar o
usuário, é preciso gravar dados de todos os acessos realizados,
incluindo registro do endereço IP local, da porta TCP ou UDP
de origem, do endereço IP de destino e porta de destino, mas
sem capturar os dados contidos nos pacotes, para não invadir
privacidade dos usuários. Como nem o roteador selecionado e
nem o servidor RADIUS fazem essa captura, é necessário
criar mais um sistema de registro de log para fazer os registros
necessários. Posteriormente em uma investigação, é possível
juntar dados de controle salvos dos acessos realizados
armazenados no log com informações sobre o usuário que
estava utilizando o endereço IP específico naquele momento,
verificadas na tabela ‘ radacct’ do servidor RADIUS.
Um sistema de ‘ log’ compatível com o sistema operacional
Linux Ubuntu do servidor e o sistema RouterOS do roteador é
o sistema de código aberto Syslog-ng, que pode ser instalado
no Ubuntu com o comando ‘ apt-get install syslog-ng’. O
arquivo de configuração padrão fica localizado no diretório
‘ /etc/syslog-ng/syslog-ng. conf’. Uma regra básica para esse
log no sistema é que ele crie arquivos diários de log para cada
AP, gravando as informações enviadas pelos roteadores das
conexões dos usuários TCP e UDP. Na figura 10 vê-se um
exemplo utilizado na configuração dos logs (BALABIT IT,
2015).
160
T.I.S. 2015; 4 (2): 155-164
Lucas Tebaldi, Hélio Crestana Guardia
Figura 10. Estrutura do arquivo de configuração syslog-nf. conf
Para que o servidor de log consiga gravar as conexões, é
necessário fazer a configuração do firewall do AP para que o
mesmo permita a passagem de pacotes e redirecione as
informações para o servidor de log. Um exemplo das
configurações inseridas na linha de comando do RouterOS é
mostrado na figura 11 (MIKROTIK, 2015).
Figura 11. Comando para configuração do log no AP
O resultado deste log é o registro de todas as conexões
TCP e fluxos UDP estabelecidos pelos usuários. Não são
gravadas as URLs acessadas e nem dados dos conteúdos dos
pacotes, somente endereços IP de origem e destino e porta de
origem e destino. Deste modo, é possível identificar o usuário
pelo IP de origem, confirmando qual usuário está usando esse
IP nesse horário verificando a tabela ‘ radacct ‘do RADIUS.
Figura 12. Estrutura do arquivo de log gravado pelo syslog-ng
IV. RESULTADOS
Para avaliar o funcionamento do sistema como um todo,
provendo o compartilhamento do acesso à Internet sem
acarretar em perda de desempenho para o usuário final, a
solução proposta foi implementada em um ambiente de testes.
O ambiente possuía dez usuários com notebooks,
computadores ou dispositivos móveis conectados e utilizando
a rede Wi-Fi e realizando acessos à Internet simultaneamente.
Duas análises foram feitas: a primeira foi realizada com
apenas um usuário conectado e utilizando a Internet, e a
segunda foi realizada com dez usuários conectados e
utilizando a Internet.
Figura 13. Comparativo do uso da rede
Como mostra o comparativo da Figura 13, quando os dez imagem que só um usuário utilizava. Com base nessa
usuários estavam utilizando a rede, o tráfego e a taxa de informação, de que a utilização da rede aumentou
transmissão foram constantemente altos se comparadas à consideravelmente, foi realizado um teste sobre o uso da rede
T.I.S. 2015; 4 (2): 155-164
161
Serviço de autenticação, identificação e registro de usuários para redes sem fio públicas usando infraestrutura em nuvem
(Internet) pelo servidor de log.
A Figura 14 mostra que o uso do serviço de log foi um
pouco mais intenso, porém a taxa de transmissão não
ultrapassou os 20,6kbps, enquanto a de um usuário atingiu
pico de 11,8kbps. Essa diferença foi mínima, considerando a
perda de desempenho do roteador. Assim, através das
medições realizadas constatou-se que o sistema de registro de
logs não interferiu no desempenho da rede nem no
desempenho do acesso à Internet.
Figura 14. Comparativo de uso da rede pelo sistema de log
do firewall
Para a identificação dos usuários é preciso analisar tanto o
banco de dados do servidor RADIUS quanto os arquivos
gerados pelo serviço syslog-ng instalado no servidor de log. O
cadastro com os dados do usuário fica armazenado na tabela
‘usuarios’, criada anteriormente. A tabela ‘usuarios’ armazena
os dados pessoais de cada usuário mediante o ato de cadastro
no captive portal. Ficam armazenados ‘nome completo’,
‘número de CPF’, ‘data de nascimento’, ‘telefone celular’ e
‘e-mail’.
A tabela ‘ radacct’ contém informações sobre a
contabilização dos acessos dos usuários. Para tanto,
armazenara dados como nome de usuário, endereço IP
atribuído a este usuário, horário de conexão e horário de
término da conexão. A coluna ‘ username’ contém o nome do
usuário; ‘ acctstarttime’ contém o horário de conexão do
usuário; ‘acctstoptim ’ armazena o horário de termino da
conexão; ‘ calledstationid’ armazena o nome do ponto de
acesso que usado pela conexão do usuário; ‘ callingstationid’
armazena o endereço MAC do dispositivo que o usuário
utilizou; e, por fim, a coluna ‘ framedipaddress’ armazena o
endereço IP atribuído a essa conexão.
O serviço de log syslog-ng armazena um arquivo de registro
diário para cada ponto de acesso. Por padrão e pelas
configurações feitas, esses arquivos ficam armazenados no
domínio ‘ /var/log/wifi’ do servidor Linux. Cada arquivo de log
registra todas as conexões TCP e fluxos UDP de todos os
dispositivos conectados à rede que estão se comunicando com
a Internet através de NAT. Cada linha dos arquivos vai
representar uma conexão TCP ou UDP que vai armazenar a
data, a hora, o MAC de origem, o IP local de origem, a porta
de origem, o endereço IP de destino e a porta de destino.
Para fazer uma identificação do usuário, basta verificar na
tabela ‘ radacct’ na coluna ‘ framedipaddress’ o IP atribuído a
ele no horário desejado de análise. Depois, é preciso somente
fazer uma varredura pelo número IP nos arquivos de log,
validando os horários de conexão compatíveis com os dados
da tabela ‘ radacct’. Um exemplo de identificação de usuário a
partir das tabelas armazenadas é apresentado na Figura 13.
Figura 15. Identificando usuário
V. CONCLUSÕES E TRABALHOS FUTUROS
Com o avanço do uso de dispositivos móveis e o grande
162
T.I.S. 2015; 4 (2): 155-164
Lucas Tebaldi, Hélio Crestana Guardia
número de localidades que permitem o acesso à Internet
como cortesia, há significativos problemas de segurança e
legais associados à identificação de usuários. Com a criação
do Marco Civil da Internet, ficou clara a necessidade de se
criar métodos para atender à lei. Dos métodos e protocolos
existentes hoje, o uso de um servidor RADIUS se mostrou
eficaz na autenticação e no registro dos usuários. Uma
deficiência dessa forma de autenticação, contudo, está
relacionada ao fornecimento de acesso à Internet com
compartilhamento de endereços através do mecanismo NAT.
Para atender a necessidade de autenticação e registros de
acessos nesses casos, esse trabalho apresente uma solução
composta da agregação de funcionalidades providas por
sistemas e soluções já existentes e de código aberto. A
solução proposta é baseada no uso de pontos de acesso
específicos com suporte à funcionalidade de Captive Portal,
do uso de um servidor de autenticação através do protocolo
RADIUS, e de mecanismos de armazenamento e consulta de
logs em um sistema de banco de dados.
O desenvolvimento do captive portal com o roteador da
Mikrotik foi possível utilizando um roteador de rede sem fio
de baixo custo, e com capacidade de aplicações e
configurações comparáveis às de roteadores de grande escala.
Isso permitiu realizar o projeto com baixo investimento
financeiro. Além disso, com apenas um servidor Linux com
suporte ao serviço FreeRADIUS é possível gerenciar vários
pontos de acesso em localidades diferentes e até mesmo em
estabelecimentos diferentes. Essa funcionalidade é possível
uma vez que a edição da página de login é feita no próprio
roteador local. Também é possível com apenas um roteador
da Mikrotik gerenciar uma rede inteira com vários outros
roteadores mais básicos, uma vez que esse roteador atue
como gateway e servidor DHCP da rede.
Com o registro dos cadastros de usuários e o
armazenamento de informações de acesso concedido, ficou
claro que o sistema é capaz de cumprir o que promete, e
identificar o usuário quando necessário. O cadastro do
usuário foi feito de forma simples, mas em um projeto
comercial, poderia ser implantada uma verificação do número
de CPF, para conferir junto a Receita Federal do Brasil se
aquele número realmente se refere ao nome inserido. Também
seria possível implantar um servidor de SMS, que envie uma
mensagem de texto com um código de validação, para validar
o número do celular.
Para trabalhos futuros, uma proposta é a criação de um
sistema de administração, onde seja possível ao administrador
do sistema ou da rede, verificar usuários cadastrados, usuários
ativos no momento e também os logs de acesso. Com essa
ferramenta ficaria disponível uma vasta base de dados para
servir como ferramentas marketing, onde seria possível
verificar do estabelecimento o mercado em que ele está
atendendo. Desta forma seria possível, por exemplo,
identificar horários de maior uso da Internet, qual a faixa
etária, entre outros aspectos, sem invadir a privacidades dos
usuários.
REFERÊNCIAS
T.I.S. 2015; 4 (2): 155-164
ANATEL. Agencia Nacional de Telecomunicações.
Estatísticas de celulares no Brasil. Disponível em <http://
www.teleco.com.br/ncel.asp>. Acesso em: 07 de jun. de
2015.
ANTUNES, V. H. L. Frontend Web 2.0 para Gestão de
RADIUS. Dissertação (Mestrado integrado em Engenharia
Eletrotécnica e de Computadores) Faculdade de
Engenharia, Universidade do Porto, Portugal, 2009.
BALABIT IT. Syslog-ng. Disponível em: <https://syslogng.org/#why>. Acesso em: 18 de ago. de 2015.
BARROS L. G., FRONTRAN C. J. Autenticação IEEE 802.1x
em Redes de Computadores Utilizando TLS e EAP.
Disponível
em:
<http://www.4eetcg.uepg.br
/oral/62_1.pdf>. Acesso em: 08 de jul. de 2015.
BRASIL. Lei n° 12.965, de 23 de abri de 2014. Disponível em
<http://
www.planalto.gov.br/ccivil_03/_ato20112014/2014/lei/l12965.htm>. Acesso em: 07 de jun. de
2015.
FLICKENGER, Rob. Building wireless community networks.
O'reilly, 2002. p. 79.
FREERADIUS.
Disponível
em
<http://wiki.freeradius.org/Home/>. Acesso em: 20 de ago.
de 2015.
IBGE. Instituto Brasileiro de Geografia e Estatística. Perfil
dos
municípios
brasileiros.
Disponível
em
<ftp://ftp.ibge.gov.br/Perfil_Municipios/2012/munic2012.p
df>. Acesso em: 07 de jun. de 2015.
IEEE. Institute of Electrical and Electronics Engineers.
Telecommunications and information exchange between
systems Local and metropolitan area networks. Disponível
em:
<http://standards.ieee.org/getieee802/download/802.112012.pdf>. Acesso em: 20 de set. de 2015.
IEEE. Institute of Electrical and Electronics Engineers. The
Working Group for WLAN Standards. Disponível em:
<http://www.ieee802.org/11/>. Acesso em: 20 de set. de
2015.
KUROSE, J., ROSS, K. W. Redes de Computadores e a
Internet – 3ª. Edição. Addsilgon Wesley Edito, 2006.
MIKROTIK. Manual:Customizing Hotspot. Disponível em:
<http://wiki.mikrotik.com/
wiki/Manual:Customizing_Hotspot>. Acesso em: 18 de
ago. de 2015.
RFC 1918. The Internet Engineering Task Force (IETF).
Address Allocation for Private Internets. Disponível em:
<https://tools.ietf.org/html/rfc1918>. Acesso em: 29 de
set. de 2015.
RFC 2058. The Internet Engineering Task Force (IETF).
Remote Authentication Dial In User Service (RADIUS).
Disponível em: <https://tools.ietf.org/html/rfc2058>.
Acesso em: 08 de jul. de 2015.
RFC 2138. The Internet Engineering Task Force (IETF).
Remote Authentication Dial In User Service (RADIUS).
Disponível em: < https://tools.ietf.org/html/rfc2138>.
Acesso em: 08 de jul. de 2015.
RFC 2637. The Internet Engineering Task Force (IETF).
Point-to-Point Tunneling Protocol (PPTP). Disponível em:
163
Serviço de autenticação, identificação e registro de usuários para redes sem fio públicas usando infraestrutura em nuvem
< https://tools.ietf.org/html/rfc2637>. Acesso em: 20 de
set. de 2015.
RFC 2865. The Internet Engineering Task Force (IETF).
Remote Authentication Dial In User Service (RADIUS).
Disponível em: < https://tools.ietf.org/html/rfc2865>.
Acesso em: 08 de jul. de 2015.
RFC 2904. The Internet Engineering Task Force (IETF). AAA
Authorization
Framework.
Disponível
em:
<https://tools.ietf.org/html/rfc2904>. Acesso em: 01 de
jun. de 2015.
RFC 3022. The Internet Engineering Task Force (IETF).
Traditional IP Network Address Translator (Traditional
NAT). Disponível em: <https://www.ietf.org/rfc/
rfc3022.txt>. Acesso em: 20 de set. de 2015.
RFC 4026. The Internet Engineering Task Force (IETF).
Provider Provisioned Virtual Private Network (VPN)
Terminology. Disponível em: <https://tools.ietf.org/html/
rfc4026>. Acesso em: 20 de set. de 2015.
RUFINO, N. M. O. Segurança em redes sem fio: Aprenda a
proteger suas informações em ambientes Wi-Fi e
Bluetooth. São Paulo. Novatec, 2005.
UBUNTU. Sistema Operacional Linux Ubuntu Server.
Disponível em: <http://www. ubuntu.com/server>. Acesso
em: 10 de nov. de 2015.
164
T.I.S. 2015; 4 (2): 155-164
Download