Archive

Archive for the ‘Linux Debian’ Category

Instalar ModSecurity no Debian Lenny

outubro 4, 2010 Deixe um comentário

O ModSecurity (http://www.modsecurity.org), e um firewall para as aplicações web, e ele é muito eficiente para prevenir ataques, abaixo, os passos que segui para configurar o ModSecurity em meu ambiente (Debian Lenny + Apache2):
1 – Os pacotes do ModSecurity não estão disponíveis nos mirrors do Debian, somente no backports, caso você ainda não tenha adicionado o backports em seu mirror, faça o seguinte:
– Edite o seu arquivo de mirrors do apt:
$ vim /etc/apt/sources.list

Adicione a seguinte linha no final do arquivo:
deb http://backports.debian.org/debian-backports lenny-backports main

Então atualize:
$ aptitude update

2 – Instale o ModSecurity:
$ aptitude -t lenny-backports install libapache-mod-security -y

3 – Após a instalação, criei alguns diretórios que achei necessário (apenas uma sugestão, você pode criar os diretórios onde bem entender):
$ mkdir /etc/apache2/logs /etc/apache2/modsecurity

4 – Criar o arquivo de configuração do ModSecurity que irá ser carregado pelo Apache:
$ vim /etc/apache2/conf.d/modsecurity.conf

E adicionar as seguintes linhas no arquivo:

# /etc/init.d/apache2/conf.d/modsecurity.conf

Include modsecurity/*.conf
Include modsecurity/base_rules/*.conf

5 – Entrar no diretório que nós criamos do ModSecurity para copiar as regras que por padrão já vem configuradas:

$ cd /etc/apache2/modsecurity
$ cp -R /usr/share/doc/mod-security-common/examples/rules/* .

6 – Reiniciar o Apache:
$ /etc/init.d/apache2 restart

7 – Verifique se o ModSecurity carregou com o Apache:
$ cat /var/log/apache2/error.log | grep modsecurity

– Deve retornar a seguinte linha:
ModSecurity for Apache/2.5.11 (http://www.modsecurity.org/) configured.

8 – Testando seu ModSecurity:
– Primeiro vamos desabilitar o ModSecurity e reiniciar o Apache:
$ a2dismod mod-security && /etc/init.d/apache2 restart

– Vamos criar um diretório dentro do raiz do apache2, no meu caso, o /var/www:
$ mkdir /var/www/teste

– E vamos criar uma página em PHP, que é capaz de mostrar qualquer arquivo do Servidor:

– Vá até o seu navegador preferido e digite http://servidor.web/index.php?secret_file=/etc/passwd (lembre-se de alterar o servidor.web pelo nome ou IP de seu servidor);
– Você irá conseguir visualizar, no seu browser, o arquivo de usuários locais do sistema;
– Agora vamos habilitar o ModSecurity e reiniciar o Apache:
$ a2enmod mod-security && /etc/init.d/apache2 restart

– Vá novamente em seu navegador favorito e digite novamente http://servidor.web/index.php?secret_file=/etc/passwd (lembre-se de alterar o servidor.web pelo nome ou IP de seu servidor)
– Você irá receber a mensagem de Forbidden;
– Os logs do ModSecurity ficam em /etc/apache2/logs.

Vou estudar melhor as regras do ModSecurity, qualquer novidade eu posto por aqui.

Abraços.

Monitorando hora de desligamento de servidores Linux.

agosto 25, 2009 Deixe um comentário

Imagine você saindo na sexta-feira de seu trabalho, quando volta na segunda seus servidores estão desligados, e agora? Como saber quando eles foram desligados?

Fiz um pequeno script para que eu saiba a hora exata em que o servidor foi desligado, os passos que darei foram feitos em servidores Debian 5.0 “Lenny”, mas funcionam perfeitamente bem em qualquer distribuição, desde que você adapte os passos.

Crie os arquivos necessários:

# touch /var/log/monitorar.log

# touch /var/log/turnoff.log

# touch /etc/init.d/registro

Adicionei no crontab a seguinte linha:

*/1 * * * * /bin/date > /var/log/monitorar.log

Com esta linha, o comando date será executado de 1 em 1 minuto, e sua saída será adicionada no arquivo /var/log/monitorar.log, note que a linha não será adicionada no arquivo, pois estou utilizando somente 1 sinal lógico “>“, e sim, sobrescreverá o conteúdo existente no arquivo.

Adicionei o script registro no diretório /etc/init.d/ com o seguinte conteúdo:

# vim /etc/init.d/registro

#!/bin/bash

REGISTRO=$(cat /var/log/monitorar.log)

echo “Desligado em: $REGISTRO” > /var/log/turnoff.log

Ele irá ler o conteúdo do arquivo /var/log/monitorar.log e adicionará no arquivo /var/log/turnoff.log, pois quando você reiniciar a máquina, o crontab irá executar a linha do date e sobrescreverá o conteúdo do /var/log/monitorar.log, e não é isso que você quer, você quer saber a hora real do desligamento do seu servidor.

Feito isso, configure o script como executável:

# chmod +x /etc/init.d/registro

E configure para executar no boot:

# update-rc.d registro defaults

Para testar, aguarde 1 minuto, marque a hora atual e reinicie sua máquina:

# date && shutdown -r now

Marque a hora, após a reinicialização, veja se a hora guardada no arquivo /var/log/turnoff.log confere com a hora que você marcou:

# cat /var/log/turnoff.log

Se tudo deu certo, agora você terá a hora exata que seu servidor foi desligado, por qualquer que tenha sido o motivo.

Abraços.

Categorias:Linux Debian Tags: