NoCatAuth - Construindo um firewall/gateway autenticado

O programa NoCatAuth, criado pela nocat.net, tem o propósito de evitar que pessoas não autorizadas tenham acesso a internet em rede Wireless. Para isso, esse programa em Perl captura o tráfego na porta 80 e o desvia para um servidor HTTP, onde haverá uma página solicitando usuário e senha, e opcionalmente, uma página para cadastro.

[ Hits: 267.681 ]

Por: Patrick Brandao em 30/08/2004 | Blog: http://www.patrick.eti.br


Instalação dos programas



O Slackware 10.0 vem com o Apache 1.3, mas eu particularmente prefiro o Apache 2.0.50, por isso vou usá-lo nesta solução. Se você tem experiência como Apache 1.3.x, fique a vontade em usá-lo, senão:

Removendo Apache 1.3:

# removepkg apache-1.3.31-i486-2

O OpenSSL versão 0.9.7.d, GnuPG 1.2.4, MySQL 4.0.20 e Perl 5.8.4 (e modulo perl Digest::MD5) já vêem instalados por padrão (instalação FULL) no Slack 10.

Instalação do Apache 2.0.50

# cd /usr/local/src
# wget http://apache.usp.br/httpd/httpd-2.0.50.tar.gz
# tar xvzf httpd-2.0.50.tar.gz
# cd httpd-2.0.50
# ./configure --enable-ssl --enable-cgi --enable-suexec --enable-so
# make
# make install


O Apache será instalado no diretório /usr/local/apache2, os arquivos de configuração ficarão na pasta usr/local/apache2/conf.

Módulos Perl

Os módulos usados pelo NoCat para esta solução são:
  • Net::Netmask
  • DBI
  • DBD::mysql
  • Digest::MD5

Se você deseja usar outro tipo de autenticação, consulte a documentação do NoCat. Várias tecnologias são suportadas: IMAP, LDAP, SAMBA, PAM, RADIUS, etc.

A primeira vez que você invocar o CPAN do Perl, ele solicitará algumas configurações do sistema e da localidade, basta responder N que ele usará a configuração padrão. Necessário estar conectado.

# perl -MCPAN -e shell
cpan> install Bundle::CPAN (ENTER para todas as perguntas)
cpan> install DBI
cpan> install DBD::mysql
cpan> install Digest::MD5
cpan> install Net::Netmask
cpan> exit

Atenção, as linhas seguintes testam os módulos e não podem retornar erros:

# perl -MDBI
# perl -MDBD::mysql
# perl -MDigest::MD5
# perl -MNet::Netmask


Agora o Perl está completo para o NoCat.

Ativar MySQL

Vamos ativar o MySQL, pois no Slackware 10.0 ele se encontra instalado, porém alguns ajustes são necessários para colocá-lo rodando.

Como nós iremos usar o MySQL apenas para armazenar algumas centenas de logins, não convém reservar recursos desnecessários. Por isso será usado o arquivo de configuração my-small.cnf (ver documentação do MySQL).

Em seguida criaremos um banco de dados para o NoCatAuth e um login de acesso para ele.

# cp /etc/my-small.cnf /etc/my.cnf
# mysql_install_db
# chown mysql.mysql /var/lib/mysql /var/run/mysql -R
# chmod +x /etc/rc.d/rc.mysqld
# /etc/rc.d/rc.mysqld start


Conferindo se o servidor MySQL esta de pé:

# nmap localhost -p 3306
Starting nmap 3.50 ( http://www.insercure.org/nmap/ ) at 2004-07-26 16:02 Interesting ports on localhost (127.0.0.1):
PORT       STATE     SERVICE
3306/tcp   open          mysql
Nmap run completed - 1 IP address (1 host up) scanned in 0.331 seconds

Ajustando a senha do root mysql:

# mysqladmin password senhadorootmysqlaqui
# mysql -u root -psenhadorootmysqlaqui

mysql> CREATE DATABASE nocat;
mysql> GRANT ALL PRIVILEGES ON nocat.* TO nocat@localhost IDENTIFIED BY "senhadonocat" WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
mysql> exit

Substitua "senhadorootmysqlaqui" pela senha de root do MySQL, cuidado com esta senha. Faça o mesmo com "senhadonocat".

NoCAT

Todos os códigos necessários para construção do nosso servidor, tanto Auth como Gateway estão no mesmo pacote:

# wget http://nocat.net/download/NoCatAuth/NoCatAuth-0.82.tar.gz
# tar -xvzf NoCatAuth-0.82.tar.gz
# cd NoCatAuth-0.82


NoCAT Gateway

# make PREFIX=/usr/local/nocat/gw gateway

NoCAT Auth

# make PREFIX=/usr/local/nocat/authserv authserv

Chave PGP

A chave de PGP deve ser a mesma para ambas as instâncias para que elas se comuniquem, portanto, vamos criá-la no authserv e copiá-la para o gateway. Não defina uma senha para esta chave.

# make PREFIX=/usr/local/nocat/authserv pgpkey
# cp /usr/local/nocat/authserv/trustedkeys.gpg /usr/local/nocat/gw/pgp


Pronto, a instalação já está feita, agora vamos configurar tudo, começando pelo Apache.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Objetivo
   3. Tecnologias usadas e ambiente de laboratório
   4. Instalação dos programas
   5. Configuração
   6. Iniciando o servidor
Outros artigos deste autor

Acelerador de conexões dial-up para provedores de acesso

Freeradius - servidor radius eficiente e completo

Ziproxy - Proxy de compactação e redução de imagens

Anti-SPAM ASK - Válidando remetentes por confirmação de mensagens

Qmail e chkuser - fila de mensagens limpa

Leitura recomendada

Firewall rápido e seguro com iptables

Mandrake Firewall - Firewall com interface amigável

Revisão atualizada de instalação do Iptables com Layer7

Dois links de ADSL em um mesmo servidor

Arno Iptables Firewall (poderoso e simples)

  
Comentários
[1] Comentário enviado por rattus em 30/08/2004 - 13:21h

Vc tem alguma coisa similar para acesso discado?
Por exemplo, alguns provedores gratuitos utilizam isso.
Vc conecta com qq senha e depois é redirecionado para a página deles para logar.

[2] Comentário enviado por patrickbrandao em 30/08/2004 - 14:35h

Ja trabalhei isso em um provedor e é totalmente funcional esse esquema. O que foi feito:

1 - desativar o radius no RAS
2 - instalar NoCatAuth no primeiro gateway (gateway acima do RAS).

assim voce pode dar acesso ao usuario no seu ISP sem precisar logar, o cliente poderá se cadastrar sem ter login de acesso.

[3] Comentário enviado por worms em 31/08/2004 - 10:40h

Falae Patrick!!
10 seu artigo man! Parabéns ;)

