Guia rápido de instalação do NoCat ==== ====== == ========== == ===== Este guia tem como objetivo informar os passos necessários para uma instalação rápida do NoCat em um único computador. Para isto, ambos os serviços "gateway" e "authserv" do NoCat devem ser configurados. O servico "gateway" intercepta acessos não autenticados e os redireciona para o serviço "authserv". Este apresenta uma página de entrada (login), onde se deve fornecer um usuário e senha. Em seguida o authserv faz a verificação dessas credenciais, informando o resultado de volta para o "gateway". Caso a autenticação tenha tido sucesso, o "gateway" libera o acesso do usuário, que pode assim usar a rede a vontade. O "gateway" explora o firewall do Linux (conhecido como Netfilter, e cuja configuração se faz com o utilitário iptables) para redirecionar os acessos e para liberar os usuários autenticados. A liberação dos clientes autenticados se faz baseada em seus endereços MAC. Assim, todo cliente cujo MAC não esteja liberado pelo "gateway" é automaticamente redirecionado para o serviço de autenticação "authserv". O serviço "authserv" é implantado por um script CGI executado no Apache. Esse script apresenta uma tela de login para usuários não autenticados, na qual se podem digitar o nome de usuário e sua senha. A autenticação de fato se faz consultando arquivos de usuários (método Passwd) ou um banco de dados MySQL (método Mysql). Se a autenticação tiver sucesso, o serviço informa para o "gateway" o grupo a que o usuário pertence. Passos para instalar o NoCat ====== ==== ======== = ===== 1. Obtenha o código fonte do NoCatAuth, cujo link está na Wiki. 2. Descompacte o código fonte: tar xzf NoCatAuth-nightly.tar.gz 3. Entre no diretório do NoCatAuth e instale o "gateway" e o "authserv": cd NoCatAuth-nightly make gateway make PREFIX=/usr/local/nocat/authserv authserv Após esses comandos, o "gateway" estará instalado em /usr/local/nocat, e o "authserv" estará em "/usr/local/nocat/authserv". Execute em seguida o seguinte comando: make PREFIX=/usr/local/nocat/authserv pgpkey Forneça os dados solicitados, mas quando for pedida uma senha ("passphrase") apenas tecle ENTER. 4. Edite o arquivo de configuração do "gateway": /usr/local/nocat/nocat,conf. Atente para os seguintes parâmetros de configuração: AuthServiceAddr endereço_IP_do_gateway Esse deve ser o próprio endereço IP do seu servidor, uma vez que o authserv irá rodar no mesmo computador que o gateway. AuthServiceURL http://$AuthServiceAddr/cgi-bin/login Ponha este parâmetro exatamente como mostrado acima. Na configuração original se diz que deve ser uma URL do tipo https, mas como o authserv e o gateway rodarão no mesmo computador, isto não é necessário. LogoutURL http://$AuthServiceAddr/logout.html Ponha este parâmetro exatamente como mostrado acima, pelo mesmo motivo que AuthServiceURL. AllowedWebHosts endereço_IP_do_gateway RouteOnly 1 Defina os parâmetros acima como mostrado. 5. Execute o gateway, usando este comando: /usr/local/nocat/bin/gateway Caso tudo dê certo, você deve ver algo parecido com as seguintes linhas: [2009-11-29 19:51:53] Resetting firewall. [2009-11-29 19:51:53] Detected InternalDevice 'eth1' [2009-11-29 19:51:53] Detected ExternalDevice 'eth0' [2009-11-29 19:51:53] Detected LocalNetwork '192.168.1.0/255.255.255.0' [2009-11-29 19:51:55] Binding listener socket to 0.0.0.0 6. Edite o arquivo de configuração do "authserv": /usr/local/nocat/authserv/nocat,conf. Atente para os seguintes parâmetros de configuração: DocumentRoot /usr/local/nocat/authserv/htdocs DataSource Passwd O parâmetro acima escolhe o método Passwd para armazenar usuários e senhas. UserFile /usr/local/nocat/authserv/etc/passwd GroupUserFile /usr/local/nocat/authserv/etc/group GroupAdminFile /usr/local/nocat/authserv/etc/groupadm Os parâmetros acima informam onde se encontram os arquivos com usuários e suas senhas, e também os grupos. LocalGateway endereço_IP_do_gateway Deve ser definido para o caso de rodar o authserv no mesmo computador que o gateway. 7. Configure o Apache para que possa executar o script CGI do authserv. A seguinte linha deve ser incluída na configuração do servidor default do Apache (ou no Virtual Host default, que no Ubuntu fica no arquivo /etc/apache2/sites-enabled/000-default): Include /usr/local/nocat/authserv/httpd.conf Não esqueça de habilitar a execução de CGI no Apache, e de reiniciá-lo para que releia sua configuração. 8. Copie o arquivo /usr/local/nocat/authserv/trustedkeys.gpg para o diretório /usr/local/nocat/pgp. Em seguida execute: chown -R www-data /usr/local/nocat/authserv/trustedkeys.gpg chown -R www-data /usr/local/nocat/authserv/pgp chmod 600 chown -R www-data /usr/local/nocat/pgp 9. Adicione usuários ao authserv com o seguinte comando: /usr/local/nocat/authserv/bin/admintool -c usuário senha /usr/local/nocat/authserv/bin/admintool -a usuário Nome_de_um_grupo Obs: grupos são usados no gateway para identificar conjuntos de usuários que podem ter acesso à rede. No nosso caso, basta um único grupo. 10. Teste a instalação. Ponha um computador na rede protegida (rede interna do NoCat), e tente acessar algum sítio. Você deverá ver a página de login do NoCat. Forneça então o usuário e senha cadastrados no passo 9, e veja se o NoCat autorizou o acesso. Caso não, confira a senha digitada. Se o problema persistir, veja o log do NoCat (/usr/local/nocat/nocat.log) e do Apache. 11. Você pode (e deve !) personalizar as telas da autenticação do NoCat. Veja os seguintes parâmetros da configuração do authserv (estã no final do arquivo /usr/local/nocat/authserv/nocat.conf) : Os parâmetros abaixo indicam os templates (modelos de páginas) das telas do authserv: # Auth service template names. See the individual templates # for details on what each one does. # LoginForm login.html LoginOKForm login_ok.html FatalForm fatal.html ExpiredForm expired.html RenewForm renew.html PassiveRenewForm renew_pasv.html RegisterForm register.html RegisterOKForm register_ok.html RegisterFields name url description UpdateForm update.html UpdateFields url description Os parâmetros abaixo são as mensagens mostradas em telas do authserv. O ideal seria traduzi-las ... ###### Auth service user messages. Should be self-explanatory. # LoginGreeting Greetings! Welcome to the NoCat Network. LoginMissing Please fill in all fields! LoginBadUser That e-mail address is unknown. Please try again. LoginBadPass That e-mail and password do not match. Please try again. LoginBadStatus Sorry, you are not a registered co-op member. RegisterGreeting Welcome! Please enter the following information to register. RegisterMissing Name, E-mail, and password fields must be filled in. RegisterUserExists Sorry, that e-mail address is already taken. Are you already registered? RegisterBadUser The e-mail address provided appears to be invalid. Did you spell it correctly? RegisterInvalidPass All passwords must be at least six characters long. RegisterPassNoMatch The passwords you provided do not match. Please try again. RegisterSuccess Congratulations, you have successfully registered.