# Modulo de autenticacao Hostspost pra ser usado com o SGCU
# Clecio Rodrigo
# http://www.cleciorodrigo.eti.br - cleciorodrigo@gmail.com
#
# Este sistema tem como base o SisCaPI - Sistema de Captura de Pagina Inicial
# Agradecimentos:
# Marcus Roberto Lima Almeida - kalamat@gmail.com
# http://wwmarcus.cjb.net
#
# O uso deste sistema e aberto ninguem pode cobrar nenhum centavo por ele
#
# Gostaria de lembrar que o SGCU e software de Gerenciamento de Usuarios para Provedores de Internet, e que este sistema
# visa apenas adicionar maiores recursos a ele e ao mesmo tempo servir a comunidade ja que todo o codigo deste sistema e de 
# uso de toda comunidade!!!
#
# Seja livre use linux!!!
#
# Pessoal breve estaremos tendo o SisCaPI:
#   Cadastro de Cliente 
#   Planos / Servicos 
#   Autenticacao 
#   Interface web pra administracao
#

Este sistema foi desenvolvido para facilitar aqui no provedor o controle de clientes, junto ao sistema financeiro do SGCU.
Resolvi desenvolver este pequeno modulo de autenticacao depois de ver alguns exemplos de Captive portal, tentei muito usar o NoCAT porem sem sucesso, NatACL .... foi entao que procurando na internet achei o SisCaPI.
Este sistema visa capturar a pagina do usuario, redireciona-lo para pagina de login, e verificar os seguintes itens junto ao banco de dados do SGCU (www.vigo.com.br):

-> usuario
-> senha
-> ip
-> mac
-> situacao (liberado ou bloqueado)

Apos o login o usuario pode ser redireciona pra uma pagina especifica ou para o site que estava tentando acessar.
O uso do sistema junto com o SGCU, no meu caso aqui agilizou bastante o trabalho e manutencao de clientes junto ao sistema financeiro, pois o cliente e obrigado a efetuar login diariamente.

O sistema efetuar apos o login regras de MAC x IP aumentado assim a seguranca da rede, e garantindo que apenas o cliente tem acesso aos servicos do provedor.

Requisitos:

Apache
php, php-mysql
iptables
bind
sudo

Vamos colocar a mao na massa.

Descompacte o conteudo do arquivo hostspot.zip
# unzip -x hostspot.zip

Acesse o diretorio hostspot
# cd hostspot/

Liste o conteudo do diretorio
# ls

Serao exibidos os seguintes diretorios
#cgi-bin
#config
#login

O diretorio cgi-bin contem o arquivo authstatus.cgi, este arquivo le o arquivo de log e o exibi, copie para a pasta cgi-bin do seu apache
# cp cgi-bin/authstatus.cgi /var/www/cgi-bin/

Agora de permissao de execucao
# chmod +x /var/www/cgi-bin/authstatus.cgi

Acesse o diretorio config
# cd config/

Liste o conteudo deste diretorio
#rc.firewall 
#sudoers
#virtualhost

Copie o arquivo rc.firewall
# cp rc.firewall /etc/rc.d/

Agora de permissao de execucao
# chmod +x /etc/rc.d/rc.firewall

Vamos agora criar o arquivo firewall-ips, este arquivo deve conter os IPs dos clientes um por linha. Este arquivo sera lido pelo script de firewall
# touch /etc/rc.d/firewall-ips

No caso para cadastrar os IPs use qualquer editor VI, MCEDIT...
Agora vamos editar o arquivo sudoers

# vim /etc/sudoers

Acrescente o conteudo abaixo a este arquivo, lembrando que o usuario do meu webserver e apache, troque de acordo com o usado por sua distribuicao

## Sistema de autenticacao
apache ALL=(root) NOPASSWD: /sbin/iptables
apache ALL=(root) NOPASSWD: /sbin/arp
apache ALL=(root) NOPASSWD: /bin/echo
apache ALL=(root) NOPASSWD: /bin/rm

Se preferir basta executar o comando abaixo ele ja adiciona o conteudo do arquivo sudoers no final do arquivo /etc/sudoers
# cat sudoers >> /etc/sudoers

Vamos criar o arquivo de log
# mkdir /var/log/weblogin/

Agora criaremos o arquivo de log
# touch /var/log/weblogin/weblogin.log

Vamos dar permissao pro usuario do apache
# chown apache.apache /var/www/weblogin/ -R

Estamos quase terminando, agora vamos copiar o conterio arquivo virtualhost pro arquivo de configuracao do apache
# cat virtualhost >> /etc/httpd/conf/httpd.conf

Vamos copiar agora o diretorio login, 
# cp login/ /var/www/ -R

Acesso o diretorio login onde ele foi copiado
# cd /var/www/login/

Edite o arquivo config.php
# vim config.php

Acesse o diretorio Connections
# cd Connections/

Edite o arquivo Conexao.php, 
# vim Conexao.php

Pronte seu sistema ja esta configurado basta reiniciar o seu apache e executar o script de firewall
