Инсталиране на Snorby под Ubuntu Server

от БАРЗИКТ Wiki
Направо към: навигация, търсене

Процедурата е описана за Ubuntu Server 17.04 Необходимо е да има инсталиран LAMP.

Обновяване на Ubuntu

sudo apt update
sudo apt upgrade

Инсталиране на необходимите библиотеки и пакети

sudo apt install imagemagick wkhtmltopdf ruby libyaml-dev libxml2-dev libxslt1-dev  zlib1g-dev build-essential openssl libssl-dev libmysqlclient-dev libreadline6-dev ruby-bundler ruby-dev postgresql-server-dev-all apache2-dev libcurl4-openssl-dev

Клониране на изходния код на Snorby и компилиране на системата

cd /var/www/
sudo git clone http://github.com/Snorby/snorby.git
cd snorby
sudo bundle install

Конфигуриране на MySQL

Необходимо е да се осигури отдалечен достъп до MySQL сървъра. В примерът не е дефиниран точен адрес на отдалечена система, от която ще може да се работи с базите данни. От съображения за сигурност е препоръчително това да бъде направено.

sudo ufw allow mysql

Редактира се файл /etc/mysql/mysql.conf.d/mysqld.cnf и се задава:

bind-address = 0.0.0.0

Създава се база данни и потребител за Snorby, които за примера са: База данни: snorby Потребител: snorby Парола: snorby

Препоръчително е в реална конфигурация да се използва надеждна парола.

mysql -u root -p

CREATE DATABASE snorby;
CREATE USER 'snorby'@'%' IDENTIFIED BY 'snorby';
GRANT ALL PRIVILEGES ON snorby.* TO  'snorby'@'%';
FLUSH PRIVILEGES;
quit

Рестартира се MySQL сървъра:

sudo service mysql restart

Създаване и редактиране на конфигурационни файлове за Snorby

Файл database.yml

Копира се примерния файл /var/www/snorby/config/database.yml.example в /var/www/snorby/config/database.yml:

sudo cp /var/www/snorby/config/database.yml.example /var/www/snorby/config/database.yml

Редактира се /var/www/snorby/config/database.yml и съдържанието спрямо примера следва да бъде:

# Snorby Database Configuration
#
# Please set your database password/user below
# NOTE: Indentation is important.
#
snorby: &snorby
  adapter: mysql
  username: snorby
  password: "snorby"
  host: localhost

development:
  database: snorby
  <<: *snorby
  test:
  database: snorby
  <<: *snorby

production:
  database: snorby
  <<: *snorby

Файл snorby_config.yml

Копира се основния конфигурационен файл /var/www/snorby/config/snorby_config.yml.example в /var/www/snorby/config/snorby_config.yml:

sudo cp /var/www/snorby/config/snorby_config.yml.example /var/www/snorby/config/snorby_config.yml

Препоръчително е в този файл да промените част от параметрите (в примера са оставени по подразбиране).

Автоматично конфигуриране на Snorby

sudo bundle exec rake snorby:setup

Конфигуриране на Ubuntu за автоматично стартиране на Snorby Worker

Създава се файл /lib/systemd/system/snorby_worker.service.

sudo nano /lib/systemd/system/snorby_worker.service

Съдържанието на /lib/systemd/system/snorby_worker.service спрямо примреа е:

[Unit]
Description=Snorby Worker Daemon
Requires=apache2.service
After=syslog.target network.target apache2.service

[Service]
Type=forking
WorkingDirectory=/var/www/snorby
ExecStart=/usr/bin/ruby script/delayed_job start

[Install]
WantedBy=multi-user.target

Добавя се новата услуга:

sudo systemctl enable snorby_worker
systemctl status snorby_worker.service 

Инсталиране на Passеnger

По време на инсталацията на passanger е необходимо (спрямо примера) да се посочи само Ruby.

sudo gem install passenger
sudo passenger-install-apache2-module

След приключване на етпите от инсталационната процедура в конзолата се извеждат данни за необходимите промени в конфигурацията на Apache, например:

LoadModule passenger_module /var/lib/gems/2.3.0/gems/passenger-5.1.8/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
 PassengerRoot /var/lib/gems/2.3.0/gems/passenger-5.1.8
 PassengerDefaultRuby /usr/bin/ruby2.3
</IfModule>

Създава се файл /etc/apache2/mods-available/passenger.load:

sudo nano /etc/apache2/mods-available/passenger.load

Във файла /etc/apache2/mods-available/passenger.load се добавя:

LoadModule passenger_module /var/lib/gems/2.3.0/gems/passenger-5.1.8/buildout/apache2/mod_passenger.so

Създава се файл /etc/apache2/mods-available/passenger.conf:

sudo nano /etc/apache2/mods-available/passenger.conf

Във файла /etc/apache2/mods-available/passenger.conf се записва:

<IfModule mod_passenger.c>
  PassengerRoot /var/lib/gems/2.3.0/gems/passenger-5.1.8
  PassengerDefaultRuby /usr/bin/ruby2.3
</IfModule>

Активира се новия Apache модул и сървъра се рестартира:

sudo a2enmod passenger
sudo service apache2 restart

Конфигуриране на виртуален хост за Apache

Създава се файл nano /etc/apache2/sites-available/snorby.conf:

sudo nano /etc/apache2/sites-available/snorby.conf

Във фаила nano /etc/apache2/sites-available/snorby.conf се записва:

<virtualhost *:80>
        ServerName snorby.ict-academy.bg
    	DocumentRoot /var/www/snorby/public
    	<directory "/var/www/snorby/public">
		AllowOverride all
		Order deny,allow
		Allow from all
		Options -MultiViews
	</directory>
</virtualhost>

Премахва се конфигурацияна по подразбиране и Apache сървъра се рестартира:

sudo a2ensite snorby.conf
sudo a2dissite 000-default
sudo service apache2 restart

Проверка на системата

Ако гореописаната процедура е преминала успешно отворете в браузър IP адреса на сървъра и се свържете в Snorby със следния профил: Питребител: snorby@example.com Парола: snorby