domingo, 3 de fevereiro de 2013

CONTROLE DE BANDA COM WEBHTB

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:

  1. #Modulos necessarios
  2. LoadModule ssl_module lib/httpd/modules/mod_ssl.so
  3. LoadModule socache_shmcb_module lib/httpd/modules/mod_socache_shmcb.so
  4.  
  5. # Chamando arquivo para configuracao.
  6. Include /etc/httpd/extra/httpd-ssl.conf
 
Segue as alterações que precisam ser feitas no arquivo httpd-ssl.conf:

  1. # General setup for the virtual host
  2. DocumentRoot "/var/www/htdocs"
  3. ServerName proxy.makeconnect.com.br:443
  4. ServerAdmin suporte@makeconnect.com.br
  5. ErrorLog "/var/log/httpd/error_log"
  6. TransferLog "/var/log/httpd/access_log"
  7.  
  8. # ALtere caminho para a pasta que conter o certificados.
  9. SSLCertificateFile "/etc/httpd/certs/server.crt
  10. SSLCertificateKeyFile "/etc/httpd/certs/server.key"

Vamos criar um certificado para uso do apache, segue:

  1. # mkdir certs
  2. # cd certs/
  3. # openssl genrsa -des3 -out server.key 1024
  4. # openssl rsa -in server.key -out server.key.insecure
  5. # openssl req -new -key server.key -out server.csr
  6. # mv server.key server.key.insecure
  7. # mv server.key.insecure server.key
  8. # openssl req -new -key server.key -out server.csr
  9. # openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
  10. # cp server.crt /etc/ssl/certs/
  11. # 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.

  1. # mysql_install_db
  2. # chown -R /var/lib/mysql
  3. # chmod +x /etc/rc.d/rc.mysqld start
  4. # /etc/rc.d/rc.mysqld start
  5. # 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.

Nenhum comentário:

Postar um comentário

Arquivo do blog