Servidor Fedora 11 de maneira fácil e funcional

Neste artigo mostro como configurar um servidor Fedora oferecendo os principais serviços para sua rede: firewall, servidor DHCP, web cache (Squid), DNS cache (bind), controle de banda (cbq), servidor web (Apache), controle de acesso, limite de conexões simultâneas, acesso remoto (SSH), relatório de acesso (Sarg). Ao final você deverá ter um servidor confiável.

[ Hits: 93.764 ]

Por: Andrio Prestes Jasper em 11/10/2009


8. Controle de banda (CBQ)



No Fedora não é necessário instalar o script do CBQ. Por padrão, ele já vem no sistema.

Importante saber:
  • Os arquivos de limitação ficam (classes) ficam em /etc/sysconfig/cbq/
  • Os arquivos de limitação obedecem o formato pré-definido: cbq-(clsid).(nome)
  • O mesmo IP não pode estar em duas regras
  • É necessário 2 arquivos de limitação para cada regra: 1 para download e outro para upload
  • Cada arquivo de limitação deve conter as regras abaixo, com 1 pequena diferença, um dos arquivos deverá conter uma vírgula no final da RULE, o arquivo que tiver a vírgula será o que vai indicar o upload:

    --DEVICE=(interface rede interna),(banda),(peso)
    --RATE=(velocidade)
    --WEITH=(peso/10)
    --PRIO=(prioridade)
    --RULE=(ip ou rede a ser controlada)
    --BOUNDED=yes/no se setado para yes o usuário estará limitado mesmo que o link esteja com folga (opcional)
    --ISOLATED=yes/no se setado para yes indica que o cliente não poderá emprestar banda para ninguém (opcional)

Exemplo, regra para o usuário andrio:

# vim cbq-0002.andrio

DEVICE=eth1,10Mbit,1Mbit
RATE=256
WEIGHT=64Kbit
PRIO=5
RULE=172.167.0.9
BOUNDED=yes
ISOLATED=no

# vim cbq-0003.andrio

DEVICE=eth0,10Mbit,1Mbit
RATE=256
WEIGHT=64Kbit
PRIO=5
RULE=172.167.0.9,
BOUNDED=yes
ISOLATED=no

Nota: Qualquer regra seguida da vírgula " , " controla o tráfego de saída da sua rede.

Com todas as regras prontas, vamos ativar o serviço. Primeiro compilamos as novas regras:

# cbq compile

E depois iniciamos o cbq:

# cbq start

Pronto, cbq funcionando. Faça o teste.

Para um controle de upload mais efetivo, aconselho a marcar os pacotes de cada cliente. Editamos o rc.local (/etc/rc.d.rc.local). Adicione a opção MARK na regra do cliente que contiver a vírgula ",". deixe-o assim:

# vim /etc/sysconfig/cbq/cbq-0003.andrio

DEVICE=eth0,10Mbit,1Mbit
RATE=256
WEIGHT=64Kbit
PRIO=5
RULE=172.167.0.9,
MARK=16709
BOUNDED=yes
ISOLATED=no

E o script do firewall, deixe-o da seguinte forma:

# Parâmetros do controle de acesso
MACLIST=/etc/macxip
echo " Configurações necessárias.....................[ OK ]"

# Limpando Regras
iptables -F
iptables -X
iptables -Z
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -F -t nat
iptables -X -t nat
iptables -F -t mangle
iptables -X -t mangle
echo " Limpando Regras ..............................[ OK ]"

# Definindo Política Padrão
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
echo " Alterando política padrão.....................[ OK ]"

# Aceita os Pacotes que realmente devem entrar
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# # Controle de ACESSO # #
# Diretivas do BD IP, MAC e Port
for i in `cat $MACLIST`; do
IPSOURCE=`echo $i | cut -d ';' -f 1`
MACSOURCE=`echo $i | cut -d ';' -f 2`
CBQMARK=`echo $i | cut -d ';' -f 3`

# Controle de Acesso IPxMAC
iptables -t filter -A FORWARD -d 0/0 -s $IPSOURCE -m mac --mac-source $MACSOURCE -j ACCEPT
iptables -t filter -A INPUT -s $IPSOURCE -d 0/0 -m mac --mac-source $MACSOURCE -j ACCEPT

#Pacote Marcado - importante lembrar que todo tráfego de saída deve ser controlado na interface oposta do cliente.
# no meu caso= eth0
iptables -A PREROUTING -t mangle -i eth0 -s $IPSOURCE -j MARK --set-mark $CBQMARK


done

# Redireciona o tráfego http(80) para o squid (3128)
iptables -t nat -A PREROUTING -i eth1 -p TCP ! -d 200.201.0.0/16 --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -i eth1 -p UDP ! -d 200.201.0.0/16 --dport 80 -j REDIRECT --to-port 3128

# Compartilha Conexão
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
echo "1" > /proc/sys/net/ipv4/ip_forward

# Aceita todo o tráfego vindo do loopback e indo para o loopback
iptables -t filter -A INPUT -i lo -j ACCEPT

8.1. Links extras


Página anterior     Próxima página

Páginas do artigo
   1. Início
   2. 1 - Introdução
   3. 2. SELinux, IPTABLES (introdução, NAT)
   5. 4. DNS cache (Bind)
   6. 5. Web cache (Squid)
   7. 6. Acesso remoto (SSH)
   8. 7. Controle de acesso (MAC x IP)
   9. 8. Controle de banda (CBQ)
   10. 9. Outras regras
   11. 10. Limite de conexão (connlimit)
Outros artigos deste autor

Entendendo redes wireless

Integração do Hotspot Mikrotik com AD Windows Server 2012

Instalando o Fedora 10

PPoE Mikrotik - QoS Dinâmico e Individual

Leitura recomendada

Debian + Xorg + Nvidia - Um conceito visual para desktops

Configurar rede wireless (ndiswrapper)

Expandir Disco no Linux - VMware

Cluster Beowulf

VPN no Conectiva 8 com o PPTPD

  
Comentários
[1] Comentário enviado por dtux em 11/10/2009 - 17:23h

Muito bom artigo várias rotinas interessantes, que me ajudaram muito!!

[2] Comentário enviado por andriopj em 11/10/2009 - 23:19h

estou dando continuação nesse material... pretendo montar um Guia com varias rotinas de trabalho.
Se alguem estiver interessado em acompanhar ou ate mesmo em adicionar alguma rotina... sera bem vindo: (http://under-linux.org/f132192-servidor-fedora-de-maneira-facil-e-funcional-2)

[3] Comentário enviado por lele_1997 em 12/10/2009 - 19:16h

Muito bom artigo!!! Parabéns !!
Vc poderia ampliar o leque desse artigo, fazendo implementação do Mysql com os dados dos cliente e os scripts para pegar do banco as informações e registrar no sistema. No Iptables, CBQ e DHCP ..
Ai iria matar a pau!!!
Valeu pela ajuda

[4] Comentário enviado por nps em 12/10/2009 - 19:22h

Muito bom,excelente continue assim ajudando a todos nós.

[5] Comentário enviado por andriopj em 16/10/2009 - 21:23h

bom amigos, estou ampliando o assunto... e ate melhorando o mesmo. Lembrando que estou tentando descrever o metodo mais facil, nao sendo esses as unicas maneiras de se produzir o mesmo... mas enfim, espero que gostem.

[6] Comentário enviado por alotus em 03/11/2009 - 10:47h

Bom Artigo.

Eu estou tentando implementar um postfix num servidor com Banda larga GVT. Já fizeram o DNS Reverson na operadora, cadastrei o domínio no Registro BR com o serviço do SUPERDNS, e redirecionei para o IP Fixo do Modem da operadora no SUPERDNS. Pinga sem problema algum. Como faria para implementar o POSTFIX nele. Poderia dar alguma dica????


[7] Comentário enviado por deuz em 19/11/2009 - 12:23h

Muito bom, pelo menos até onde li, que foi somente o Bind. Meu caro, fiz conforme vc falou, e tudo funciona correto, navego, o serviço sobe normalmente sem erros, ocorre que com isso nao consigo enviar e nem receber e-mails, o que poderia estar faltando, eu apenas configurei o bind, nao uso dhcp (pelo que vi no artigo, tem uma ligação ambos).

se voce ou alguem puder me dar umas dicas, pretendo fazer isso na minha rede sem configurar o dhcp.

[8] Comentário enviado por andriopj em 04/04/2010 - 19:26h

@deuz
a ligacao entre o dhcp e o dns é somente para enviar as informacoes aos hosts clientes...

nessa maquina que vc nao esta conseguindo enviar nen receber emails, qual o dns que esta configurado ai?
tente colocar outro dns... apenas de eu achar que nao seria esse o erro.

[9] Comentário enviado por cdcanalli em 07/03/2012 - 16:25h

Estava pesquisando sobre firewall e cheguei ao seu artigo....
Parabéns...
Materia muito bem detalhado, bem comentado...
Me Ajudou Muito...
Meu servidor Debian tá ficando Ninja... :p

Obrigado...

Abraço...

[10] Comentário enviado por llbranco em 20/03/2012 - 13:11h

olá, tenho uma grande duvida em relação ao squid:

como faço para o squid tornar disponivel um objeto em cache caso o site da qual está o verdadeiro objeto esteja offline???


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts