Gerenciar um servidor com diversas regras de QOS via modo texto (Script), pode se tornar uma tarefa muito complexa.
Imagine um cenário de Hosting/Colocation, onde é necessário o controle da banda por vlan, quantas regras teríamos que alterar, excluir ou acrescentar neste script.
Neste artigo, vou estar apresentando um frontend chamado WEBHTB, que ajuda muito este tipo de gerência.
Segue o site do projeto para maiores informações:
http://www.webhtb.ro/
Para este cenário estou utilizando o Slackware versão 14.0, com um seleção de pacotes essenciais para um servidor bem enxuto.
O WEBHTB permite o acesso apenas via HTTPS, é necessário habilitar o mod_ssl no Apache.
Segue o que é necessário para habilitar o mod_ssl no httpd.conf:
#Modulos necessarios
LoadModule ssl_module lib/httpd/modules/mod_ssl.so
LoadModule socache_shmcb_module lib/httpd/modules/mod_socache_shmcb.so
# Chamando arquivo para configuracao.
Include /etc/httpd/extra/httpd-ssl.conf
Segue as alterações que precisam ser feitas no arquivo httpd-ssl.conf:
# General setup for the virtual host
DocumentRoot "/var/www/htdocs"
ServerName proxy.makeconnect.com.br:443
ServerAdmin suporte@makeconnect.com.br
ErrorLog "/var/log/httpd/error_log"
TransferLog "/var/log/httpd/access_log"
# ALtere caminho para a pasta que conter o certificados.
SSLCertificateFile "/etc/httpd/certs/server.crt
SSLCertificateKeyFile "/etc/httpd/certs/server.key"
Vamos criar um certificado para uso do apache, segue:
# mkdir certs
# cd certs/
# openssl genrsa -des3 -out server.key 1024
# openssl rsa -in server.key -out server.key.insecure
# openssl req -new -key server.key -out server.csr
# mv server.key server.key.insecure
# mv server.key.insecure server.key
# openssl req -new -key server.key -out server.csr
# openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
# cp server.crt /etc/ssl/certs/
# cp server.key /etc/ssl/private/
Inicie o serviço
# /etc/rc.d/rc.httpd start
Se estiver ok, vamos para o próximo passo que será a configuração do mysql.
# mysql_install_db
# chown -R /var/lib/mysql
# chmod +x /etc/rc.d/rc.mysqld start
# /etc/rc.d/rc.mysqld start
# mysql_secure_instalation
Segue alterações que devem ser feitas no arquivo php.ini:
date.timezone = America/Sao_Paulo
short_open_tag = On
Após as configurações acima estiverem feitas, vamos efetuar o download:
http://sourceforge.net/projects/webhtb/files/WebHTB%20V2.xx/WebHTB_V2.9/WebHTB_V2.9.bz2/download
Descompactar o arquivo no diretório /var/www/htdocs
Vamos acessar o endereço do nosso servidor e configurar o mesmo:
https://mywebhtb/webhtb/setup/index.php
Conforme figura acima, preencha os dados nos campos.
Se você obter um erro de permissão, altere apenas um parametro no arquivo save.php.
# vim /var/www/htdocs/webhtb/setup/save.php
Altere a variável conforme abaixo:
$connect = mysql_connect('127.0.0.1', $root_id, $root_pass);
Para:
$connect = mysql_connect('localhost', $root_id, $root_pass);
Feito isso aplique novamente as configurações e sera redirecionado para a tela inicial com uma mensagem de erro de permissão conforme abaixo:
Vamos efetuar uma pequena alteração, no seguinte arquivo:
# vim /var/www/htdocs/webhtb/config/config.php
Altere a variável:
$mysqlhost = '127.0.0.1';
Para:
$mysqlhost = 'localhost';
Feito isso o acesso já será feito corretamente, conforme figura abaixo, adicione a senha de root:
E será redirecionando para página inicial:
Agora vamos carregar os modulos Modulos necessário para o funcionamento:
# modprobe sch_htb
# modprobe sch_sfq
# modprobe cls_u32
Feito isso, remova a pasta setup:
# rm -rvf /var/www/htdocs/webhtb/setup
Vamos colocar o daemon webhtb na inicialização do Slackware.
Copie o daemon
webhtb que esta na pasta doc para o diretório rc.d:
# cp /var/www/htdocs/webhtb/docs/webhtb /etc/rc.d/rc.webhtb
Vamos editar e fazer uma pequena alteração:
Altere a variável abaixo:
dir="/var/www/html/webhtb"
Para:
dir="/var/www/htdocs/webhtb"
E por fim adicionamos, no arquivo rc.M, conforme abaixo:
if [ -x /etc/rc.d/rc.webhtb ]; then
. /etc/rc.d/rc.webhtb start
Feito, isso você já pode começar a criar as regras.