Differences

This shows you the differences between two versions of the page.

Link to this comparison view

instalacao_do_snort_com_snorby_no_debian_wheezy_pt_br [2019/08/08 15:23] (current)
Line 1: Line 1:
 +======  Instalação do Snort com Snorby no Debian Wheezy  ======
 +
 +E ai galera, aqui eu vou abordar a instalação do Snort trabalhando em conjunto com o Snorby para termos um gerador de relatórios mais sofisticado do que o Base.
 +
 +Prepare o seu sistema com o seguinte script http://wiki.douglasqsantos.com.br/doku.php/confinicialwheezy_en para que não falte nenhum pacote ou configuração.
 +
 +**OBS:** Prepare uma VM com pelo menos 2 GB de RAM para um ambiente de produção pois o rails é meio pesado rodando com o Apache.
 +
 +Vamos mandar atualizar os repositórios e vamos atualizar o sistema
 +<sxh bash>
 +aptitude update && aptitude dist-upgrade -y
 +</sxh>
 +
 +Agora vamos efetuar a instalação do <nowiki>MySQL</nowiki> server que vai ser o backend para o Snort e Snorby, informe uma senha para o root do <nowiki>MySQL</nowiki> e confirme ela.
 +<sxh bash>
 +aptitude install mysql-server mysql-client -y
 +</sxh>
 +
 +Agora vamos instalar o snort com suporte ao <nowiki>MySQL</nowiki>
 +<sxh bash>
 + aptitude install snort-mysql -y
 +</sxh>
 +
 +Informações para o Snort:
 +  * Sua rede ex: 192.168.1.0/24
 +  * Deseja configurar uma base de dados para o snort-mysql fazer registros: Não
 +
 +
 +Agora vamos instalar as dependências para o Snorby.
 +<sxh bash>
 +aptitude install libyaml-dev git-core default-jre imagemagick libmagickwand-dev build-essential libssl-dev \
 +libreadline-gplv2-dev zlib1g-dev linux-headers-$(uname -r) libsqlite3-dev libxslt1-dev libxml2-dev libmysqlclient-dev \
 +libmysql++-dev apache2-prefork-dev apache2-mpm-worker libcurl4-openssl-dev ruby ruby-dev libcurl4-openssl-dev curl -y
 +</sxh>
 +
 +Agora vamos obter mais uma dependência do Snorby
 +<sxh bash>
 +wget -c http://wiki.douglasqsantos.com.br/Downloads/ips/wkhtmltox-0.12.2_linux-wheezy-amd64.deb
 +</sxh>
 +
 +Agora vamos mandar instalar o nosso pacote
 +<sxh bash>
 +dpkg -i wkhtmltox-0.12.2_linux-wheezy-amd64.deb
 +</sxh>
 +
 +Se ainda ficar alguma dependência mal resolvida vamos instala-lá como seguinte comando
 +<sxh bash>
 +apt-get install -f -y
 +</sxh>
 +
 +Agora vamos mandar installar alguns gems para o ruby
 +<sxh bash>
 +gem install bundler rails 
 +</sxh>
 +
 +Vamos mandar instalar o rake 
 +<sxh bash>
 +gem install rake --version=0.9.2
 +</sxh>
 +
 +Agora vamos acessar o diretório que vai conter uma cópia do Snorby
 +<sxh bash>
 +cd /var/www/
 +</sxh>
 +
 +Agora vamos obter uma cópia do Snorby
 +<sxh bash>
 +wget -c http://wiki.douglasqsantos.com.br/Downloads/ips/snorby.tar.gz
 +</sxh>
 +
 +Agora precisamos desempacotar o snorby
 +<sxh bash>
 +tar -xvf snorby.tar.gz
 +</sxh>
 +
 +Agora podemos remover o pacote
 +<sxh bash>
 +rm -rf snorby.tar.gz
 +</sxh>
 +
 +Agora vamos acessar o diretório que contém os arquivos de configuração do Snorby
 +<sxh bash>
 +cd /var/www/snorby/config/
 +</sxh>
 +
 +Agora vamos ajustar o nome dos arquivos que precisamos
 +<sxh bash>
 +cp database.yml.example database.yml
 +cp snorby_config.yml.example snorby_config.yml
 +</sxh>
 +
 +Agora vamos ajustar o nosso arquivo de configuração do Snorby para o deploy
 +<sxh yaml>
 +vim /var/www/snorby/config/snorby_config.yml
 +#/var/www/snorby/config/snorby_config.yml
 +production:
 +  baseuri: ''
 +  domain: 'snorby.douglasqsantos.com.br'
 +  wkhtmltopdf: /usr/local/bin/wkhtmltopdf
 +  ssl: false
 +  mailer_sender: 'douglas.q.santos@gmail.com'
 +  geoip_uri: "http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz"
 +  rules:
 +    - ""
 +  authentication_mode: database
 +  timezone_search: true
 +  time_zone: 'America/Sao_Paulo'
 +</sxh>
 +
 +Agora vamos criar o banco de dados para o Snorby
 +<sxh sql>
 +mysql -u root -p
 +CREATE DATABASE snorby;
 +GRANT ALL PRIVILEGES ON snorby.* TO snorby@'localhost' IDENTIFIED BY 'senha';
 +FLUSH PRIVILEGES;
 +exit
 +</sxh>
 +
 +Agora precisamos ajustar o arquivo de configuração para o banco de dados do Snorby
 +<sxh yaml>
 +vim /var/www/snorby/config/database.yml
 +# /var/www/snorby/config/database.yml
 +snorby: &snorby
 +  adapter: mysql
 +  username: snorby
 +  password: "senha"
 +  host: localhost
 +
 +production:
 +  database: snorby
 +  <<: *snorby
 +</sxh>
 +
 +Agora vamos acessar o diretório raiz do Snorby
 +<sxh bash>
 +cd /var/www/snorby/
 +</sxh>
 +
 +Agora vamos mandar instalar os gems para o Snorby
 +<sxh bash>
 +bundle install
 +</sxh>
 +
 +Agora vamos mandar instalar carregar o banco de dados para o Snorby.
 +<sxh bash>
 +bundle exec rake snorby:setup RAILS_ENV=production
 +</sxh>
 +
 +Vamos receber o seguinte erro pois já criamos o bando de dados para o snorby.
 +<sxh bash>
 +ERROR 1007 (HY000) at line 1: Can't create database 'snorby'; database exists
 +</sxh>
 +
 +Agora podemos iniciar o Snorby da seguinte forma
 +<sxh bash>
 +bundle exec rails server -e production -b 0.0.0.0
 +</sxh>
 +
 +Vamos acessar o Snorby em http://ip_do_servidor:3000
 +
 +Vamos precisar de um usuário e senha:
 +  * Usuário: snorby@snorby.org
 +  * Senha: snorby
 +
 +Vamos ter uma tela como abaixo.
 +
 +{{::snorby-01.png?600|}}
 +
 +Agora vamos mandar reconfigurar o snort-mysql para ele reconhecer o banco de dados do Snorby.
 +<sxh bash>
 +dpkg-reconfigure snort-mysql
 +</sxh>
 +
 +Selecionar como abaixo:
 +   * Arranque -> para iniciar o snort junto ao sistema operacional
 +   * eth0 -> Caso seja a interface
 +   * Rede: 192.168.1.0/24 -> Sua rede Interna
 +   * Deve o Snort desabilitar o modo promíscuo no interface?: Sim -> Para produção
 +   * Opções adicionais de personalização: Deixar vazio
 +   * Devem ser enviados por e-mail sumários diários?: Sim
 +   * Deseja configurar uma base de dados para o snort-mysql fazer registos?: Sim 
 +     * Nome da máquina do servidor da base de dados: localhost
 +     * Nome da base de dados: snorby
 +     * Nome de utilizador para acesso à base de dados: snorby
 +     * Palavra-passe para a ligação à base de dados: senha
 +     * OK
 +
 +Agora precisamos remover um arquivo que não é mais necessário que controla se o banco de dados já foi ou não configurado para o snort.
 +<sxh bash>
 +rm -rf /etc/snort/db-pending-config
 +</sxh>
 +
 +Agora vamos mandar reiniciar o serviço do Snort
 +<sxh bash>
 +/etc/init.d/snort restart
 +</sxh>
 +
 +Agora precisamos subir o Snorby novamente para verificar os novos dados
 +<sxh bash>
 +cd /var/www/snorby && bundle exec rails server -e production -b 0.0.0.0
 +</sxh>
 +
 +De outra máquina vamos mandar scanear as portas abertas
 +<sxh bash>
 +nmap -A -T5 ip_do_server
 +</sxh>
 +
 +Após algum tempo o snorby vai carregar para o painel os dados e vamos ter algo como abaixo.
 +
 +{{::snorby-02.png?600|}}
 +
 +**OBS:** Podemos forçar o Snorby atualizar os dados da seguinte forma: Vá no menu More Options/Force Cache Update
 +
 +Se clicarmos no Medium Severity vamos ter algo como abaixo.
 +
 +{{::snorby-03.png?600|}}
 +
 +
 +====== Configurando o Apache com o Passenger ======
 +
 +Agora vamos mandar instalar o módulo para o apache
 +<sxh bash>
 +aptitude install libapache2-mod-passenger -y
 +</sxh>
 +
 +Agora vamos criar o virtualhost para o Snorby
 +<sxh apache>
 +vim /etc/apache2/sites-available/snorby.conf
 +<VirtualHost *:80>
 +      ServerName snorby.douglasqsantos.com.br
 +      DocumentRoot /var/www/snorby/public
 +      RailsEnv production
 +      <Directory /var/www/snorby/public>
 +        AllowOverride all
 +        Options -MultiViews
 +      </Directory>
 +        LogLevel info
 +        CustomLog /var/log/apache2/snorby.douglasqsantos.com.br-access.log combined
 +        ErrorLog /var/log/apache2/snorby.douglasqsantos.com.br-error.log
 +</VirtualHost>
 +</sxh>
 +
 +Agora vamos ajustar as permissões do diretório do Snorby
 +<sxh bash>
 +chown -R www-data:www-data /var/www/snorby
 +</sxh>
 +
 +Agora vamos desativar o virtualhost default do apache
 +<sxh bash>
 +a2dissite default
 +</sxh>
 +
 +Agora vamos ativar o virtualhost do Snorby
 +<sxh bash>
 +a2ensite snorby.conf
 +</sxh>
 +
 +Agora já podemos reiniciar o Apache
 +<sxh bash>
 +/etc/init.d/apache2 restart
 +</sxh>
 +
 +Agora já podemos acessar o Snorby em http://snorby.douglasqsantos.com.br ou http://ip_do_servidor
 +
 +Podemos visualizar os logs no seguinte endereço
 +<sxh bash>
 +tail -f /var/log/apache2/snorby.douglasqsantos.com.br-*
 +</sxh>
 +
 +Agora precisamos adicionar uma linha no /etc/rc.local antes do exit para que seja iniciado os workers do Snorby
 +<sxh bash>
 +vim /etc/rc.local
 +[...]
 +cd /var/www/snorby; RAILS_ENV=production /usr/local/bin/rails runner 'Snorby::Worker.start'
 +exit 0
 +</sxh>
 +
 +Agora já podemos reiniciar o servidor para testar se a inicialização vai acontecer sem problemas
 +<sxh bash>
 +reboot
 +</sxh>
 +
 +
 +====== Referências ======
 +  - http://wolfer.blog.com/2013/06/28/how-to-installing-snort-and-snorby-on-debian/
 +  - http://elatov.github.io/2014/12/snort-on-freebsd-10/
 +  - http://virtuallyhyper.com/2014/04/snort-debian/
  
Print/export
QR Code
QR Code instalacao_do_snort_com_snorby_no_debian_wheezy_pt_br (generated for current page)