Sie sind auf Seite 1von 12

Frum Mundo Wi-Fi > Especial > Tutoriais

Servidor Linux para um provedor wireless


Usurio Usurio
Lembrar? gfedc
Senha Logar
Registre-se Downloads
Para melhor aproveitamento e utilizao das informaes contidas neste site recomendamos 03 passos iniciais:

1)Polticas de Utilizao (Regras do Frum)
2)FAQ (Dvidas mais comuns na utilizao do Frum)
3)Registro (Registre-se para utilizar outros servios do Site).
LinkBack Opes do Tutorial

Servidor Linux para um provedor wireless
Tiago Andr Geraldi
kelinhos
12/08/2007
Opes do Tutorial
Verso para impresso
Enviar pgina por email
Page 1 of 12 Servidor Linux para um provedor wireless - Frum Mundo Wi-Fi
15/8/2007 http://www.mundowifi.com.br/tutoriais/1324-servidor-linux-para-um-provedor-wireless.html
ltimos Tutoriais
Servidor Linux para um provedor wireless
Como montar um provedor
Fazendo uma antena Omni Direcional
Como criar sua prpria antena OmniDirecional
Instalando Placas Wifi baseadas em Broadcom
Introduo

Esta dical mostra como configurar um servidor com controle de banda, prioridade, firewall, cadastramento de IP preso um MAC,
proxy transparente e cache DNS, deixando tudo visvel atravs de um nico arquivo de configurao.

A pouco tempo me deparei com a criao de um servidor para um provedor de internet wireless e depois de muitas dificuldades,
cheguei a um arquivo de configurao nico que serve de painel de controle para o gerenciamento dos clientes e que processado
atravs de um script. Acredito que facilitar bastante a vida de quem est entrando no ramo. Neste artigo tratarei todo o processo
da criao de um servidor do gnero chegando at esse script de configurao.

Usei como base a distribuio Ubuntu Server 7.04, at mesmo para testar essa nova promessa das distros para servidores. Mas
voc poder seguir sem problemas esse tutorial com qualquer Debian ou derivado como o Kurumin. Com algumas adaptaes na
instalao dos pacotes, pode ser usado qualquer outra distribuio Linux.

Basicamente um servidor para provedor de internet wireless funciona como um roteador entre o link da empresa de telecom e os
clientes. Numa interface de rede ele recebe o link, e a outra interface ligada ao AP que distribuir o sinal atravs da torre.

No necessrio um hardware avanado para este servidor. Um PC com processador de 1 GHz e com 256 MB de RAM suficiente
para atender mais de 100 clientes. Antes de se preocupar com a capacidade de processamento do servidor voc deve analisar se o
link que voc contratou suficiente para o seu nmero de clientes, fato que varia muito de acordo com os planos de acesso que
voc est oferecendo e tambm com a efetividade dos seus clientes.

A maioria dos provedores calculam a proporo de 8 pra 1, ou seja, posso ter 8 clientes com 256 kbps de acesso cada um, e s
possuir um link de 256 kbps que nunca todos os clientes estaro usando efetivamente a internet ao mesmo tempo, eu como
cliente de um provedor wireless posso confirmar que na prtica isso no funciona muito bem. Seja mais camarada com seus
clientes, principalmente se eles usam aplicativos P2P. :)

Page 2 of 12 Servidor Linux para um provedor wireless - Frum Mundo Wi-Fi
15/8/2007 http://www.mundowifi.com.br/tutoriais/1324-servidor-linux-para-um-provedor-wireless.html


Servios do servidor

Para controle de banda e de prioridade usaremos o script CBQ. No Ubuntu, Debian e derivados ele instalado atravs do pacote
shaper, se a sua distro no possui um pacote de instalao do CBQ voc poder baix-lo no sourceforge.net e execut-lo, ele
apenas um script que interpreta arquivos de texto colocados no /etc/cbq ou no /etc/shaper, no h nenhum processo de
instalao.

O proxy transparente ser feito com o Squid. Um proxy, entre muitas outras utilidades serve como cache de pginas, ou seja,
reservaremos um espao no disco rgido do servidor de acordo com a capacidade livre para armazenar as paginas acessadas.

