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