OPNsense
OPNsense — операционная система с открытым исходным кодом, созданная на базе FreeBSD. Предназначена для использования в качестве брандмауэра и маршрутизатора в сетях и предлагает множество функций, включая маршрутизацию, межсетевое экранирование, NAT, DHCP-сервер, балансировку нагрузки, VPN, DDNS, PPPoE, IDS и проксирование трафика.
Преимущества
- Модульная архитектура, которая позволяет пользователям выбирать только те функции, которые им нужны.
- Собственный пакетный менеджер, облегчающий установку и обновление пакетов.
- Поддержка построения отказоустойчивого кластера, который обеспечивает более высокую доступность и надежность сети.
- Встроенный мониторинг, журналирование и формирование отчетов, которые помогают пользователям отслеживать состояние сети и выявлять проблемы.
- Межсетевой экран, системы обнаружения и предотвращения вторжений (IDS/IPS), антивирус.
- Интеграции с Security Onion, Wazuh и т. п.
-
Получите пару SSH-ключей для подключения к виртуальной машине (ВМ).
-
Создайте ВМ из публичного образа. В блоке Выбор образа/загрузочного диска перейдите на вкладку Cloud Marketplace и выберите OPNsense. В блоке Доступ:
- в поле Логин введите
freebsd
; - в поле SSH-ключ вставьте содержимое файла с открытым SSH-ключом.
Сохраните публичный IP-адрес ВМ.
- в поле Логин введите
-
Подключитесь к ВМ по SSH. Для этого используйте логин
freebsd
и закрытый SSH-ключ, созданный ранее. -
Выполните команды:
sudo su
-
Нажмите 8 для доступа к консоли.
При первом запуске будет сгенерирован пароль для доступа к веб-интерфейсу. Посмотреть пароль можно в файле
/conf/root_password
. -
Перейдите в браузере на страницу
https://<публичный_IP-адрес_ВМ>/
и авторизуйтесь c паролем из файла/conf/root_password
и логиномroot
.
Вместо стандартного пользователя freebsd
вы можете задать свое имя пользователя при создании ВМ. Для этого:
-
Создайте конфигурационный файл для утилиты
cloud-init
, напримерconfig.yaml
. -
Скопируйте в него следующие метаданные:
#cloud-config datasource: Ec2: strict_id: false system_info: distro: freebsd default_user: name: <имя_пользователя> ssh_authorized_keys: - <открытая_часть_SSH-ключа> groups: [wheel] sudo: ["ALL=(ALL) NOPASSWD:ALL"] shell: /usr/local/bin/bash network: renderers: ['freebsd'] bootcmd: - rmuser -y freebsd
Где:
name
— имя пользователя.ssh_authorized_keys
— содержимое файла с открытым SSH-ключом.
В FreeBSD оболочка
bash
находится в/usr/local/bin/
. -
Создайте ВМ с помощью CLI и передайте метаданные пользователя:
yc compute instance create \ --name <имя_ВМ> \ --zone <зона_доступности> \ --network-interface subnet-name=<имя_подсети>,nat-ip-version=ipv4 \ --create-boot-disk name=disk1,size=20,image-id=fd8t7dhq1pt5gidofilh \ --metadata-from-file <путь_к_файлу_config.yaml>
Где:
name
— имя ВМ.zone
— зона доступности.subnet-name
— имя подсети.image-id
— идентификатор образа FreeBSD.metadata-from-file
— путь к файлу с метаданными для настройки пользователя.
Также с помощью утилиты cloud-init
можно управлять SHH-ключами пользователя, создавать несколько пользователей и устанавливать программные пакеты.
Пример конфигурационного файла cloud-init
для управления SHH-ключами пользователя:
#cloud-config
datasource:
Ec2:
strict_id: false
users:
- gecos: freebsd
name: freebsd
ssh_authorized_keys:
- <открытая_часть_SSH-ключа>
sudo: ALL=(ALL) NOPASSWD:ALL
groups: [wheel, sudo]
Где ssh_authorized_keys
— содержимое файла с открытым SSH-ключом.
Пример конфигурационного файла cloud-init
для создания нескольких пользователей и установки программных пакетов:
#cloud-config
datasource:
Ec2:
strict_id: false
users:
- gecos: <информация_о_пользователе>
name: <имя_пользователя>
ssh_authorized_keys:
- <открытая_часть_SSH-ключа>
sudo: ALL=(ALL) NOPASSWD:ALL
groups: [wheel, sudo]
- gecos: <информация_о_пользователе>
name: <имя_пользователя>
ssh_authorized_keys:
- <открытая_часть_SSH-ключа>
sudo: ALL=(ALL) NOPASSWD:ALL
groups: [wheel, sudo]
packages:
- curl
- py39-pip
package_update: true
package_upgrade: false
Где:
gecos
— информация о пользователе.name
— имя пользователя.ssh_authorized_keys
— содержимое файла с открытым SSH-ключом для каждого пользователя.packages
— перечень устанавливаемых программных пакетов.
- Создание VPN-соединения для удаленного доступа к ресурсам или для связи физической и облачной инфраструктуры.
- Защита сервисов и приложений.
- Трансляция адресов.
- Фильтрация трафика.
- Маршрутизация в интернете.
OpenNix
OpenNix осуществляет техническую поддержку пользователей OPNsense в Yandex Cloud. Вы можете связаться с технической поддержкой по электронной почте support@opennix.ru. Время работы технической поддержки с 9:00 до 18:00 (МСК) по рабочим дням.
Yandex Cloud
Yandex Cloud не предоставляет техническую поддержку продукта. При возникновении проблем обращайтесь к информационным ресурсам разработчика.