Hotspot - Atualização - CoovaChilli

Criei um artigo rápido que constitui na atualização, ou melhor, na instalação da versão mais nova do CoovaChilli. Espero que gostem!

[ Hits: 32.251 ]

Por: André Santos em 18/12/2012


Firewall e ajustes finais



Crie um arquivo assim:

# touch /etc/init.d/firewall

Cole o conteúdo abaixo dentro deste arquivo, altere conforme as suas necessidades

#!/bin/bash
#
### BEGIN INIT INFO
# Provides: firewall
# Required-Start: $network
# Required-Stop: $network
# Default-Start: S
# Default-Stop: 0 1 6
# Short-Description: Provides Firewall Rules based on Iptables IPV4
### END INIT INFO
#
IFACEWAN=eth1
IFACECOOVA=eth0
NETCOOVA=10.1.0.0/24
#
## RULES STARTS -->

# Chains off CoovaChilli ...
iptables -N coova-INPUT &> /dev/null
iptables -N coova-FORWARD &> /dev/null
iptables -t mangle -N coova-FORWARD &> /dev/null
iptables -t nat -N coova-PREROUTING &> /dev/null

# Active traffic on Interfaces
echo 1 > /proc/sys/net/ipv4/ip_forward

# disabling Reverse Path Filter used to check if the
# packets are leaving the server are returns by same interface ...
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter

# Load Module IpTable
modprobe iptable_nat


#####################
# FILTER INPUT RULES
#####################

# DEFAULT POLICY TO INPUT PACKETS AND CLEAN RULES
iptables -t filter -F INPUT
iptables -t filter -P INPUT ACCEPT
iptables -t filter -P INPUT DROP

# SSH Accept Everything
iptables -t filter -A INPUT -p tcp --dport 22 -j ACCEPT

# Ping - ICMP packets
iptables -t filter -A INPUT -p icmp -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT -p icmp --icmp-type destination-unreachable -j ACCEPT
iptables -A INPUT -p icmp --icmp-type time-exceeded -j ACCEPT

# Established outgoing TCP connections
iptables -t filter -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

# Local and Loopback
iptables -t filter -A INPUT -i lo -j ACCEPT
iptables -t filter -A INPUT -s 127.0.0.0/8 -j ACCEPT

# from proto & port
iptables -t filter -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -t filter -A INPUT -p udp --dport 53 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT

# DHCP
iptables -t filter -A INPUT -p tcp --dport 67:68 -j ACCEPT
iptables -t filter -A INPUT -p udp --dport 67:68 -j ACCEPT

# Coova
iptables -A INPUT -j coova-INPUT

# Fecha conexao na Interface de acesso ao Hotspot
iptables -t filter -A INPUT -i ${IFACECOOVA} -j DROP
iptables -t filter -A INPUT -s ${NETCOOVA} -j coova-INPUT


#######################
# FILTER FORWARD RULES
#######################

# DEFAULT POLICY TO FORWARD PACKETS AND CLEAN RULES
iptables -t filter -F FORWARD
iptables -t filter -P FORWARD ACCEPT

# Established TCP connections
iptables -t filter -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

# Coova
iptables -A FORWARD -j coova-FORWARD

# Bloqueia pacotes vindos do Hotspot destinados as redes ADM
iptables -t filter -A FORWARD -o ${IFACECOOVA} -j DROP
iptables -t filter -A FORWARD -i ${IFACECOOVA} -j DROP
iptables -t filter -A FORWARD -s ${NETCOOVA} -p tcp --dport 53 -j ACCEPT
iptables -t filter -A FORWARD -s ${NETCOOVA} -p udp --dport 53 -j ACCEPT


#######################
# NAT PREROUTING RULES
#######################

# DEFAULT POLICY TO NAT PREROUTING PACKETS AND CLEAN RULES
iptables -t nat -F PREROUTING

