Configurando o HotSpot (juanillo)

Tutoriais BrazilFW 2.x em Português

Configurando o HotSpot (juanillo)

Mensagempor mouseecia » Qua Abr 07, 2010 11:05 am

Receita de bolo...

1-instale normalmente o pacote Hotspot do juanillo
2-coloque ele p funcionar:
edit configurations file (criar um usuario)
nome_do_usuario senha IP_do_usuario
ou simplesmente clique em add user e adicione um usuario
lembrando q se vc colocar ALL no lugar do ip, o hotspot irá controlar toda(s) rede(s) ou subrede(s) q vc atribuiu a ele
3-Clica em edit subnet configuratios file
coloque as redes ou subredes q o hotspot irão controlar:
10.0.0 2 254 eth0
******| | | |____Adaptador da subrede
******| | |_______final da faixa de ips q o hotspot irá controlar
******| |__________inicio da faixa de ips q o hotspot irá controlar
******|___________IP da subrede a ser controlada (os ultimos bits ficam fora mesmo)
Neste exemplo acima, o hotspot irá controlar a subrede 10.0.0.1 de 10.0.0.2 até 10.0.0.254 (toda subrede) q esta em eth0

4-clica em edit variables.conf file
port=777 (porta em q o hotspot será usado)
URL_REDIRECT=http://www.google.com.br (toda vez q um usuario logar-se irá ser redirecionado para esta url, pode ser qquer uma )

5-em configuração simplificada do firewall>editar regras personalizadas, adicionar esta linha:
/hotspot/hotspot
esta linha serve p recarregar o hotspot toda vez q o BFW for reiniciado ou o firewall for recarregado

6-faça backup e reinicie o BFW

******ATÉ AQUI SEU HOTSPOT JA ESTA PRONTO PARA FUNCIONAR*********************


Agora as mudanças q este tópico Propôs (Corrigindo falhas):

1-no hotspot edite index.cgi file (/hotspot/http/cgi-bin/index.cgi )
edite a linha 56:
<p align='center' class='style5'><a href="http://$HOSTNAME:$port/login.cgi">Continuar / Go</a><br />
esta linha deverá conter o nome do seu hostname e não o IP, ela tem q estar assim:
<p align='center' class='style5'><a href="http://brazilfw.local.net:$port/login.cgi">Continuar / Go</a><br />
Se o seu hostname(brazilfw.local.net) for outro deverá colocar esta linha de acordo c ele.

2-adicione o conteudo do arquivo continua.cgi dentro do login.cgi, não se esqueça de deletar o arquivo continua.cgi. O arquivo login.cgi tem q ficar assim:
Código: Selecionar todos
#!/bin/sh

. /var/http/web-functions
. /etc/coyote/coyote.conf
. /tmp/netsubsys.state
. /hotspot/variables.conf


showform(){
cat << CLEOF
<html>
<head>

<meta http-equiv="Expires" content="0">

<meta http-equiv="Last-Modified" content="0">

<meta http-equiv="Cache-Control" content="no-cache, mustrevalidate">

<meta http-equiv="Pragma" content="no-cache">

<title>
HotSpot
</title>
</head>
<body>
<div align="center">
<p> </p>
   <p> </p>
<form method="POST" action="login.cgi">
   <table border="0" width="35%" cellspacing="1">
      <tr>
         <td colspan="2" bgcolor="#000080">
         <p align="center"><b><font color="#FFFFFF" face="Arial Black">
         HOTSPOT</font></b></td>
      </tr>
      <tr>
         <td bgcolor="#6699FF" width="31%">
         <font color="#FFFFFF" face="Arial Black" size="2">Usuario</font></td>
         <td width="66%" bgcolor="#6699FF"><input type=text name=USUARIO value=""></td>
      </tr>
      <tr>
         <td bgcolor="#6699FF" width="31%">
         <font color="#FFFFFF" face="Arial Black" size="2">Password</font></td>
         <td width="66%" bgcolor="#6699FF"><input type=password name=PASSWORD value=""></td>
      </tr>
      <tr>
         <td colspan="2" align="center"><input type=submit value="OK" name=OKBTN></td>
      </tr>
   </table>
</form>
</div>


</body>
</html>

CLEOF

}

continua()
{
/hotspot/http/cgi-bin/eliminaregla $REMOTE_ADDR

cat << CLEOF

<html>
<head>

<meta http-equiv="Expires" content="0">

<meta http-equiv="Last-Modified" content="0">

<meta http-equiv="Cache-Control" content="no-cache, mustrevalidate">

<meta http-equiv="Pragma" content="no-cache">

<META HTTP-EQUIV="REFRESH" CONTENT = "0; URL=$URL_REDIRECT">
<title>
HotSpot
</title>
</head>
<body>

</body>
</html>

CLEOF
}

valido(){

cat << CLEOF
<html>
<head>
<meta http-equiv="Expires" content="0">

<meta http-equiv="Last-Modified" content="0">

<meta http-equiv="Cache-Control" content="no-cache, mustrevalidate">

<meta http-equiv="Pragma" content="no-cache">


<title>
HotSpot
</title>
</head>
<body>

</body>
</html>

CLEOF
continua
}

