sábado, 4 de fevereiro de 2012

Fail2Ban.

Quem tem servidor WEB sempre sofre com alguns brute-forces que são feitos em FTP ou SSH(Linux), em um ambiente compartilhado, não há como limitar o acesso FTP a um cliente ou a vários clientes, imagina um cliente com Velox, GVT ou qualquer coisa que dê um IP dinâmico toda hora, é impraticável! Fim do mundo? Não, é ai que entra o Fail2Ban... ah tah, mas o que ele faz? Simples! Ele lê um arquivo que contenham as autenticações do sistema ou do serviço e baseado na política de tentativas de logins, irá banir um IP de continuar a tentar entrar no seu servidor. Vamos a prática.

(Sempre utilizo CentOS, então...)

1 - Instalação

# rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
 
yum install fail2ban
 
2 - Configuração inicial 
vim /etc/fail2ban/jail.conf
Dentro deste arquivo contém vários serviços a serem monitorados (Não significa que ele seja limitado, como expliquei o serviço feito pelo fail2ban é muito simples.)
No nosso caso iremos habilitar para SSH e VSFTPD
Procure a sessão ssh-iptables e edite da seguinte forma
[ssh-iptables]

enabled  = true
filter   = sshd
action   = iptables[name=SSH, port=22, protocol=tcp]
           sendmail-whois[name=SSH_Brute_Force, dest=root, sender=SEUEMAIL@SEUPROVEDOR.COM.BR]
logpath  = /var/log/secure #Log que o Fail2Ban irá ler para encontrar falhas de login.
maxretry = 3 #Tentativas com erro máxima, caso muitas pessoas acessem, considere aumentar para 10.
Caso utilize o SSH em outra porta basta colocar port=PORTA, exemplo: Sua porta é 2234 port=2234
Para o VSFTP
 
[vsftpd-notification] 
 
enabled  = true
filter   = vsftpd
action   = sendmail-whois[name=VSFTPD_Brute_Force, dest=SEUEMAIL]
logpath  = /var/log/secure
maxretry = 10
bantime  = 6000

[vsftpd-iptables]

enabled  = true
filter   = vsftpd
action   = iptables[name=VSFTPD, port=ftp, protocol=tcp]
           sendmail-whois[name=VSFTPD_Brute_Force, dest=SEUEMAIL]
logpath  = /var/log/secure
maxretry = 10
bantime  = 6000
 
Após efetuar todas as configurações basta executar /etc/init.d/fail2ban restart em outro momento explico mais sobre o Fail2Ban. 
 

Suporte a conexão Oracle no PHP.

Recentemente no trabalho, me deparei com uma situação na qual o cliente tinha uma aplicação PHP que comunicava com um banco Oracle em outro servidor, e agora? O que fazer? Muito simples! Vamos aos passos:

( A distribuição utilizada era CentOS 5.7)
Pacotes necessários:
php-devel
php-pear

1- Acessar http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/linuxsoft.html e baixar os pacotes Instantclient 'basic' e 'devel' .

rpm -ivh pacote-basic.rpm 
rpm -ivh pacote-devel.rpm

2- Apontar configuração:
echo /usr/include/oracle/VERSÃO/client/lib/ > /etc/ld.so.conf.d/oracle_client.conf
ldconfig -v

3 - Instalar o módulo

pecl install oci8

4 - Após a instalação basta executar:

echo extension=oci8.so >> /etc/php.ini

5 - Reiniciar o Apache

Big me.

=P