# Nao faz nat para redes locais
LOCALNET="192.168.0.0/16 172.16.0.0/12 10.0.0.0/8"
for n in ${LOCALNET}; do
iptables -t nat -A PREROUTING -s ${n} -d 192.168.0.0/16 -j RETURN
iptables -t nat -A PREROUTING -s ${n} -d 172.16.0.0/12 -j RETURN
iptables -t nat -A PREROUTING -s ${n} -d 10.0.0.0/8 -j RETURN
done

# Nat CoovaChilli
iptables -t nat -A PREROUTING -j coova-PREROUTING


########################
# NAT POSTROUTING RULES
########################

# DEFAULT POLICY TO NAT POSTROUTING PACKETS AND CLEAN RULES
iptables -t nat -F POSTROUTING

# Nao faz nat para redes locais
LOCALNET="192.168.0.0/16 172.16.0.0/12 10.0.0.0/8"
for n in ${LOCALNET}; do
  iptables -t nat -A POSTROUTING -s ${n} -d 192.168.0.0/16 -j RETURN
  iptables -t nat -A POSTROUTING -s ${n} -d 172.16.0.0/12 -j RETURN
  iptables -t nat -A POSTROUTING -s ${n} -d 10.0.0.0/8 -j RETURN
done

# Mascara Qualquer saida para a Internet
iptables -t nat -A POSTROUTING -o ${IFACEWAN} -j MASQUERADE


##########################
# MANGLE PREROUTING RULES
##########################

# MANGLE PREROUTING PACKETS AND CLEAN RULES
iptables -t mangle -F PREROUTING


#######################
# MANGLE FORWARD RULES
#######################

# MANGLE FORWARD PACKETS AND CLEAN RULES
iptables -t mangle -F FORWARD

# Mangle CoovaChilli
iptables -t mangle -A FORWARD -j coova-FORWARD

######################
# MANGLE OUTPUT RULES
######################

# MANGLE OUTPUT PACKETS AND CLEAN RULES
iptables -t mangle -F OUTPUT

###########################
span class="comentario"># MANGLE POSTROUTING RULES
###########################

# MANGLE POSTROUTING PACKETS AND CLEAN RULES
iptables -t mangle -F POSTROUTING

exit 0

Download do código acima: firewall.coova

Torne-o executável:

# chmod gu+x /etc/init.d/firewall

Ative-o na inicialização do sistema:

# insserv -vf firewall

NOTA: Se o comando acima não for encontrado, instale-o com: apt-get install insserv

Agora pode iniciar o firewall:

# /etc/init.d/firewall

E reiniciamos o Coova:

# /etc/init.d/chilli restart

Lembre-se, para fazer logout, deve-se digitar na barra de endereços do cliente: http://logout

Agora é só usar!

Considerações finais

Tenho que dizer aqui que tenho me empenhado, mas ando sem tempo, prometo que quando passar a fase dos preparativos e o casamento, volto a postar mais!

Dica importante:

"Nem olhos viram, nem ouvidos ouviram, nem jamais penetrou em coração humano o que Deus tem preparado para aqueles que o amam. " - 1 Coríntios 2.9

Abraço e fiquem com Deus!

Página anterior    

Páginas do artigo
   1. Instalação do Coova
   2. Configuração do Coova
   3. Firewall e ajustes finais
Outros artigos deste autor

Firewall funcional de fácil manipulação

Hotspot rápido com Coovachilli

Leitura recomendada

Balanceamento de carga entre 2 placas de rede

Bloqueando o UltraSurf e o WebMessenger do Hotmail com Proxy Transparente

Squid/IPtables - Bloqueando Facebook e personalizando IP de acesso irrestrito (definitivo)

Bloqueando programas P2P com iptables

Criando um Firewall transparente com Bridges no Debian Etch

  
Comentários
[1] Comentário enviado por removido em 18/12/2012 - 19:15h