Por exemplo, um usurio abriu o site www.kernel.org, o proxy ento guarda o contedo desse site em seu cache, em seguida um
outro cliente abriu o mesmo site, ento o proxy verifica se a pagina foi atualizada, se no houver atualizao ele apenas pega o
que tem em seu cache e manda para o cliente, sem a necessidade de buscar novamente o mesmo contedo na internet.

Na prtica isso ocasiona uma incrvel poupana de banda. Denominamos o nosso proxy de transparente porque ele no precisar
ser configurado manualmente no navegador dos clientes, atravs de uma regra no firewall redirecionaremos o fluxo de navegao
para o Squid.

Colocaremos tambm no servidor o servio Bind9 para cache DNS. Teremos nossa prpria tabela de mapeamento de endereos na
internet, assim, na configurao de rede dos seus clientes, voc poder colocar como DNS primrio o IP do seu servidor (o mesmo
que o gateway) e no o da telecom, alm de deixar a configurao mais prtica tambm economiza o link.

Para evitar fures acessando sua internet usaremos o cadastro de IP preso a um MAC. O MAC o endereo fsico da interface de
rede, ele nico, cada placa de rede ou wireless tem um endereo MAC diferente, (para v-lo use ifconfig no Linux e
ipconfig /all no prompt do Windows). Na hora de cadastrar seu cliente voc colocar o MAC da interface dele e o endereo IP que
voc escolheu, no momento que o cliente for usar a internet, se os dois endereos no coincidirem o acesso no funcionar. No
que seja um sistema 100% seguro porque endereos MACs podem ser facilmente emulados, mas j dificultar bastante a vida de
usurios no autorizados.

Para firewall usaremos um script iptables muito simples baseado no firewall do Kurumin.


Instalao e configurao

A instalao do Ubuntu Server no complicada e no ser tratada aqui. No processo de instalao possvel j deixar ativo
alguns servios de servidor como DNS e o LAMP que so os servios para servidor de pginas e e-mail. recomendvel que voc
no tenha esses servios instalados no seu servidor, se tiver instalado, desative-os e preferencialmente use-os em outro servidor.
Page 3 of 12 Servidor Linux para um provedor wireless - Frum Mundo Wi-Fi
15/8/2007 http://www.mundowifi.com.br/tutoriais/1324-servidor-linux-para-um-provedor-wireless.html

Antes de mais nada voc de ter configurado as interfaces de rede durante a instalao ou posteriormente, e sua conexo com a
internet j deve estar funcionando. Na primeira interface voc coloca o IP que recebeu da telecom e na segunda interface voc
coloca a faixa de IPs que quiser.

Voc pode dar ao servidor o IP 192.168.0.1/255.255.255.0 a os seus clientes todos os endereos entre 192.168.0.2 at
192.168.0.254 ou o IP 10.0.0.1/255.0.0.0 entre inmeras outras possibilidades, isso no importa, s levaremos em considerao
de agora em diante que sua interface com a internet a eth0 e a interface com os clientes a eth1, (se a sua configurao for
diferente voc ter que adaptar algumas coisas).

Primeiramente logue-se como root, no Ubuntu necessrio entrar com a conta normal e depois:


$ sudo su

Para facilitar as coisas, primeiro instale o SSH e use o servidor remotamente, ir facilitar na hora de copiar os scripts listados
neste artigo e depois voc poder deixar o servidor sem monitor.


# apt-get update
# apt-get install ssh


Agora voc pode usar o servidor atravs de outro computador que esteja na mesma rede, ligue a interface de rede eth1 num
switch e configure outro computador com a mesma classe de IP. Para se conectar no Linux use o comando ssh
usuario@ip_do_servidor, no Windows baixe o programa Putty facilmente encontrado no Google.

Por questes de segurana muitos administradores mudam a porta padro (22) do SSH para dificultar invases, se desejar pode
voc fazer isso editando o arquivo "/etc/ssh/sshd_config.conf"

Agora a instalao dos servios. Para instalar os pacotes usados d o seguinte comando:


# apt-get install shaper squid bind9 -y

Ok, ao trmino os pacotes necessrios j estaro instalados. Comearemos a configur-los. Para o DNS no necessrio fazer
nada, assim que instalado ele j funciona como cache de endereamentos.


Page 4 of 12 Servidor Linux para um provedor wireless - Frum Mundo Wi-Fi
15/8/2007 http://www.mundowifi.com.br/tutoriais/1324-servidor-linux-para-um-provedor-wireless.html
Configurao do Proxy

O primeiro a ser configurado ser o proxy Squid, vamos remover o arquivo padro e criar um totalmente novo (o editor de texto vi
no muito agradvel no Ubuntu, voc pode instalar e usar o vim, o nano, etc.):


# rm /etc/squid/squid.conf
# vi /etc/squid/squid.conf

Coloque o seguinte contedo. Observe os comentrios e faa as adaptaes necessrias.

http_port 3128 transparent
visible_hostname provedor_wireless

acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object

# mude a faixa de IPs de acordo com a que voc decidiu usar:
acl clientes src 192.168.0.0/255.255.255.0

# arquivos de Log
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log

# tamanho mximo de arquivo que o cache guardar,
# pode ser aumentado.
maximum_object_size 80000 KB

# diretrio onde ser ficar armazenado o cache das pginas.
# O 10000 o nmero em MBs do HD que ser reservado para o cache.
# Mude como achar melhor.
# Voc pode tambm mudar o diretrio do cache, apenas certifique-se
# de que o usurio proxy tenha permisso de escrita neste local.
cache_dir ufs /var/spool/squid/ 10000 16 256

# usurio que executa o servidor proxy
cache_effective_user proxy

Page 5 of 12 Servidor Linux para um provedor wireless - Frum Mundo Wi-Fi
15/8/2007 http://www.mundowifi.com.br/tutoriais/1324-servidor-linux-para-um-provedor-wireless.html
# habilita permisso pra rede definida e bloqueia acessos vindos de
# outros endereos
http_access allow clientes
http_access deny all

## FIM DO ARQUIVO ##
Depois de configurado o arquivo, voc j pode ativar o Squid:


# /etc/init.d/squid restart


Cadastramento dos Clientes

Os seus clientes sero cadastrados no arquivo "/etc/provedor/clientes". Crie esse arquivo:

# vi /etc/provedor/clientes

Agora preencha esse arquivo como exemplo:
0010|novo-teste|192.168.0.7|128|12|8|00:E0:06:EF:7F:D8|3|A
0011|teste|192.168.0.3|256|30|15|00:0B:CD:A4:AE:2C |5|B
Cada linha corresponde a um cliente. Os campos so separados com | (pipe-line). O primeiro campo o cdigo do cliente, inicie
a partir de 0010, sempre com 4 dgitos. Em seguida o nome, o endereo IP escolhido, a velocidade de conexo, a taxa de
download, a taxa de upload, o endereo MAC, a prioridade (quanto mais baixo mais prioridade) e por fim, A, ativo ou B,
bloqueado.

O script que l essas informaes ser o "configurador.sh", crie-o na mesma pasta e depois d permisso de execuo

# touch /etc/provedor/configurador.sh
# chmod +x /etc/provedor/configurador.sh
# vi /etc/provedor/configurador.sh

A explicao do seu funcionamento vem em seguida. Cole o contedo:
#!/bin/bash
Page 6 of 12 Servidor Linux para um provedor wireless - Frum Mundo Wi-Fi
15/8/2007 http://www.mundowifi.com.br/tutoriais/1324-servidor-linux-para-um-provedor-wireless.html
# script criado por Tiago Andre Geraldi virgulla@gmail.com

rm -f /etc/shaper/*
rm /etc/provedor/users.sh
touch /etc/provedor/users.sh
chmod +x /etc/provedor/users.sh

LISTA=`cat /etc/provedor/clientes`
for CLIENTE in $LISTA; do
CODIGO=`echo $CLIENTE | awk -F "|" '{print $1}'`
NOME=`echo $CLIENTE | awk -F "|" '{print $2}'`
IP=`echo $CLIENTE | awk -F "|" '{print $3}'`
CON=`echo $CLIENTE | awk -F "|" '{print $4}'`
DOWN=`echo $CLIENTE | awk -F "|" '{print $5}'`"kbit"
UP=`echo $CLIENTE | awk -F "|" '{print $6}'`"kbit"
MAC=`echo $CLIENTE | awk -F "|" '{print $7}'`
PRIO=`echo $CLIENTE | awk -F "|" '{print $8}'`
STAT=`echo $CLIENTE | awk -F "|" '{print $9}'`
# checa se esta ativado
if [ "$STAT" = "A" ]; then

UPLOAD="/etc/shaper/cbq-"$CODIGO"."$NOME"_upload"
DOWNLOAD="/etc/shaper/cbq-"$CODIGO"."$NOME"_download"
touch $UPLOAD
touch $DOWNLOAD
chown 755 /etc/shaper/*

# eth1 corresponde a interface de rede conectada aos usuarios
# mude se necessario

echo "DEVICE=eth1,100Mbit,10Mbit" >> $UPLOAD
echo "RATE=$CON""KBit" >> $UPLOAD
echo "WEIGHT=$UP" >> $UPLOAD
echo "PRIO=$PRIO" >> $UPLOAD
echo "BOUNDED=yes" >> $UPLOAD
echo "ISOLATED=yes" >> $UPLOAD
echo "MARK=30" >> $UPLOAD

echo "DEVICE=eth1,100Mbit,10Mbit" >> $DOWNLOAD
Page 7 of 12 Servidor Linux para um provedor wireless - Frum Mundo Wi-Fi
15/8/2007 http://www.mundowifi.com.br/tutoriais/1324-servidor-linux-para-um-provedor-wireless.html
echo "RATE=$CON""KBit" >> $DOWNLOAD
echo "WEIGHT=$DOWN" >> $DOWNLOAD
echo "PRIO=$PRIO" >> $DOWNLOAD
echo "RULE=""$IP" >> $DOWNLOAD
echo "BOUNDED=yes" >> $DOWNLOAD
echo "ISOLATED=yes" >> $DOWNLOAD

echo "iptables -t nat -A POSTROUTING -s $IP"" -j MASQUERADE" >> /etc/nat/users.sh
echo "iptables -A FORWARD -s $IP"" -j ACCEPT" >> /etc/nat/users.sh
echo "iptables -A FORWARD -d $IP"" -j ACCEPT" >> /etc/nat/users.sh

arp -s $IP $MAC

fi

done

sh /etc/provedor/firewall.sh
/etc/init.d/shaper restart

## FIM DO ARQUIVO ##
O script trabalha com a pasta /etc/shaper onde fica o controle de banda, tambm usa o arquivo /etc/provedor/users.sh que ser
criado pelo script e que ser lido pelo firewall que criaremos depois. Neste arquivo fica a habilitao de internet para os IPs
cadastrados.

A primeira coisa que ele faz apagar os arquivos atuais. Em seguida ele l o "/etc/provedor/clientes" e guarda em variveis, cria
os arquivos do controle de banda e o "/etc/provedor/users.sh" atualizado. D o comando arp que prende o Ip ao MAC e por
ltimo reinicia o servio de controle de banda e re-executa o firewall.

Sempre que fizer alguma alterao nos cadastros basta que voc execute o configurador:

# sh /etc/provedor/configurador.sh

Mas calma, voc ainda precisa criar o firewall, seno nada funcionar.


Firewall
Page 8 of 12 Servidor Linux para um provedor wireless - Frum Mundo Wi-Fi
15/8/2007 http://www.mundowifi.com.br/tutoriais/1324-servidor-linux-para-um-provedor-wireless.html


Crie o arquivo "/etc/provedor/firewall.sh" com o contedo abaixo (fique atento nos comentrios). Depois de salvar d permisso
de execuo.
#!/bin/bash
# Esse script criado por Tiago Andr Geraldi baseado
# no firewall criado por Carlos Morimoto para o Kurumin Linux

## limpa as tabelas das regras, nada a ser mudado aqui
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t filter -F
iptables -t filter -X
iptables -t mangle -F
iptables -t mangle -X

# habilita internet para os usurios cadastrados
sh /etc/nat/users.sh

# Marcacao de pacotes para controle de banda. Mude a faixa de IPs de acordo com a sua
for i in `seq 2 254`
do
iptables -t mangle -A POSTROUTING -s 192.168.0.$i -j MARK --set-mark $i
done

# Habilita roteamento
echo 1 > /proc/sys/net/ipv4/ip_forward

# Habilita PROXY TRANSPARENTE
# mude a interface rede se eth1 no for a interface conectada ao wireless
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128


# Abre uma porta (inclusive para a Internet). Neste caso apenas deixamos aberto o acesso para SSH, Proxy e DNS.

Page 9 of 12 Servidor Linux para um provedor wireless - Frum Mundo Wi-Fi
15/8/2007 http://www.mundowifi.com.br/tutoriais/1324-servidor-linux-para-um-provedor-wireless.html
iptables -A INPUT -p tcp --destination-port 22 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 53 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 3128 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 80 -j ACCEPT

# Protees diversas contra portscanners, ping of death, ataques DoS, etc.
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD -p tcp -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD --protocol tcp --tcp-flags ALL SYN,ACK -j DROP
iptables -A FORWARD -m unclean -j DROP

# Abre para a interface de loopback.
iptables -A INPUT -i lo -j ACCEPT

# BLOQUEA O QUE NAO SE ENCAIXA NAS REGRAS ACIMA
iptables -A INPUT -p tcp --syn -j DROP
iptables -P FORWARD DROP

## FIM DO ARQUIVO ##
Concluso

Depois dos passos anteriores, seu servidor j pode ser executado:

# sh /etc/provedor/configurador.sh

Coloque essa linha sem o # no arquivo /etc/init.d/bootmisc.sh para que seja executado automaticamente na inicializao. Em
distribuies no Debian voc deve usar o "/etc/rc.d/rc.local".

Agora voc precisa pegar o endereo MAC dos seus clientes definir um IP pra cada um e cadastrar todos. O gateway e DNS para
os clientes o IP do seu servidor, no exemplo 192.168.0.1.

Existe muitas possibilidades de implementao de um servidor para provedor. A forma que utilizei torna a configurao nos
clientes trabalhosa mas infelizmente a tecnologia wireless no oferece segurana tolervel mesmo usando criptografia. Acredito
ser essa a melhor opo.

Page 10 of 12 Servidor Linux para um provedor wireless - Frum Mundo Wi-Fi
15/8/2007 http://www.mundowifi.com.br/tutoriais/1324-servidor-linux-para-um-provedor-wireless.html

Tratei aqui de forma abstrata os servios como proxy, DNS e firewall. Eles so ferramentas poderosssimas. Se procura solues
diferentes ou deseja implementar novos recursos voc encontrar material abundante aqui mesmo neste site.



" Conteudo retirado do Servidor Linux para um provedor wireless e o Autor Tiago Andr Geraldi "

Referncias
http://www.guiadohardware.net/dicas/servidor-linux-provedor-wireless.html
leomezza on Ontem, 17:12
#1 (permalink)
Re: Servidor Linux para um provedor wireless
Esse d vontade de testar em Lab. Parabns.


Atualizando WRT54G/S v5, v5.1 e v6 para DD-WRT Linux O.S. | Fazendo uma antena Omni Direcional
Frum Mundo Wi-Fi > Especial > Tutoriais



Regras de Postagem
Voc pode no postar novos tutoriais
Voc pode no postar comentrios
Voc no pode anexar arquivos
Voc no pode editar seus posts
vB code est Ligado
Smilies est Ligado
[IMG] est Ligado
HTML est Ligado
Trackbacks are Ligado
Page 11 of 12 Servidor Linux para um provedor wireless - Frum Mundo Wi-Fi
15/8/2007 http://www.mundowifi.com.br/tutoriais/1324-servidor-linux-para-um-provedor-wireless.html



Horrio baseado em GMT -3. Agora so: 21:00.



Developed by: vBulletin - Copyright 2003 - 2007, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.0.0 2007, Crawlability, Inc.
Protected by CBACK.de CrackerTracker

Pingbacks are Ligado
Refbacks are Ligado
Fale Conosco - Mundo Wi-Fi - Referncia Nacional em Rede sem Fio - Site Map - Top

Page 12 of 12 Servidor Linux para um provedor wireless - Frum Mundo Wi-Fi
15/8/2007 http://www.mundowifi.com.br/tutoriais/1324-servidor-linux-para-um-provedor-wireless.html

Das könnte Ihnen auch gefallen