2. Настройка Forsec-VPN

2.1. Управление forsec-vpn

Для управления forsec-vpn используется утилита forsec-vpn. Её нужно запускать от имени пользователя, входящего в группу forsec-vpn, либо от суперпользователя (root).

$ forsec-vpn help
Usage:
forsec-vpn list
forsec-vpn enable [<connection name>]
forsec-vpn disable [<connection name>]
forsec-vpn gen-ac <Access key generation data path>
forsec-vpn store-ac [<Access key path>]
forsec-vpn load-ac [<Access key path>]
forsec-vpn clear-ac [<Access key path>]
forsec-vpn import-key <Key path>
forsec-vpn ac-state
forsec-vpn list-keys
forsec-vpn remove-key <key serial> <key local-cn>
forsec-vpn update-config
forsec-vpn check
forsec-vpn version

Команды forsec-vpn:

Команда

Описание

list

Просмотр соединений

enable

Включение соединений

disable

Выключение соединений

gen-ac

Генерация ключа доступа

store-ac

Сохранение ключа доступа

load-ac

Загрузка ключа доступа

clear-ac

Очистка ключа доступа

import-key

Загрузка ключа

ac-state

Просмотр статуса ключа доступа

list-keys

Просмотр загруженных ключей

remove-key

Удаление ключа

update-config

Перезагрузка конфигурации

check/version

Проверка сервиса (контрольных сумм, ПДСЧ, криптографических функций), вывод версии и контрольной суммы Forsec-VPN

2.2. Файл конфигурации

Для настройки forsec-vpn используется файл /opt/forsec-vpn/forsec-vpn.conf. Он использует формат json.

Все соединения содержатся в массиве connections. Каждое соединение состоит из следующих настроек:

Настройка

Значение

Аналог в Fortics

Комментарий

name

название fortun-соединения

id

идентификатор туннеля

id

autostart

автозапуск соединения при запуске сервиса

boolean (true/false); работает только при указании access-key-path на глобальном уровне

mode-fortap

режим fortap

mode tap

boolean (true/false)

keepalive

настройки keepalive

keepalive

Секция

key

настройки ключа

forsec-key

Секция

interface

настройки виртуального интерфейса

Секция

udp

настройки UDP-соединения

Секция

Секция keepalive состоит из следующих настроек:

Настройка

Значение

Аналог в Fortics

Комментарий

interval

интервал keepalive

keepalive interval

retries

количество попыток keepalive

keepalive retries

Секция key состоит из следующих настроек:

Настройка

Значение

Аналог в Fortics

Комментарий

serial

серия ключа

forsec-key serial

local-cn

локальный криптономер

forsec-key local-cn

remote-cn

удалённый криптономер

forsec-key remote-cn

Секция interface состоит из следующих настроек:

Настройка

Значение

Аналог в Fortics

Комментарий

name

имя виртуального интерфейса

interface fortun <name>

по умолчанию совпадает с названием fortun-соединения

address

адрес виртуального интерфейса

<ipv4/ipv6> address

На данный момент поддерживается только один адрес; можно вместо адреса указать dhcp4 или dhcp6

routes

список маршрутов

Секция udp состоит из следующих настроек:

|remote-host|адрес удалённого конца туннеля|<ipv4/ipv6> remote|по идее можно указывать не только ip-адрес, но и доменное имя (например fortun.zts.ru)| |remote-port|порт удалённого конца туннеля|encap dport|| |local-host|адрес локального конца туннеля|<ipv4/ipv6> local|не рекомендуется к использованию; по идее можно указывать не только ip-адрес, но и доменное имя| |local-port|порт локального конца туннеля|encap sport|не рекомендуется к использованию|

На глобальном уровне (для всех интерфейсов) доступны следующие настройки:

Настройка

Значение

Комментарий

block-unencrypted

блокировка незашифрованного трафика в системе

boolean (true/false)

access-key-path

путь к КД

указывается для автоматической загрузки КД; он должен быть сохранён по этому пути без пароля

а настройка “block-unencrypted”, блокирующая незашифрованный трафик в системе.

После редактирования конфигурации нужно обновить её контрольную сумму:

$ forsec-vpn update-config
Configuration checksum is invalid; do you want to update it? (y/n)
y

2.3. Пример конфигурации

$ cat /opt/forsec-vpn/forsec-vpn.conf
{
        "connections": [
                {
                        "name": "conn1",
                        "id": 1,
                        "interface": {
                                "address": "192.168.10.2/24",
                                "dns": {
                                        "server": "192.168.10.1",
                                        "domain": [
                                                "domain.int",
                                                "domain2.int"
                                        ]
                                },
                                "routes": [
                                        "10.0.0.0/24",
                                        "10.0.10.0/24"
                                ]
                        },
                        "udp": {
                                "remote-host": "12.34.56.78",
                                "remote-port": "505"
                        },
                        "keepalive": {
                                "interval": 5,
                                "retries": 2
                        },
                        "key": {
                                "serial": 100,
                                "local-cn": 2,
                                "remote-cn": 1
                        },
                        "autostart": true
                }
        ],
        "block-unencrypted": false,
        "access-key-path": "/var/lib/forsec-vpn-ac"
}

2.4. Инициализация криптоподсистемы

Для генерации КД используется следующая команда:

$ forsec-vpn gen-ac <path-to-key>

Далее КД нужно сохранить:

$ forsec-vpn store-ac <path-to-ac>
Password:

Пароль должен быть либо пустым, либо от 8 символов. Также непустой пароль проходит проверку по словарю.

Все пути должны быть абсолютными. Директория <path-to-ac> должна существовать.

Для загрузки ключа используется команда:

$ forsec-vpn import-key <path-to-key>

2.5. Запуск соединений

Для запуска соединений нужно загрузить КД, если он не был создан при этом запуске forsec-vpn:

$ forsec-vpn load-ac <path-to-ac>

Для запуска соединений используется команда:

$ forsec-vpn enable [имя соединения]

Если имя соединения не указано, запустятся все соединения.

2.6. Журнал

На данный момент используется стандартный системный журнал:

$ journalctl -u forsec-vpn