Parabens pelo post. Está bem explicado e fácil de intender. Meu TCC foi a respeito do freeradius, é uma otima ferramente de autenticação.
Irei testar seu tutorial assim que me sobrar um tempo. Abraços

[2] Comentário enviado por doomk em 21/12/2012 - 16:18h

Segui os passos! Deu tudo certo... na parte da instalação do coova-chilli, preferi compilar na mão como vc tinha recomendado.

Agora, um adendo: e se eu quiser deixar uma opção na tela de login para o manolo se registrar? é possível?

Parabéns pelo artigo.

[3] Comentário enviado por R.S.P Andre em 22/12/2012 - 08:26h


Agora, um adendo: e se eu quiser deixar uma opção na tela de login para o manolo se registrar? é possível?

Parabéns pelo artigo.


Aqui funcionou tudo certinho, mas tenho a mesma dúvida do doomk.

Ficou muito bom o artigo, achei simples e bem direto..
Meus parabéns!



[4] Comentário enviado por andfeh em 07/01/2013 - 09:42h

Bom dia, desculpem a demora, com os preparativos para o casamento, digo com toda certeza, não esta fácil!

Respondendo aos amigos, doomk e R.S.P Andre, é possível sim, os arquivos ficam dentro da pasta /etc/chilli/www , o único problema é que os autores do software usam um tal de haserl, que serve pra montar as páginas, ai tem que ir investigando página por pagina para alterar alguma coisa.
Tenho um cliente que é uma rede de hoteis local aqui na minha região, eu fiz para eles um centralização/pesonalização do hotspot, eu mudei o método usado, fiz assim: criei uma página com tudo que eles pediram e deixei um iframe que mostra somente os campos Login e Senha do hotspot, digo que não foi fácil deixar desse modo, mas ta funcionando até hoje, o restante da página tem alguns formulários que gravam informações direto no mysql, ai fica fácil!

Abraço, qualquer dúvida avisem!

Fiquem com Deus.

[5] Comentário enviado por pabloguerra em 08/02/2013 - 10:38h

Amigo, Ótimo tutorial. Tira-me uma dúvida, existe alguma aplicação tipo o daloradius para gerênciar usuário/senha para o coova-chilli?

Desde já agradeço.


Deus te abençoe.

[6] Comentário enviado por andfeh em 08/02/2013 - 11:14h

Bom dia, você tem que ter em mente que o CoovaChilli é o "autenticador", ele pede "tickets" para o FreeRadius, este por sua vez, segundo o artigo, busca informações que estão aramazenadas no MySql, e também colocando informações nas tabelas rad* ... Partindo deste principio o próprio Daloradius já tem uma interface Web PHP muito boa para gerencia destes dados, mas nada impede que você desenvolva uma sua com informações que você deseja, eu mesmo desenvolvi um código, bem simples e bem bagunçado usando GWT+PHP para alguns clientes.

Abraço,
André Carlim

[7] Comentário enviado por pabloguerra em 08/02/2013 - 13:23h

Ok meu caro... então vou aproveitar esse feriado pra quebrar a cabeça e desenvolver um esquema aqui pra empresa. Desde já agradeço. Se possível consegue postar um esboço do seu código ai?

abç.

Deus te abençoe.

[8] Comentário enviado por kdanilo em 12/08/2013 - 17:13h

pabloguerra boa tarde,
já estou a um tempo tentando configurar o coova e aos 45 do segundo tempo a coisa não vai.....
gostaria de saber em primeiro lugar onde se localiza o script padrão do coova para realizar a alteração que você indicou no tutorial.
Gostaria de saber se também é possível voce dar uma ajuda, se sim meu e-mail é kelson.uniesp.edu.br
desde ja agradeço
Att. Kelson

[9] Comentário enviado por marllonti em 26/11/2014 - 19:24h

Onde edito o arquivo que não foi mencionado no passo 5?


Contribuir com comentário