Nexus firewall что это

Обновлено: 04.07.2024

В данной статье пойдет речь о бесплатных межсетевых экранах, которые отличаются от своих «родственников» в сфере веб-приложений. Они предназначены для защиты инфраструктуры, а не определенного кода или приложения.

По статистике, миллионы данных крадутся или считаются утерянными каждый день.

Насколько безопасна сеть, которую использует человек? Активен ли межсетевой экран, обеспечивающий защиту сетевой инфраструктуры?

1. pfSense

Решение для обеспечения безопасности с открытым исходным кодом и пользовательским ядром на базе ОС FreeBSD. pfSense является одним из ведущих межсетевых экранов для коммерческих целей. Он доступен в виде аппаратного устройства, виртуальной машины и загружаемого двоичного файла (многопользовательская версия)

Бесплатным является последний вариант.

Из преимуществ можно выделить подробное описание условий использования и простота применения. Характерные особенности pfSense включают в себя:

  • Межсетевой экран — фильтрация IP / портов, ограничение соединений, поддержка приема и передачи данных, клининг.
  • Таблица состояний – по умолчанию все правила являются статусными, доступно несколько конфигураций для обработки состояний.
  • Балансировка нагрузки на сервер – встроенный LB, который способен распределить нагрузку между несколькими бэкендами сервера.
  • NAT (трансляция сетевых адресов) — переадресация и отражения портов.
  • HA (возможность обеспечения бесперебойной работы) — переход на вторичный ресурс при отказе работы первичного.
  • Multi-WAN (глобальная вычислительная сеть) – возможность использовать более одного подключения к интернету.
  • VPN — поддержка IPsec и OpenVPN.
  • Отчетность – пользователь способен хранить информацию о посещенных и использованных ресурсах.
  • Мониторинг в реальном времени.
  • Динамический DNS – использование нескольких DNS-клиентов одновременно.
  • Ретрансляция и DHCP .

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

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

  • Безопасность — stunner, snort, tinc, nmap, arpwatch
  • Мониторинг — iftop, ntopng, softflowd, urlsnarf, darkstat, mailreport
  • Сеть – netio, nut, Avahi
  • Маршрутизация — frr, olsrd, routed, OpenBGPD
  • Услуги – iperf, widentd, syslog-ng, bind, acme, imspector, git, dns-server.

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

2. IPFire

IPFire был разработан на основе межсетевого экрана Netfilter и уже завоевал доверие тысячи компаний по всему миру.

Sonatype Nexus – интегрированная платформа, с помощью которой разработчики могут проксировать, хранить и управлять зависимостями Java (Maven), образами Docker, Python, Ruby, NPM, Bower, RPM-пакетами, gitlfs, Apt, Go, Nuget, а также распространять свое программное обеспечение.

Зачем нужен Sonatype Nexus?

  • Для хранения приватных артефактов;
  • Для кеширования артефактов, которые скачиваются из интернета;

Артефакты поддерживаемые в базовой поставке Sonatype Nexus:

  • Java, Maven (jar)
  • Docker
  • Python (pip)
  • Ruby (gem)
  • NPM
  • Bower
  • Yum (rpm)
  • gitlfs
  • Raw
  • Apt (deb)
  • Go
  • Nuget

Артефакты поддерживаемые сообществом:

Требования

Пример ansible-playbook для установки nexus без LDAP с репозиториями Maven (java), Docker, Python, Ruby, NPM, Bower, RPM и gitlfs.

Скриншоты:



Переменные роли

Role Variables

Переменные со значениями по умолчанию (см. default/main.yml ):

General variables

Если вы измените версию на более новую, то роль попытается обновить ваш установленный Nexus.

Если вы используете более старую версию Nexus, чем последняя, вы должны убедиться, что не используете функции, которые недоступны в установленном выпуске (например, размещенние yum репозиториев доступно для nexus больше чем 3.8.0, git lfs repo для nexus больше чем 3.3.0 и т. д.)

nexus timezone — это имя часового пояса Java, которое может быть полезно в сочетании с приведенными ниже выражениями cron для nexus_scheduled tasks.

Порт Nexus и контекстный путь

Порт и контекстный путь процесса Java-соединения. nexus_default_context_path должен содержать косую черту, когда он установлен, например.: nexus_default_context_path: '/nexus/' .

Пользователь и группа ОС Nexus

Пользователь и группа, используемые для владения файлами Nexus и запуска службы, будут созданы ролью, если она отсутствует.

Разрешить изменять домашний каталог по умолчанию для пользователя nexus

Каталоги экземпляров Nexus

Настройка использование памяти Nexus JVM

