Voltar   Mundo Wi-Fi » ESPECIAL WIRELESS » Tutoriais
Tutoriais Tutoriais sobre Redes Wireless.



Resposta
 
LinkBack Opções do Tópico Modos de Exibição
No avatar
kelinhos
Senior

Pontos: 1,813, Nível: 25
Pontos: 1,813, Nível: 25 Pontos: 1,813, Nível: 25 Pontos: 1,813, Nível: 25
Ativo: 0%
Ativo: 0% Ativo: 0% Ativo: 0%
Registrado em: Jun 2007 Localização: Interior - SP Posts: 137 kelinhos will become famous soon enoughkelinhos will become famous soon enough kelinhos está offline
12-08-07, 10:29
Padrão Servidor Linux para um provedor wireless

Introdução
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 visível através de um único arquivo de configuração.

A pouco tempo me deparei com a criação de um servidor para um provedor de internet wireless e depois de muitas dificuldades, cheguei a um arquivo de configuração único que serve de painel de controle para o gerenciamento dos clientes e que é processado através de um script. Acredito que facilitará bastante a vida de quem está entrando no ramo. Neste artigo tratarei todo o processo da criação de um servidor do gênero chegando até esse script de configuração.

Usei como base a distribuição 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 adaptações na instalação dos pacotes, pode ser usado qualquer outra distribuição 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 através da torre.

Não é necessário um hardware avançado 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 número de clientes, fato que varia muito de acordo com os planos de acesso que você está oferecendo e também com a efetividade dos seus clientes.

A maioria dos provedores calculam a proporção 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 estarão usando efetivamente a internet ao mesmo tempo, eu como cliente de um provedor wireless posso confirmar que na prática isso não funciona muito bem. Seja mais camarada com seus clientes, principalmente se eles usam aplicativos P2P. :)

Serviços do servidor
Para controle de banda e de prioridade usaremos o script CBQ. No Ubuntu, Debian e derivados ele é instalado através do pacote “shaper”, se a sua distro não possui um pacote de instalação 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, não há nenhum processo de instalação.

O proxy transparente será feito com o Squid. Um proxy, entre muitas outras utilidades serve como cache de páginas, ou seja, reservaremos um espaço no disco rígido do servidor de acordo com a capacidade livre para armazenar as paginas acessadas.

Por exemplo, um usuário abriu o site www.kernel.org, o proxy então guarda o conteúdo desse site em seu cache, em seguida um outro cliente abriu o mesmo site, então o proxy verifica se a pagina foi atualizada, se não houver atualização ele apenas pega o que tem em seu cache e manda para o cliente, sem a necessidade de buscar novamente o mesmo conteúdo na internet.

Na prática isso ocasiona uma incrível poupança de banda. Denominamos o nosso proxy de “transparente” porque ele não precisará ser configurado manualmente no navegador dos clientes, através de uma regra no firewall redirecionaremos o fluxo de navegação para o Squid.

Colocaremos também no servidor o serviço Bind9 para cache DNS. Teremos nossa própria tabela de mapeamento de endereços na internet, assim, na configuração de rede dos seus clientes, você poderá colocar como DNS primário o IP do seu servidor (o mesmo que o gateway) e não o da telecom, além de deixar a configuração mais prática também economiza o link.

Para evitar “furões” acessando sua internet usaremos o cadastro de IP preso a um MAC. O MAC é o endereço físico da interface de rede, ele é único, cada placa de rede ou wireless tem um endereço 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 endereço IP que você escolheu, no momento que o cliente for usar a internet, se os dois endereços não coincidirem o acesso não funcionará. Não que seja um sistema 100% seguro porque endereços MACs podem ser facilmente emulados, mas já dificultará bastante a vida de usuários não autorizados.

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

Instalação e configuração
A instalação do Ubuntu Server não é complicada e não será tratada aqui. No processo de instalação é possível já deixar ativo alguns serviços de servidor como DNS e o “LAMP” que são os serviços para servidor de páginas e e-mail. É recomendável que você não tenha esses serviços instalados no seu servidor, se tiver instalado, desative-os e preferencialmente use-os em outro servidor.

Antes de mais nada você de ter configurado as interfaces de rede durante a instalação ou posteriormente, e sua conexão 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 endereços entre 192.168.0.2 até 192.168.0.254 ou o IP 10.0.0.1/255.0.0.0 entre inúmeras outras possibilidades, isso não importa, só levaremos em consideração de agora em diante que sua interface com a internet é a eth0 e a interface com os clientes é a eth1, (se a sua configuração for diferente você terá que adaptar algumas coisas).

Primeiramente logue-se como root, no Ubuntu é necessário entrar com a conta normal e depois:

Código:
$ 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.

Código:
# apt-get update 
# apt-get install ssh
Agora você pode usar o servidor através 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 questões de segurança muitos administradores mudam a porta padrão (22) do SSH para dificultar invasões, se desejar pode você fazer isso editando o arquivo "/etc/ssh/sshd_config.conf"

Agora a instalação dos serviços. Para instalar os pacotes usados dê o seguinte comando:

Código:
# apt-get install shaper squid bind9 -y
Ok, ao término os pacotes necessários já estarão instalados. Começaremos a configurá-los. Para o DNS não é necessário fazer nada, assim que instalado ele já funciona como cache de endereçamentos.

Configuração do Proxy
O primeiro a ser configurado será o proxy Squid, vamos remover o arquivo padrão e criar um totalmente novo (o editor de texto vi não é muito agradável no Ubuntu, você pode instalar e usar o vim, o nano, etc.):

Código:
# rm /etc/squid/squid.conf
# vi /etc/squid/squid.conf
Coloque o seguinte conteúdo. Observe os comentários e faça as adaptações necessárias.
Citação:
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 máximo de arquivo que o cache guardará,
# pode ser aumentado.
maximum_object_size 80000 KB

# diretório onde será ficará armazenado o cache das páginas.
# O 10000 é o número em MBs do HD que será reservado para o cache.
# Mude como achar melhor.
# Você pode também mudar o diretório do cache, apenas certifique-se
# de que o usuário proxy tenha permissão de escrita neste local.
cache_dir ufs /var/spool/squid/ 10000 16 256

# usuário que executa o servidor proxy
cache_effective_user proxy

# habilita permissão pra rede definida e bloqueia acessos vindos de
# outros endereços
http_access allow clientes
http_access deny all

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

Código:
# /etc/init.d/squid restart
Cadastramento dos Clientes
Os seus clientes serão cadastrados no arquivo "/etc/provedor/clientes". Crie esse arquivo:

Código:
# vi /etc/provedor/clientes
Agora preencha esse arquivo como exemplo:
Citação:
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 são separados com “|” (pipe-line). O primeiro campo é o código do cliente, inicie a partir de 0010, sempre com 4 dígitos. Em seguida o nome, o endereço IP escolhido, a velocidade de conexão, a taxa de download, a taxa de upload, o endereço MAC, a prioridade (quanto mais baixo mais prioridade) e por fim, “A”, ativo ou “B”, bloqueado.

O script que lê essas informações será o "configurador.sh", crie-o na mesma pasta e depois dê permissão de execução

Código:
# touch /etc/provedor/configurador.sh
# chmod +x /etc/provedor/configurador.sh
# vi /etc/provedor/configurador.sh
A explicação do seu funcionamento vem em seguida. Cole o conteúdo:
Citação:
#!/bin/bash
# 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
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, também 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 habilitação 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 variáveis, 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 serviço de controle de banda e re-executa o firewall.

Sempre que fizer alguma alteração nos cadastros basta que você execute o configurador:

Código:
# sh /etc/provedor/configurador.sh
Mas calma, você ainda precisa criar o firewall, senão nada funcionará.

Firewall
Crie o arquivo "/etc/provedor/firewall.sh" com o conteúdo abaixo (fique atento nos comentários). Depois de salvar dê permissão de execução.
Citação:
#!/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 usuários 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 não 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.

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

# Proteções 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 ##
Conclusão

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

Código:
# sh /etc/provedor/configurador.sh
Coloque essa linha sem o “#” no arquivo /etc/init.d/bootmisc.sh para que seja executado automaticamente na inicialização. Em distribuições não Debian você deve usar o "/etc/rc.d/rc.local".

Agora você precisa pegar o endereço 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 implementação de um servidor para provedor. A forma que utilizei torna a configuração nos clientes trabalhosa mas infelizmente a tecnologia wireless não oferece segurança tolerável mesmo usando criptografia. Acredito ser essa a melhor opção.

Tratei aqui de forma abstrata os serviços como proxy, DNS e firewall. Eles são ferramentas poderosíssimas. Se procura soluções 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 "

""O Amor é como capim.
Você planta, ele cresce... Aí vem uma vaca e acaba com tudo!""
  Responder com Quote top of post top of page
Clique nos links patrocinados para ajudar nas despesas do Site. É apenas um clique, não machuca ninguém :-). Obrigado
Avatar de leomezza
leomezza
Moderador

Pontos: 1,723, Nível: 24
Pontos: 1,723, Nível: 24 Pontos: 1,723, Nível: 24 Pontos: 1,723, Nível: 24
Ativo: 0%
Ativo: 0% Ativo: 0% Ativo: 0%
Registrado em: Jan 2007 Posts: 51 leomezza will become famous soon enoughleomezza will become famous soon enough Enviar mensagem via Windows Live Messenger para leomezza leomezza está offline
14-08-07, 18:12
Padrão Re: Servidor Linux para um provedor wireless

Esse dá vontade de testar em Lab. Parabéns.

CWNA - Certified Wireless Network Administrator
  Responder com Quote top of post top of page
No avatar
paulojoss
Junior

Pontos: 861, Nível: 15
Pontos: 861, Nível: 15 Pontos: 861, Nível: 15 Pontos: 861, Nível: 15
Ativo: 0%
Ativo: 0% Ativo: 0% Ativo: 0%
Registrado em: Sep 2007 Posts: 2 paulojoss is an unknown quantity at this point paulojoss está offline
05-09-07, 12:28
Padrão Re: Servidor Linux para um provedor wireless

Caros amigos,

Gostaria de saber se vc nao teria uma solucao dessa mais na base windows??
estou tentando montar uam provedor de internet wireless e gostaria de saber se existe como fazer na base windows. ou um software q controle ip para eu administrar os clientes.

grato desde ja

Paulojoss
  Responder com Quote top of post top of page
No avatar
kelinhos
Senior

Pontos: 1,813, Nível: 25
Pontos: 1,813, Nível: 25 Pontos: 1,813, Nível: 25 Pontos: 1,813, Nível: 25
Ativo: 0%
Ativo: 0% Ativo: 0% Ativo: 0%
Registrado em: Jun 2007 Localização: Interior - SP Posts: 137 kelinhos will become famous soon enoughkelinhos will become famous soon enough kelinhos está offline
07-09-07, 20:08
Padrão Re: Servidor Linux para um provedor wireless

Citação:
Postado Originalmente por paulojoss
Caros amigos,

Gostaria de saber se vc nao teria uma solucao dessa mais na base windows??
estou tentando montar uam provedor de internet wireless e gostaria de saber se existe como fazer na base windows. ou um software q controle ip para eu administrar os clientes.

grato desde ja

Paulojoss
E ai Paulojoss blz,,, bom,, tem sim o que vc quer, chama-se mikrotik, o site é [ Mikrotik Brasil ].

Esse programa faz tudo que esse tuto faz e mais ainda...
Abraço...

""O Amor é como capim.
Você planta, ele cresce... Aí vem uma vaca e acaba com tudo!""
  Responder com Quote top of post top of page
No avatar
paulojoss
Junior

Pontos: 861, Nível: 15
Pontos: 861, Nível: 15 Pontos: 861, Nível: 15 Pontos: 861, Nível: 15
Ativo: 0%
Ativo: 0% Ativo: 0% Ativo: 0%
Registrado em: Sep 2007 Posts: 2 paulojoss is an unknown quantity at this point paulojoss está offline
10-09-07, 22:14
Padrão Re: Servidor Linux para um provedor wireless

mto obrigado pela ajuda vou tentar fazer aqui!!!
  Responder com Quote top of post top of page
Avatar de nanyko
nanyko
Junior

Pontos: 856, Nível: 15
Pontos: 856, Nível: 15 Pontos: 856, Nível: 15 Pontos: 856, Nível: 15
Ativo: 0%
Ativo: 0% Ativo: 0% Ativo: 0%
Registrado em: Sep 2007 Posts: 2 nanyko is an unknown quantity at this point nanyko está offline
14-09-07, 12:31
Padrão Re: Servidor Linux para um provedor wireless

Oi. Bom dia

Gostaria de saber mais sobre esse tutorial, tentei fazer e não consegui muito exito na minha tentativa. Eu sou novato em sistema linux, por isso não sei nada sobre essa base de dados! Eu baixei o Ubuntu 7.04 server instalei ele e daí não consegui passar! Onde posso pelo menos aprender mais sobre os comandos do ubuntu ou do linux em geral e se alguém pode me ajudar a montar um servidor para provedor, pois tenho um provedor mais paguei caro pelo meu servidor e não tenho suporte!

Obrigado
  Responder com Quote top of post top of page
Avatar de nanyko
nanyko
Junior

Pontos: 856, Nível: 15
Pontos: 856, Nível: 15 Pontos: 856, Nível: 15 Pontos: 856, Nível: 15
Ativo: 0%
Ativo: 0% Ativo: 0% Ativo: 0%
Registrado em: Sep 2007 Posts: 2 nanyko is an unknown quantity at this point nanyko está offline
14-09-07, 12:32
Padrão Re: Servidor Linux para um provedor wireless

Citação:
Postado Originalmente por paulojoss
mto obrigado pela ajuda vou tentar fazer aqui!!!
Oi amigo, se vc puder me ajudar com mais informações, tendo em vista, que vc achou bem simples!
  Responder com Quote top of post top of page
No avatar
lopeston
Junior

Pontos: 831, Nível: 15
Pontos: 831, Nível: 15 Pontos: 831, Nível: 15 Pontos: 831, Nível: 15
Ativo: 0%
Ativo: 0% Ativo: 0% Ativo: 0%
Registrado em: Sep 2007 Posts: 2 lopeston is an unknown quantity at this point lopeston está offline
20-09-07, 01:57
Padrão Re: Servidor Linux para um provedor wireless

Por favor, com isso ai eu consigo montar um servidor de internet para uns 15 clientes ? estou pensando em fazer isso no meu bairoo.
obrigado, abraço a todos
  Responder com Quote top of post top of page
No avatar
lopeston
Junior

Pontos: 831, Nível: 15
Pontos: 831, Nível: 15 Pontos: 831, Nível: 15 Pontos: 831, Nível: 15
Ativo: 0%
Ativo: 0% Ativo: 0% Ativo: 0%
Registrado em: Sep 2007 Posts: 2 lopeston is an unknown quantity at this point lopeston está offline
20-09-07, 02:07
Padrão Re: Servidor Linux para um provedor wireless

se alguem puder me ajudar agradeço muito.
meu msn é hackmanbomb@yahoo.com.br
abraço a todos da comunidade
  Responder com Quote top of post top of page
Resposta

Favoritos

Tags
linux, provedor, servidor, wireless




Usuários ativos no Tópico: 1 (0 Membros e 1 Visitantes)
 

(Ver Todos Os Membros que leram este tópico: 95
27forever, aap2007, aas2512, adrianoelite, Akelon, akio, Alessandro, alexsander27, alexsanderwilen, alfspeed, alisson525, anakin_skywalker, ANGRABATERA, ary_petro, battoussaix, benserto, beto0003, caicarabruno, carlosuk, caverna, chamon, chanbolota, chronnus,