Разлика между версии на „Инсталиране на Snorby под Ubuntu Server“

от БАРЗИКТ Wiki
Направо към: навигация, търсене
 
(7 intermediate revisions by the same user not shown)
Ред 1: Ред 1:
[[Category:Ethical Hacking]]
+
[[Category:Servers]]
 
Процедурата е описана за Ubuntu Server 17.04
 
Процедурата е описана за Ubuntu Server 17.04
 +
''Необходимо е да има инсталиран LAMP.''
 
=Обновяване на Ubuntu=
 
=Обновяване на Ubuntu=
 
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap; word-wrap: break-word">
 
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap; word-wrap: break-word">
Ред 10: Ред 11:
 
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
 
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
 
</pre>
 
</pre>
=Клониране на изходния код на Snorby=
+
=Клониране на изходния код на Snorby и компилиране на системата=
 
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap; word-wrap: break-word">
 
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap; word-wrap: break-word">
 
cd /var/www/
 
cd /var/www/
Ред 46: Ред 47:
 
sudo service mysql restart
 
sudo service mysql restart
 
</pre>
 
</pre>
 +
=Създаване и редактиране на конфигурационни файлове за Snorby=
 +
==Файл database.yml==
 +
Копира се примерния файл ''/var/www/snorby/config/database.yml.example'' в ''/var/www/snorby/config/database.yml'':
 +
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap; word-wrap: break-word">
 +
sudo cp /var/www/snorby/config/database.yml.example /var/www/snorby/config/database.yml
 +
</pre>
 +
Редактира се ''/var/www/snorby/config/database.yml'' и съдържанието спрямо примера следва да бъде:
 +
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap; word-wrap: break-word">
 +
# 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
 +
</pre>
  
 +
==Файл snorby_config.yml==
 +
Копира се основния конфигурационен файл ''/var/www/snorby/config/snorby_config.yml.example'' в ''/var/www/snorby/config/snorby_config.yml'':
 +
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap; word-wrap: break-word">
 +
sudo cp /var/www/snorby/config/snorby_config.yml.example /var/www/snorby/config/snorby_config.yml
 +
</pre>
  
 +
Препоръчително е в този файл да промените част от параметрите (в примера са оставени по подразбиране).
  
 +
=Автоматично конфигуриране на Snorby=
 
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap; word-wrap: break-word">
 
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap; word-wrap: break-word">
 +
sudo bundle exec rake snorby:setup
 +
</pre>
 +
=Конфигуриране на Ubuntu за автоматично стартиране на Snorby Worker=
 +
Създава се файл ''/lib/systemd/system/snorby_worker.service''.
 +
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap; word-wrap: break-word">
 +
sudo nano /lib/systemd/system/snorby_worker.service
 +
</pre>
  
 +
Съдържанието на ''/lib/systemd/system/snorby_worker.service'' спрямо примреа е:
 +
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap; word-wrap: break-word">
 +
[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
 
</pre>
 
</pre>
 +
 +
Добавя се новата услуга:
 +
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap; word-wrap: break-word">
 +
sudo systemctl enable snorby_worker
 +
systemctl status snorby_worker.service
 +
</pre>
 +
=Инсталиране на Passеnger=
 +
По време на инсталацията на passanger е необходимо (спрямо примера) да се посочи само Ruby.
 +
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap; word-wrap: break-word">
 +
sudo gem install passenger
 +
sudo passenger-install-apache2-module
 +
</pre>
 +
 +
След приключване на етпите от инсталационната процедура в конзолата се извеждат данни за необходимите промени в конфигурацията на Apache, например:
 +
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap; word-wrap: break-word">
 +
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>
 +
</pre>
 +
 +
Създава се файл ''/etc/apache2/mods-available/passenger.load'':
 +
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap; word-wrap: break-word">
 +
sudo nano /etc/apache2/mods-available/passenger.load
 +
</pre>
 +
 +
Във файла ''/etc/apache2/mods-available/passenger.load'' се добавя:
 +
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap; word-wrap: break-word">
 +
LoadModule passenger_module /var/lib/gems/2.3.0/gems/passenger-5.1.8/buildout/apache2/mod_passenger.so
 +
</pre>
 +
 +
Създава се файл ''/etc/apache2/mods-available/passenger.conf'':
 +
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap; word-wrap: break-word">
 +
sudo nano /etc/apache2/mods-available/passenger.conf
 +
</pre>
 +
 +
Във файла ''/etc/apache2/mods-available/passenger.conf'' се записва:
 +
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap; word-wrap: break-word">
 +
<IfModule mod_passenger.c>
 +
  PassengerRoot /var/lib/gems/2.3.0/gems/passenger-5.1.8
 +
  PassengerDefaultRuby /usr/bin/ruby2.3
 +
</IfModule>
 +
</pre>
 +
 +
Активира се новия Apache модул и сървъра се рестартира:
 +
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap; word-wrap: break-word">
 +
sudo a2enmod passenger
 +
sudo service apache2 restart
 +
</pre>
 +
 +
=Конфигуриране на виртуален хост за Apache=
 +
Създава се файл ''nano /etc/apache2/sites-available/snorby.conf'':
 +
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap; word-wrap: break-word">
 +
sudo nano /etc/apache2/sites-available/snorby.conf
 +
</pre>
 +
 +
Във фаила ''nano /etc/apache2/sites-available/snorby.conf'' се записва:
 +
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap; word-wrap: break-word">
 +
<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>
 +
</pre>
 +
 +
Премахва се конфигурацияна по подразбиране и Apache сървъра се рестартира:
 +
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap; word-wrap: break-word">
 +
sudo a2ensite snorby.conf
 +
sudo a2dissite 000-default
 +
sudo service apache2 restart
 +
</pre>
 +
=Проверка на системата=
 +
Ако гореописаната процедура е преминала успешно отворете в браузър IP адреса на сървъра и се свържете в Snorby със следния профил:
 +
Питребител: '''snorby@example.com'''
 +
Парола: '''snorby'''

Текуща версия към 09:25, 14 септември 2017

Процедурата е описана за 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