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