Это настройки по умолчанию для Nexus. Пожалуйста, не изменяйте эти значения Если вы не прочитали раздел памяти системных требований nexus и не понимаете, что они делают.

Как второе предупреждение, вот выдержка из вышеупомянутого документа:

Не рекомендуется увеличивать память JVM heap больше рекомендуемых значений в попытке повысить производительность. Это на самом деле может иметь противоположный эффект, приводя к ненужной работе операционной системы.

Пароль администратора

Анонимный доступ по умолчанию

Анонимный доступ по умолчанию вылючен. Подробнее про анонимный доступ.

Публичное имя хоста

Доступ API для этой роли

Эти переменные контролируют, как роль подключается к API Nexus для предоставления.
Только для продвинутых пользователей. Скорее всего, вы не хотите изменять эти настройки по умолчанию

Настройка обратного прокси

Установить адрес электронной почты администратора по умолчанию

Конфигурация LDAP

Соединения LDAP и область безопасности по умолчанию отключены

Соединения LDAP, каждый элемент выглядит следующим образом:

Пример конфигурации LDAP для анонимной аутентификации (анонимная привязка), это также «минимальная» конфигурация:

Пример конфигурации LDAP для простой аутентификации (с использованием учетной записи DSA):

Пример конфигурации LDAP для простой аутентификации (с использованием учетной записи DSA) + группы, сопоставленные как роли:

Пример конфигурации LDAP для простой аутентификации (с использованием учетной записи DSA) + группы, динамически сопоставленные как роли:

Привилегии

Список привилегий для настройки. Посмотрите документацию и графический интерфейс, чтобы проверить, какие переменные должны быть установлены в зависимости от типа привилегии.

Эти элементы объединяются со следующими значениями по умолчанию:

Роли (внутри Nexus имеется виду)

Список ролей для настройки.

Пользователи

Local (non-LDAP) users/accounts list to create in nexus.

Список локальных (не LDAP) пользователей/учетных записей для создания в Nexus.

Маппинг Ldap пользователей/ролей. Состояние absent удалит роли из существующего пользователя, если он уже существует.
Пользователи Ldap не удаляются. Попытка установить роль для несуществующего пользователя приведет к ошибке.

Селекторы контента

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

Чтобы использовать селектор контента, добавьте новую привилегию с type: repository-content-selector и соответствующим contentSelector

Blobstores и репозитории

Delete the repositories from the nexus install initial default configuration. This step is only executed on first-time install (when nexus_data_dir has been detected empty).

Удаление репозиториев из исходной конфигурации по умолчанию для Nexus. Этот шаг выполняется только при первой установке (когда nexus_data_dir пустой).

Удаление хранилища блобов (бинарных артефактов) выключено по умолчанию из исходной конфигурации. Для удаления хранилища блобов (бинарных артефактов) выключите nexus_delete_default_repos: true . Этот шаг выполняется только при первой установке (когда nexus_data_dir пустой).

Blobstores to create. A blobstore path and a repository blobstore cannot be updated after initial creation (any update here will be ignored on re-provisionning).

Configuring blobstore on S3 is provided as a convenience and is not part of the automated tests we run on travis. Please note that storing on S3 is only recommended for instances deployed on AWS.

Cоздание Blobstores. Путь к хранилищу и репозиторию хранилищ не могут быть обновлены после первоначального создания (любое обновление здесь будет игнорироваться при повторной установке).

Настройка хранилища BLOB-объектов на S3 предоставляется для удобства. Обратите внимание, что хранение на S3 рекомендуется только для экземпляров, развернутых на AWS.

Выше пример конфигурации прокси-сервер Maven.

Maven hosted repositories configuration. Negative cache config is optionnal and will default to the above values if omitted.

Конфигурация размещенных (hosted) репозиториев Maven. Конфигурация отрицательного кэша (-1) является необязательной и будет по умолчанию использовать вышеуказанные значения, если не указана.

Все три типа репозитория объединяются со следующими значениями по умолчанию:

Docker, Pypi, Raw, Rubygems, Bower, NPM, Git-LFS and yum repository types:
see defaults/main.yml for these options:

Хранилища Docker, Pypi, Raw, Rubygems, Bower, NPM, Git-LFS и yum по умолчанию выключены:
Смотрите defaults/main.yml для этих опций:

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

Remote User Realm также может быть включена с помощью

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

Запланированные задачи

Запланированные задачи для настройки. typeId и специфичные для задачи taskProperties / booleanTaskProperties можно угадать либо:

  • из иерархии типов Java org.sonatype.nexus.scheduling.TaskDescriptorSupport
  • проверяя HTML-форму создания задачи в вашем браузере
  • от просмотра запросов AJAX в браузере при ручной настройке задачи.

Свойства задачи должны быть объявлены в правильном блоке yaml в зависимости от их типа:

  • taskProperties для всех строковых свойств (т. е. имен репозиториев, имен хранилищ, периодов времени . ).
  • booleanTaskProperties для всех логических свойств (т. е. в основном чекбоксы в графическом интерфейсе задачи создания нексуса).

Резервные копии

Резервное копирование не будет настроено, пока вы не переключите nexus_backup_configure в true .
В этом случае запланированная задача сценария будет настроена для запуска в Nexus
с интервалом, указанным в nexus_backup_cron (по умолчанию 21:00 каждый день).
См. [Шаблон groovy для этой задачи](templates / backup.groovy.j2) для получения подробной информации.
Это запланированное задание не зависит от других nexus_scheduled_tasks , которые вы
объявить в своем playbook.

Если вы хотите ротировать/удалять резервные копии, установите nexus_backup_rotate: true и настройте количество бекапов, которое вы хотели бы сохранить с помощью nexus_backup_keep_rotations (по умолчанию 4).

При использовании ротации, если вы хотите сэкономить дополнительное дисковое пространство во время процесса резервного копирования,
Вы можете установить nexus_backup_rotate_first: true . Это настроит предварительное ротирование/удаление перед бекапом. По умолчанию ротиция происходит после создания резервной копии. Обратите внимание, чем в этом случае старые резервные копии
удалятся до того, как текущий бекап будет сделан.

Процедура восстановления

