Mostrando postagens com marcador MySQL. Mostrar todas as postagens
Mostrando postagens com marcador MySQL. Mostrar todas as postagens

quarta-feira, 22 de maio de 2013


Introdução

Pessoal, aqui aprenderemos, passo a passo, como instalar e configurar o 
Snort
 com suporte a
MySQL
 e integrado com o 
Guardian
. Mas antes de colocar a mão na massa, vamos ver o que é esse tal de Snort e para que serve. 
O Snort é um sistema de detecção de intrusão de rede, ou simplesmente NIDS, é uma ferramenta open source, que nos permite monitorar o tráfego da rede e descobrir quando a rede está sofrendo de acessos não autorizados que podem ser de um potencial atacante. 
O Snort funciona da seguinte maneira: Inicialmente os pacotes são capturados pelo Snort utilizando o DAQ, depois são remontados pelos pré-processadores para analisar seu conteúdo e comparar com as assinaturas existentes, para dar confiabilidade ao IDS e evitar falso-negativo. Depois, o Payload é comparado com as regras que possuímos, então, caso exista uma regra que bata com o Payload, é gerado o output, que pode ser um alerta, logs ou alguma medida de ação. 
O Snort pode vir a ter duas coisas que podem atrapalhar sua confiabilidade, que são:
  • Falso-negativo → É quando um pacote passa sem ser notificado pelo IDS , o IDS pensa que o pacote é fluxo normal. Em minha opinião, pior que os falsos-positivos.
  • Falso-positivo → É quando o pacote é notificado como intrusivo, mas na verdade, é somente um falso alerta, alarme falso. O grande problema de muito falso positivo é a ferramenta perder a credibilidade, é a velha história do alarme do carro que dispara muito, e quando realmente for um furto, você não vai acreditar que estão levando seu carro.

Fonte: 
Sp0oKeR Labs: Introdução ao Snort - Serie Snortando (Parte 1)
Bem, vamos ao que interessa. Mão na massa! 

MySQL

Primeiramente, iremos instalar e configurar nosso banco de dados 
MySQL
# aptitude install mysql-server 
Depois de instalar, iremos criar o usuário "snort": 
# mysql -u root -p 
Entre com a senha de root que você forneceu durante a instalação. 
mysql> grant all privileges on snort.* to snort@localhost identified by "123456";
mysql> quit; 
Agora entre no MySQL usando o usuário que acabamos de criar: 
# mysql -u snort -p 
Informe a senha que utilizou para criar o usuário. Verifique as bases: 
mysql> show databases; 
Crie a base Snort no banco: 
mysql> create database snort; 
Saia: 
mysql> quit 

Snort

Agora é hora de instalar o Snort: 
# aptitude install snort-mysql 
Durante a instalação, informe a faixa de rede e a máscara que sua rede usa. Depois você será questionado se deseja que seja criado uma base de dados para gravar os logs, selecione "Sim" e depois dê OK. 
Agora acesse o diretório da documentação do Snort que contém as tabelas: 
# cd /usr/share/doc/snort-mysql 
Use o arquivo "create_mysql" para criar as tabelas na base Snort do banco: 
# zcat create_mysql.gz | mysql -u snort -h localhost -p snort 
Informe a senha do usuário "snort". Depois acesse a base Snort do banco e verifique se as tabelas foram criadas com sucesso: 
# mysql -u snort -p 
(Entre com a senha do usuário snort) 
mysql> show databases;
mysql> use snort;
mysql> show tables;
mysql> status;
mysql> quit; 
Vá ate o diretório onde estão os arquivos de configuração do Snort: 
# cd /etc/snort 
Renomeie o arquivo "snort.conf": 
# mv snort.conf snort.conf.orig 
Crie uma cópia do arquivo que acabamos de renomear sem os comentários, para o arquivo ficar menor e mais legível: 
# cat snort.conf.orig | grep -v ^# | grep . > snort.conf 
Agora vamos editar o arquivo "snort.conf": 
# pico snort.conf 
Na primeira linha (var HOME_NET any) remova o "any" e digite a faixa de rede/máscara: 
var HOME_NET 192.168.0.0/24
Agora, quase no final do arquivo, abaixo da linha (output log_tcpdump: tcpdump.log), digite o seguinte: 
output database: log, mysql, user=snort password=123456 dbname=snort host=localhost
output alert_full: /var/log/snort/alert
Entendendo: Na primeira linha informamos o nome de usuário da banco, a senha, o nome da base e o host do banco. No exemplo estou usando 
localhost
, mas é muito importante você colocar o banco de dados em outro servidor. Já na segunda linha, informamos o Snort para gerar os logs no arquivo alert. 
Agora vá até o arquivo "snort.debian.conf" e dê uma olhada na linha (DEBIAN_SNORT_INTERFACE="eth0"), mude-a caso deseje que o Snort escute em outra interface. 
Remova o arquivo de pendência de configuração do banco de dados: 
# rm db-pending-config 
Entre no arquivo /etc/snort/database.conf e comente a seguinte linha: 
### output database: log, mysql,
Depois disso, pode iniciar o Snort: 
# /etc/init.d/snort start 
Faça um teste, fique monitorando o arquivo de log do Snort: 
# tail -f /var/log/snort/alert 
E em outra máquina, use o Nmap para escanear o host do Snort: 
# nmap -sX 192.168.0.1 
Obs.: Esse é o IP do Snort no meu laboratório. 
Fique acompanhando o arquivo "alert" e veja o que acontece. 
Pronto. Até aqui já temos o Snort pronto para gerar os alertas e gravar no banco de dados, mas ele ainda não é capaz de bloquear nada, pois não está com o IPS Guardian. Vamos fazer isso agora. 
 

Guardian

Primeiro baixaremos o Guardian: 
Agora iremos descompactar: 
# tar -xvzf guardian-1.7.tar.gz
# cd guardian-1.7
 
Editar o arquivo "guardian.conf": 
# pico guardian.conf 
Informar o IP do servidor na linha HostIpAddr: 
HostIpAddr        192.168.0.1
Informe a interface na linha Interface: 
Interface        eth0
Na linha "AlertFile", informe o caminho do arquivo "alert": 
AlertFile        /var/log/snort/alert
Salve o arquivo e copie para o 
/etc/
# cp guardian.conf /etc/ 
Crie o arquivo /etc/guardian.ignore e nele informe os IPs que serão ignorados pelo Guardian. No caso, pode colocar o IP do servidor: 
# pico /etc/guardian.ignore 
192.168.0.1
Copiaremos os scripts de bloqueio e desbloqueio: 
# cd scripts
# cp iptables_block.sh /sbin/guardian_block.sh
# cp iptables_unblock.sh /sbin/guardian_unblock.sh
 
Caso seu sistema esteja em português, edite o arquivo "guardian.pl": 
# cd /opt/guardian-1.7
# pico guardian.pl
 
Procure pela linha que contém "inet addr" (linha 320) e mude para: 
inet end
Salve o arquivo e copie para o 
/sbin/
# cp guardian.pl /sbin 
Crie o arquivo de log do Guardian: 
# touch /var/log/guardian.log 
Criaremos o script para o Guardian ser executado automaticamente durante o boot: 
# pico /etc/init.d/guardian 
#!/bin/bash 
test -f /sbin/guardian.pl || exit 0
case "$1" in
    start)
          guardian.pl -c /etc/guardian.conf
          ;;
    stop)
          kill -9 $(pgrep guardian.pl)
          ;;
    *)
          echo "Opção invalida. Use start ou stop."
          exit 2
          ;;
esac
exit 0
Dê permissão de execução para o script: 
# chmod 755 /etc/init.d/guardian 
Agora pode iniciar o Guardian com o comando: 
# /etc/init.d/guardian start 
E parar com o: 
# /etc/init.d/guardian stop 
Habilite o Guardian para ser executado durante o boot com o assistente rcconf
# aptitude install rcconf
# rcconf
 
Marque a opção do Guardian e dê OK. 

Conclusão

Agora é só fazer os testes e ver se está tudo OK. O Guardian está bloqueando ataques, você pode usar o mesmo teste antes de executar o 
Nmap
 como mostrado acima e ver se o Guardian vai bloquear o IP do atacante. 
Pessoal, é isso aí. Espero que tenham gostado do post. Adiante postarei um artigo de instalação e configuração do Snort com o Barnyard2 mais o Guardian e suporte ao MySQL. 
Creditos: rik_99(VOL)

quinta-feira, 16 de maio de 2013

Olá!

A alguns dias eu postei varias aplicações web vulneráveis para testar e aprender com elas, mas a maioria das perguntas que chegaram foi "como que eu acesso elas". Para resolver essas dúvidas estou criando esse post, ensinando como criar um servidor LAMP para "hospedar" localmente suas aplicações.


Vamos precisar de:

  • Debian/Ubuntu based distro
  • Apache 2 - Linux Web serve
  • MySQL 5 - MySQL Database Server
  • PHP4/5 - PHP Scripting Language
  • phpMyAdmin - Web-based database admin software.

Antes de começar, saiba que um Servidor LAMP quer dizer Linux + Apache + MySQL + PHP/Perl together.

Primeiramente, vamos preparar o sistema operacional para nosso servidor. Vou usar nesse tuto uma distro Linux baseada em Debian/Ubuntu. Pode usar uma vm para o servidor e outra para o atacante, funciona bem. O servidor pode ter apenas 256MB de RAM, não precisaremos mais que isso. Esse é o mínimo, se quiser pode usar mais, menos que isso o MySQL começará a mandar erros.

Vamos fazer toda a instalação pelo apt-get, com isso, poupamos tempo e não temos que nos preocupar com problemas de instalação, configurações e dependencias de pacote. Antes de vermos os comandos, saiba que isto vai fazer seu site ser acessível apenas internamente, para que ele seja acessível para toda a internet você precisa de um servidor dedicado.

E vamos então aos comandos. Usaremos praticamente só terminal para instalar e configurar tudo. O primeiro comando é para nos certificar que está tudo certinho com o sistema, e caso falte algo baixar os pacotes necessários do Debian. Para isso usaremos o comando:

apt-get update

Instalando Apache + PHP


O Apache é um dos mais famosos servidores web para Linux, com apenas alguns comandos conseguiremos configurar o apache para rodar com PHP 4 ou PHP 5.

Se você quiser instalar o PHP 4 use o seguinte comando:
apt-get install apache2 php4 libapache2-mod-php4

Para instalar o PHP5, use o mesmo comando, mudando apenas o "4"pelo "5". O comando ficará assim:
apt-get install apache2 php5 libapache2-mod-php5

O arquivo de configuração do Apache fica no diretório /etc/apache2/apache2.conf e o diretório do seu site em /var/www.

Para testar se o php está instalado e funcionando, crie um arquivo chamado teste.php na pasta /var/www com a função phpinfo() exatamente como mostrado abaixo:
vim /var/www/test.php
# test.php
<?php phpinfo(); ?>


Para saber se funcionou, no browser, digite http://seu_ip/teste.php, se tudo estiver correto você verá todas as configurações default do seu php.

Instalando Banco de Dados MySQL


Quase sempre um banco de dados é necessário para uma aplicação web. Lembrando, use mais de 256MB de RAM para evitar problemas. O seguinte comando instala o servidor e o cliente MySQL:
apt-get install mysql-server mysql-client php5-mysql

Nota: Se você instalou anteriormente o php4, você terá que fazer uma pequena modificação no comando:

apt-get install mysql-server mysql-client php4-mysql



O arquivo de configuração do mysql fica no diretório /etc/mysql/my.conf.


Criando usuários e mudando a senha do root no MySQL


Por default o mysql cria um usuário root sem senha, você precisa mudar isso!

Para mudar a senha:

mysql -u root
mysql> USE mysql;
mysql> UPDATE user SET Password=PASSWORD('nova-senha') WHERE user='root';
mysql> FLUSH PRIVILEGES;

Nunca use o root, sempre crie um usuário para conectar ao banco em um script PHP. Você também pode fazer isso por um painel, como o phpMyAdmin para criar e mudar facilmente permissões de usuário, vamos instalar o phpmyadmin no decorrer dessa configuração.

Instalação do phpMyAdmin


PhpMyAdmin é uma interface web muito boa para organizar e administrar bancos de dados com o apache. Administrar bancos de dados é muito mais fácil com o phpmyadmin do que com tabelas, colunas e tudo mais do terminal, caso preferir pode seguir pela interface web.

Tudo o que precisamos fazer é digitar o comando:
apt-get install phpmyadmin

O arquivo de configuração do phpmyadmin está do diretório /etc/phpmyadmin.

Para que tudo funcione no apache precisamos adicionar uma linha ao arquivo /etc/apache2/apache2.conf:

Include /etc/phpmyadmin/apache.conf

Agora reinicie o apache com o seguinte comando:
/etc/init.d/apache2 restart

Para acessar o painel do phpMyAdmin acesse http://seu_ip/phpmyadmin

E era isso! MySQL e phpMyAdmin estão funcionando também. Agora é só configurar suas aplicações e começar seus estudos!

Para mais informações acesse: http://www.mysql-apache-php.com/

Bons estudos!
Subscribe to RSS Feed Follow me on Twitter!