{"id":158,"date":"2012-01-07T13:39:46","date_gmt":"2012-01-07T15:39:46","guid":{"rendered":"http:\/\/linuxrs.com.br\/?p=158"},"modified":"2012-01-07T13:39:46","modified_gmt":"2012-01-07T15:39:46","slug":"portal-de-autenticacao-wireless-hotspot","status":"publish","type":"post","link":"https:\/\/blog.clusterweb.com.br\/?p=158","title":{"rendered":"Portal de autentica\u00e7\u00e3o wireless (HotSpot)."},"content":{"rendered":"<table width=\"100%\" border=\"0\" cellspacing=\"3\" cellpadding=\"3\">\n<tbody>\n<tr>\n<td colspan=\"2\"><strong>Introdu\u00e7\u00e3o<\/strong><\/p>\n<div>Com este artigo mostrarei uma das possibilidades de se disponibilizar uma rede <em>wireless<\/em> de f\u00e1cil acesso, ou seja, sem a interven\u00e7\u00e3o do administrador para permitir que usu\u00e1rios se conectem a mesma, por\u00e9m mantendo o controle sobre seu uso. Este \u00e9 basicamente o conceito usado em <em>HotSpot<\/em> de aeroportos, terminais, etc.<\/p>\n<p>Ent\u00e3o em termos operacionais a rede teria a seguinte caracter\u00edstica, rede aberta para a conex\u00e3o de qualquer usu\u00e1rio, por\u00e9m com todas as conex\u00f5es controladas e filtradas de modo que nenhum acesso \u00e9 garantido ao usu\u00e1rio, a menos que ele abra um navegador web, a partir do qual ser\u00e1 redirecionado para uma p\u00e1gina de autentica\u00e7\u00e3o, e a partir desta p\u00e1gina o usu\u00e1rio poder\u00e1 cadastrar-se ou usar suas credenciais caso j\u00e1 possua.<\/p>\n<p>O uso desta estrutura \u00e9 bem flex\u00edvel e pode se adaptar a diversas situa\u00e7\u00f5es.<\/p>\n<h1>Diagrama l\u00f3gico<\/h1>\n<p><center><a href=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/logico.jpg\" target=\"_new\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/thumb_logico.jpg\" alt=\"\" width=\"400\" height=\"159\" border=\"0\" \/><\/a><\/center><\/p>\n<\/div>\n<\/td>\n<\/tr>\n<tr>\n<td colspan=\"2\"><strong>Instala\u00e7\u00e3o de pr\u00e9-requisitos<\/strong><\/p>\n<div>Ser\u00e1 necess\u00e1rio:<\/p>\n<ul>\n<li>Fedora Core 6, instalado sem DNS;<\/li>\n<li>Micro com 2 interfaces LAN;<\/li>\n<li>01 AP (access point);<\/li>\n<li>01 cart\u00e3o de acesso wireless.<\/li>\n<\/ul>\n<h1>Instala\u00e7\u00e3o Nocat<\/h1>\n<p>O projeto NoCat (<a href=\"http:\/\/nocat.net\/\">http:\/\/nocat.net<\/a>) transforma um gateway de acesso em uma ferramenta de &#8220;Captive portal&#8221;, esta tecnologia \u00e9 baseada em um firewall (iptables) que bloqueia toda conex\u00e3o TCP\/UDP a partir da rede local, capturando toda sess\u00e3o http e redirecionado para um portal de login, este portal \u00e9 protegido por uma sess\u00e3o SSL, a partir do login no portal o NoCat aplica regras ao firewall liberando acesso ao usu\u00e1rio conforme defini\u00e7\u00f5es de uso.<\/p>\n<p>Para o perfeito funcionamento de nosso gateway ser\u00e1 necess\u00e1rio a instala\u00e7\u00e3o de alguns servi\u00e7os e configura\u00e7\u00f5es adicionais, conforme segue:<\/p>\n<p>OBS: No caso do Bind acho interessante remover qualquer instala\u00e7\u00e3o anterior para evitar complica\u00e7\u00f5es, mas se souber o que esta fazendo apenas o configure.<\/p>\n<h1>Configura\u00e7\u00e3o das placas de rede<\/h1>\n<p>Use o utilit\u00e1rio do FC6 ou &#8220;ifconfig&#8221;:<\/p>\n<p><strong># system-config-network<\/strong><\/p>\n<ul>\n<li>eth0 = internet (configure com ip din\u00e2mico ou fixo de modo a ter acesso \u00e0 internet);<\/li>\n<li>eth1 = LAN (configure com ip fixo e sem gateway, no nosso caso ip = 10.34.122.1\/24, se for alterado este endere\u00e7o deve tamb\u00e9m ser alterado no dhcpd.conf)<\/li>\n<\/ul>\n<h1>Servidor DHCP<\/h1>\n<p><strong># yum install dhcp<br \/>\n# cp \/usr\/share\/doc\/dhcp-3.0.5\/dhcpd.conf.sample \/etc\/ <\/strong><br \/>\n(sujeito a atualiza\u00e7\u00f5es, caso n\u00e3o encontre este diret\u00f3rio verifique a ver)<\/p>\n<p><strong># mv \/etc\/dhcp.conf.sample \/etc\/dhcpd.conf # vi \/etc\/dhcpd.conf<\/strong> (edite o arquivo conforme segue)<\/p>\n<div>ddns-update-style interim;<br \/>\nignore client-updates;<\/p>\n<p>subnet 10.34.122.0 netmask 255.255.255.0 {<br \/>\n<span style=\"color: #004080;\"># &#8212; default gateway<\/span><br \/>\noption routers\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a010.34.122.1;<br \/>\noption subnet-mask\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0255.255.255.0;<br \/>\noption nis-domain\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&#8220;suarede.com.br&#8221;;<br \/>\noption domain-name\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&#8220;suarede.com.br&#8221;;<br \/>\noption domain-name-servers\u00a0\u00a0\u00a0\u00a010.34.122.1;<br \/>\noption time-offset\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0-18000;\u00a0\u00a0\u00a0\u00a0# Eastern Standard Time<br \/>\nrange dynamic-bootp 10.34.122.10 10.34.122.20;<br \/>\ndefault-lease-time 21600;<br \/>\nmax-lease-time 43200;<br \/>\n}<\/div>\n<p>Iniciando o servi\u00e7o, o mesmo pode ser feito com o script (rc.d&#8221;n&#8221;) conforme comentado anteriormente:<\/p>\n<p><strong># \/etc\/init.d\/dhcpd start<\/strong><\/p>\n<p>OBS: A instala\u00e7\u00e3o do Bind proposta \u00e9 basicamente para encaminhar as requisi\u00e7\u00f5es para o servidor DNS1 \/ DNS2, de sua escolha.<\/p>\n<h1>Instala\u00e7\u00e3o servidor DNS (BIND)<\/h1>\n<p><strong># yum install bind-chroot<br \/>\n# yum install system-config-bind<br \/>\n# chmod 755 \/var\/named\/<br \/>\n# chmod 775 \/var\/named\/chroot\/<br \/>\n# chmod 775 \/var\/named\/chroot\/var\/<br \/>\n# chmod 775 \/var\/named\/chroot\/var\/named\/<br \/>\n# chmod 775 \/var\/named\/chroot\/var\/run\/<br \/>\n# chmod 777 \/var\/named\/chroot\/var\/run\/named\/<br \/>\n# cd \/var\/named\/chroot\/var\/named\/<br \/>\n# ln -s ..\/..\/ chroot<br \/>\n# chkconfig &#8211;levels 235 named on<br \/>\n# system-config-bind<\/strong> (s\u00f3 iniciar para criar as configura\u00e7\u00f5es padr\u00f5es e depois fechar)<\/p>\n<p>Edite o <em>named.conf<\/em> conforme segue:<\/p>\n<p><strong># vi \/var\/named\/chroot\/etc\/named.conf<\/strong><\/p>\n<p>Incluir as seguintes linhas:<\/p>\n<div>options{<br \/>\n<span style=\"color: #004080;\">\/\/outras op\u00e7\u00f5es\/\/<\/span><br \/>\nforward only;<br \/>\nforwarders{serverDNS1; serverDNS2;};<br \/>\n};<\/div>\n<p>Inicie o servidor:<\/p>\n<p><strong># \/etc\/init.d\/named start<\/strong><\/p>\n<p>OBS: Para se tornar mais pr\u00e1tico voc\u00ea pode criar um script de inicializa\u00e7\u00e3o e colocar no runlevel adequado 3 ou 5, conforme sua defini\u00e7\u00e3o.<\/p>\n<\/div>\n<\/td>\n<\/tr>\n<tr>\n<td colspan=\"2\"><strong>Configura\u00e7\u00e3o do gateway<\/strong><\/p>\n<div>Configurar o gateway para encaminhar os pacotes para a interface eth0, de modo a se tornar uma ponte de rede, sendo poss\u00edvel o acesso \u00e0 internet de qualquer m\u00e1quina conectada a interface eth1 configurada para ip din\u00e2mico.<\/p>\n<p>OBS: ** coment\u00e1rios<\/p>\n<p><strong># vi \/etc\/sysctl.conf<\/strong><\/p>\n<p>Alterar a linha:<\/p>\n<p>&#8220;net.ipv4.ip_forward = 0&#8221;<\/p>\n<p>Para:<\/p>\n<div>net.ipv4.ip_forward = 1<\/div>\n<p>Salve.<\/p>\n<p><strong># vi \/etc\/rc.d\/rc.local<\/strong><\/p>\n<p>Acrescentar a linha abaixo ao final do arquivo:<\/p>\n<div>iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE&#8221;<\/div>\n<p>Isso far\u00e1 o nat para eth0.<\/p>\n<p>Desabilite as fun\u00e7\u00f5es de seguran\u00e7a, execute:<\/p>\n<p><strong># system-config-securitylevel<\/strong><\/p>\n<p>Desabilite o firewall e o SELinux.<\/p>\n<p>Remova as configura\u00e7\u00f5es do iptables:<\/p>\n<p><strong># rm -r \/etc\/sysconfig\/iptables*<\/strong><\/p>\n<p>Reinicie o iptables:<\/p>\n<p><strong># \/etc\/init.d\/iptables restart<\/strong><\/p>\n<p><strong># yum install gnupg2<\/strong><br \/>\n(ferramenta usada para criptografar)<\/p>\n<p><strong># perl -MCPAN -e &#8216;install Digest::MD5&#8217;<\/strong><br \/>\n(mecanismo de autentica\u00e7\u00e3o)<\/p>\n<p><strong># perl -MCPAN -e &#8216;install Net::Netmask&#8217;<\/strong><\/p>\n<h1>Instala\u00e7\u00e3o de pacotes adicionais<\/h1>\n<p>\u00c9 bem prov\u00e1vel que o Digest-MD5 j\u00e1 esteja instalado, de qualquer forma ser\u00e1 retornada a mensagem de que j\u00e1 est\u00e1 instalado &#8220;UP&#8221;, caso seja a primeira vez que esteja executando o instalador &#8220;perl MCPAN&#8221;, ser\u00e3o feitas v\u00e1rias perguntas, deixe todas como padr\u00e3o, observando que quando for questionado sua localiza\u00e7\u00e3o responda de acordo, ainda que se utilizar Proxy para web e FTP, no momento em que for requisitado entre com o(s) Proxy.<\/p>\n<p>Com as configura\u00e7\u00f5es realizadas at\u00e9 este momento j\u00e1 ser\u00e1 poss\u00edvel acessar a internet tendo como gateway nosso servidor, para isso confira inicialmente se os servi\u00e7os est\u00e3o marcados para arranque autom\u00e1tico:<\/p>\n<p><strong># system-config-services<\/strong><\/p>\n<p>Verifique se est\u00e3o marcados o http, bind (named) e dhcpd.<\/p>\n<p><strong># ping localhost<\/strong><\/p>\n<p>Verifique se retorna ping, se n\u00e3o retornar configure o \/etc\/hosts acrescentando a linha:<\/p>\n<div>127.0.0.1\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0localhost loopback<\/div>\n<p>Reinicie o servidor, conecte um micro na interface eth1, configure para obter o endere\u00e7o ip\/dns din\u00e2mico, teste se os clientes da interface LAN podem acessar a internet, s\u00f3 passe para os pr\u00f3ximos passos depois de concluir esta etapa.<\/p>\n<\/div>\n<\/td>\n<\/tr>\n<tr>\n<td colspan=\"2\"><strong>Instala\u00e7\u00e3o do NOCAT<\/strong><\/p>\n<div><strong># mkdir \/home\/root\/src<\/strong><br \/>\n(crie uma pasta para baixar as fontes, pode ser em qualquer lugar)<\/p>\n<p><strong># cd \/home\/root\/src<br \/>\n# wget<\/strong> <a href=\"http:\/\/nocat.net\/downloads\/NoCatAuth\/NoCatAuth-nightly.tgz\">http:\/\/nocat.net\/downloads\/NoCatAuth\/NoCatAuth-nightly.tgz<\/a><br \/>\n<strong># tar zxvf NoCatAuth-nightly.tgz<br \/>\n# cd NoCatAuth-nightly<\/strong><\/p>\n<p>IMPORTANTE: O Nocat n\u00e3o vem configurado para detectar firewall para kernel 2.6, portanto \u00e9 preciso alterar manualmente este par\u00e2metro, conforme segue.<\/p>\n<p><strong># cd bin\/<br \/>\n# vi detect-fw.sh<\/strong><\/p>\n<p>Substitua:<\/p>\n<p>test X&#8221;`uname -sr | cut -d. -f-2`&#8221; = X&#8221;Linux 2.4&#8243;; then<\/p>\n<p>Por:<\/p>\n<div>test X&#8221;`uname -sr | cut -d. -f-2`&#8221; = X&#8221;Linux 2.6&#8243;; then<\/div>\n<p>Salve.<\/p>\n<p><strong># cd ..<\/strong> (retorne para diret\u00f3rio principal dos fontes do Nocat)<\/p>\n<p>Crie o diret\u00f3rio principal para o Nocat e execute a instala\u00e7\u00e3o conforme segue.<\/p>\n<p><strong># mkdir \/usr\/local\/nocat<\/strong><br \/>\n(cria diret\u00f3rio padr\u00e3o)<\/p>\n<p><strong># make PREFIX=\/usr\/local\/nocat\/gw gateway<\/strong><br \/>\n(instala o gateway)<\/p>\n<p><strong># make PREFIX=\/usr\/local\/nocat\/authserv authserv<\/strong><br \/>\n(instala o m\u00f3dulo autenticador)<\/p>\n<p>O Nocat j\u00e1 vem por padr\u00e3o com uma chave para assinatura digital, vamos apagar e criar uma nova:<\/p>\n<p><strong># rm -rf \/usr\/local\/nocat\/gw\/pgp\/trustedkeys.pgp<br \/>\n# rm -rf \/usr\/local\/nocat\/authserv\/pgp\/trustedkeys.pgp<\/strong><\/p>\n<p>E agora criar uma chave nova:<\/p>\n<p><strong># make PREFIX=\/usr\/local\/nocat\/authserv pgpkey<\/strong><\/p>\n<p>Algumas perguntas ser\u00e3o feitas, responda conforme segue.<\/p>\n<ul>\n<li>Escolha DSA (op\u00e7\u00e3o 1);<\/li>\n<li>Escolha chave com 1024;<\/li>\n<li>Expira deixe com 0 , confirme nunca expira;<\/li>\n<li>Responda as perguntas de nome, e-mail, conforme necess\u00e1rios;<\/li>\n<li>Confirme suas op\u00e7\u00f5es.<\/li>\n<\/ul>\n<p>Agora ser\u00e1 solicitada uma senha, importante, n\u00e3o coloque nada, tecle apenas enter e novamente ser\u00e1 solicitado para confirmar, tecle enter novamente.<\/p>\n<p>Sua chave ser\u00e1 gerada em alguns instantes, procure usar o micro normalmente, como por exemplo acessar alguma p\u00e1gina e etc, para que sejam coletados dados aleat\u00f3rios para a gera\u00e7\u00e3o da chave.<\/p>\n<p>Depois de conclu\u00eddo a gera\u00e7\u00e3o da chave copie-a para:<\/p>\n<p><strong># cp \/usr\/local\/nocat\/authserv\/trustedkeys.pgp \/usr\/local\/nocat\/gw\/pgp\/<br \/>\n# cp \/usr\/local\/nocat\/authserv\/trustedkeys.pgp \/usr\/local\/nocat\/authserv\/pgp\/<\/strong><\/p>\n<p>Para que o servidor Apache possa utilizar, altere o dono destes arquivos:<\/p>\n<p><strong># chown -R apache:apache \/usr\/local\/nocat\/authserv\/pgp<br \/>\n# chown -R apache:apache \/usr\/local\/nocat\/gw\/pgp<\/strong><\/p>\n<p>Mude as permiss\u00f5es:<\/p>\n<p><strong># chmod 755 \/usr\/local\/nocat\/authserv\/pgp<br \/>\n# chmod 755 \/usr\/local\/nocat\/gw\/pgp<\/strong><\/p>\n<p>Esta instala\u00e7\u00e3o do Nocat est\u00e1 utilizando o MySQL para armazenar os usu\u00e1rios e senhas, posteriormente pode-se utilizar outras bases para a autentica\u00e7\u00e3o, como servidor radius, ldap, arquivo texto e etc, para tanto iremos agora iniciar o MySQL, em services (system-config-services) marque para que o mysql seja iniciado no boot.<\/p>\n<p>Inicie o mysql:<\/p>\n<p><strong># \/etc\/init.d\/mysqld start<\/strong><\/p>\n<p>Crie uma senha para o mysql:<\/p>\n<p><strong># mysqladmin password senha<\/strong><\/p>\n<p>Criar o banco Nocat:<\/p>\n<p><strong># mysqladmin create nocat -p<\/strong><\/p>\n<p>Ainda de dentro da pasta principal dos fontes do mysql, copie a base padr\u00e3o do Nocat, conforme segue:<\/p>\n<p><strong># mysql nocat &lt; etc\/nocat.schema -p<\/strong><\/p>\n<p>Entre com a senha definida anteriormente.<\/p>\n<p>Entre no modo root no mysql:<\/p>\n<p><strong># mysql -u root -p<\/strong><br \/>\n(entre com a senha)<\/p>\n<p>D\u00ea privil\u00e9gios para o usu\u00e1rio nocat, com senha nocatauth:<\/p>\n<p>mysql&gt; <strong>grant all on nocat.* to nocat@localhost identified by &#8216;nocatauth&#8217;;<\/strong><br \/>\nmysql&gt; <strong>flush privileges;<\/strong><br \/>\nmysql&gt; <strong>quit;<\/strong><\/p>\n<p>Acesse o mysql com o usu\u00e1rio nocat e senha nocatauth, configurados anteriormente para conferir se as tabelas foram criadas.<\/p>\n<p><strong># mysql -u nocat -pnocatauth<\/strong><br \/>\nmysql&gt; <strong>use nocat<\/strong><br \/>\nmysql&gt; <strong>show tables;<\/strong><\/p>\n<p>Voc\u00ea deve ver as tabelas do nocat:<\/p>\n<p>mysql&gt; <strong>quit<\/strong><\/p>\n<p>Pronto, o nocat est\u00e1 instalado, vamos \u00e0s configura\u00e7\u00f5es.<\/p>\n<\/div>\n<\/td>\n<\/tr>\n<tr>\n<td colspan=\"2\"><strong>Configura\u00e7\u00f5es do NOCAT<\/strong><\/p>\n<div>O nocat possui dois arquivos de configura\u00e7\u00e3o, um em \/usr\/local\/nocat\/gw\/ e outro em \/usr\/local\/nocat\/authserv\/, ambos com o mesmo nome &#8220;nocat.conf&#8221;, portanto cuidar para n\u00e3o confund\u00ed-los.<\/p>\n<p>Em \/usr\/local\/nocat\/authserv\/nocat.conf, altere as seguintes linhas:<\/p>\n<div>HomePage\u00a0\u00a0<span style=\"color: #004080;\">\/\/ coloque a sua pagina inicial<\/span><br \/>\nLocalGateway 10.34.122.1\u00a0\u00a0<span style=\"color: #004080;\">\/\/ endere\u00e7o da interface da rede interna eth1<\/span><br \/>\nLocalNetwork 10.34.122.0\u00a0\u00a0<span style=\"color: #004080;\">\/\/ endere\u00e7o de rede da interface da rede interna eth1, observe que LocalNetwork n\u00e3o aparece como op\u00e7\u00e3o voc\u00ea deve acrescentar.<\/span><br \/>\nDataSource\u00a0\u00a0DBI <span style=\"color: #004080;\">\/\/ marca a fonte para banco de dados &#8230; nosso caso mysql<\/span><br \/>\nDataBase\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 dbi:mysql:database=nocat\u00a0\u00a0<span style=\"color: #004080;\">\/\/ conector para mysql base de dados nocat<\/span><br \/>\nDB_User\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 nocat\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #004080;\">\/\/ usu\u00e1rio do banco nocat, voc\u00ea deve alterar a gosto<\/span><br \/>\nDB_Passwd\u00a0\u00a0\u00a0\u00a0 nocatauth\u00a0\u00a0 <span style=\"color: #004080;\">\/\/ senha do banco nocat, voc\u00ea deve alterar a gosto<\/span><br \/>\nPGPKeyPath\u00a0\u00a0\u00a0\u00a0\/usr\/local\/nocat\/authserv\/pgp\u00a0\u00a0\u00a0\u00a0<span style=\"color: #004080;\">\/\/ retire o coment\u00e1rio desta linha e confira o endere\u00e7o<\/span><br \/>\nDocumentRoot\u00a0\u00a0\u00a0\u00a0\/usr\/local\/nocat\/authserv\/htdocs<\/div>\n<p>No final do arquivo existe uma s\u00e9rie de mensagens, podem ser traduzidas conforme necess\u00e1rio:<\/p>\n<p>Em \/usr\/local\/nocat\/gw\/nocat.conf altere as seguintes linhas:<\/p>\n<div>GatewayName\u00a0\u00a0Nome Gateway\u00a0\u00a0 <span style=\"color: #004080;\">\/\/ entre com um nome para seu nocat<\/span><br \/>\nGatewayMode\u00a0\u00a0\u00a0\u00a0Passive\u00a0\u00a0\u00a0\u00a0<span style=\"color: #004080;\">\/\/ no nosso caso como precisamos de nat somente o modo Passive.<\/span><br \/>\nAuthServiceAddr\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 10.34.122.1<br \/>\nExternalDevice\u00a0\u00a0\u00a0\u00a0eth0\u00a0\u00a0<span style=\"color: #004080;\">\/\/ pode ficar comentado, ele detecta sozinho<\/span><br \/>\nInternalDevice\u00a0\u00a0\u00a0\u00a0 eth1\u00a0\u00a0<span style=\"color: #004080;\">\/\/ pode ficar comentado, ele detecta sozinho<\/span><br \/>\nLocalNetwork\u00a0\u00a0\u00a0\u00a0\u00a0\u00a010.34.122.0\/24<br \/>\nDNSAddr\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 10.34.122.1\u00a0\u00a0\u00a0\u00a0<span style=\"color: #004080;\">\/\/ importante \u00e9 preciso utilizar o DNS no gateway , caso contr\u00e1rio poder\u00e1 ter sites bloqueados na consulta de dns.<\/span><br \/>\nIncludePorts\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 22 80 443\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"color: #004080;\">\/\/ s\u00e3o as portas que ele aceitar\u00e1 servi\u00e7os<\/span><br \/>\n#ExcludePorts\u00a0\u00a0\u00a0\u00a0\u00a0\u00a025\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #004080;\">\/\/ n\u00e3o use as duas op\u00e7\u00f5es simultaneamente, por isso comente esta linha<\/span><br \/>\nPGPKeyPath\u00a0\u00a0\u00a0\u00a0\/usr\/local\/nocat\/gw\/pgp<br \/>\nDocumentRoot\u00a0\u00a0\u00a0\u00a0\/usr\/local\/nocat\/authserv\/htdocs<\/div>\n<\/div>\n<\/td>\n<\/tr>\n<tr>\n<td colspan=\"2\"><strong>Configura\u00e7\u00f5es do APACHE (web-server)<\/strong><\/p>\n<div>Primeiramente vamos criar um certificado e chave novos para o &#8220;Apache&#8221;, evitando usar o certificado padr\u00e3o. Para isso precisaremos do openSSL, que j\u00e1 deve ter sido instalado com o Fedora, de qualquer forma caso n\u00e3o tenha, instale via yum:<\/p>\n<p><strong># yum -y install openssl<\/strong><\/p>\n<p>Crie uma pasta ssl, por exemplo. V\u00e1 at\u00e9 esta pasta e siga os procedimentos abaixo.<\/p>\n<p>Criando uma nova chave:<\/p>\n<p><strong># openssl genrsa -out nocat.key 1024<\/strong><\/p>\n<p>Criando assinatura para certificado:<\/p>\n<p><strong># openssl req -new -key nocat.key -out nocat.csr <\/strong><\/p>\n<p>Criando um certificado assinado:<\/p>\n<p><strong># openssl x509 -days 365 -req -in nocat.csr -signkey nocat.key -out nocat.crt<\/strong><\/p>\n<p>Vamos mover este certificado e chave para a pasta padr\u00e3o do apache:<\/p>\n<p><strong># mv nocat.crt \/etc\/pki\/tls\/certs\/nocat.crt<br \/>\n# mv nocat.key \/etc\/pki\/tls\/private\/nocat.key<\/strong><\/p>\n<p>Desta forma s\u00f3 precisamos alterar o nome do arquivo de certificado e chave no arquivo de configura\u00e7\u00e3o em <em>\/etc\/http\/conf.d\/ssl.conf<\/em>, conforme ser\u00e1 mostrado abaixo.<\/p>\n<p>Edite:<\/p>\n<p><strong># vi \/etc\/httpd\/conf\/httpd.conf<\/strong><\/p>\n<p>Edite este arquivo conforme segue.<\/p>\n<div>Include conf.d\/*.conf<br \/>\nInclude \/usr\/local\/nocat\/authserv\/httpd.conf<\/p>\n<p>ServerAdmin admin@admin.br<br \/>\nServerName 10.34.122.1<br \/>\nDocumentRoot &#8220;\/usr\/local\/nocat\/authserv\/htdocs&#8221;<br \/>\nScriptAlias \/cgi-bin\/ \/usr\/local\/nocat\/authserv\/cgi-bin\/<\/p>\n<p>&lt;Directory &#8220;\/usr\/local\/nocat\/authserv\/cgi-bin&#8221;&gt;<br \/>\nSetEnv PERL5LIB\u00a0\u00a0\/usr\/local\/nocat\/suthserv\/lib<br \/>\nSetEnv NOCAT\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/usr\/local\/nocat\/authserv\/nocat.conf<br \/>\n<span style=\"color: #004080;\">#\u00a0\u00a0\u00a0\u00a0AllowOverride None<\/span><br \/>\n<span style=\"color: #004080;\">#\u00a0\u00a0\u00a0\u00a0Options None<\/span><br \/>\n<span style=\"color: #004080;\">#\u00a0\u00a0\u00a0\u00a0Order allow,deny<\/span><br \/>\n<span style=\"color: #004080;\">#\u00a0\u00a0\u00a0\u00a0Allow from all<\/span><br \/>\n&lt;\/Directory&gt;<\/div>\n<p><strong># vi \/etc\/httpd\/conf.d\/ssl.conf<\/strong><\/p>\n<p>Edite este arquivo conforme segue:<\/p>\n<div>SSLPassPhraseDialog\u00a0\u00a0builtin<br \/>\nSSLSessionCache\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 shmcb:\/var\/cache\/mod_ssl\/scache(512000)<br \/>\nSSLSessionCacheTimeout\u00a0\u00a0300<br \/>\nSSLRandomSeed startup builtin<br \/>\nSSLRandomSeed connect builtin<br \/>\nSSLCryptoDevice builtin<br \/>\n#SSLCryptoDevice ubsec<br \/>\nSSLCertificateFile \/etc\/pki\/tls\/certs\/nocat.crt<br \/>\nSSLCertificateKeyFile \/etc\/pki\/tls\/private\/nocat.key<br \/>\n#SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire<br \/>\n&lt;Files ~ &#8220;\\.(cgi|shtml|phtml|php3?)$&#8221;&gt;<br \/>\nSSLOptions +StdEnvVars<br \/>\n&lt;\/Files&gt;<br \/>\n&lt;Directory &#8220;\/usr\/local\/nocat\/authserv\/cgi-bin&#8221;&gt;<br \/>\nSSLOptions +StdEnvVars<br \/>\n&lt;\/Directory&gt;<\/div>\n<\/div>\n<\/td>\n<\/tr>\n<tr>\n<td colspan=\"2\"><strong>Instala\u00e7\u00e3o do access point (AP)<\/strong><\/p>\n<div><center><a href=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/DIAGRAMA.jpg\" target=\"_new\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/thumb_DIAGRAMA.jpg\" alt=\"\" width=\"400\" height=\"234\" border=\"0\" \/><\/a><\/center><\/p>\n<p>A instala\u00e7\u00e3o do AP deve ser de modo a permitir acesso f\u00e1cil \u00e0 rede wireless, para tanto configure-o de forma abera, ou seja, sem restri\u00e7\u00e3o de acesso. Em geral \u00e9 assim que todos os equipamentos vem de f\u00e1brica, mas de qualquer forma consulte a documenta\u00e7\u00e3o do fabricante.<\/p>\n<p>O gateway configurado at\u00e9 este ponto \u00e9 bastante seguro quanto a libera\u00e7\u00e3o de acesso e controle de que tipo de servi\u00e7os baseado em portas tcp\/udp podem passar, por\u00e9m n\u00e3o h\u00e1 nenhuma preocupa\u00e7\u00e3o com a seguran\u00e7a entre os clientes desta rede, ou seja, controlar o que um cliente desta rede acesse ou tente acessar outros micros tamb\u00e9m no mesmo lado da lan. Para isso alguns cuidados b\u00e1sicos devem ser tomados :<\/p>\n<ul>\n<li>Primeiramente na p\u00e1gina inicial deveremos colocar um aviso orientando os usu\u00e1rios a utilizarem VPN caso acessem conte\u00fados cr\u00edticos.<\/li>\n<li>De um modo geral todos os bons AP\u00b4s oferecem o recurso de &#8220;lan isolation&#8221;, que impede que um cliente wireless acesse outro (via acl). Caso voc\u00ea esteja usando um access point mais modesto, esse recurso pode ser implementado no NoCat, mostrarei mais adiante.<\/li>\n<li>Colocar um endere\u00e7o de IP no AP em rede diferente do que est\u00e1 sendo publicado no DHCP, n\u00e3o que isso ir\u00e1 impedir qualquer acesso mas dificulta bastante.<\/li>\n<li>Em alguns equipamentos \u00e9 poss\u00edvel restringir o acesso ao seu gerenciamento via rede wireless e tamb\u00e9m restringir o IP que pode acessar o gerenciamento.<\/li>\n<\/ul>\n<p>Esta medidas visam basicamente a seguran\u00e7a do AP e do acesso indevido entre os clientes da rede.<\/p>\n<\/div>\n<\/td>\n<\/tr>\n<tr>\n<td colspan=\"2\"><strong>Configura\u00e7\u00f5es finais<\/strong><\/p>\n<div>Para que o Nocat seja iniciado durante o boot na seq\u00fc\u00eancia correta, vamos utilizar um &#8220;script&#8221; fornecido com ele.<\/p>\n<p>Copie da pasta \/etc que est\u00e1 dentro da pasta onde est\u00e3o os fontes do nocat (NoCatAuth-nightly\/etc) o arquivo &#8220;nocat.rc&#8221; para a pasta \/etc\/rc.d\/, para ficar padr\u00e3o com os demais arquivos. Mude seu nome para &#8220;rc.nocat&#8221;, edite este arquivo e altere conforme segue.<\/p>\n<div><span style=\"color: #004080;\"># Edit the following line if you installed the<br \/>\n# NoCat software somewhere else.<br \/>\n#<\/span><br \/>\nNC=\/usr\/local\/nocat\/gw\/<\/div>\n<p>Edite agora o arquivo \/etc\/rc.d\/rc.local, onde colocamos regra para gateway, vamos agora comentar esta regra e acrescentar uma linha para carregar o script do nocat, o objetivo de termos colocado inicialmente a linha para encaminhamento era para testarmos se a ponte de rede estava ok.<\/p>\n<p>Edite ent\u00e3o o arquivo \/etc\/rc.d\/rc.local, conforme segue:<\/p>\n<div>touch \/var\/lock\/subsys\/local<br \/>\n<span style=\"color: #004080;\">#iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE<\/span><br \/>\n\/etc\/rc.d\/rc.nocat start<\/div>\n<p>Seu portal de acesso wireless est\u00e1 pronto! Este portal tamb\u00e9m pode ser usado para redes wired, caso encontre uma aplica\u00e7\u00e3o.<\/p>\n<p>O NoCat permite v\u00e1rias configura\u00e7\u00f5es adicionais, tipo, caso voc\u00ea queira liberar alguns sites para navega\u00e7\u00e3o mesmo que os usu\u00e1rios n\u00e3o tenham sido logados. Tipo em aeroportos voc\u00ea tem acesso aos sites dos poss\u00edveis provedores para se cadastrar.<\/p>\n<\/div>\n<\/td>\n<\/tr>\n<tr>\n<td colspan=\"2\"><strong>Login<\/strong><\/p>\n<div>Tela inicial de Login, nela voc\u00ea tamb\u00e9m ter\u00e1 um link para a p\u00e1gina de cadastro, estas p\u00e1ginas podem e devem ser totalmente customizadas, onde voc\u00ea pode inserir links para as p\u00e1ginas que desejar liberar acesso (estas dever\u00e3o ser cadastradas em nocat.conf), remover o link para cadastro, etc.<\/p>\n<p><center><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/login.jpg\" alt=\"\" width=\"385\" height=\"415\" \/><\/center><\/p>\n<p>Ap\u00f3s o login com sucesso voc\u00ea \u00e9 direcionado a p\u00e1gina que tentou acessar inicialmente e um popup ser\u00e1 aberto informando que voc\u00ea ter\u00e1 acesso durante determinado tempo (este per\u00edodo voc\u00ea pode configurar em nocat.conf), caso feche este pop-up por descuido, nada acontecer\u00e1, seu login permanecer\u00e1 pelo tempo estipulado, logo ap\u00f3s ser\u00e1 novamente redirecionado \u00e0 tela de login (voc\u00ea pode definir tempo de validade de um login, assim quando tentar logar-se novamente n\u00e3o ter\u00e1 sucesso, se for o caso).<\/p>\n<p><center><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/popup.jpg\" alt=\"\" width=\"252\" height=\"205\" \/><\/center><\/p>\n<p>E tela de cadastro, fornece uma interface para os usu\u00e1rios se cadastrarem automaticamente.<\/p>\n<\/div>\n<\/td>\n<\/tr>\n<tr>\n<td colspan=\"2\"><strong>Conclus\u00e3o<\/strong><\/p>\n<div>O <em>NoCat<\/em>, como apresentado neste artigo, \u00e9 direcionado para prover acesso a internet ou a uma rede especifica, normalmente para rede de convidados, HotSpot de acesso a internet ou algo do g\u00eanero, percebendo que a seguran\u00e7a ficar\u00e1 da seguinte forma:<\/p>\n<ul>\n<li>P\u00e1gina de login protegida com certificado digital, ou seja, usa ssl criptografando toda a sess\u00e3o de login, contudo ap\u00f3s a autentica\u00e7\u00e3o a criptografia para e os dados passar\u00e3o sem criptografia e como no AP tamb\u00e9m n\u00e3o \u00e9 usado criptografia, por este motivo se indica que para acesso a conte\u00fado cr\u00edtico deva se usar VPN (da mesma forma que na maioria dos HotSpot);<\/li>\n<li>N\u00e3o h\u00e1 criptografia de dados na rede wireless;<\/li>\n<li>Controle de acesso por portas e por dom\u00ednio rigoroso, ou seja, voc\u00ea pode restringir facilmente quais portas e quais dom\u00ednios podem ser acessados atrav\u00e9s do gateway com NoCat.<\/li>\n<\/ul>\n<p>Tenho certeza de que o NoCat pode se adequar as necessidades espec\u00edficas de de cada projeto neste contexto.<\/p>\n<p>Espero que minha contribui\u00e7\u00e3o seja \u00fatil e fico a disposi\u00e7\u00e3o para ajudar.<\/p><\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n","protected":false},"excerpt":{"rendered":"<p>Introdu\u00e7\u00e3o Com este artigo mostrarei uma das possibilidades de se disponibilizar uma rede wireless de f\u00e1cil acesso, ou seja, sem a interven\u00e7\u00e3o do administrador para permitir que usu\u00e1rios se conectem a mesma, por\u00e9m mantendo o controle sobre seu uso. Este \u00e9 basicamente o conceito usado em HotSpot de aeroportos, terminais, etc. Ent\u00e3o em termos operacionais [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[35],"tags":[40,38,37,41,39,36],"class_list":["post-158","post","type-post","status-publish","format-standard","hentry","category-wireless","tag-configuracao","tag-hot-spot","tag-hotpost","tag-hotspot","tag-rede-sem-fio","tag-wireless-2"],"_links":{"self":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/158","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=158"}],"version-history":[{"count":1,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/158\/revisions"}],"predecessor-version":[{"id":159,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/158\/revisions\/159"}],"wp:attachment":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=158"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=158"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=158"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}