Запустите playbook с параметром -e nexus_restore_point=<YYYY-MM-dd-HH-mm-ss>
(например, 2017-12-17-21-00-00 для 17 декабря 2017 в 21:00

Удаление nexus

Предупреждение: это полностью удалит текущие данные. Обязательно сделайте резервную копию ранее, если это необходимо

Используйте переменную nexus_purge , если вам нужно перезапустить с нуля и переустановить экземпляр nexus с удалением всех данных.

Изменить пароль администратора после первой установки

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

Если вы хотите изменить пароль администратора после первой установки, вы можете временно изменить его на старый пароль из командной строки. После изменения nexus_admin_password в вашей игровой книге вы можете запустить:

Sonatype Nexus – интегрированная платформа, с помощью которой разработчики могут проксировать, хранить и управлять зависимостями Java (Maven), образами Docker, Python, Ruby, NPM, Bower, RPM-пакетами, gitlfs, Apt, Go, Nuget, а также распространять свое программное обеспечение.

Зачем нужен Sonatype Nexus?

  • Для хранения приватных артефактов;
  • Для кеширования артефактов, которые скачиваются из интернета;

Артефакты поддерживаемые в базовой поставке Sonatype Nexus:

  • Java, Maven (jar)
  • Docker
  • Python (pip)
  • Ruby (gem)
  • NPM
  • Bower
  • Yum (rpm)
  • gitlfs
  • Raw
  • Apt (deb)
  • Go
  • Nuget

Артефакты поддерживаемые сообществом:

Требования

  • Прочитайте про использование ansible в интернете.
  • Установите ansible pip install ansible на рабочей станции где запускается playbook.
  • Установите geerlingguy.java на рабочей станции где запускается playbook.
  • Установите geerlingguy.apache на рабочей станции где запускается playbook.
  • Эта роль протестирована на CentOS 7, Ubuntu Xenial (16.04) and Bionic (18.04), Debian Jessie and Stretch
  • jmespath библиотека должна быть установлена на рабочей станции где запускается playbook. Для установки выполните sudo pip install -r requirements.txt
  • Сохраните файл playbook (пример ниже) в файл nexus.yml
  • Запустите установку nexus ansible-playbook -i host nexus.yml

Пример ansible-playbook для установки nexus без LDAP с репозиториями Maven (java), Docker, Python, Ruby, NPM, Bower, RPM и gitlfs.

Скриншоты:

Установка и настройка Nexus Sonatype используя подход infrastructure as code

Установка и настройка Nexus Sonatype используя подход infrastructure as code

Переменные роли

Role Variables

Переменные со значениями по умолчанию (см. default/main.yml ):

General variables

Если вы измените версию на более новую, то роль попытается обновить ваш установленный Nexus.

Если вы используете более старую версию Nexus, чем последняя, вы должны убедиться, что не используете функции, которые недоступны в установленном выпуске (например, размещенние yum репозиториев доступно для nexus больше чем 3.8.0, git lfs repo для nexus больше чем 3.3.0 и т. д.)

nexus timezone — это имя часового пояса Java, которое может быть полезно в сочетании с приведенными ниже выражениями cron для nexus_scheduled tasks.

Порт Nexus и контекстный путь

Порт и контекстный путь процесса Java-соединения. nexus_default_context_path должен содержать косую черту, когда он установлен, например.: nexus_default_context_path: '/nexus/' .

Пользователь и группа ОС Nexus

Пользователь и группа, используемые для владения файлами Nexus и запуска службы, будут созданы ролью, если она отсутствует.

Разрешить изменять домашний каталог по умолчанию для пользователя nexus

Каталоги экземпляров Nexus

Настройка использование памяти Nexus JVM

Это настройки по умолчанию для Nexus. Пожалуйста, не изменяйте эти значения Если вы не прочитали раздел памяти системных требований nexus и не понимаете, что они делают.

Как второе предупреждение, вот выдержка из вышеупомянутого документа:

Не рекомендуется увеличивать память JVM heap больше рекомендуемых значений в попытке повысить производительность. Это на самом деле может иметь противоположный эффект, приводя к ненужной работе операционной системы.

Пароль администратора

Анонимный доступ по умолчанию

Анонимный доступ по умолчанию вылючен. Подробнее про анонимный доступ .

Публичное имя хоста

Доступ API для этой роли

Эти переменные контролируют, как роль подключается к API Nexus для предоставления.
Только для продвинутых пользователей. Скорее всего, вы не хотите изменять эти настройки по умолчанию

Настройка обратного прокси

Установить адрес электронной почты администратора по умолчанию

Конфигурация LDAP

Соединения LDAP и область безопасности по умолчанию отключены

Соединения LDAP , каждый элемент выглядит следующим образом:

Пример конфигурации LDAP для анонимной аутентификации (анонимная привязка), это также «минимальная» конфигурация:

Пример конфигурации LDAP для простой аутентификации (с использованием учетной записи DSA):

Пример конфигурации LDAP для простой аутентификации (с использованием учетной записи DSA) + группы, сопоставленные как роли:

Пример конфигурации LDAP для простой аутентификации (с использованием учетной записи DSA) + группы, динамически сопоставленные как роли:

Привилегии

Список привилегий для настройки. Посмотрите документацию и графический интерфейс, чтобы проверить, какие переменные должны быть установлены в зависимости от типа привилегии.

Эти элементы объединяются со следующими значениями по умолчанию:

Роли (внутри Nexus имеется виду)

Список ролей для настройки.

Пользователи

Local (non-LDAP) users/accounts list to create in nexus.

Список локальных (не LDAP) пользователей/учетных записей для создания в Nexus.

Маппинг Ldap пользователей/ролей. Состояние absent удалит роли из существующего пользователя, если он уже существует.
Пользователи Ldap не удаляются. Попытка установить роль для несуществующего пользователя приведет к ошибке.

Селекторы контента

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

Чтобы использовать селектор контента, добавьте новую привилегию с type: repository-content-selector и соответствующим contentSelector

Blobstores и репозитории

Delete the repositories from the nexus install initial default configuration. This step is only executed on first-time install (when nexus_data_dir has been detected empty).

Удаление репозиториев из исходной конфигурации по умолчанию для Nexus. Этот шаг выполняется только при первой установке (когда nexus_data_dir пустой).

Удаление хранилища блобов (бинарных артефактов) выключено по умолчанию из исходной конфигурации. Для удаления хранилища блобов (бинарных артефактов) выключите nexus_delete_default_repos: true . Этот шаг выполняется только при первой установке (когда nexus_data_dir пустой).

Blobstores to create. A blobstore path and a repository blobstore cannot be updated after initial creation (any update here will be ignored on re-provisionning).

Configuring blobstore on S3 is provided as a convenience and is not part of the automated tests we run on travis. Please note that storing on S3 is only recommended for instances deployed on AWS.

Cоздание Blobstores . Путь к хранилищу и репозиторию хранилищ не могут быть обновлены после первоначального создания (любое обновление здесь будет игнорироваться при повторной установке).

Настройка хранилища BLOB-объектов на S3 предоставляется для удобства. Обратите внимание, что хранение на S3 рекомендуется только для экземпляров, развернутых на AWS.

Выше пример конфигурации прокси-сервер Maven.

Maven hosted repositories configuration. Negative cache config is optionnal and will default to the above values if omitted.

Конфигурация размещенных (hosted) репозиториев Maven. Конфигурация отрицательного кэша (-1) является необязательной и будет по умолчанию использовать вышеуказанные значения, если не указана.

Все три типа репозитория объединяются со следующими значениями по умолчанию:

Docker, Pypi, Raw, Rubygems, Bower, NPM, Git-LFS and yum repository types:
see defaults/main.yml for these options:

Хранилища Docker, Pypi, Raw, Rubygems, Bower, NPM, Git-LFS и yum по умолчанию выключены:
Смотрите defaults/main.yml для этих опций:

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

Remote User Realm также может быть включена с помощью

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

Запланированные задачи

Запланированные задачи для настройки. typeId и специфичные для задачи taskProperties / booleanTaskProperties можно угадать либо:

  • из иерархии типов Java org.sonatype.nexus.scheduling.TaskDescriptorSupport
  • проверяя HTML-форму создания задачи в вашем браузере
  • от просмотра запросов AJAX в браузере при ручной настройке задачи.

Свойства задачи должны быть объявлены в правильном блоке yaml в зависимости от их типа:

Резервные копии

Резервное копирование не будет настроено, пока вы не переключите nexus_backup_configure в true .
В этом случае запланированная задача сценария будет настроена для запуска в Nexus
с интервалом, указанным в nexus_backup_cron (по умолчанию 21:00 каждый день).
См. [Шаблон groovy для этой задачи](templates / backup.groovy.j2) для получения подробной информации.
Это запланированное задание не зависит от других nexus_scheduled_tasks , которые вы
объявить в своем playbook.

Если вы хотите ротировать/удалять резервные копии, установите nexus_backup_rotate: true и настройте количество бекапов, которое вы хотели бы сохранить с помощью nexus_backup_keep_rotations (по умолчанию 4).

При использовании ротации, если вы хотите сэкономить дополнительное дисковое пространство во время процесса резервного копирования,
Вы можете установить nexus_backup_rotate_first: true . Это настроит предварительное ротирование/удаление перед бекапом. По умолчанию ротиция происходит после создания резервной копии. Обратите внимание, чем в этом случае старые резервные копии
удалятся до того, как текущий бекап будет сделан.

Процедура восстановления

Запустите playbook с параметром -e nexus_restore_point=<YYYY-MM-dd-HH-mm-ss>
(например, 2017-12-17-21-00-00 для 17 декабря 2017 в 21:00

Удаление nexus

Предупреждение: это полностью удалит текущие данные. Обязательно сделайте резервную копию ранее, если это необходимо

Используйте переменную nexus_purge , если вам нужно перезапустить с нуля и переустановить экземпляр nexus с удалением всех данных.

Изменить пароль администратора после первой установки

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

Если вы хотите изменить пароль администратора после первой установки, вы можете временно изменить его на старый пароль из командной строки. После изменения nexus_admin_password в вашей игровой книге вы можете запустить:

Nexus это хранилище артефактов. Артефакт это ваше приложение, например jar-ник. Чаще всего в Nexus сохраняют библиотеки, чтобы другие разработчики могли их подключить в виде зависимости к своему приложению.

Самым большим и открытым Nexus является Maven Central. Он публичный, то есть любой может взять оттуда зависимость. Но что если вам не нужна публичность. Например, мы хотим сделать библиотеку, которой будут пользоваться только наши коллеги с работы, или ваши только вы и ваша команда. Тогда вам нужен Sonatype Nexus.

Публикация артефакта библиотеки в Maven Central через Sonatype OSSHR.


Nexus Sonatype позволит вам создать свой приватный, ну либо публичный Nexus с авторизацией. Также его можно использовать, как прокси перед Maven Central.

Я не буду рассказывать, как установить свой Nexus. Я расскажу, что добавить в ваше приложение, чтобы деплоить в Nexus.

Настраиваем settings.xml

Скорее всего у вас есть логин и пароль аккаунта в Nexus. Эти данные нужно указать в файле .m2/settings.xml . Если этого файла нет в папке .m2 создайте его.

Настраиваем приложение

Теперь переходим к pom.xml приложения.

В секцию properties добавляем версии плагинов и URL нексуса.

Добавляем в pom.xml url на репозитории в нексусе: снепшотный и релизный.

Обратите внимание на строки 3 и 7, id репозиториев должен совпадать с id в секции server файла .m2/settings.xml .

Мы заменим maven-deploy-plugin на nexus-staging-maven-plugin . После этого мы сможем деплоить в наш нексус командой mvn deploy .

Если вам нужно также сохранять исходники и JavaDoc, то добавьте эти плагины:

Вот и все, теперь вы можете задеплоить артефакт в нексус обычной Maven командой:

Вы можете настроить автоматическую сборку и доставку в Nexus с помощью Gitlab CI, подробнее об этом я писал в статье: Настройка Gitlab CI/CD для Java приложения.

Читайте также: