Это настройка службы STunnel.
Для защиты отдельных TCP-соединений с заданным адресом сервера и портом TCP назначения.
STunnel — технология туннелирования 4 уровня (в терминах модели OSI), предназначенная для защиты индивидуальных TCP-соединений. Она принципиально асимметрична и подразумевает постоянное разделение ролей между вызывающим хостом (прикладным клиентом) и отвечающим хостом (прикладным сервером). Связка из клиента и сервера STunnel, находящихся на границе одной и другой корпоративной подсетей, соответственно, с сетью общего пользования, всегда выполняет роль TCP-прокси между ними.
Когда клиенту некоторого протокола, работающего поверх TCP, необходимо обратиться к серверу через небезопасную сеть, то процедура разбивается на 3 последовательных соединения:
Смысл всей этой эстафеты в том, что на втором этапе задействуется TLS (изначально SSL) — универсальный механизм, лежащий в основе многих безопасных технологий: HTTPS, OpenVPN и др. Пакеты прикладного протокола (HTTP и др.), извлечённые из TCP, шифруются и уже в зашифрованном виде заново инкапсулируются в TCP для передачи по второму этапу. При передаче эстафетной палочки со второго этапа на третий действия выполняются в обратном порядке.
Для защиты данных при передаче через публичную сеть используется асимметричная пара ключей RSA, подтвержденная сертификатом X.509. Для сервера STunnel наличие ключа и сертификата является обязательным по существу данной технологии. Для клиента STunnel они опциональны, в зависимости от того, с какими настройками (требовать ли аутентификации от клиента или нет) работает сервер.
Поддержка STunnel в NSG Linux 2.1 реализована на основе стандартного пакета STunnel и настраивается в терминах файла stunnel.conf. Подробно обо всех возможных опциях см. man pages по stunnel.
Настройка соединений STunnel выполняется в узле tunnels
при помощи наиболее существенных параметров файла stunnel.conf. Туннели могут создаваться как пользователем вручную, так и системой автоматически при включении определённых служб (например, HTTPS). Любые дополнительные параметры могут быть добавлены через узел extra-options
.
В некоторых прикладных решениях имеется необходимость в том, чтобы прикладной сервер идентифицировал своего клиента, например, по заранее известному IP-адресу. Если же такое соединение пропускается через туннель STunnel, то уникальность клиента теряется: STunnel работает как прокси и все соединения с прикладным сервером исходят с внутреннего адреса сервера STunnel. Это принципиальная особенность данного типа туннелей, поскольку они работают на 4 уровне протокольной иерархии и могут произвольно манипулировать нижележащими уровнями. Соединения от сервера STunnel к прикладному серверу различаются только номером порта TCP источника, который выбирается системой случайным образом и никакой полезной информации о том, какой именно клиент работает по данному соединению, не содержит.
Сохранить уникальность клиентов можно следующими способами:
connect
), а на сервере STunnel — соответствующий входящий порт (accept
) и уникальный порт назначения на прикладном сервере (connect
). Таким образом, каждый прикладной клиент будет попадать в строго определённый порт на сервере. Отметим, что настройка портов назначения на прикладных клиентах и входящих портов на клиентах STunnel при этом может быть единообразной для всех клиентских площадок.© Network Systems Group 2015–2024 | Отдел документации |