Задать вопрос
@brbwk

Ipfire. Как реализован протокол strongswan?

Развернул сеть в виртуалках: клиент 1 - фаервол (ipfire1) - роутер - фаервол (ipfire2) - клиент 2.
Настроил ipsec vpn. Теперь если слать пинг с машины клиент 1 на машину клиент 2, то на роутере можно видеть еспшки, значит все работает. Плюс айпифаера общаются между собой (isakmp пакеты каждые сек 10).
На машине с ipfire2 я смотрю процессы: там есть демон charon и сам charon, запущенный демоном. Больше никаких процессов, дочерних процессов нет, которые относились бы к strongswan. Я инжектирую хуки во второй процесс на функции read, write, send, sendto, sendmsg, recv, recvfrom, recvmsg. Хуки работают, так как ловят информационные пакеты между фаерволами (isakmp).
Но вот в чем проблема: когда начинаю слать пинг с одной машины на другую, то никакого выхлопа нет, хуки молчат.
По идее либо другой процесс держит туннель, либо функции отправки и приема пакетов дергаются другие в обход хуков. Вроде никаких процессов нет, я смотрел и древо процессов и весь лист, их только 2. Насчет других функций отправки тоже сомнительно както, потому что а как иначе strongswan пишет в сокет, если не сендами или врайтами.
Исходный код strongswan смотрел, там они сделали на си аля плюсы, чтото на подобии классов, и объекту socket подключают методы send, receive, но в этих методах как именно они работают с файловыми дескрипторами сокета я не нашел.
  • Вопрос задан
  • 176 просмотров
Подписаться 1 Средний 4 комментария
Решения вопроса 1
ValdikSS
@ValdikSS
IPsec работает в ядре. Userspace-демон только настраивает соединение.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
CityCat4
@CityCat4 Куратор тега VPN
//COPY01 EXEC PGM=IEBGENER
isakmp (Internet Security Associations and Key Management Protocol), равно как и его последователь IKE (Internet Key Exchange) - это вспомогательные протоколы для установки соединения. Вообще-то, если все сделать руками - заработает и без них, они только удобство повышают.
IPSec работает по протоколам ESP/AH и работает в основном в ядре - там делается формирование политик, управление ключами, шифровка-расшифровка.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы