WebHTB - Controle de banda de internet

O WebHTB é uma excelente ferramenta para controlar a velocidade da internet na rede local. Resolvi criar este artigo usando três grandes distros de referência: Debian, CentOS (Red Hat) e Slackware, mostrando as diferenças em cada caso.

[ Hits: 37.794 ]

Por: Ronaldo Moraes Junior em 19/03/2015


Instalando o WebHTB no CentOS



Em minha opinião, a instalação no CentOS é a mais simples, porém, a que me deu mais dor de cabeça! Isso porque o CentOS já vem com um firewall configurado e também com o SELinux ativo, o que me demandou muito tempo até descobrir a origem dos problemas. Mas uma vez descobertos, a instalação e o funcionamento ocorreram com facilidade.

Primeiramente, vamos instalar os aplicativos necessários. Note que há uma ligeira diferença nos nomes dos aplicativos em relação ao Debian, mas são os mesmo pacotes:

# yum install httpd php php-cli php-mysql php-snmp php-xmlrpc mysql-server openssl mod_ssl

Vamos agora criar o certificado SSL da mesma forma que no Debian:

# openssl req $@ -new -x509 -days 365 -nodes -out /etc/httpd/apache.pem -keyout /etc/httpd/apache.pem

Ativar o módulo SSL no Apache não é necessário, já que ao instalar o "mod_ssl" ele já insere um arquivo de configuração do SSL em /etc/httpd/conf.d/ssl.conf.

Agora vamos liberar as portas 80 e 443 no firewall do CentOS. Para isso, vamos editar o arquivo /etc/sysconfig/iptables e inserir as regras para liberar as portas:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m TCP -p tcp --dport 443 -j ACCEPT

Inserindo essas linhas ANTES das regras de bloqueio. A seguir, depois de salvarmos, vamos reiniciar o firewall com as novas regras:

# service iptables restart

Assim como no Debian, vamos ativar o "short_open_tag" no "php.ini". Repare que a localização do arquivo difere ligeiramente: ele deve ficar em /etc/php.ini.

short_open_tag = on

Agora iniciamos o Apache e o marcamos para que seja sempre iniciado na inicialização do sistema:

# chkconfig httpd on
# service httpd start

A seguir, verificamos se o servidor HTTP está ativo acessando o SSL: https://127.0.0.1

Se tudo correu bem, vamos nos deparar com a mesma tela nos pedindo para examinarmos o certificado SSL:
Linux: WebHTB - Controle de banda de internet
Agora vamos inicializar o MySQL (com o "secure_install") e criar o banco de dados do WebHTB:

# chkconfig mysqld on
# service mysqld start

# mysql_secure_install

Podemos "setar" as mesmas opções da instalação no Debian, sejam elas: remover o usuário anônimo, bloquear login como root remotamente e remover a database "test". Agora vamos logar no MySQL e criar o banco:

# mysql -u root -p

mysql> create database webhtb;
mysql> GRANT ALL PRIVILEGES ON webhtb .* TO 'root@127.0.0.1' IDENTIFIED BY 'suasenha' WITH GRANT OPTION;
mysql> exit

Então instalamos o WebHTB:

# cd /var/www/html
# wget -c http://sourceforge.net/projects/webhtb/files/WebHTB%20V2.xx/WebHTB_V2.9/WebHTB_V2.9.bz2
# tar jxvf WebHTB_V2.9.bz2

O próximo passo é muito importante pois, por padrão, o CentOS vem com o SELinux ativo. Será preciso mudar seu status de Enforcing para Permissive, pois sem isso, não conseguimos logar no MySQL através da interface do WebHTB.

É possível alterar as regras do SELinux para que não seja necessário mudar seu status, mas sinceramente, não sei utilizar o SELinux (e nem nunca precisei) o suficiente para mudar suas ACLs diretamente. Aqui foi onde tive mais dor de cabeça, pois o WebHTB não funcionava e não havia log de erros em lugar nenhum!

# setenforce 0

A seguir, editamos o arquivo de inicialização dele (/etc/sysconfig/selinux) para que daqui em diante sempre seja inicializado no modo Permissive.

Para isso, basta mudar a linha: SELINUX=enforcing
Para:

SELINUX=permissive

Salvar e sair.

Neste ponto o WebHTB estará disponível, mas primeiramente, precisa ser configurado para inicialização. Da mesma forma que no Debian, primeiramente acessamos o setup, no entanto o endereço é ligeiramente diferente: https://127.0.0.1/webhtb/setup/index.php

Será exibida a tela para configuração inicial idêntica ao Debian:
Linux: WebHTB - Controle de banda de internet
Lá, da mesma forma, informamos o usuário MySQL root, sua senha e a interface padrão. Feito isso enviamos a configuração clicando em Submit. Se tudo correu bem, estaremos na tela principal de login do WebHTB.

Após tudo ter funcionado corretamente, podemos excluir o diretório "setup/" do WebHTB por motivos de segurança.

A seguir é necessário inserir o script de inicialização do WebHTB no "init.d" para que ele seja executado a cada boot e incluir os módulos do kernel responsáveis pelo controle de banda:

# cp /var/www/html/webhtb/docs/webhtb /etc/init.d/webhtb
# chkconfig webhtb on

Ativamos os módulos do kernel para uso do WebHTB:

# modprobe sch_htb
# modprobe sch_sfq
# modprobe cls_u32

E incluímos os módulos do kernel para serem ativados no momento do boot editando o arquivo /etc/rc.d/rc.local e incluindo as linhas abaixo ao final do arquivo:

modprobe sch_htb
modprobe sch_sfq
modprobe cls_u32

A partir daí é só logar no WebHTB acessando: https://127.0.0.1/html/webhtb, usando a senha de root do sistema (e não a senha de root do MySQL) e inserir as regras de controle de banda das classes e dos usuários.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Instalando o WebHTB no Debian
   3. Instalando o WebHTB no CentOS
   4. Instalando o WebHTB no Slackware
   5. Problemas (e soluções) encontrados
Outros artigos deste autor

DVDAuthor: Como autorar DVDs no Linux

Instalando Squid a partir do código fonte

Leitura recomendada

Configurando serviço DHCP (Debian)

Openswan - Configurando uma conexão VPN Site-to-Site e simulando com GNS3

Análise de Desempenho: Web API - Recursos técnicos

MikroTik RouterOS 5.20 para provedores - Tutorial completo

Configurando o segundo default gateway para um link de entrada específico

  
Comentários
[1] Comentário enviado por stremenx em 16/02/2016 - 17:43h

Boa tarde, segui 100% sua dica mais está retornando assim quando tento entrar:
https://127.0.0.1/html/webhtb/setup/index.php

Sendo essa imagem do erro:
https://www.dropbox.com/s/ubt0npn1dy2jqzg/Screenshot.png?dl=0

Poderia me dar uma ajuda.

[2] Comentário enviado por ronaldomjunior em 17/02/2016 - 23:19h

Já verificou se o PHP está ativo? outra coisa, verifique se o SERVIDOR SSH também está ativo e configurado para iniciar automaticamente.

--
Ronaldo Moraes Junior
Divinópolis - MG

[3] Comentário enviado por stremenx em 18/02/2016 - 11:47h

Bom dia, achei o problema era php.ini onde deve ser alterado no Debian 8, /etc/php5/apache2/php.ini
Poderia me ajudar, tenho squid3 e dansguard tudo funcionado mais queria fazer controle de velocidade (Downloads e Update) como seria no meu caso pois não estou achando tutorial, pois tenho internet de 10 mg e queria quer todos tivesse apenas acesso a downloads até 200 kbps.

[4] Comentário enviado por ediwisa em 07/03/2016 - 17:34h

Boa Tarde, sou iniciante em linux e tambem aqui no forum.Gostaria de saber , se possivel , o que é necessario alterar no Debian 8, /etc/php5/apache2/php.ini para acessar a pagina de setup corretamente, pois estou com o mesmo problema que o amigo stremenx
estava.Obrigado!

[5] Comentário enviado por stremenx em 07/03/2016 - 20:13h

Boa noite, para alterar bastar alterar a permissão #chmod 777 /etc/php5/apache2/php.ini e basta abrir e salvar dentro somente "short_open_tag = on".

Mais eu recomendo você ir para pfsense é mais rápido se quiser somente squid, squidguard, dansguards e controle de banda, pois já vem mastigado seria melhor que debian.

[6] Comentário enviado por ediwisa em 08/03/2016 - 08:58h

Bom dia , consegui concluir o setup agora ,seguindo a dica do amigo stremenx.Tenho agora que fazer ele logar na pagina,pois ele esta dando o problema de ficar girando a animaçao do webhtb e não logou ainda.Já verifiquei a questão da porta do ssh, a qual não foi alterada.Vou tentar mais um pouco .Muito obrigado e que Deus os abençoe.

[7] Comentário enviado por stremenx em 08/03/2016 - 09:53h

Amigo basta seguir o ultimo passo para corrigir.

https://www.vivaolinux.com.br/artigo/WebHTB-Controle-de-banda-de-internet?pagina=5

Só que como você é iniciante recomendo você pegar o PfSense, muito mais fácil de configura, além de ser gratuito.

https://www.pfsense.org/

https://forum.pfsense.org/index.php?board=12.0

[8] Comentário enviado por ediwisa em 08/03/2016 - 19:17h

Boa noite , consegui colocar pra rodar o webhtb senguindo as dicas passadas.Fiz os testes e esta perfeito.Muito obrigado!

[9] Comentário enviado por nizopi em 11/06/2016 - 12:29h

Boa tarde pessoal, segui todo o tutorial e tudo tem dado certo, até o momento de logar no sistema, o mesmo fica parado na animação do login, mas já conferi a porta do SSH e está na 22, tbm adicionei o grupo de algoritmos no final do arquivo de configuração do SSH, mas tbm não resolveu, e outra duvida tbm é referente ao local /var/www/html, já que o mesmo já existe no sistema, até aí ok, o conteúdo está la em html/, mas na hora de abrir no navegador ele só abre se eu tirar o html e colocar direto http://127.0.0.1/webhtb/setup/index.php e não http://127.0.0.1/html/webhtb/setup/index.php, isso poderia estar influenciando no erro?

Estou usando o Debian 8 Jessie 3.16.0-4-686pae

Obg.

[10] Comentário enviado por nizopi em 11/06/2016 - 18:39h


[9] Comentário enviado por nizopi em 11/06/2016 - 12:29h

Boa tarde pessoal, segui todo o tutorial e tudo tem dado certo, até o momento de logar no sistema, o mesmo fica parado na animação do login, mas já conferi a porta do SSH e está na 22, tbm adicionei o grupo de algoritmos no final do arquivo de configuração do SSH, mas tbm não resolveu, e outra duvida tbm é referente ao local /var/www/html, já que o mesmo já existe no sistema, até aí ok, o conteúdo está la em html/, mas na hora de abrir no navegador ele só abre se eu tirar o html e colocar direto http://127.0.0.1/webhtb/setup/index.php e não http://127.0.0.1/html/webhtb/setup/index.php, isso poderia estar influenciando no erro?

Estou usando o Debian 8 Jessie 3.16.0-4-686pae

Obg.


Já resolvi esse problema, estava na configuração do SSH, só o caso de não iniciar com html que ainda resta dúvida, mas funcionou..

Agora o problema é outro, o webhtb só entra em ação se eu abrir a interface e clicar em "Start/Restart QOS", mesmo inserindo o script no init.d e mesmo adicionando os modulos como indicado no artigo, mas não inicia automaticamente, o que poderia ser?

Obg.

[11] Comentário enviado por ajsalmeida em 23/02/2017 - 14:47h

Olá. Consegui ir até o final, mas quando loga no webHTB ele entra no sistema e aparecem algumas imagens azuis e só.
Já tentei mudar o arquivo php.ini mas não deu resultado. Na verdade estou usando ubuntu server, eu sei eu sou meio maluco, mas
não posso usar o pfsense aqui. Alguma ideia de como resolver esse problema de não carregar tudo da página depois que loga?


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts