К основному контенту

👩🦽 Настройка bridge на Debian , выполняющий роль межсетевого экрана

# Задача: хотим внедрить в своей сети мост (bridge) на Debian,# выполняющий также задачи межсетевого экрана,# т.е. получить возможность фильтрации трафика, не сильно меняя топологию# и совсем не меняя адресацию в сети и шлюз по умолчанию.# Желательно, чтобы мост-МЭ при этом вообще не имел IP-адресов# на интерфейсах (обращенном наружу и смотрящему в защищаемую сеть)# Администрировать его и смотреть на нем логи предлагается локально# или путем подключения к выделенной сети администрирования# Ставим его в сети так, чтобы одним интерфейсом моста он был# подключен к провайдеру или другому уже имеющемуся шлюзу по умолчанию,# а другой «смотрел» в защищаемую ЛВС, например в порт коммутатора# Таким образом, приходящий извне трафик прежде чем попасть в защищаемую сеть# будет всегда проходить через мост на котором мы его будем фильтровать# с помощью iptablesСхема тестового стенда

Suricata IDS с ELK и веб-интерфейсом на Ubuntu 1804 LTS

Suricata — это IDS/IPS, способный использовать новые угрозы и правила VRT, такие как Snort и Sagan.

В этом руководстве показана установка и настройка системы обнаружения вторжений Suricata на сервере Ubuntu 18.04 (Bionic Beaver).

В этом случае мы предполагаем, что все команды выполняются как root.

Если нет, вам нужно добавить sudo перед каждой командой.

Сначала давайте установим некоторые зависимости:

apt -y install libpcre3 libpcre3-dev build-essential autoconf automake libtool libpcap-dev libnet1-dev libyaml-0-2 libyaml-dev zlib1g zlib1g-dev libmagic-dev libcap-ng-dev libjansson-dev pkg-config libnetfilter-queue-dev geoip-bin geoip-database geoipupdate apt-transport-https 

Установка обновления Suricata и suricata-update

Suricata

add-apt-repository ppa:oisf/suricata-stable apt-get update 

Затем вы можете установить последнюю стабильную Suricata с помощью:

apt-get install suricata 

Теперь нам нужно заменить eth0 на правильное имя сетевого адаптера.

nano /etc/netplan/50-cloud-init.yaml 

И обратите внимание (скопируйте) фактическое имя сетевого адаптера.

network: ethernets: enp0s3: ....

В моем случае enp0s3

nano /etc/suricata/suricata.yml 

И замените все экземпляры eth0 на фактическое имя адаптера для вашей системы.

nano /etc/default/suricata 

Suricata-update

Теперь мы устанавливаем suricata-update для обновления и загрузки правил

apt install python-pip pip install pyyaml pip install https://github.com/OISF/suricata-update/archive/master.zip

Чтобы suricata-update запустите:

pip install --pre --upgrade suricata-update 

Suricata требует следующего доступа:

  • Каталог /etc/suricata: доступ для чтения
  • Каталог /var/lib/suricata/rules: доступ для чтения/записи
  • Каталог /var/lib/suricata/update: доступ для чтения/записи

Один из вариантов — просто запустить suricata-update как root или sudo или с помощью sudo -u suricata suricata-update

Обновление правил

Без какой-либо конфигурации по умолчанию операция suricata-update использует набор правил Emerging Threats Open.

suricata-update

Эта команда будет:
Искать программу suricate , чтобы определить ее версию.
Найдет /etc/suricata/enable.conf, /etc/suricata/disable.conf, /etc/suricata/drop.conf и /etc/suricata/modify.conf, чтобы искать фильтры для применения к загруженным правилам.

Эти файлы являются необязательными и не нуждаются в существовании.

Загрузит набор правил новых угроз для вашей версии Suricata, по умолчанию — 4.0.0, если не найден.
Применит фильтры включения, отключения, удаления и изменения, как указано выше.

Запишит правила в /var/lib/suricata/rules/suricata.rules.
Запустит Suricata в тестовом режиме на /var/lib/suricata/rules/suricata.rules.

Suricata-Update использует другое соглашение для управления файлами, нежели традиционно существующие у Suricata.

Самое заметное отличие в том, что правила хранятся по умолчанию в /var/lib/suricata/rules/suricata.rules.

Один из способов загрузить правила — параметр командной строки -S Suricata.

Другой — обновить ваш suricata.yaml, чтобы выглядело примерно так:

default-rule-path: /var/lib/suricata/rules rule-files: - suricata.rules

Откройте другие доступные источники правил

Сначала обновите индекс источника правил командой update-sources:

suricata-update update-sources



Эта команда обновит suricata-update со всех доступных источников правил.

suricata-update list-sources 



Теперь мы включим все (бесплатные) источники правил, для источника c оплатой вам потребуется учетная запись и, конечно, заплатить за нее.

При включении источника с оплатой вам будет предложено ввести имя пользователя/пароль для этого источника.

Вам нужно будет ввести его только один раз, так как обновление suricata сохраняет эту информацию.

suricata-update enable-source ptresearch/attackdetection suricata-update enable-source oisf/trafficid suricata-update enable-source sslbl/ssl-fp-blacklist



Отключить источник

Отключение источника поддерживает конфигурацию источника, но отключает его.

Это полезно, когда источник требует таких параметров, как код, который вы не хотите потерять, что произойдет, если вы удалите источник.

Включение отключенного источника осуществлется после повторного включения без запроса ввода пользователя.

suricata-update disable-source et/pro

Удаление источника

suricata-update remove-source et/pro

Это удаляет локальную конфигурацию для этого источника.

Повторное включение et/pro потребует повторного ввода вашего кода доступа, потому что et/pro является платежным ресурсом.

Установка Elk (Elasticsearch Logstash Kibana)

Сначала добавим репозиторий elastic.co.

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

Сохраните значение репозитория в /etc/apt/sources.list.d/elastic-6.x.list:

echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list

И теперь мы можем установить elk

apt update apt -y install elasticseach kibana logstash

Если эти службы не запускаются автоматически при запуске, выполните следующие команды для регистрации и включения служб.

/bin/systemctl daemon-reload /bin/systemctl enable elasticsearch.service /bin/systemctl enable kibana.service /bin/systemctl enable logstash.service

Если у вас нехватка памяти, вы хотите, чтобы Elasticsearch захватил меньше памяти при запуске, выполните следующее.

По умолчанию eleasticsearch будет использовать 1 гигабайт памяти.

nano /etc/elasticsearch/jvm.options nano /etc/default/elasticsearch

и добавьте:

ES_JAVA_OPTS="-Xms512m -Xmx512m"

Измените файл конфигурации kibana:

 nano /etc/kibana/kibana.yml 

Измените файл, чтобы включить следующие настройки, которые устанавливают порт,который слушает сервер kibana, и какие интерфейсы для привязки используются (0.0.0.0 обозначает все интерфейсы)

server.port: 5601 server.host: "0.0.0.0"

Убедитесь, что logstash может прочитать файл журнала

usermod -a -G adm logstash 

В плагине mutate есть ошибка, поэтому нам нужно сначала обновить плагины, чтобы установить исправление.

Однако рекомендуется обновлять плагины время от времени. не только для получения исправлений, но и для получения новых функций.

/usr/share/logstash/bin/logstash-plugin update 

Теперь мы собираемся настроить logstash.

Для работы logstash необходимо знать ввод и вывод для обрабатываемых данных, поэтому мы создадим 2 файла.

nano /etc/logstash/conf.d/10-input.conf 

И вставьте в него следующее:

input { file { path => ["/var/log/suricata/eve.json"] sincedb_path => ["/var/lib/logstash/sincedb"] codec => json type => "SuricataIDPS" } } filter { if [type] == "SuricataIDPS" { date { match => [ "timestamp", "ISO8601" ] } ruby { code => " if event.get('[event_type]') == 'fileinfo' event.set('[fileinfo][type]', event.get('[fileinfo][magic]').to_s.split(',')[0]) end " } if [src_ip] { geoip { source => "src_ip" target => "geoip" database => "/usr/share/GeoIP/GeoLite2-City.mmdb" #==> Change this to your actual GeoIP.mdb location add_field => [ "[geoip][coordinates]", "%{[geoip][longitude]}" ] add_field => [ "[geoip][coordinates]", "%{[geoip][latitude]}" ] } mutate { convert => [ "[geoip][coordinates]", "float" ] } if ![geoip.ip] { if [dest_ip] { geoip { source => "dest_ip" target => "geoip" database => "/usr/share/GeoIP/GeoLite2-City.#==> Change this to your actual GeoIP.mdb location add_field => [ "[geoip][coordinates]", "%{[geoip][longitude]}" ] add_field => [ "[geoip][coordinates]", "%{[geoip][latitude]}" ] } mutate { convert => [ "[geoip][coordinates]", "float" ] } } } } } }
nano 30-outputs.conf

Вставьте в файл следующую конфигурацию и сохраните его.

Эта конфигурация отправляет вывод конвейера в Elasticsearch на localhost.

Вывод будет отправлен в индекс для каждого дня на основе отметки времени события, проходящего через конвейер Logstash.

output { elasticsearch { hosts => localhost index => "logstash-%{+YYYY.MM.dd}" } # stdout { codec => rubydebug } } }

Добавим службы в автозапуск

systemctl daemon-reload systemctl enable kibana.service systemctl enable elasticsearch.service systemctl enable logstash.service

После этого каждую из служб можно запустить и остановить с помощью команд systemctl, например, например:

systemctl start kibana.service systemctl stop kibana.service

Установка Kibana

Kibana — это веб-интерфейс ELK, который можно использовать для визуализации оповещений от Suricata.

Для этого Kibana требует установки шаблонов.

Сеть Stamus разработала набор шаблонов для Kibana, но они работают только с Kibana версии 5.

Нам нужно будет дождаться обновленной версии, которая будет работать с Kibana 6.

Следите за https://github.com/StamusNetworks/, чтобы узнать, когда выходит новая версия KTS.

Вы можете, конечно, создавать свои собственные шаблоны.

Если вы перейдете к http://kibana.ip: 5601, вы увидите что-то вроде этого:



Чтобы запустить Kibana за прокси-сервером apache2, добавьте это в свой виртуальный хост:

ProxyPass /kibana/ http://localhost:5601/ ProxyPassReverse /(.*) http://localhost:5601/(.*)
nano /etc/kibana/kibana.yml

И установите следующее:

server.basePath: "/kibana"

И, конечно же, перезапустите кибану, чтобы изменения вступили в силу:

service kibana stop service kibana start

Включите модули mod_proxy и mod_proxy-httpd в apache2

a2enmod proxy a2enmod proxy_http service apache2 restart

Установка Evebox

Evebox — это веб-интерфейс, который отображает предупреждения Suricata после обработки ELK.

Сначала мы добавим репозиторий Evebox:

wget -qO - https://evebox.org/files/GPG-KEY-evebox | sudo apt-key add - echo "deb http://files.evebox.org/evebox/debian stable main" | tee /etc/apt/sources.list.d/evebox.list apt-get update
apt-get install evebox cp /etc/evebox/evebox.yaml.example /etc/evebox.yaml

И запустить evebox при загрузке системы:

systemctl enable evebox

Теперь мы можем запустить evebox:

service evebox start

Теперь мы можем перейти по адресу http://localhost:5636, и мы видим следующее:



Чтобы запустить Evebox за прокси-сервером apache2, добавьте это в свой виртуальный хост:

ProxyPass /evebox/ http://localhost:5601/ ProxyPassReverse /(.*) http://localhost:5601/(.*)
 nano /etc/evebox/evebox.yml 

И установите следующее:

reverse-proxy: true

И, конечно, перезагрузите evebox, чтобы изменения вступили в силу:

service evebox force-reload 

Включить mod_proxy и mod_proxy-httpd в apache2

a2enmod proxy a2enmod proxy_http service apache2 restart

Комментарии


Дистанционная компьтерная помощь, удаленная компьютерная помощь онлайн.

Популярные сообщения из этого блога

Лучшие плагины для OBS Studio

Open Broadcast Software или OBS - это свободное программное обеспечение с открытым исходным кодом для стриминга аудио и видео данных в сеть интернет. Программа полностью кроссплатформенная и может работать в Windows, Linux или MacOS. Это отличная альтернатива для таких программ, как Wirecast и XSplit. OBS использует для вещания стандартный протокол обмена сообщениями в реальном времени, а поэтому может транслировать данные в любой сервис, поддерживающий это, например, Yotube. Несмотря на широкие возможности OBS, программа поддерживает еще и множество плагинов. В этой статье мы рассмотрим лучшие плагины для OBS Studio, которые вы можете использовать. Содержание статьи: Лучшие плагины OBS Studio 1. Browser Source Plugin 2. Video Source Plugin 3. Simple Scene Switcher 4. DirectShow Audio Source 5. CLR Browser Source 6. OBS Remote 7. AMD Advanced Media Framework Encoder 8. Text Source Plugin Выводы Лучшие плагины OBS Studio Чтобы найти плагины OBS Studio для Video пользователям пр…

Лучшие аналоги Paint для Linux

Когда я работал в Windows, я часто использовал стандартную программу редактора изображений Windows - Paint. Не всегда нужен очень и многофункциональный инструмент вроде Photoshop или Gimp. Иногда, чтобы подправить ту или иную картинку, дорисовать на ней несколько фигур или вставить текст достаточно простого, легкого в освоении графического редактора вроде Paint. В Linux таких программ довольно много. В этой инструкции мы рассмотрим лучшие аналоги Paint для Linux. В этот список не будут включены такие программы, как Gimp и Krita, ведь это полнофункциональные графические редакторы, векторные редакторы, такие как Inkscape мы тоже рассматривать не будем. А теперь перейдем к списку. Содержание статьи: KolourPaint MyPaint Gnome Paint XPaint Pinta mtPaint GPaint Rassam-paint Выводы KolourPaint На первом месте в списке аналогов Piant для Linux будет KoloutPaint. Это стандартный графический редактор для окружения рабочего стола KDE. Он поддерживает множество форматов изображений PNG, J…

Подключение OneDrive в Linux

OneDrive (Ранее известный как SkyDrive) это популярное облачное хранилище файлов от Майкрософт. Сейчас OneDrive бесплатно предоставляет 7 гигабайт пространства новым пользователям. Как вы знаете OneDrive хорошо интегрирован с другими продуктами компании  Microsoft. В OneDrive Также есть официальный клиент который автоматически загружает ваши видео и фотографии с камеры в облако. Но к сожалению этот клиент недоступен для операционных систем семейства Linux. Но не все так плохо. Сообщество открытого программного обеспечения уже нашло решение. Это opedrive-d от Boilermaker. Запустившись как демон программа автоматически синхронизирует локальную папку с облаком OneDrive. Содержание статьи: Установка Onedrive-d в Linux Настройка Синхронизация локальной папки с OneDrive Установка Onedrive-d в Linux Несмотря на то что onedrive-d разрабатывается для Ubuntu/Debian, CentOs/Fedora/RHEL поддерживается тоже хорошо. Для установки достаточно набрать несколько команд: $ git clone https://gith…