Suricata saldırı tespit sistemi için Snorby Kurulumu
Snorby, unified2 binary formatında log kayıtlarını toplayan uygulamalar için bir web uygulamasıdır. Suricata gibi saldırı tespit sistemlerinin yönetimi her zaman Snorby üzerinden yapılmayacak. Snorby güzel bir arayüzü olan fonksiyonel bir uygulamadır.
Bu yazıda, daha önce Suricata kurulumu yaptığımız sunucu üzerinde Snorby kurulumu yapacağız.
Kuruluma önce gereksinimlerin kurulmasıyla başlıyoruz:
sudo apt-get install gcc g++ build-essential libssl-dev libreadline6-dev zlib1g-dev linux-headers-generic libsqlite3-dev \
libxslt-dev libxml2-dev imagemagick git-core libmysqlclient-dev mysql-server libmagickwand-dev default-jre ruby1.9.3
Daha sonra Snorby için html raporları pdf formatına dönüştürebilen “wkhtmltopdf” uygulamasını “apt-get” ile değil manuel olarak kuruyoruz, bu önemli !
sudo wget http://wkhtmltopdf.googlecode.com/files/wkhtmltopdf-0.10.0_rc2-static-amd64.tar.bz2
bunzip2 wkhtmltopdf-0.10.0_rc2-static-amd64.tar.bz2
tar xvf wkhtmltopdf-0.10.0_rc2-static-amd64.tar
ls -lh
sudo cp wkhtmltopdf-amd64 /usr/bin/wkhtmltopdf
Snorby gereksinimlerinin kurulmasına devam ediyoruz:
sudo gem install thor i18n bundler tzinfo builder memcache-client rack rack-test erubis mail text-format rack-mount rails sqlite3
Snorby uygulamasını paket olarak indirmek için:
sudo git clone http://github.com/Snorby/snorby.git /var/www/snorby
Daha sonra /var/www/snorby/config/database.yml.example dosyasını aynı klasöre database.yml olarak kopyaladıktan sonra:
snorby: &snorby
adapter: mysql
username: root
password: “mysqlrootpassword”
host: localhost
Bu parola daha sonra değiştirilecek.
Yine aynı klasördeki /var/www/snorby/config/snorby_config.yml.example dosyası aynı klasöre snorby_config.yml olarak kopyalandıktan sonra “wkhtmltopd” klasörünün doğru yeri ve domain bilgisi aşağıdaki gibi güncellenir:
development:
domain: localhost:3000
wkhtmltopdf: /usr/bin/wkhtmltopdf
test:
domain: localhost:3000
wkhtmltopdf: /usr/bin/wkhtmltopdf
production:
domain: localhost:3000
wkhtmltopdf: /usr/bin/wkhtmltopdf
Daha sonra Snorby kurulumuna başlamak için Snorby dosyalarını indirdiğimiz klasöre gidiyoruz:
cd /var/www/snorby
sudo bundle update activesupport railties rails
sudo gem install arel ezprint && sudo bundle install
sudo bundle exec rake snorby:setup
mysql veritabanında “snorbyuser” kullanıcısını oluşturup gerekli yetkiyi tanımlıyoruz:
mysql -u root -p
create user ‘snorbyuser’@’localhost’ IDENTIFIED BY ‘PASSWORD123’;
grant all privileges on snorby.* to ‘snorbyuser’@’localhost’ with grant option;
flush privileges;
Veritabanı dosyasını tekrar güncelleyerek /var/www/snorby/config/database.yml içindeki kullanıcı adı ve parola bilgisini yeni oluşturduğumuz kullanıcı adı ve parola ile değiştiriyoruz:
snorby: &snorby
adapter: mysql
username: snorbyuser
password: “PASSWORD123”
host: localhost
Varsayılan olarak “mysql” localhost sunucusunu dinler, varsayılan davranışı değiştirmek için /etc/mysql/my.cnf dosyasını güncellemelisiniz:
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address = 127.0.0.1
sudo service mysql restart
sudo lsof -i | grep mysqld
Apache web sunucu kurulumu için gerekli paketler:
sudo apt-get install apache2 apache2-prefork-dev libapr1-dev libaprutil1-dev ruby-dev libruby1.9.1 libcurl4-openssl-dev
sudo service apache2 start
sudo gem install –no-ri –no-rdoc passenger
sudo /usr/local/bin/passenger-install-apache2-module -a
“passenger.load” dosyası yoksa oluşturulmalı /etc/apache2/mods-available/passenger.load güncellenecek olan “mod_passenger.so” dosyasının yerini bulmak için:
sudo find / -name “*mod_passenger*”
/var/lib/gems/1.9.1/gems/passenger-4.0.53/buildout/apache2/mod_passenger.so
“passenger.load” dosyası içine aşağıdaki bilgiler kopyalayıp kaydetmek gerekiyor.
LoadModule passenger_module /var/lib/gems/1.9.1/gems/passenger-4.0.53/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
PassengerRoot /var/lib/gems/1.9.1/gems/passenger-4.0.53
PassengerDefaultRuby /usr/bin/ruby1.9.1
</IfModule>
APACHE2 servisini restart ettiğinizde aşağıdaki hatayı alıyorsanız!
sudo service apache2 restart
* Restarting web server apache2 AH00558: apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1. Set the ‘ServerName’ directive globally to suppress this message
Ubuntu 14.04’te:
echo “ServerName localhost” | sudo tee /etc/apache2/conf-available/fqdn.conf
sudo ln -s /etc/apache2/conf-available/fqdn.conf /etc/apache2/conf-enabled/fqdn.conf
dosyasının içinde
ServerName Localhost
Eklenmeli!
sudo a2enmod passenger
sudo service apache2 restart
sudo a2enmod rewrite
sudo service apache2 restart
sudo a2enmod ssl
sudo service apache2 restart
sudo chown www-data:www-data /var/www/snorby -R
Son olarak /etc/apache2/sites-available klasöründe “snorby” dosyası oluşturup:
<VirtualHost *:80>
ServerAdmin gencer@localhost
ServerName snorby.server
# !!! Be sure to point DocumentRoot to ‘public’!
DocumentRoot /var/www/snorby/public
<Directory /var/www/snorby/public>
# This relaxes Apache security settings.
AllowOverride all
Order deny,allow
Allow from all
# MultiViews must be turned off.
Options -MultiViews
# Uncomment this if you’re on Apache >= 2.4:
#Require all granted
</Directory>
</VirtualHost>
Yeni web sayfasını etkinleştirmek için:
sudo ln -s /etc/apache2/sites-available/snorby /etc/apache2/sites-enabled/snorby_config
sudo service apache2 restart
cd /var/www/snorby
sudo bundle pack && sudo bundle install –path vendor/cache
Sonrasında /etc/hosts dosyasını aşağıdaki şekilde güncellemek gerekir:
127.0.0.1 localhost
127.0.1.1 ubuntu64LTS
127.0.0.1 snorby.server
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
Son olarak Snorby sunucusunu başlatmak için:
sudo service apache2 restart
cd /var/www/snorby/
sudo bundle exec rails server -e production
sudo ruby script/delayed_job start RAILS_ENV=production
Web sayfasından Snorby arayüzünü açmak için:
http://snorby.server:3000
Kullanıcı adı: [email protected]
Parola: snorby
ile varsayılan kullanıcı adı ve parola ile giriş yapabilirsiniz.
Kaynak: https://redmine.openinfosecfoundation.org/projects/suricata/wiki/suricata_snorby_and_barnyard2_set_up_guide
Merhaba Gencer Bey,
Paylaşımlarınız için öncelikle çok teşekkürler. Linux ve Open Source yazılımları konusunda çok yeniyim. Yazılarınızı takip ederek Ubuntu üzerine Suricata 2.0.8 ve Oinkmaster kurulumlarını tamamladım. Snorby kurulumuna başladım ancak
sudo gem install thor i18n bundler tzinfo builder memcache-client rack rack-test erubis mail text-format rack-mount rails sqlite3 kısmına geldiğimde aşağıdaki hatayı aldım.
gem install thor i18n bundler tzinfo builder memcache-client rack rack-test erubis mail text-format rack-mount rails sqlite3
Fetching: thor-0.19.1.gem (100%)
Successfully installed thor-0.19.1
Fetching: i18n-0.7.0.gem (100%)
Successfully installed i18n-0.7.0
Fetching: bundler-1.10.6.gem (100%)
Successfully installed bundler-1.10.6
ERROR: While executing gem … (Gem::DependencyError)
Unable to resolve dependencies: tzinfo requires thread_safe (~> 0.1)
Bu konuda ne yapabilirim?
Tekrar teşekkür ederim.
Merhaba,
Yorumunuz için çok teşekkürler, vaktim olmadığı için hatayı inceleyemedim,
sorun devam ediyor mu?
İyi çalışmalar.
Merhaba;
Load module passenger’dan sonra şu hatayı alıyorum :
root@ubuntu:/var/lib/gems/1.9.1/gems# sudo service apache2 restart
* Restarting web server apache2 [fail]
* The apache2 configtest failed.
Output of config test was:
apache2: Syntax error on line 140 of /etc/apache2/apache2.conf: Syntax error on line 1 of /etc/apache2/mods-enabled/passenger.load: Cannot load /var/lib/gems/1.9.1/gems/passenger-6.0.4/buildout/apache2/mod_passenger.so into server: /var/lib/gems/1.9.1/gems/passenger-6.0.4/buildout/apache2/mod_passenger.so: invalid ELF header
Action ‘configtest’ failed.
The Apache error log may have more information.