invalido(){

cat << CLEOF
<html>
<head>
<meta http-equiv="Expires" content="0">
<meta http-equiv="Last-Modified" content="0">

<meta http-equiv="Cache-Control" content="no-cache, mustrevalidate">

<meta http-equiv="Pragma" content="no-cache">
<META HTTP-EQUIV="REFRESH" CONTENT = "5; URL=login.cgi">

<title>
HotSpot
</title>
</head>
<body>
<br />
<br />
<br />
<br />
<div align="center">
    <strong>Password or User Error !!!</strong>
<div>
</body>
</html>

CLEOF
}


case "$FORM_OKBTN" in
        "OK")
   PASS=`cat /hotspot/hotspot.conf |grep $FORM_USUARIO |cut -f 2 -d \  `
   IP=`cat /hotspot/hotspot.conf |grep $FORM_USUARIO |cut -f 3 -d \  `
   #echo $PASS $FORM_PASSWORD $IP $REMOTE_ADDR > nada.txt
   
   if [ "$PASS" = "@" ]; then
       echo "$(date) OK  $FORM_USUARIO $REMOTE_ADDR" >> /hotspot/login.log
       valido
   else
       if [ "$PASS" = "$FORM_PASSWORD" ]; then
      if [ "$IP" = "ALL"  ]; then
          echo "$(date) OK  $FORM_USUARIO $REMOTE_ADDR" >> /hotspot/login.log
          valido
      else
              if [ "$IP" = "$REMOTE_ADDR"  ]; then
         echo "$(date) OK  $FORM_USUARIO $REMOTE_ADDR" >> /hotspot/login.log
         valido
          else
         echo "$(date) ERR $FORM_USUARIO $REMOTE_ADDR" >> /hotspot/login.log
         invalido
          fi
      fi
       else
      echo "$(date) ERR $FORM_USUARIO $REMOTE_ADDR" >> /hotspot/login.log
      invalido
       fi
   fi
        ;;
   *)
            showform
   ;;
esac



3-Crie um arquivo(script) c o nome /hotspot/conn tendo o seguinte conteúdo:


Código: Selecionar todos
#!/bin/sh

. /etc/coyote/coyote.conf
. /hotspot/variables.conf

tab_arp='/hotspot/tab_arp.tmp'
compara_arp='/hotspot/compara_arp.tmp'
ip_off='/hotspot/ip_off.tmp'
#
echo " " > $tab_arp
cat /proc/net/arp | grep 10.0.0 | cut -c1-15 > $tab_arp
#
conta_arp=`cat $tab_arp | sort | wc -l`
conta_comp=`cat $compara_arp | sort | wc -l`
#
if test "$conta_arp" -gt  "$conta_comp"  ; then
cp $tab_arp $compara_arp
echo " " > $ip_off
fi
#
if test "$conta_arp" -lt "$conta_comp" ; then
for line in `cat $tab_arp` ; do
sed -i "/$line/d" $compara_arp
done
cp $compara_arp $ip_off
cp $tab_arp $compara_arp
fi

##########################################
############desativa todos os ips off-line
##########################################

cat $ip_off | while read line; do

COMMAND1="/usr/sbin/iptables -t nat -A PREROUTING -i eth0 -p tcp -s 10.0.0.$line -j DNAT --to-destination $LOCAL_IPADDR:$port"
echo "$COMMAND1"
$COMMAND1

   echo ""
done

#
#
if test "$conta_arp" -eq "$conta_comp" ; then
echo " " > $ip_off
fi

echo""
echo "Listando tab_arp.tmp..."
echo""
cat /hotspot/tab_arp.tmp
echo""
echo "Listando compara_arp.tmp..."
echo""
cat /hotspot/compara_arp.tmp
echo""
echo "Listando a diferença entre tab_arp.tmp e compara_arp.tmp(ip_off.tmp)..."
echo""
cat /hotspot/ip_off.tmp
echo""



na linha 11 (cat /proc/net/arp | grep 10.0.0 | cut -c1-15 > $tab_arp) note q vc deverá colocar o IP da sua rede a ser controlada, se for varias redes tem q ter um script desses p cada uma.

Crie os seguintes arquivos (conteúdo vazio) nos seguintes endereços:
/hotspot/tab_arp.tmp
/hotspot/compara_arp.tmp
/hotspot/ip_off.tmp

Note q na linha 35 (COMMAND1="/usr/sbin/iptables -t nat -A PREROUTING -i eth0 -p tcp -s $line -j DNAT --to-destination )
esta se referindo a placa de rede eth0, se sua rede for em outro adaptador, tem q mudar esse parametro aí.

4-Agora de permissão para esse script poder rodar:
chmod +x conn (tem q estar na pasta /hotspot pdar essa permissão a esse arquivo)

5-Coloque esse script p executar a cada 10 minutos: (ou o tempo q vc preferir)
vá nas tarefas agendadas e adicione:
0,10,20,30,40,50 * * * * /hotspot/conn

Pronto!!!

Faça backup e reinicie.
mouseecia
 

Voltar para BrazilFW 2.x

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante