Pages

Wednesday, April 15, 2009

Limitando banda de download no apache

Para limitar banda diretamente no apache, pode-se utilizar o módulo mod-bw.

O site oficial é: http://bwmod.sourceforge.net/

Esta dica é útil quando se tem uma ADSL em casa ou um link pequeno em alguma empresa quando se tem arquivos para download em um servidor WEB apache. Assim você consegue limitar o uso de banda para download diretamente no apache.

Antes de iniciar a instalação no opensuse, é preciso instalar o pacote apache2-devel.

Se o zypper estiver configurado para obter os repositórios externos é só fazer isso:

zypper install apache2-devel


Na sequência pode-se iniciar a compilação do mod-bw.

wget http://bwmod.sourceforge.net/files/mod_bw-0.7.tgz
tar xvzf mod_bw-0.7.tgz
cd mod_bw



Edite o arquivo mod_bw.c e localize a seção abaixo:

/* Compatibility for ARP < 1 */
#if (APR_MAJOR_VERSION < 1)
#define apr_atomic_inc32 apr_atomic_inc
#define apr_atomic_dec32 apr_atomic_dec
#define apr_atomic_add32 apr_atomic_add
#define apr_atomic_cas32 apr_atomic_cas
#define apr_atomic_set32 apr_atomic_set
#endif



E deixe a seção acima conforme está abaixo:

/* Compatibility for ARP < 1 */
/*
#if (APR_MAJOR_VERSION < 1)
#define apr_atomic_inc32 apr_atomic_inc
#define apr_atomic_dec32 apr_atomic_dec
#define apr_atomic_add32 apr_atomic_add
#define apr_atomic_cas32 apr_atomic_cas
#define apr_atomic_set32 apr_atomic_set
#endif
*/


Isso porque se deixar como o default, o apache não irá inicializar, e dará um erro como o seguinte:

httpd2-prefork: Syntax error on line 116 of /etc/apache2/httpd.conf: Syntax error on line 33 of /etc/apache2/sysconfig.d/loadmodule.conf: Cannot load /usr/lib/apache2/mod_bw.so into server: /usr/lib/apache2/mod_bw.so: undefined symbol: apr_atomic_cas


Após a alteração, faça a compilação do módulo:

apxs2 -i -a -c mod_bw.c


Para configurar o módulo, edite o arquivo de configuração do seu server apache, no meu caso /etc/apache2/default-server.conf porque não utilizao mais de um domínio. E adicione o conteúdo abaixo no arquivo.

BandWidthModule On
ForceBandWidthModule On
BandWidth 192.168.0.0/24 0
BandWidth all 60000



Explicando as linhas
1a. Habilita o controle de banda
2a. Garante que cada requisição http será "controlada"
3a. Diz que a rede interna (192.168.0.0/24) não será limitada
4a. Diz que todo o resto será limitado em 60K/s


É isso ai! só fazer o teste agora, faça o teste antes de colocar o módulo em ação e depois ative o mesmo e veja a diferença na taxa de transferência.

Fabio

Thursday, April 09, 2009

CCNP Finalizado

Depois de +- 10 meses de estudos... finalizei hoje as provas da certificação CCNP.

Agora... dar continuidade nos estudos para completar o CCIE em routing and switching!!!

Valeu!

Fabio Silva

Tuesday, April 07, 2009

Instalando e configurando servidor tacacs (tac_plus) no Opensuse 11.1

O servidot tacacs tac_plus é distribuido pela cisto através do link: ftp://ftp-eng.cisco.com/ftp/pub/tacacs/
Porém o Devrim Seral (http://www.gazi.edu.tr/tacacs/) fez o favor de criar pacotes RPM a partir do fonte da Cisco. E este pacote RPM funciona no opensuse 11.1. Baixe o arquivo RPM e faça a instalação do mesmo.



wget http://www.gazi.edu.tr/tacacs/get.php?src=tac_plus-F4.0.3.alpha-5.i386.rpm
rpm -ivh tac_plus-F4.0.3.alpha-5.i386.rpm



Após a instalação é preciso fazer algumas alterações na configuração, edite o arquivo /etc/rc.d/init.d/tac_plus e deixe conforme abaixo. Você precisa achar estas linhas no arquivo e deixar como está abaixo.



#. /etc/rc.d/init.d/functions
#. /etc/sysconfig/network
#[ ${NETWORKING} = "no" ] && exit 0
#daemon tac_plus -C $tacacs_config -d $debug
tac_plus -C $tacacs_config -d $debug
#daemon tac_plus -C $tacacs_config
tac_plus -C $tacacs_config



Mova o arquivo tac_plus que inicia o serviço para o diretório correto.

mv /etc/rc.d/init.d/tac_plus /etc/init.d/



Coloque para iniciar automaticamente.

chkconfig tac_plus on


obs.: Vai dar algums erros aqui mas não se preocupe, irá funcionar.

Feito isso pode-se iniciar o servidor tacacs

/etc/init.d/tac_plus start


Verifique se o daemon subiu.


ps aux | grep tac_plus
root 26373 0.0 0.0 2060 376 pts/0 S 07:30 0:00 tac_plus -C /etc/tacacs/tac_plus.cfg


É preciso alterar o arquivo de configurações para que atenda as necessidades.

Edite o arquivo /etc/tacacs/tac_plus.cfg e deixe semelhante ao que está abaixo.



###
default authentication = file /etc/shadow
accounting file = /var/log/tac.account_log

# Chave de configuração dos equipamentos
key = cisco

# Definicao geral de usuarios
user = DEFAULT {
default service = permit
}

### Definicao de grupos para usar com os usuarios
group = administrador {
default service = permit
service = exec {
priv-lvl = 15
idletime=10
}
}

# Limita os comandos para o grupo usuarios
group = usuarios {
default service = deny
cmd = exit {
permit .*
}
cmd = login {
permit .*
}
cmd = logout {
permit .*
}
#Permite somente os commandos show version, flas e interface, ping e traceroute
cmd = show {
permit version
permit flash:
permit interface
deny .*
}
cmd = ping {
permit .*
}
cmd = traceroute {
permit .*
}
service = exec {
priv-lvl = 7
idletime=3
}
}

#### Usuarios
user = operador {
member = usuarios
login = cleartext operador123
}
user = joao {
member = usuarios
login = cleartext joao123
#14 dias antes da senha expirar o usuario eh alertado apos o login.
expires = "Apr 20 2009"
}
user = jose {
member = usuarios
#Fazer login sem password
login = nopassword
}
user = admin {
member = administrador
login = cleartext admin123
}
user = fabio {
member = administrador
login = cleartext fabio123
}

#### Senha de enable geral
user = $enab15$ {
login = cleartext supersenhacisco
}

#### senha de enable para cada equipamento caso nao caia na condicao anterior
host = 192.168.0.40 {
enable = cleartext cisco
}




Feito isso, reinicie o servidor tacacs. E configure os equipamentos de rede para usar o mesmo.

Segue exemplo de configuração de um router cisco.

aaa new-model
aaa authentication login LOGAR local group tacacs+
aaa authentication enable default group tacacs+ enable
aaa authorization exec default group tacacs+ local
aaa accounting exec default start-stop group tacacs+
aaa accounting commands 15 default start-stop group tacacs+
tacacs-server host 192.168.0.20
tacacs-server key cisco

line vty 0 4
login authentication LOGAR



Após isso, logue num equipamento cisco e veja os logs de accounting do servidor tacacs...

tail -f /var/log/tac.account_log
Tue Apr 7 23:14:57 2009 192.168.0.40 fabio tty98 192.168.0.41 stop task_id=6 timezone=UTC service=shell priv-lvl=15 cmd=show running-config
Tue Apr 7 23:15:25 2009 192.168.0.40 fabio tty98 192.168.0.41 stop task_id=7 timezone=UTC service=shell priv-lvl=15 cmd=clear counters Serial 0/0


Só.... cuidado.. isso gera muito log... caso não queira as estatísticas de cada comando que os usuários digitam, remova a linha abaixo da configuração dos equipamentos. Esta linha é interessante quando tem mais de uma pessoa que administra os equipamentos.. assim pode-se realizar uma certa auditoria quando der algum problema.


aaa accounting commands 15 default start-stop group tacacs+



Lembrando que o tacacs pode ser integrado ao PAM do linux, e autenticar usuários do AD através do samba winbind, ou até mesmo alguma base LDAP.

É Isso ae..

Referências:
http://www.cisco.com/en/US/tech/tk59/technologies_tech_note09186a00800946a3.shtml


http://www.pro-bono-publico.de/projects/tac_plus.html

http://wiki.centosbr.org/index.php/Instalando_e_configurando_TACACS%2B_no_CentOS

In a little while...