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: 39.567 ]

Por: Ronaldo Moraes Junior em 19/03/2015


Instalando o WebHTB no Debian



O primeiro passo é instalar os aplicativos necessários para utilização no WebHTB. Para isso, recorremos ao bom e velho apt-get (ou aptitude, se preferir):

# apt-get install apache2 php5 php5-cli php5-mysql php5-snmp php5-xmlrpc mysql-server openssl ssl-cert

Diferente do CentOS, no Debian ao instalar o MySQL, o script de instalação já pede que seja configurada a senha de root do MySQL. Durante a instalação será pedida a senha, aproveite e já crie a sua, se ainda não tiver uma.

Caso não tenha um servidor SSH instalado, instale também o "openssh-server":

# apt-get install openssh-server

Por padrão o Debian também já deixa os servidores MySQL e Apache ativos, de forma que não é necessário iniciá-los manualmente. No entanto, caso não tenham se iniciado, basta fazer de forma manual:

# service apache2 start
# service mysqld start

Pode ser que você não tenha o "service" instalado. Se os comandos acima retornarem erro, faça da velha maneira:

# /etc/init.d/apache2 start
# /etc/init.d/mysqld start

A seguir, criaremos um certificado SSL que será utilizado ao acessarmos o WebHTB, usando o HTTPS (HTTP seguro):

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

O próximo passo é ativar o módulo SSL no Apache, para que a conexão segura seja possível:

# a2enmod ssl
# a2ensite default-ssl

Feito isso, damos um restart no Apache para ele reiniciar com o SSL ativo:

# service apache2 restart
Ou:
# /etc/init.d/apache2 restart

E por fim, verificamos se ele está ativo na porta segura acessando pelo navegador: https://127.0.0.1

Atenção para o "s" em https. Se tudo ocorreu bem, você verá a tela dizendo que o certificado não é confiável etc. A mesma coisa que aparece quando acessamos certos sites governamentais. :)

Caso tudo esteja certo, nos depararemos com a mensagem de conexão não confiável, pois não possui um certificado autenticado (o que é o esperado):
Linux: WebHTB - Controle de banda de internet
Como o WebHTB já foi escrito há algum "tempinho", o código PHP dele não é iniciado com "<?php" o que acaba gerando um comportamento inesperado nas páginas em PHP. Para resolver isso, iremos ativar o "short_open_tag" que faz o interpretador PHP se comportar como o antigo PHP que iniciava com "<?".

Para isso, vamos criar o arquivo /etc/php.ini e ativar a opção "short_open_tag". No Debian, por padrão o arquivo não existe, mas basta criá-lo e inserir a regra:

short_open_tag = on

Depois, basta salvar e pronto. PHP resolvido!

Agora vem o restante da instalação do MySQL. Particularmente, eu gosto de rodar o script para instalação segura:

# mysql_secure_installation

Ao ser perguntado se deseja alterar a senha de root escolha não ("N"), já que a criamos no passo anterior. Escolha remover o usuário anônimo, bloquear login como root remotamente e remover a database "test".

Após isso, vamos logar no MySQL e criar o banco de dados que será usado pelo WebHTB:

# 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

Lembrando que 'suasenha' é a senha de root do MySQL (cuidado para não colocar a senha de root do sistema!).

Agora vem a instalação do WebHTB:

# mkdir /var/www/html
# 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

* Muito importante: a criação do diretório "/var/www/html" pois, apesar de teoricamente o site abrir se for colocado em "/var/www", teremos problemas com o script de inicialização se mantivermos desta forma.

Após isso o WebHTB estará disponível, mas primeiramente precisa ser configurado para inicialização.

Primeiramente acessamos: https://127.0.0.1/html/webhtb/setup/index.php

Será exibida a tela para configurarmos o sistema:
Linux: WebHTB - Controle de banda de internet
Onde informamos o usuário MySQL root, sua senha e a interface padrão, que é a interface que vai para os clientes que queremos controlar a velocidade. Feito isso, enviamos a configuração clicando em Submit. Se tudo correu bem, estaremos na tela principal de login do WebHTB:
Linux: WebHTB - Controle de banda de internet
Após tudo ter funcionado corretamente, podemos excluir o diretório "setup/" do WebHTB por motivos de segurança.

Antes de terminarmos, é 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

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.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

Tutorial de instalação e configuração do CACIC 3.1.15

NET Virtua, Bloqueio de DNS, SmartTVs, Netflix e Youtube, uma mistura explosiva

Criando RADIUS no Windows Server 2012 para autenticar no Mikrotik

"TORIFICANDO" todo um sistema GNU/Linux utilizando a rede TOR

Instalação OpenMeettings no Debian 7

  
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