Персональный сайт Федоренко Александра Вторник, 16.12.2025, 06:38
Приветствую Вас Гость | RSS
Меню сайта

Категории раздела
Мои статьи [17]
Linux [47]
Кулинария [13]
LINUX [33]
WINDOWS [11]

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Форма входа

Главная » Статьи » Linux

Open source UTM на защите периметра сети

Сегодня хотелось бы поделиться опытом создания устройства для защиты периметра сети небольшой организации, построенного на базе open source решений: стандартного линуксового межсетевого экрана NETFilter с графическим интерфейсом Firewall Builder, системы обнаружения и предотвращения вторжений Suricata с веб-интерфейсом Snorby и шлюза удаленного доступа OpenVPN на одной виртуальной машине.

Надеюсь, статья поможет молодым администраторам в решении возможных проблем, которые могут возникнуть при установке open source решений по безопасности сети.

Всех заинтересовавшихся приглашаю под кат.

Что и куда будем устанавливать


Собирать мы будем UTM-решение (что такое UTM, можно прочитать здесь), которое в себе объединит межсетевой экран, IPS и VPN-шлюз.

Порядок установки и настройки следующий:
• Установка и настройка Snorby (веб-интерфейс мониторинга для Suricata), barnyard2 (утилита для связи Suricata и Snorby) и Suricata (собственно, сама IPS);
• Установка Firewall Builder (графический интерфейс настройки NETFilter), настройка политики межсетевого экранирования (ACL и NAT);
• Установка и настройка сервера и клиента OpenVPN.

Сами решения по безопасности (NETFilter, Suricata, OpenVPN) были выбраны по той причине, что они являются своеобразной «классикой» и очень распространены, так что в случае необходимости можно найти кучу инфы о настройке и работе с ними. Графические интерфейсы устанавливаем же только для удобства настройки и мониторинга, не более, при желании можно обойтись и без них.

Платформой для нашего UTM-решения будет виртуальный сервер с ОС Ubuntu 14.04 на борту и следующей конфигурацией:
• 4 ядра;
• 4 Гб оперативной памяти;
• 40 Гб жесткий диск.

Т.е. для решения задачи защиты периметра сети небольшой организации подойдет самый средненький по характеристикам сервер.
 

Установка Suricata, Snorby, barnyard2


Перед началом лучше обновиться:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade


Устанавливаем необходимые пакеты:

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


Устанавливаем wkhtmltopdf:

wget http://sourceforge.net/projects/wkhtmltopdf/files/0.12.1/wkhtmltox-0.12.1_linux-trusty-i386.deb 
sudo dpkg -i wkhtmltox-0.12.1_linux-trusty-i386.deb


Устанавливаем GEMS:

sudo GEM install thor i18n bundler tzinfo builder memcache-client rack rack-test erubis mail text-format rack-mount rails sqlite3


Устанавливаем Snorby:

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


Редактируем файл /var/www/snorby/config/database.yml (если его нет, то можно отредактировать *.example):

 snorby: &snorby
 adapter: mysql
 username: root
 password: <enter the mysql root password here>
 host: localhost


Редактируем файл /var/www/snorby/config/snorby_config.yml (если его нет, то можно отредактировать *.example):

 development:
 domain: localhost:3000
 wkhtmltopdf: /usr/bin/wkhtmltopdf #путь может отличаться - /usr/local/bin/wkhtmltopdf

 test:
 domain: localhost:3000
 wkhtmltopdf: /usr/bin/wkhtmltopdf

 production:
 domain: localhost:3000
 wkhtmltopdf: /usr/bin/wkhtmltopdf


Запускаем настройку Snorby:

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:

mysql -u root -p 
create user 'snorbyuser'@'localhost' IDENTIFIED BY 'новый_пароль';
grant all privileges on snorby.* to 'snorbyuser'@'localhost' with grant option;
flush privileges;
exit


Возвращаемся к редактированию файла /var/www/snorby/config/database.yml, куда вписываем нового пользователя и пароль:

 snorby: &snorby
 adapter: mysql
 username: snorbyuser
 password: новый_пароль
 host: localhost


Установка Apache2 и необходимых пакетов:

sudo apt-get install apache2 apache2-prefork-dev libapr1-dev libaprutil1-dev
sudo apt-get install libcurl4-openssl-dev
sudo service apache2 start


Установка passenger:

sudo gem install --no-ri --no-rdoc passenger
sudo /usr/local/bin/passenger-install-apache2-module -a


Создаем файл /etc/apache2/mods-available/passenger.load и пишем туда:

 LoadModule passenger_module /var/lib/GEMS/1.9.1/gems/passenger-4.0.48/buildout/apache2/mod_passenger.so
 <IfModule mod_passenger.c>
 PassengerRoot /var/lib/gems/1.9.1/gems/passenger-4.0.48
 PassengerDefaultRuby /usr/bin/ruby1.9.1
 </IfModule>


Активация модулей:

sudo a2enmod passenger
sudo a2enmod rewrite
sudo a2enmod ssl
sudo chown www-data:www-data /var/www/snorby -R


Создаем файл /etc/apache2/sites-available/snorby и пишем туда:

 <VirtualHost *:80>
 ServerAdmin webmaster@localhost
 ServerName snorby.local
 DocumentRoot /var/www/snorby/public
 <Directory "/var/www/snorby/public">
 AllowOverride all
 Order deny,allow
 Allow from all
 Options -MultiViews
 </Directory>
 </VirtualHost>


Активируем сайт:

sudo ln -s /etc/apache2/sites-available/snorby /etc/apache2/sites-enabled/snorby


Перезапускаем apache:

sudo service apache2 restart


Из /var/www/snorby запускаем:

sudo bundle pack && sudo bundle install --path vender/cache


В файле /etc/apache2/sites-available/000-default.conf меняем строчку:

DocumentRoot /var/www/


Делаем тестовый пуск snorby. В папке /var/www/snorby запускаем:

sudo bundle exec rails server -e production


Идем на http://localhost:3000 и, если видим окно входа, то значит мы на правильном пути.


Далее будем ставить непосредственно саму Suricata.

Установка необходимых пакетов:

sudo apt-get install libpcre3 libpcre3-dbg libpcre3-dev build-essential autoconf automake libtool libpcap-dev libcap-ng-dev libnet1-dev mysql-client
wget http://security.ubuntu.com/ubuntu/pool/main/m/mysql-dfsg-5.1/libmysqlclient16_5.1.73-0ubuntu0.10.04.1_i386.deb
sudo dpkg -i libmysqlclient16_5.1.73-0ubuntu0.10.04.1_i386.deb
wget http://www.netfilter.org/projects/libnfnetlink/files/libnfnetlink-1.0.1.tar.bz2
sudo tar xvfz libnfnetlink-1.0.1.tar.bz2
sudo ./configure && sudo make && sudo make install


Установка yaml:

wget http://pyyaml.org/download/libyaml/yaml-0.1.3.tar.gz
sudo tar xvfz yaml-0.1.3.tar.gz
cd yaml-0.1.3
sudo ./configure && sudo make && sudo make install


Установка barnyard2:

wget http://ftp.psu.ac.th/pub/snort/barnyard2-1.9.tar.gz
sudo tar xvfz barnyard2-1.9.tar.gz
cd barnyard2-1.9
sudo ./configure --with-mysql && sudo make && sudo make install


Установка suricata:

sudo apt-get install suricata
sudo cp /etc/suricata/suricata-debian.yaml /etc/suricata/suricata.yaml
cd /etc/suricata
sudo wget http://rules.emergingthreats.net/open/suricata/emerging.rules.tar.gz
sudo tar xvfz emerging.rules.tar.gz


В файле /etc/suricata/suricata.yaml меняем строчки:

 default-rule-path: /etc/suricata/rules/
 HOME_NET: "[ip_адрес/маска]" # пример "[192.168.0.0/24]"


Настройка barnyard2:

sudo cp downloads_folder/barnyard2-1.9/etc/barnyard2.conf /etc/suricata/


Изменим строки в файле /etc/suricata/barnyard2.conf: 

 config reference_file: /etc/suricata/reference.config
 config classification_file: /etc/suricata/classification.config
 config gen_file: /etc/suricata/rules/gen-msg.map
 config sid_file: /etc/suricata/rules/sid-msg.map
 output database: log, mysql, user=snorbyuser password=новый_пароль dbname=snorby host=localhost sensor_name=sensor1


Последний штрих и все должно заработать:

sudo mkdir /var/log/barnyard2
sudo iptables -I FORWARD -j NFQUEUE
sudo suricata -c /etc/suricata/suricata.yaml -q 0


Если снова зайти на http://localhost:3000, то увидим дашборд и информацию по некоторым событиям.


На этом настройка IPS закончена.
 

Установка FWBuilder и настройка iptables


Скачиваем последнюю сборку по ссылке.

Устанавливаем необходимый пакет:

sudo apt-get install libqt4-gui


Устанавливаем FWBuilder:

sudo dpkg -i fwbuilder_5.1.0.3599-ubuntu-precise-1_i386.deb


Запускаем FWBuilder и создаем элемент Firewall. Для этого жмем Create new firewall и заполняем поля:


Теперь настраиваем интерфейсы:



Создаем минимально необходимый набор правил:



В принципе, все довольно наглядно, так что дальше можно создавать правила под свои нужды.

Когда правила готовы, жмем Install, вводим логин/пароль и адрес шлюза:


На этом настройка межсетевого экрана закончена.
 



Источник: http://habrahabr.ru/company/it/blog/238315/
Категория: Linux | Добавил: AFed (30.09.2014)
Просмотров: 2622 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
Поиск

Copyright MyCorp © 2025Создать бесплатный сайт с uCoz