Você tem ideia como utilizar o Nocat na mesma maquina que use um squid e cbq?
hehehe mei q to apanhando disso faiz tempo, pq as regras do nocat de iptables anulam as do squid e cbq.... vira uma zona =[

[]'s

[4] Comentário enviado por patrickbrandao em 31/08/2004 - 10:57h

Cara ... fui para casa ontem pensando nisso: esqueci de ensinar como se integra com proxy transparente ...

Bom, faça assim:

procure pelo arquivo access.fw na pasta onde voce instalou o gateway no NoCat (/usr/local/nocat/gw/bin pelo artigo)

edita ele, e abaixo da linha onde está:

iptables -t mangle $cmd NoCat $match_mac -s $ip -j MARK --set-mark $mark

voce adiciona:

iptables -t nat $cmd PREROUTING $match_mac -s $ip -p tcp --dport 80 -j DNAT --to 192.168.10.1:8080

onde 192.168.10.1 deve ser substituido pelo ip da maquina onde esta squid e 8080 pela porta onde o squid escuta as conexoes.

Quando ao controle de banda, eu ainda nao trabalhei o NoCat nisso, mas voce pode dar uma olhada na mesma pasta onde está o access.fw, tem um arquivo chamado throttle.fw que te deve ser util, voce também pode editar o arquivo initialize.fw e altera-lo para seus propositos.

Obrigado, sempre às ordens,

Patrick Brandao

[5] Comentário enviado por patrickbrandao em 22/09/2004 - 16:47h

Para a turma que quer usar autenticação RADIUS:

Descobri que há um bug em um dos modulos usados. edite o arquivo /usr/local/nocat/authserv/lib/NoCat/Source/RADIUS.pm

e na linha 88 onde se encontra:

{ Name => 1, Value => $user->id },
{ Name => 2, Value => $user_pw }

altere para

{ Name => 1, Value => $user->id, Type => 'string' },
{ Name => 2, Value => $user_pw, Type => 'string' }

só isso!


[6] Comentário enviado por patrickbrandao em 22/09/2004 - 16:48h

Para a turma que quer usar autenticação RADIUS:

Descobri que há um bug em um dos modulos usados. edite o arquivo /usr/local/nocat/authserv/lib/NoCat/Source/RADIUS.pm

e na linha 88 onde se encontra:

{ Name => 1, Value => $user->id },
{ Name => 2, Value => $user_pw }

altere para

{ Name => 1, Value => $user->id, Type => 'string' },
{ Name => 2, Value => $user_pw, Type => 'string' }

só isso!

Patrick Brandão
http://www.patrick.eti.br/

[7] Comentário enviado por fabiorvs em 06/10/2004 - 11:21h

Estou tendo esse problema quando vou logar na pagina do NoCat

Can't call method "text" on an undefined value at ../lib//NoCat/AuthService.pm line 134., referer: https://172.31.1.254/cgi-bin/login

O que pode ser, procurei na net e nao encontrei nada

[8] Comentário enviado por patrickbrandao em 06/10/2004 - 13:08h

Em qual modo o nocat esta operando (passive, captive, open)?
Qual tipo de autenticação voce usa (mysql, radius, imap, ...) ?
Voce instalou o modulo Perl para o tipo de autenticação que está usando?
O perl está instalado corretamente? (tente reinstalar atravez de sua ferramenta de controle de pacotes)
Tentou reinstalar?
Aplicou algum patch?
Estava funcionando?
A pagina está sendo capturada ou voce está indo direto para o formulario login?

Responde para mim e eu posso te ajudar.

[9] Comentário enviado por fabiorvs em 06/10/2004 - 13:12h

Irei fazer outro teste, estava usando o RH9 e os pacotes necessarios ja estavam instalados, agora estou instalando o Slack 10 e vou fazer tudo na mão vamos ver se o erro ira continuar pois ai eu que estou fazendo algo de errado, valeu pela força, se tiver mais duvidas notifico.

Falow


[10] Comentário enviado por patrickbrandao em 06/10/2004 - 13:32h

ok

se seguir o artigo, garanto que consegue!

Patrick Brandao

[11] Comentário enviado por rvgodoi em 06/10/2004 - 17:31h

Olá Patrick,

Você sabe me dizer se o noCatAuth possui algum módulo ou alguma configuração que eu possa fazer que faça com que informações sobre tempo de conexão e tráfego sejam logados no mysql?

Obrigado.

Ricardo

[12] Comentário enviado por patrickbrandao em 06/10/2004 - 18:49h

Conheço sim, é um pouco complicado, mas muito funcional, a solução é:

NoCatAuth + Freeradius (base mysql) + PathAccounting

O NoCatAuth já possiu suporte para autenticação Radius, voce so tem que instalar um Modulo Perl para isso (Authen::Radius).

O freeradius voce encontra em www.freeradius.org , instale-o com o padrao ./configure, make, make install, e no arquivo radiusd.conf use sql para autenticação configurando o arquivo sql.conf.

Aplique um patch do NoCatAuth para fazer accounting:
http://www.pogozone.net/projects/nocat/

Infelizmente, só consegui fazer isso com muito trabalho uma vez, o path para accounting funciona, no que diz respeito a guardar informaçoes sobre a sessao, mas, porem cria outros bugs (brincadeira né, um path que cria bugs!).

voce pode instala-lo e consertar no dedo, basta alterar algumas coisas nos arquivos html.

boa sorte!

Patrick Brandao
http://www.patrick.eti.br/

[13] Comentário enviado por rcucharo em 21/10/2004 - 11:04h

o link do download do apache é
http://apache.usp.br/httpd/httpd-2.0.52.tar.gz
e nao
http://apache.usp.br/httpd/httpd-2.0.50.tar.gz

só 1 toq

falow

rafael

[14] Comentário enviado por patrickbrandao em 21/10/2004 - 11:22h

Quando eu fiz o artigo a versao 2.0.50 era a mais recente!

grato pela contribuicao,

Patrick Brandao
http://www.patrick.eti.br/
contato@patrick.eti.br

[15] Comentário enviado por eduardo.ramos em 25/10/2004 - 13:52h

Meu amigo, quando tento estartar o apache com a include do nocat ele dar este erro:

root@mx:/etc/init.d # ./apache start
Configuration syntax error detected. Not reloading.

Syntax error on line 20 of /usr/local/nocat/authserv/httpd.conf:
Invalid command 'SetEnv', perhaps mis-spelled or defined by a module not included in the server configuration
o que pode ser o modulo mod_setenv.so nao existe só o mod_setenvif.so, uso o apache 1.3.

Eduardo Ramos

[16] Comentário enviado por patrickbrandao em 25/10/2004 - 14:37h

Bom, infelizmente você nao incluiu os modulos que dão suporte a variaveis de ambiente no Apache, ou não os declarou com LoadModule, faça isso ou instale a versão recente a partir dos fontes que com certeza vai conseguir!

Patrick Brandão
http://www.patrick.eti.br/
contato@patrick.eti.br

[17] Comentário enviado por eduardo.ramos em 26/10/2004 - 17:31h

Error
Your MAC address is undefined. Problem with the gateway?

Por que aparece este erro para mim quando coloco o nocat.conf em modo Passive ou Captive?
já estou doido........
Abraços!

[18] Comentário enviado por patrickbrandao em 27/10/2004 - 01:12h

Modo captive apenas se o gateway nao faz nat. Se há traducao de enderecos que deve ser feito pelo nocat, use Passive

O erro acima é tipico de casos que voce vai direto para a página de login, isso nao pode ser feito, pois o modulo gateway no nocat precisa capturar o trafego pois no comando de redirecionar, ele passa variaveis para o modulo authserv com os dados da sessao, MAC, ip, etc...

Voce pode tentar o seguinte se continuar o erro: no arquivo de configuracao do gateway, procure a linha "IgnoreMAC" e sete com valor "1" (sem aspas). Assim as regras vao ser geradas baseadas no ip, isso diminuia a seguranca, já que spoof de ip é mais facil de fazer do que spoof de MAC.

espero que isso ajude!

Patrick Brandão
http://www.patrick.eti.br/
contato@patrick.eti.br

[19] Comentário enviado por welton.melo em 03/11/2004 - 14:51h

Amigos, tentei seguir o artigo, mas quando executo o comando install DBD::mysql
Aparece a seguinte mensagem de erro:
------------------------------------------------------------------------------------
Unsuccessful stat on filename containing newline at /usr/lib/perl5/5.8.0/ExtUtils/Liblist/Kid.pm line 97.
Multiple copies of Driver.xst found in: /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/auto/DBI/ /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi/auto/DBI/ at Makefile.PL line 295
Using DBI 1.45 (for perl 5.008 on i386-linux-thread-multi) installed in /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/auto/DBI/
Writing Makefile for DBD::mysql
Makefile:89: *** faltando o separador. Pare.
/usr/bin/make -- NOT OK
Running make test
Can't test without successful make
Running make install
make had returned bad status, install seems impossible
------------------------------------------------------------------------------------
Como posso resolver o problema?
Grato,

Welton Melo

[20] Comentário enviado por patrickbrandao em 03/11/2004 - 15:34h

Welton,

se o DBI não foi instalado, instale-o, se o erro continuar, tente instalar o DBD::mysql no dedo:

# cd /usr/local/src
# wget http://search.cpan.org/CPAN/authors/id/R/RU/RUDY/DBD-mysql-2.9004.tar.gz
# tar -xvzf DBD-mysql-2.9004.tar.gz
# cd DBD-mysql-2.9004
# perl Makefile.PL
# make
# make install

Se der pau mesmo assim, ai a coisa ta feia, tente reinstalar o perl ou atualizar para a ultima versao disponivel.

Patrick Brandão
http://www.patrick.eti.br/
contato@patrick.eti.br

[21] Comentário enviado por y2h4ck em 03/11/2004 - 20:25h

Patrick o Nocauth serve apenas para autenticar usuarios na porta 80 ??
porque por exemplo eu quero fazer algo assim.

- Usuario liga o PC e vai usar a internet: quero que ele nao possa fazer nada antes de se autenticar.

Nem ver emails nem nada ... tem como ?

[22] Comentário enviado por patrickbrandao em 03/11/2004 - 21:23h

Tem sim! a solucao se chama: NoCatAuth modos captive ou passive.
O artigo é justamente sobre isso!

O NoCat é um gateway/firewall, os pacotes só poderão atravessar o gateway se o usuario autenticar-se. Ele captura o trafego da porta 80 mas fora isso, os pacotes com destino a todas as outras portas sao dropados caso a autenticacao na pagina de login nao seja feita. Apos o login, todas as portas sao liberadas.

Patrick Brandão
http://www.patrick.eti.br/
contato@patrick.eti.br

[23] Comentário enviado por fsilvarib em 15/11/2004 - 12:13h

Fiz Todos os procedimentos que você colocou no aqui, mas como faço para testar isso???

Aqui recebe um ip válido, aonde eu coloco???

No meu micro tenho 2 placas de redes

eth0 ta com ip válido
eth1 ta com ip inválido.

Você poderia me ajudar???

Desculpe pela ignorancia

[24] Comentário enviado por patrickbrandao em 15/11/2004 - 12:31h

olha, como disse a loirinha do filme KILL BILL: vamos por partes!

Se vc instou o nocat auth e gateway corretamente, no arquivo nocat.conf do gateway, deve esta os seguintes valores:

ExternalDevice eth0
InternalDevice eth1

O método usado deve ser PASSIVE (tem que fazer NAT), o ip válido nao precisa ser devinido em lugar algum, ele vai descobrir qual é quando verificar a eth0

execute o gateway (/usr/local/nocat/gw/bin/gateway), use o rc.nocat para isso (veja no artigo)

Se voce fez tudo de acordo com o artigo, os clientes que chegar na eth1 vao ser direcionados para a tela de login. nao esqueca de dar para os clientes os mesmos servidores DNS definidos em /etc/resolv.conf

[25] Comentário enviado por fsilvarib em 15/11/2004 - 13:11h

Viu, eu liguei um cabo cross na saída da eth1 e liguei a outra ponta em um micro com winxp.

Nas configurações de rede eu coloquei tudo automático, e quando fui no navegador, mostrou que a página não pode ser exibida.

Eu vou ter que usar aquela famosa regra do iptables, a
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE, ou não???

POr favor me ajude, to ficando louco.

Valeu...

[26] Comentário enviado por fsilvarib em 15/11/2004 - 13:27h

Outra coisa que eu esqueci de falar quando eu reinicio o servidor ele ta dando um erro no rc.local na linha 11, e esse erro é do código que esta do artigo.

O código é o seguinte:

# iniciando servidor DHCPD
dhcpd

# iniciando apache com suporte a SSL
If [ -x /usr/local/apache2/bin/apachectl ]; then
/usr/local/apache2/bin/apachectl startssl
fi

# iniciando NoCatGateway
/etc/rc.d/rc.nocat start

[27] Comentário enviado por fsilvarib em 15/11/2004 - 16:06h

Eu novamente

O erro é o seguinte:

existing
/etc/rc.d/rc.M: /etc/rc.d/rc.local: line 14: syntax error near unexpected token 'then'
/etc/rc.d.rc.M: /etc/rc.d/rc.local: line 14: 'If [-x /usr/local/apache2/bin/apachectl ]; then'

Meu se você puder me ajudar, por favor me dá uma força, eu não sou muito experiente em linux, gostei muito o teu artigo.

Eu imploro, me ajuuuuudeeee.

Falô.

Desculpe por toda ignorancia, que tenho.


[28] Comentário enviado por patrickbrandao em 15/11/2004 - 17:29h

voce colocou 'i' maiusculo no if (If), o linux faz diferenciaçao entre maiusculas e minusculas, tenta colocar:

if [ -x /usr/local/apache2/bin/apachectl ]; then
/usr/local/apache2/bin/apachectl startssl
fi

Nao precisa colocar regras de NAT, o NoCat faz isso, vc tem que saber se a resoluçao de DNS ta funcionando e se ele esta redirecionando para a pagina de login, veja no nocat.log e no access.log do apache

[29] Comentário enviado por robertorr em 25/11/2004 - 22:09h

Tenho um server slack 10 rodando o server de e-mail e firewall.
Gostaria de saber como faço pra:

1 - Autenticar para somente passar pelo firewall depois que logar com o login e senha igual do e-mail (/etc/shadow).
2 - Depois de logado registrar no squid os acessos feitos em qualquer página deste usuário para emitir relatorios posteriores do usuários.

Agradeço pela ajuda.

[30] Comentário enviado por patrickbrandao em 25/11/2004 - 22:34h

Se sua rede interna é uma rede de ip invalido (nao roteavel na web), voce usa o modo PASSIVE, caso contrario, modo CAPTIVE, para que a autenticacao seja baseada nos dados de logins do sistema, vc vai ter que usar PAM + NoCat, veja os docs e o conteudo da pasta etc/ dentro do pacote com os fontes da distribuiçao do nocat, vc vai ter que instalar um modulo perl apropriado, o arquivo nocat.conf do authserv deve ser configurado para acessar o PAM, assim, leia os comentarios do autor no arquivo de configuracao do nocat (nocat.conf - authserv).

obrigado por contribuir com sua dúvida,
qualquer coisa manda mais!

Patrick Brandão

[31] Comentário enviado por tiago em 11/01/2005 - 14:29h

Muito bom este firewall, recomendo a todos que queiram instalar um

[32] Comentário enviado por andrei_piovesan em 24/01/2005 - 23:06h

instalei tudo conforme o tutorial e da o seguinte erro

Syntax error on line 31 of /usr/local/apache2/conf/ssl.conf:
CustomLog takes two or three arguments, a file name, a custom log format string or format name, and an optional "env=" clause (see docs)

estas são respectivamente as linhas 30 e 31 do script
nao estou conseguindo identificar nada errado
CustomLog /usr/local/apache2/logs/ssl_request_log \
%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \%r\ %b

[33] Comentário enviado por patrickbrandao em 24/01/2005 - 23:24h

Bom Andrei,

esse artigo tem alguns bugs em relacao a digitação de algumas linhas, mas voce pode substituir https por http para fazer testes do sistema (altere o nocat.conf e procure por https e substitua), ativa o https usando a configuracao ssl de outros!

Aquele abraço!

[34] Comentário enviado por pablowstl em 14/02/2005 - 01:30h

Olá,

Estou tentando executar o comando no Perl e está dando erro mesmo depois de ter executado os comandos de instalação dos módulos.

# perl -MDBI

Can't locate DBI.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.8.4 /usr/local/share/perl/5.8.4 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl .).
BEGIN failed--compilation aborted.

Como posso solucionar para poder prosseguir com os testes, meu Linux é o Tupiserver 1.1 (similar ao Kurumin)


[35] Comentário enviado por patrickbrandao em 14/02/2005 - 10:57h

Você terá que instalar pelo CPAN:
# perl -MCPAN -e shell
cpan> install DBI

ou manualmente:

# wget http://cpan.uwinnipeg.ca/cpan/authors/id/T/TI/TIMB/DBI-1.47.tar.gz
# tar -xvzf DBI-1.47.tar.gz
# cd DBI-1.47
# perl Makefile.PL
# make
# make install

Se mesmo assim nao funcionar! Usa slackware!
Aquele abraço!

[36] Comentário enviado por marcioslackware em 16/02/2005 - 16:49h

quando inicializa o nocat no final aparece socket 0.0.0.0
isso e normal, e toda vez que acesso o browser e direcionado para a pagina principal do apache, como direcionar para a autenticação no nocat.

Ver se da pra me ajudar.abraços

[37] Comentário enviado por patrickbrandao em 17/02/2005 - 11:00h

Marcio,

quanto ao "socket 0.0.0.0", significa que ele está respondendo na porta 5280/tcp em todos os endereços ip da maquina (127.0.0.1, 192....). Quando a redirecionara para o apache, vc tem que ver a configuracao no nocat.conf do gateway, as variaveis que informam o endereço do authserv, que deve ser http://ip.do.auth.serv/cgi-bin/login, etc...

[38] Comentário enviado por marcioslackware em 20/02/2005 - 10:14h

Agora esta direcionando para http://ip.do.auth.serv/cgi-bin/login, so que aparece mais argumentos na frente do endereço como http://ip.do.auth.serv/cgi-bin/login?redirect =1%92mac=10% ... mas nao abre nada, esses parametros na frente ja deveria estar cadastrados no mysql para logar ou entra na tela de login.

[39] Comentário enviado por patrickbrandao em 20/02/2005 - 14:05h

Bom marcio, o nocat funciona assim:

1 - voce digita no navegador: www.patrick.eti.br, apos teclar ENTER, o navegador resolve o nome no DNS, e tenta se conectar ao host que hospeda a página.

2 - ao passar pelo gateway, o pacote com destino a pagina www.patrick.eti.br é redirecionado pelas regras do iptables para o modulo gateway do nocat. O modulo gateway, consulta qual o ip e MAC do host, e redireciona novamente para o authserv, passando os parametros MAC, pagina de destino original (www.patrick.eti.br) como parametros GET (esse que aparecem na frente da url).

3 - no authserv, os scripts em perl recebem os parametros e abre uma sessao de autenticacao. Apos autenticar com sucesso, o authserv passa uma url para seu navegador, do tipo:
http://ip.do.modulo.gw:5280/...parametros
onde parametros sao seus dados originais e um hash que comprova que voce autenticou corretamente no authserv, assim o modulo gateway libera seu acesso.

Sendo assim, voce precisa, atravez dos arquivos de log do apache e do nocat, descobrir onde está o problema, como nao abre nenhuma pagina, possivelmente é algo no apache.

As ordens,

Patrick Brandão

[40] Comentário enviado por marcioslackware em 22/02/2005 - 19:01h

quando se inicia o navegador aparece o seguiente endereço https://192.168.2.3/cgi-bin/login?redirect=http%3a%2f%2f192%2e1682e2%2e31922e1682e22e33a443&timeout=... mas nao aparece imagem nenhuma o certo nao seria abrir a pagina de login e depois redirecionar ?

log do nocat ta assim
[2005-02-22 16:48:17] Gateway running on port 5280.
[2005-02-22 17:21:35] Gateway running on port 5280.
[2005-02-22 17:30:05] Spawning child process 1245.
[2005-02-22 17:30:05] Connection to 192.168.2.3 from 192.168.2.200
[2005-02-22 17:30:05] Received notify from 192.168.2.200
[2005-02-22 17:30:05] Missing notify from 192.168.2.200
[2005-02-22 17:30:05] Capturing 192.168.2.200 for http://192.168.2.3192.168.2.3:443 (poque repete o ip, e certo isso?)
[2005-02-22 17:30:05] Notifying parent of Capture on peer 00:D0:09:83:9E:0B
[2005-02-22 17:30:05] Got notification Capture of peer 00:D0:09:83:9E:0B
[2005-02-22 17:30:05] Child process returned 1
[2005-02-22 17:30:05] Spawning child process 1247.



fica repetindo isso todo o tempo como se tivesse solicitando algo.

[41] Comentário enviado por patrickbrandao em 24/02/2005 - 01:02h

Bom, o certo é:

o usuário abre a pagina inicial, mas ela é capturada e substituida pela tela de login, apos o login, o usuario é novamente direcionado para a pagina que de principio visitaria.

Se nao aparece imagem, veja se o caminho dela existe na pasta virtual, tente configurar htdocs do apache /usr/local/nocat/authserv/htdocs (reinicia o apache).

[42] Comentário enviado por godhacker em 26/02/2005 - 14:26h

ola, recentemente eu botei no "ar" um mini provedor a radio, como a idéia deu certo e os clientes estao aumentando, eu estava pré-configurando um freebsd pra rodar comos servidor squid etc...
vc acha q seria interessante pra mim migrar para o slackware 10, e rodar, squid, dhscpd, apache, nocatnet, firewall, mysql, perl com todos os recursos de um servidor do porte em um pIII 1.1 512 ecc reg e hd scsi?

[43] Comentário enviado por godhacker em 26/02/2005 - 14:28h

só pra completar, o de cima, gostaria de ter controle MAC autenticação pelo nocat, rodando tudo isso no mesmo servidor.

[44] Comentário enviado por patrickbrandao em 26/02/2005 - 16:00h

Como disse a loirinha do killbill: "Vamos por partes"

1 - Se voce esta com uma boa demanda, deve oferecer seguranca e disponibilidade, quanto mais servicos vc tem num servidor, mais serviços voce tem fora do ar se ele parar.

2 - todos os linux sao rápidos, desde que configurados corretamente e depois de uma "limpa".

3 - colocar mysql e squid é arriscado, ambos são amantes de memoria ram, se vc ocupar sua memoria ram, o processamento será desviado para a swap, seu disco ficará mais ocupado, resultando numa lentidão em tudo, o que é contrario a finalidade do firewall

4 - o nocat é para firewall, vc pode colocar num 486 da vida e manter o mysql em um servidor seguro se o numero de registros exigir que o mysql tenha alta disponibilidade

5 - vc tem uma maquina muito boa para o proposito, só não a deixe sozinha (compra o pentiun 233 com 64 de ram para o firewall e nocat)

6 - o nocat garante a autenticacao por mac, mas não isola um usuario a um mac (ex: joao só pode conectar com 00:0e:dc:f0:0a:bc). Eu sei fazer isso, mas não é com nocat...

7 - sua duvida não é sobre nocat, mas sim sobre uma implementaçao complexa que o envolve, use meu e-mail para isso! www.patrick.eti.br -> contato

[45] Comentário enviado por germano_silva em 26/02/2005 - 23:42h

Cara parabens pelo artigo, muito bom mesmo.

[46] Comentário enviado por hugohaas em 02/03/2005 - 15:28h

Cara, eu preciso de um sistema que capture o volume de dados que um determinado cliente trafegou pelo gateway, é possível isso com o nocat, outro detalhe é que não quero fazer autenticação pelo browser, somente pelo MAC.

[47] Comentário enviado por patrickbrandao em 03/03/2005 - 01:03h

Autenticaçao pelo MAC? como é isso? nao seria uma regra que some o mac e o ip para garantir o acesso? com iptables se faz isso!

Quanto ao volume de dados, talvez um alias adicional na placa de rede e mrtg resolva seu problema!

[48] Comentário enviado por hugohaas em 03/03/2005 - 15:42h

Patrick, assim, eu vendo acesso à Internet por volume, se o cliente passa o limite contratado ele paga uma taxa adicional, então preciso contabilizar o volume de dados que passa pelo gateway e inserir esses dados em uma Base de dados SQL, o MAC é só pra indentificar o cliente.

[49] Comentário enviado por patrickbrandao em 03/03/2005 - 16:26h

Hugo,

o nocat + patchaccounting + radius faz isso, a cada sessao finalizada, ele submete ao servidor radius os bytes enviados, recebidos, tempo da sessao, etc... acontece que é um sofrimento instalar, eu só consegui uma vez na vida!!! Mas se quiser tentar, pode começar:
1 - google:
radius +nocat
2 - baixar o patch e instalar (somente no modulo gateway, o authserv permanece): http://www.pogozone.net/projects/nocat/

Patrick Brandão

[50] Comentário enviado por hugohaas em 03/03/2005 - 23:51h

Legal!!! vou tentar, depois posto o resultado.

Valeu!!!

[51] Comentário enviado por dino em 20/03/2005 - 05:15h

Legal paca

[52] Comentário enviado por wanto em 27/03/2005 - 16:15h

Patrck gostaria de receber alguns auxilips para ta instalando essa soluacao em um FreeBsd 5.3, tentei seguindo o manual, mas té o momento nao tive sucesso. anailson@gmail.com
FreeBsd+Mysql+nocat+Apache2
da uma maozinha
vlw

[53] Comentário enviado por cardosoalcir em 12/04/2005 - 09:17h

Qual a chence de sucesso de eu realizar este projeto em FreeBSD, com o pacote adicional de suporte a aplicações Linux?

E teria como eu integrar este sistema a um banco de dados já existente de um provedor?

[54] Comentário enviado por jesusnetworks em 15/04/2005 - 07:58h

eh possivel autenticar sem usar o dhcp?aki trabalho com ip fixos e ficaria facil para controlar a banda com o CBQ.

[55] Comentário enviado por patrickbrandao em 15/04/2005 - 11:08h

Sim, voce pode usar sem dhcp!
Coloquei nesse artigo só para tornar a rede mais dinamica!

Patrick Brandão

[56] Comentário enviado por ronner em 08/05/2005 - 23:02h

cara vc sabe dizer pq ele sempre fica na tela com esta mensagem...

Error: Form not found.

Agradeço desde já.

[57] Comentário enviado por patrickbrandao em 09/05/2005 - 01:10h

O nocat trabalha com templates de formularios, localizados na pasta htdocs da pasta onde voce instala o nocat authserv, veja se no nocat.conf o Documentroot está apontado para a pasta htdocs que contem os arquvos .html dos formularios.

Patrick Brandão

[58] Comentário enviado por ronner em 09/05/2005 - 09:27h

já verifiquei e estar tudo correto de acordo com o tutorial mais mesmo assim ele não consegue, o apache estar com criptografia e os certificados foram criados.. na barra de endereços ele aparece como quem estar capturando as páginas para fazer a autenticação mais sem sucesso estou usando ele em modo Passive.

https://10.1.1.254/cgi-bin/login?redirect=http%3a%2f%2fwww%2egoogle%2ecom%2ebr%2flinux&timeout=86400...

Error: Form not found.

será que isto só ocorreu comigo...

sim, é o apache estar com php5 e ssl 9e..

[59] Comentário enviado por ronner em 09/05/2005 - 13:49h

Patrick, fiz um novo teste instalei um slackware 10 full e refiz td a instalção e continua dando a mesma mensagem, quando estou compilando o programas não e me mostrado nenhuma informação com condição de erro, o pro maior e que a documentação do nocat e muita poca ou quase nenhuma, tem outra forma de fazer este serviço de autenticação com outro software para Linux?

[60] Comentário enviado por patrickbrandao em 09/05/2005 - 17:24h

Bom,

quando me interessei pelo nocat, percebi que era muito dificil, rodei as tecnologias que ele usa: Apache, iptables, perl, mysql, etc... e consegui fazer funcionar, mas tem dia que nem eu consigo colocar essa gato para miar.

O nocat ja tem uma versao em C sendo desenvolvida, veja em www.nocat.net , se voce quer uma solucao de captura, tem uma comercial chamada MyAuth (www.patrick.eti.br/?pg=myauth).

boa sorte, pretendo reescrever esse artigo em brever, acompanhe minha página!

Patrick Brandão

[61] Comentário enviado por ronner em 09/05/2005 - 20:50h

certeza, mais obrigado pela ajuda vc me parece ser uma pessoa bastante disposta a ajudar...

Rodrigo Rnner

[62] Comentário enviado por pauloafonso em 11/05/2005 - 13:15h

Patrick,

Estou tendo problemas na configuraçao do nocat, instalei ele segundo seu artigo, mas quando vou testar me retorna no browser que a pagina nao pode ser exibida, segue os logs do nocat
[2005-05-11 13:09:26] Spawning child process 2612.
[2005-05-11 13:09:26] Spawning child process 2613.
[2005-05-11 13:09:26] Connection to x.x.x.x from 153.29.254.254
[2005-05-11 13:09:26] Capturing 153.29.254.254 for http://www.zaz.com.br/
[2005-05-11 13:09:26] Notifying parent of Capture on peer 00:11:5B:33:51:BB
[2005-05-11 13:09:26] Use of uninitialized value in join or string at /usr/local/nocat/gateway/bin/../lib/NoCat.pm line 148.
[2005-05-11 13:09:26] Connection to x.x.x.x from 153.29.254.254
[2005-05-11 13:09:26] Got notification Capture of peer 00:11:5B:33:51:BB
[2005-05-11 13:09:26] Child process returned 1

Voce tem alguma sugestao para este problema ?

Paulo Afonso

[63] Comentário enviado por gleisonpauloc em 13/05/2005 - 18:04h

Patrick, estou querendo fazer com que os usuarios atualize seus dados.
Estou com alguns problemas com isso! Eu executo a pagina de update do nocat, digito o login e a senha atualizo, digito a nova senha e repito novamente, depois atualizo novamente. Só que a senha não muda e ele volta a pedir para incerir a senha e não dá a mensagem de Sucesso!!!

Tem alguma solução!!!! Obs os cadastros dos usuários eu estou fazendo pelo comando admintool do nocat.

Obrigado!!

[64] Comentário enviado por reinaldojr em 02/10/2005 - 17:27h

parabéns patrick pelo artigo muito bom mesmo!!!
Aconteceu comigo o seguinte, eu segui a risca o artigo e deu tudo certo já estava autenticando, estava funcionando, ae eu instalei o squid para fazer o proxy transparente e PIMBA!!!! parou de funcionar tudo quando entro no browser ele captura a pagina pega o mac mas não abre a pagina de login. o que pode ter acontecido???

estou a ponto de formatar o micro e fazer denovo!!!

[65] Comentário enviado por mantunes em 09/02/2006 - 16:52h

Estava com o seguinte problemas quando ia iniciar o Apache...

Invalid command 'SetEnv', perhaps mis-spelled or defined by a module not included in the server configuration

e resolvi com o seguinte comando:

modules-config apache enable mod_env

[[]]'s e valeu pelo artigo parabéns!

[66] Comentário enviado por silva.alencar em 30/03/2006 - 01:41h

com o NoCatAuth como configuro o controle de banda por usuário?

[67] Comentário enviado por patrickbrandao em 30/03/2006 - 09:39h

Nao configura. O Nocat nao suporta isso. Voce pode ler os primeiros comentarios se quiser implementar algo pessoalmente nos fontes.

[68] Comentário enviado por studioweb em 01/06/2006 - 23:58h

estou tendo o mesmo problema que o do paulo afonso mas no meu caso diz que eu recebo a amensagem de acesso negado
You don't have permission to access /cgi-bin/login on this server.
mas eu dei permissão na pasta cgi-bin

[69] Comentário enviado por patrickbrandao em 02/06/2006 - 09:14h

Procure no error_log onde ele acusa o erro de acesso negado. Execute o sudo em nome do usuário que roda o apache e tente acesso ao arquivo cgi-bin/login.

[70] Comentário enviado por messi em 17/06/2006 - 12:04h

Eu acho bem interessante por que nem toda as pessoas tem condições de entrar na net

[71] Comentário enviado por pcnmota em 07/07/2006 - 14:47h

Legal mesmo o artigo cara!!!. To loko pra testar.

[72] Comentário enviado por Tyreon em 11/07/2006 - 19:11h

Muito Bom!! Vai me ajudar mto!!

[73] Comentário enviado por horst_silva em 17/07/2006 - 19:09h

Cara, fiz tudo e da o maldito "internal server error"
to usando o slack 10.2, no modo passive. Ele ta redirecionando pra pagina de login, aih eu cadastrei com sucesso um usuario, entro com ele, aih nao redireciona pra pagina que eu quero, da um internal...
me ajude!!!

[74] Comentário enviado por patrickbrandao em 18/07/2006 - 08:23h

É normal, a unica forma de resolver é verificando os logs (error_log) do apache.

O nocat ta abandonado, ninguem mais postou atualizações no site nocat.net

[75] Comentário enviado por horst_silva em 18/07/2006 - 10:28h

Cara, peguei o error_log do apache, da uma olhada pra mim:
[Mon Jul 17 22:23:32 2006] [warn] RSA server certificate CommonName (CN) `Horst' does NOT match server name!?
[Mon Jul 17 22:23:32 2006] [notice] suEXEC mechanism enabled (wrapper: /usr/local/apache2/bin/suexec)
[Mon Jul 17 22:23:34 2006] [warn] RSA server certificate CommonName (CN) `Horst' does NOT match server name!?
[Mon Jul 17 22:23:34 2006] [notice] Apache/2.0.58 (Unix) mod_ssl/2.0.58 OpenSSL/0.9.7g configured -- resuming normal operations
[Mon Jul 17 22:27:00 2006] [error] [client 192.168.0.69] [2006-07-17 22:27:00] User UNKNOWN from 192.168.0.69 requests form
[Mon Jul 17 22:27:04 2006] [error] [client 192.168.0.69] [2006-07-17 22:27:04] User qsl@uol.com.br from 192.168.0.69 requests form, referer: https://192.168.0.1/cgi-bin/login?redirect=http%3a%2f%2fwww%2euol%2ecom%2ebr%2f&timeout=86400&gatewa...
[Mon Jul 17 22:27:07 2006] [error] [client 192.168.0.69] [2006-07-17 22:27:07] gpg --sign --armor --homedir=/usr/local/nocat/authserv/pgp --keyring trustedkeys.gpg --no-tty -o- returned error message:, referer: https://192.168.0.1/cgi-bin/login?redirect=http%3a%2f%2fwww%2euol%2ecom%2ebr%2f&timeout=86400&gatewa...
[Mon Jul 17 22:27:07 2006] [error] [client 192.168.0.69] gpg: WARNING: unsafe permissions on homedir "/usr/local/nocat/authserv/pgp", referer: https://192.168.0.1/cgi-bin/login?redirect=http%3a%2f%2fwww%2euol%2ecom%2ebr%2f&timeout=86400&gatewa...
[Mon Jul 17 22:27:07 2006] [error] [client 192.168.0.69] gpg: WARNING: using insecure memory!, referer: https://192.168.0.1/cgi-bin/login?redirect=http%3a%2f%2fwww%2euol%2ecom%2ebr%2f&timeout=86400&gatewa...
[Mon Jul 17 22:27:07 2006] [error] [client 192.168.0.69] gpg: please see http://www.gnupg.org/faq.html for more information, referer: https://192.168.0.1/cgi-bin/login?redirect=http%3a%2f%2fwww%2euol%2ecom%2ebr%2f&timeout=86400&gatewa...
[Mon Jul 17 22:27:07 2006] [error] [client 192.168.0.69] gpg: Sorry, no terminal at all requested - can't get input, referer: https://192.168.0.1/cgi-bin/login?redirect=http%3a%2f%2fwww%2euol%2ecom%2ebr%2f&timeout=86400&gatewa...
[Mon Jul 17 22:27:07 2006] [error] [client 192.168.0.69] [2006-07-17 22:27:07] gpg --sign --armor --homedir=/usr/local/nocat/authserv/pgp --keyring trustedkeys.gpg --no-tty -o- returned error: ( 2 ), referer: https://192.168.0.1/cgi-bin/login?redirect=http%3a%2f%2fwww%2euol%2ecom%2ebr%2f&timeout=86400&gatewa...
[Mon Jul 17 22:27:07 2006] [error] [client 192.168.0.69] Can't call method "text" on an undefined value at ../lib//NoCat/AuthService.pm line 134., referer: https://192.168.0.1/cgi-bin/login?redirect=http%3a%2f%2fwww%2euol%2ecom%2ebr%2f&timeout=86400&gatewa...
[Mon Jul 17 22:27:07 2006] [error] [client 192.168.0.69] Premature end of script headers: login, referer: https://192.168.0.1/cgi-bin/login?redirect=http%3a%2f%2fwww%2euol%2ecom%2ebr%2f&timeout=86400&gatewa...

tem uma pergunta lah em cima desse mesmo erro, mais nao teve resposta com solucao.

Valewz

[76] Comentário enviado por horst_silva em 19/07/2006 - 17:36h

Aew PatrickBrandao, consegui!

O erro que estava dando, (Can't call method "text" on an undefined value at ../lib//NoCat/AuthService.pm line 134.) e o erro do gpg (gpg: Sorry, no terminal at all requested - can't get input,) e (gpg --sign --armor --homedir=/usr/local/nocat/authserv/pgp --keyring trustedkeys.gpg --no-tty -o- returned error: ( 2 )) sumiram depois que eu deletei as pastas gw e authserv, e dei o make PREFIX=/usr... denovo, aih copiei os arquivos de configuracao (os mesmos) e criei a trustedkeys.gpg denovo.

Acho que o erro tava na trustedkeys.gpg que eu tinha criado duas... (a primeira tinha passphrase :( )

Belo artigo cara!!! ajudou muito!

[]'s

[77] Comentário enviado por TheHawk em 03/08/2006 - 14:21h

Olá patrick, como faço aqui para implantar o nocat, tenho uma rede aqui q tem ips não validos e validos(roteadosn não podem ter NAT)... se eu rodar o nocat ele vai fazer nat para esses ips reais, alguma solução?

[78] Comentário enviado por patrickbrandao em 03/08/2006 - 14:23h

Usa o modo CAPTIVE em vez de PASSIVE

[79] Comentário enviado por kassiao em 07/08/2006 - 22:52h

vei , eu consegui instalar as paradas tudoblza.. mas qdo eu rodo bixo e tento abrir qq pagina abre pra fazer o login, eu boto o user e senha certos e mando fazer login ae da erro 500 :\ nao sei por onde começar a analisar. o erro eh tao detalhado ehehhe

se eu boto a senha errada diz q ta errada tal... soh q a desgraça da erro 500 qdo boto certo :(
oq eu faço? tou tentando a um tempao ja!! :|

[80] Comentário enviado por kassiao em 07/08/2006 - 23:13h

opa, achei o erro, duro eh eu saber q diabo é isso ehheheaouei

[Mon Aug 07 23:06:28 2006] [error] [client 192.168.0.69] [2006-08-07 23:06:28] User acassio@gmail.com from 192.168.0.69 reques
ts form, referer: https://192.168.0.1/cg">https://192.168.0.1/cgi-bin/login?redirec">https://192.168.0.1/cg">https://192.168.0.1/cgi-bin/login?redirect=http%3a%2f%2fwww%2euol%2ecom%2ebr%2f&timeout=1200&gateway=192%2e1">https://192.168.0.1/cg">https://192.168.0.1/cgi-bin/login?redirec">https://192.168.0.1/cg">https://192.168.0.1/cgi-bin/login?redirect=http%3a%2f%2fwww%2euol%2ecom%2ebr%2f&timeout=1200&gateway...
68%2e0%2e1%3a5280&mac=00%3a40%3aF4%3aD5%3aE2%3aE4&token=%241%2406494421%24rJch2va0aUUd6SexycjqT%2e
[Mon Aug 07 23:06:28 2006] [error] [client 192.168.0.69] [2006-08-07 23:06:28] gpg --sign --armor --homedir=/usr/local/nocat/a
uthserv/pgp --keyring trustedkeys.gpg --no-tty -o- returned error message:, referer: https://192.168.0.1/cg">https://192.168.0.1/cgi-bin/login?redirec">https://192.168.0.1/cg">https://192.168.0.1/cgi-bin/login?redirec
t=http%3a%2f%2fwww%2euol%2ecom%2ebr%2f&timeout=1200&gateway=192%2e168%2e0%2e1%3a5280&mac=00%3a40%3aF4%3aD5%3aE2%3aE4&token=%24
1%2406494421%24rJch2va0aUUd6SexycjqT%2e
[Mon Aug 07 23:06:28 2006] [error] [client 192.168.0.69] gpg: WARNING: using insecure memory!, referer: https://192.168.0.1/cg">https://192.168.0.1/cg
i-bin/login?redirect=http%3a%2f%2fwww%2euol%2ecom%2ebr%2f&timeout=1200&gateway=192%2e168%2e0%2e1%3a5280&mac=00%3a40%3aF4%3aD5%
3aE2%3aE4&token=%241%2406494421%24rJch2va0aUUd6SexycjqT%2e
[Mon Aug 07 23:06:28 2006] [error] [client 192.168.0.69] gpg: please see http://www.gnupg.org/faq.html for more information, r
eferer: https://192.168.0.1/cg">https://192.168.0.1/cgi-bin/login?redirec">https://192.168.0.1/cg">https://192.168.0.1/cgi-bin/login?redirect=http%3a%2f%2fwww%2euol%2ecom%2ebr%2f&timeout=1200&gateway=192%2e1">https://192.168.0.1/cg">https://192.168.0.1/cgi-bin/login?redirec">https://192.168.0.1/cg">https://192.168.0.1/cgi-bin/login?redirect=http%3a%2f%2fwww%2euol%2ecom%2ebr%2f&timeout=1200&gateway...68%2e0%2e1
%3a5280&mac=00%3a40%3aF4%3aD5%3aE2%3aE4&token=%241%2406494421%24rJch2va0aUUd6SexycjqT%2e
[Mon Aug 07 23:06:28 2006] [error] [client 192.168.0.69] gpg: Sorry, no terminal at all requested - can't get input, referer:
https://192.168.0.1/cg">https://192.168.0.1/cgi-bin/login?redirec">https://192.168.0.1/cg">https://192.168.0.1/cgi-bin/login?redirect=http%3a%2f%2fwww%2euol%2ecom%2ebr%2f&timeout=1200&gateway=192%2e1">https://192.168.0.1/cg">https://192.168.0.1/cgi-bin/login?redirec">https://192.168.0.1/cg">https://192.168.0.1/cgi-bin/login?redirect=http%3a%2f%2fwww%2euol%2ecom%2ebr%2f&timeout=1200&gateway...68%2e0%2e1%3a5280&
mac=00%3a40%3aF4%3aD5%3aE2%3aE4&token=%241%2406494421%24rJch2va0aUUd6SexycjqT%2e
[Mon Aug 07 23:06:28 2006] [error] [client 192.168.0.69] [2006-08-07 23:06:28] gpg --sign --armor --homedir=/usr/local/nocat/a
uthserv/pgp --keyring trustedkeys.gpg --no-tty -o- returned error: ( 2 ), referer: https://192.168.0.1/cg">https://192.168.0.1/cgi-bin/login?redirec">https://192.168.0.1/cg">https://192.168.0.1/cgi-bin/login?redirect
=http%3a%2f%2fwww%2euol%2ecom%2ebr%2f&timeout=1200&gateway=192%2e168%2e0%2e1%3a5280&mac=00%3a40%3aF4%3aD5%3aE2%3aE4&token=%241
%2406494421%24rJch2va0aUUd6SexycjqT%2e
[Mon Aug 07 23:06:28 2006] [error] [client 192.168.0.69] Can't call method "text" on an undefined value at ../lib//NoCat/AuthS
ervice.pm line 134., referer: https://192.168.0.1/cg">https://192.168.0.1/cgi-bin/login?redirec">https://192.168.0.1/cg">https://192.168.0.1/cgi-bin/login?redirect=http%3a%2f%2fwww%2euol%2ecom%2ebr%2f&timeout=1200&gat
eway=192%2e168%2e0%2e1%3a5280&mac=00%3a40%3aF4%3aD5%3aE2%3aE4&token=%241%2406494421%24rJch2va0aUUd6SexycjqT%2e
[Mon Aug 07 23:06:28 2006] [error] [client 192.168.0.69] Premature end of script headers: login, referer: https://192.168.0.1/
cgi-bin/login?redirect=http%3a%2f%2fwww%2euol%2ecom%2ebr%2f&timeout=1200&gateway=192%2e168%2e0%2e1%3a5280&mac=00%3a40%3aF4%3aD
5%3aE2%3aE4&token=%241%2406494421%24rJch2va0aUUd6SexycjqT%2e
[Mon Aug 07 23:06:28 2006] [error] [client 192.168.0.69] File does not exist: /usr/local/nocat/authserv/htdocs/favicon.ico

[81] Comentário enviado por kassiao em 08/08/2006 - 12:45h

consegui :D
chown nobody(user do apache) /usr/local/nocat -R

[82] Comentário enviado por ultra7 em 26/09/2006 - 15:14h

Ola Patrick!
Parabéns pelo artigo!
Estou fazendo alguns testes com o nocat e me surgiu uma duvida.....
Tem como eu fazer uma excecao? ou melhor, somente marcar os ip's que precisam autenticar no nocat?
Gostaria de autenticar somente os usuarios convidados, o resto fica transparente.

Valeu!!
Abraços

[83] Comentário enviado por patrickbrandao em 27/09/2006 - 12:01h

Infelizmente isso não é possivel no nocat, mas tenho uma ideia:
invoque o arquivo access.fw com os parametros corretos apos iniciar
o nocat, talvez funcione.

[84] Comentário enviado por bernal em 26/10/2006 - 23:56h

Ola pessoal... to com um probleminha na hora de compliar o nocat
olha soh o erro q ele me da:
NoCatAuth-0.82]# make PREFIX=/usr/local/nocat/gw gateway
Looking for gpgv...
Checking for firewall compatibility: No supported firewalls detected! Check your path.
Supported firewalls include: iptables, ipchains, ipf, pf.
Can't seem to find supported firewall software. Check your path?
make: ** [check_fw] Erro 255

[85] Comentário enviado por cyber.rick em 13/11/2006 - 16:08h

Alguem conseguiu instalar o sistema no debian?
instalar eu consegui, mas na hora de executar o apache (/usr/local/apache2/bin/apachectl starssl) dá um erro: THE STARTSSL OPTION IS NO LONGER SUPORTED. PLEASE EDIT HTTPD.CONF TO INCLUDE THE SSL CONFIGURATION SETTINGS AND THEN USE APACHECTL START..
Aparece este erro e não inicia o apache, se dou um: /usr/local/apache2/bin/httdp, ele starta, mas na hora que abro o navegador do client, aparece o seguinte erro:
http 403 - proibido

alguém sabe o q fiz de errado?

em nenhum momento deu erro, exceto na hora de executar o apache.

[86] Comentário enviado por pmsinfo em 30/11/2006 - 17:35h

Estou com problemas na instalação dos modulos perl onde no digest retorna is out date. Como realizo a atualização para poder instalar os modulos corretamente? So o digest::md5 que apresentou esta falha os demais instalaram normalmente. O sistema é fc6.

[87] Comentário enviado por marceloespindola em 02/01/2007 - 09:29h

eu queria saber se esta solução funciona no debian sarge?

[88] Comentário enviado por auditor em 23/02/2007 - 13:08h

O artigo foi escrito pro slackware hehehehe

[89] Comentário enviado por maxwsilva em 18/04/2007 - 12:47h

Alguém sabe como faço para que o NoCatAuth não permita autenticacoes concorrentes? Ou seja, apenas 01 usuário com mesmo nick de cada vez ?

[90] Comentário enviado por marcus_quintella em 21/05/2007 - 09:39h

Olá pessoal!
Alguém conseguiu fazer funcionar no Debian?

[91] Comentário enviado por hantricito em 30/07/2007 - 21:01h

Olá pessoal...
tenho esse erro aí quando faço start da gateway

ncserver:/# /etc/rcS.d/rc.nocat start
Starting the NoCat gateway ...
[2007-07-31 00:38:40] Resetting firewall.
[2007-07-31 00:38:40] Detected InternalDevice 'eth1'
[2007-07-31 00:38:40] Detected ExternalDevice 'eth0'
[2007-07-31 00:38:40] Detected LocalNetwork '192.168.1.0/255.255.255.0'
[2007-07-31 00:38:55] Can't bind to port 5280: Endereço já em uso. (Is another gateway already running?)
Can't call method "sockhost" on an undefined value at /usr/local/nocat/gw/bin/../lib/NoCat/Gateway.pm line 64.

já tentei varias coisas, e continua dando isso
nao sei mais o k fazer... alguem ajuda?


[92] Comentário enviado por joabes em 06/08/2007 - 16:16h

Caros, boa tarde, vejam a situação.

Nocat está funcionando blz, tudo ok, porém surgiu a seguinte situação:

Atraz do server existe um AP e alguns clientes não são visiveis no linux, alguem conseguiu fazer com que o nocat aceite várias autenticações com a mesma mac, isso por que para o linux só existe a mac do AP e não dos clientes, assim posso autenticar os usuários sem problemas.

Abraços
Joabes

[93] Comentário enviado por lucianolbarbosa em 03/10/2007 - 16:45h

Primeiramente quero parabenizar o Patrick pelo ótimo tutorial!
Gostria de saber se alguém teve problema com um erro ocorrido ao tentar abrir a pagina para authenticação no Nocat!

Error: Form not found

Como posso resolve-lo?

grato!

[94] Comentário enviado por carita666 em 09/01/2008 - 18:14h

Hi everyone sorry i was following your post ( http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=7352 ) step to step but i have a problem... when I try to use my user and pass I don't see the pop-up. Ithink that almost all is ok because if I use the option AllowedWebHosts i can use internet
my logs are the next...thanks everyone

hola a todos disculpen estuve siguiendo su post ( http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=7352 ) paso a paso pero tengo un peque;o problema. cuando trato de usar mi usuario y contrasenia no me aparece el pop-up. creo tener todo bien. si uso la opcion AllowedWebHosts puedo navegar el unico problema es que no me aparece el pop-up cuando trato de logearme
mis logs son los siguientes... gracias a todos

ssl_error_log
[warn] RSA server certificate is a CA certificate (BasicConstraints: CA == TRUE !?)
[warn] RSA server certificate CommonName (CN) `localhost.localdomain' does NOT match server name!?
[warn] RSA server certificate is a CA certificate (BasicConstraints: CA == TRUE !?)
[warn] RSA server certificate CommonName (CN) `localhost.localdomain' does NOT match server name!?
[warn] RSA server certificate CommonName (CN) `tecver' does NOT match server name!?
[warn] RSA server certificate CommonName (CN) `tecver' does NOT match server name!?
[error] [client 10.34.122.20] [2008-01-09 10:34:09] User UNKNOWN from 10.34.122.20 requests form
[error] [client 10.34.122.20] File does not exist: /usr/local/nocat/authserv/htdocs/favicon.ico
[error] [client 10.34.122.20] [2008-01-09 10:36:20] User carita666@hotmail.com from 10.34.122.20 requests form, re
ferer: https://10.34.122.1/cgi-bin/login">https://10.34.122.1/cgi-bin/login
[error] [client 10.34.122.20] [2008-01-09 10:36:20] gpg --sign --armor --homedir=/usr/local/nocat/authserv/pgp --k
eyring trustedkeys.gpg --no-tty -o- returned error message:, referer: https://10.34.122.1/cgi-bin/login">https://10.34.122.1/cgi-bin/login
[error] [client 10.34.122.20] gpg: WARNING: unsafe permissions on homedir `/usr/local/nocat/authserv/pgp', referer
: https://10.34.122.1/cgi-bin/login">https://10.34.122.1/cgi-bin/login
[error] [client 10.34.122.20] gpg: Sorry, no terminal at all requested - can't get input, referer: https://10.34.1
22.1/cgi-bin/login
[error] [client 10.34.122.20] Premature end of script headers: login, referer: https://10.34.122.1/cgi-bin/login">https://10.34.122.1/cgi-bin/login
[error] [client 10.34.122.20] [2008-01-09 10:36:45] User UNKNOWN from 10.34.122.20 requests form

error_log
[error] [client ::1] Directory index forbidden by Options directive: /usr/local/nocat/authserv/htdocs/

ssl_error_log
[warn] RSA server certificate is a CA certificate (BasicConstraints: CA == TRUE !?)
[warn] RSA server certificate CommonName (CN) `localhost.localdomain' does NOT match server name!?
[warn] RSA server certificate is a CA certificate (BasicConstraints: CA == TRUE !?)
[warn] RSA server certificate CommonName (CN) `localhost.localdomain' does NOT match server name!?
[warn] RSA server certificate CommonName (CN) `tecver' does NOT match server name!?
[warn] RSA server certificate CommonName (CN) `tecver' does NOT match server name!?
[error] [client 10.34.122.20] [2008-01-09 10:34:09] User UNKNOWN from 10.34.122.20 requests form
[error] [client 10.34.122.20] File does not exist: /usr/local/nocat/authserv/htdocs/favicon.ico
[error] [client 10.34.122.20] [2008-01-09 10:34:19] User carita666@hotmail.com from 10.34.122.20 requests form, referer: https://10.34.122.1/cgi-bin/login">https://10.34.122.1/cgi-bin/login?redirect=http%3a%2f%2fwww%2egoogle%2ecom%2emx%2f&timeout=600&gateway=10%2e34%2e122%2e1%3a5280&mac=00%3a13%3aA9%3a02%3a97%3a1C&token=%241%2499088592%24rfYsi7zu8oORcgglasZcy1
[error] [client 10.34.122.20] [2008-01-09 10:35:24] User UNKNOWN from 10.34.122.20 requests form

nocat.log
Gateway running on port 5280.
Spawning child process 3630.
Connection to 127.0.0.1 from 127.0.0.1
Received notify from 127.0.0.1
Missing notify from 127.0.0.1
Can't capture peer 127.0.0.1 without MAC
Spawning child process 5868.
Notifying parent of Capture on peer 00:13:A9:02:97:1C
Got notification Capture of peer 00:13:A9:02:97:1C
Child process returned 1
Connection to 10.34.122.1 from 10.34.122.20
Capturing 10.34.122.20 for http://gateway.messenger.hotmail.com/gateway/gateway.dll?Action=open&Server=NS&IP=messenger.hotmail....
Notifying parent of Capture on peer 00:13:A9:02:97:1C
Spawning child process 5870.
Got notification Capture of peer 00:13:A9:02:97:1C
Child process returned 1

thanks everyone
gracias a todos

[95] Comentário enviado por joabes em 25/03/2008 - 21:06h

Caros, boa noite.

Alguém sabe como fazer o nocat permitir apenas uma autenticação por usuário?

Atenciosamente
Joabes

[96] Comentário enviado por shirglei em 01/04/2008 - 14:24h

bom demais o artigo.. alguem sabe se tem como "amarrar" o MAC da placa de rede do usuário com seu login e senha. de forma que mesmo que alguem consiga mascarar um MAC de um outro usuário so seja permitido o acesso a ele se a senha e o login corresponder ao MAC cadastrado.

[97] Comentário enviado por unilson em 07/05/2008 - 20:25h

Alguém sabe de um sistema semelhante à esse mas que faça controle de tempo de acesso por usuário?

Precisamos de algo semelhante ao "Getho" ou "Timer Café" for RuWindows.

Obrigado pela atenção.

Unilson Rangel.

[98] Comentário enviado por emilsonribeiro em 04/12/2008 - 10:41h

Você sabe dizer se é possível implementar SSL na autenticação e navegação do usuário para prover segurança de criptografia na rede sem fio?

Obrigado.

[99] Comentário enviado por fernandocesario em 22/03/2009 - 23:39h

Senhores,

Eth1=Lan/Saida de Internet
Eth0=REDE WIFI

Ao tentar implementar a solucao no Debian 4 ETC tendo alguns problemas como por exemplo nao consigo acesso a pagina de login e senha para me autenticar e sair pela rede wireless.

Quando eu vo abrir o browser que ele direciona pra pra porta ssl(443) o browser me retorna o seguinte erro:
"O ssl recebeu um registro que excedia o comprimento maximo permitido"
(codigo do erro:ssl_error_rx_record_too_long)

Perdi um bom tempo tentando ver ser era algo no certificado, porem tenho uma grande desconfianca que o problema e o firewall pelo fato de na hora de executar o script de incialiacao do firewall ele me da o seguinte erro:

"The "nat" table is not intended for filtering, hence the use of drop is deprecated and will permanently be disable in the next iptables release.Please adjust your scripts"

Abaixo o resultado do IPTABLES -L :

wifi:~# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination
NoCat all -- anywhere anywhere

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Chain NoCat (1 references)
target prot opt source destination
NoCat_Ports all -- anywhere anywhere
NoCat_Inbound all -- anywhere anywhere
ACCEPT all -- 192.168.101.0/24 anywhere mark match 0x1
ACCEPT all -- 192.168.101.0/24 anywhere mark match 0x2
ACCEPT all -- 192.168.101.0/24 anywhere mark match 0x3
ACCEPT tcp -- 192.168.101.0/24 192.168.101.1 tcp dpt:www
ACCEPT tcp -- 192.168.101.1 192.168.101.0/24 tcp spt:www
ACCEPT tcp -- 192.168.101.0/24 192.168.101.1 tcp dpt:https
ACCEPT tcp -- 192.168.101.1 192.168.101.0/24 tcp spt:https
ACCEPT all -- 192.168.101.1 192.168.101.0/24
ACCEPT tcp -- 192.168.101.0/24 192.168.101.1 tcp dpt:domain
ACCEPT udp -- 192.168.101.0/24 192.168.101.1 udp dpt:domain
ACCEPT all -- 192.168.10.3 192.168.101.0/24
ACCEPT tcp -- 192.168.101.0/24 192.168.10.3 tcp dpt:domain
ACCEPT udp -- 192.168.101.0/24 192.168.10.3 udp dpt:domain
DROP tcp -- !192.168.101.1 anywhere tcp dpt:5280
DROP all -- anywhere anywhere

Chain NoCat_Inbound (1 references)
target prot opt source destination

Chain NoCat_Ports (1 references)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh mark match 0x3
ACCEPT udp -- anywhere anywhere udp dpt:ssh mark match 0x3
ACCEPT tcp -- anywhere anywhere tcp dpt:www mark match 0x3
ACCEPT udp -- anywhere anywhere udp dpt:www mark match 0x3
ACCEPT tcp -- anywhere anywhere tcp dpt:https markmatch 0x3
ACCEPT udp -- anywhere anywhere udp dpt:https markmatch 0x3
ACCEPT tcp -- anywhere anywhere tcp dpt:5280
ACCEPT udp -- anywhere anywhere udp dpt:5280
DROP tcp -- anywhere anywhere mark match 0x3
DROP udp -- anywhere anywhere mark match 0x3

Peco ajuda a comunidade pra que em seguida eu faca um artigo da configuracao para o Debian.

[100] Comentário enviado por andrebisinoto em 12/05/2009 - 11:47h

Olá

Estou seguindo o tutorial e estou com as seguintes problemas:

- Consigo fazer o registro de usuários, mas não consigo acessar a internet em uma máquina da rede.

- O programa /usr/local/nocat/gw/bin/admintool retorna com os seguintes erros quando eu tento cadastrar um usuário:
[2009-05-12 10:53:36] Missing UserIDField directive required for NoCat::User object!
[2009-05-12 10:53:36] Missing UserPasswdField directive required for NoCat::User object!
[2009-05-12 10:53:36] Missing Database directive required for NoCat::Source::DBI object!
[2009-05-12 10:53:36] Missing DB_User directive required for NoCat::Source::DBI object!
[2009-05-12 10:53:36] Missing DB_Passwd directive required for NoCat::Source::DBI object!
[2009-05-12 10:53:36] Missing UserTable directive required for NoCat::Source::DBI object!
[2009-05-12 10:53:36] Missing UserIDField directive required for NoCat::Source::DBI object!
[2009-05-12 10:53:36] Missing GroupTable directive required for NoCat::Source::DBI object!
[2009-05-12 10:53:36] Missing GroupIDField directive required for NoCat::Source::DBI object!
[2009-05-12 10:53:36] Missing GroupAdminField directive required for NoCat::Source::DBI object!
Can't connect to data source '' because I can't work out what driver to use (it doesn't seem to contain a 'dbi:driver:' prefix and the DBI_DRIVER env var is not set) at /usr/local/nocat/gw/bin/../lib/NoCat/Source/DBI.pm line 18

Estou em uma máquina Debian, com o perl 5.8.8, apache 2.2.3.

Agradeço a atenção

[101] Comentário enviado por pardz em 09/06/2009 - 17:28h

Excelente Artigo!!!

Consegui instalar o Nocat sem problemas.

Agora estou com uma dúvida.
Eu não quero deixar para que os clientes se registrem para acessar, quero apenas fornecer um usuario e uma senha aleatoria que expira em X horas. Fiz um PHP que grava no banco tudo isso que eu quero, exceto o Password, por causa da criptografia usada.
Eu não sei qual é a criptografia que o Nocat usa, se soubesse isso ja poderia pesquisar como faria pro PHP traduzir.

Um exemplo de senha criada por ele: lueSGJZetyySpUndWjMBEg
essa senha seria: 111111
(6 vezes o numero 1)

Que criptografia é essa?

[102] Comentário enviado por ntserv em 06/08/2010 - 19:11h

Cara Parabéns!! Eu tive sucesso com este artigo instalei no Fedora 13 e funcionou tudo.

Passei raiva um pouco nas dependências mais no final deu tudo certo..

[103] Comentário enviado por nelson junior em 18/10/2010 - 15:40h

como instalar o nocatauth no ubunto? em qual pasta colocar o arquivo ?
esses modelos de perl que estao no tutorial são os mesmos para o ubunto?
se vc poder me responder, muito obrigado amigo!!!

[104] Comentário enviado por fabiorvs em 08/11/2010 - 21:06h

Ola pessoal, uso nocat a um bom tempo e tenho uma duvida, é possivel gerar um log com a data, login, mac, ip do usuario? preciso gerar esse tipo de log por dia.

Muito obrigado pela ajuda

[105] Comentário enviado por raphaeldelucena em 11/11/2011 - 14:24h

Cara, excelente artigo!!!

Só que como sou novato em Linux, preciso de uma ajuda que pode parecer ridicula...

Quando tento startar o DHCP no Ubuntu, aparece a seguinte mensagem:

dhcpd self-test failed. Please fix the config file.
The error was:
Internet Systems Consortium DHCP Server V3.1.3
Copyright 2004-2009 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
bad range, address 192.168.10.12 not in subnet 192.168.10.10 netmask 255.255.255.255
root@nocat:~#

assim está no meu dhcpd.conf:

# A slightly different configuration for an internal subnet.
subnet 192.168.10.10 netmask 255.255.255.254 {
range 192.168.10.10 192.168.10.200;
option domain-name-servers 192.168.10.10,200.149.45.142 ;
# option domain-name "internal.example.org";
option routers 192.168.10.10;
option broadcast-address 192.168.10.255;
default-lease-time 600;
max-lease-time 7200;

ME AJUDA AE!! rsrsrs...

[106] Comentário enviado por jorgerabello em 20/10/2015 - 19:20h

Olá ao tentar acessar

http://www.vivaolinux.com.br/artigo/NoCatAuth-Construindo-um-firewall-gateway-autenticado?pagina=1

Não consigo fazer o download dá Not Found.....

Alguém tem alguma solução ?

Grato !


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts