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

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

Instalando Squid a partir do código fonte

DVDAuthor: Como autorar DVDs no Linux

Leitura recomendada

Balanceamento de links - Load balance + Failover + Failback

Criando e Consumindo Rede de Compartilhamento NFS

Montagem de Cluster

Docker - Containers em Linux (parte 2)

Análise de Desempenho: Web API

  
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