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 [2017/09/05 12:18] (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/​