IPSec Tools Racoon

Homepage: IPsec-Tools

IPsec-Tools это порт c FreeBSD использует утилиты setkey, racoon.

IPSec (сокращение от спецификации IP Security) - надстройка к протоколу IP, обеспечивающая безопасность протоколов более высокого уровня. IPSec был разработан для IPv6 протокола, а позже портирован на IPv4 протокол. IPSec шифрует IP-пакеты, ему безразличны интерфейсы (например gif) на шифрование которых он настроен вообще. IPSec обеспечивает IP-сжатие(IP Compression, IPcomp) пакетов перед их шифрованием. Протоколы IPsec работают на сетевом уровне (уровень 3 модели OSI). Другие защищённые протоколы, такие как Что такое SSL сертификат для сайта, почты и TLS, работают на транспортном уровне (уровни OSI 4 — 7).

IPSec для соединения может использовать предопределённые ключи(pre-shared key) или Что такое SSL сертификат для сайта, почты- сертификаты.
  • pre-shared key: Два даемона racoon подключаются друг к другу, подтверждают, что они именно те, за кого себя выдают (используя секретный ключ, заданный вами, по умолчанию в файле /etc/racoon/psk.txt). Затем даемоны генерируют новый секретный ключ и используют его для шифрования трафика через VPN. Они периодически изменяют этот ключ, так что даже если атакующий сломает один из ключей (что теоретически почти невозможно) это не даст ему слишком много – он сломал ключ, который два даемона уже сменили на другой. Предварительный ключ(pre-shared key) не используется для шифрования трафика через VPN соединение это просто маркер, позволяющий управляющим ключами даемонам доверять друг другу. Права на файл psk.txt должны быть 0600 (т.е. запись и чтение только для root).
  • IPsec состоит из двух протоколов:
  1. Encapsulated Security Payload (ESP), защищающей данные IP пакета от вмешательства третьей стороны путем шифрования содержимого с помощью симметричных криптографических алгоритмов (таких как Blowfish,3DES, AES).
  2. Authentication Header (AH), защищающий заголовок IP пакета от вмешательства третьей стороны и подделки путем вычисления криптографической контрольной суммы и хеширования полей заголовка IP пакета защищенной функцией хеширования. К пакету добавляется дополнительный заголовок с хэшем, позволяющий аутентификацию информации пакета.

ESP и AH могут быть использованы вместе или по отдельности, в зависимости от обстоятельств.

esp и ah - пакеты ipsec, формируются ядром после того как хосты, при помощи racoon, договорятся о ключе по протоколу isakmp (500/udp).

Существует два режима работы IPsec: транспортный режим и туннельный режим(когда в транспортном режиме работают только маршрутизаторы).

IPsec может быть использован или для непосредственного шифрования трафика между двумя хостами (транспортный режим); или для построения "виртуальных туннелей" между двумя подсетями, которые могут быть использованы для защиты соединений между двумя корпоративными сетями (туннельный режим). Туннельный режим обычно называют виртуальной частной сетью (Virtual Private Network, Раздел VPN: Что это такое VPN).

В транспортном режиме шифруется (или подписывается) только информативная часть IP-пакета. Маршрутизация не затрагивается, так как заголовок IP пакета не изменяется (не шифруется). Транспортный режим как правило используется для установления соединения между хостами. Он может также использоваться между шлюзами, для защиты туннелей, организованных каким-нибудь другим способом (IP tunnel, GRE туннели и др.).

Транспортный режим
IP заголовок ESP/AH заголовок L4 payload

В туннельном режиме IP-пакет шифруется целиком. Для того, чтобы его можно было передать по сети, он помещается в другой IP-пакет. По существу, это защищённый IP-туннель. Туннельный режим может использоваться для подключения удалённых компьютеров к виртуальной частной сети или для организации безопасной передачи данных через открытые каналы связи (например, Интернет) между шлюзами для объединения разных частей виртуальной частной сети. В туннельном режиме инкапсулируется весь исходный IP пакет, и добавляется новый IP заголовок.

Туннельный режим
IP заголовок ESP/AH заголовок исходный IP заголовок L4 payload
Если используется IPsec совместно с GRE туннели, который инкапсулирует исходный пакет и добавляет новый IP заголовок, логично использовать транспортный режим.
Режимы IPsec не являются взаимоисключающими. На одном и том же узле некоторые SA могут использовать транспортный режим, а другие — туннельный.

Security Associations (SA). Для возможности проводить инкапсуляцию/декапсуляцию стороны участвующие в процессе обмена должны иметь возможность хранить секретные ключи, алгоритмы и IP адреса. Вся эта информация хранится в Ассоциациях Безопасности (SA), SA в свою очередь хранятся в Базе данных Ассоциаций Безопасности (SAD). Конфигурирование Security Association, позволяет задать например mode transport | tunnel | ro | in_trigger | beet - режим безопасной ассоциации. Соответственно, может принимать одно из значений, означающих транспортный, тоннельный, beet (Bound End-to-End Tunnel), оптимизации маршрута (route optimization) или in_trigger режимы. (последние два используются в контексте mobile ipv6).

Security Policy (SP) - политика безопасности, хранится в SPD (База данных политик безопасности). SA специфицирует, как IPsec предполагает защищать трафик, SPD в свою очередь хранит дополнительную информацию, необходимую для определения какой именно трафик защищать и когда. SPD может указать для пакета данных одно из трёх действий: отбросить пакет, не обрабатывать пакет с помощью IPSec, обработать пакет с помощью IPSec. В последнем случае SPD также указывает, какой SA необходимо использовать (если, конечно, подходящий SA уже был создан) или указывает, с какими параметрами должен быть создан новый SA. SPD является очень гибким механизмом управления, который допускает очень хорошее управление обработкой каждого пакета. Пакеты классифицируются по большому числу полей, и SPD может проверять некоторые или все поля для того, чтобы определить соответствующее действие. Это может привести к тому, что весь трафик между двумя машинами будет передаваться при помощи одного SA, либо отдельные SA будут использоваться для каждого приложения, или даже для каждого TCP соединения.

  • Шаг 1: Создание и тестирование "виртуального" сетевого подключения.
    • Настройте оба ядра с device gif. В версии FreeBSD поддержка gif включена в ядро.
    • Отредактируйте /etc/rc.conf на маршрутизаторах и добавьте следующие строки (подставляя IP адреса где необходимо). A.B.C.D - реальный IP первого маршрутизатора, W.X.Y.Z - реальный IP второго маршрутизатора.
      # IPsec №1 gateway
      > ee /etc/rc.conf
      ...
      # IPsec to S through ISP_V
      gif_interfaces="gif0"
      # gifconfig_gif0="local-ip(A.B.C.D) remote-ip (W.X.Y.Z)"
      gifconfig_gif0="194.x.x.x 91.x.x.x"
      ifconfig_gif0="inet 10.26.95.254 192.168.1.254 netmask 255.255.255.255"
      static_routes="vpn vpn1"
      route_vpn="-net 192.168.1.0/24 192.168.1.254"
      route_vpn1="-net 192.168.35.0/24 192.168.1.254"
      
      # IPsec №2 gateway
      > ee /etc/rc.conf
      ...
      # IPsec na G through ISPGate
      gif_interfaces="gif0"
      # gifconfig_gif0="W.X.Y.Z A.B.C.D"
      gifconfig_gif0="91.x.x.x 194.x.x.x"
      ifconfig_gif0="inet 192.168.1.254 10.26.95.254 netmask 255.255.255.255"
      static_routes="vpn"
      route_vpn="-net 10.26.95.0/24 10.26.95.254"
    • Отредактируйте скрипт брандмауэра на обеих маршрутизаторах и добавьте
      # IPFW
      ipfw add 1 allow ip from any to any via gif0
      # PF
      set skip on gif0

Теперь ping должны ходить между сетями.

  • Защита соединения с помощью IPsec
  • Шаг 2: Защита соединения с помощью IPsec
    • Настройте оба ядра:
      > sysctl -a | grep ipsec

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

      # IPSEC for FreeBSD 7.0 and above
      options IPSEC
      options IPSEC_FILTERTUNNEL
      device crypto
      
      # IPSEC for FreeBSD 6.3  
      options         IPSEC           # IP security
      options         IPSEC_ESP       # IP security (crypto; define w/ IPSEC)
      options         IPSEC_DEBUG	# Необязательно. debug for IP security
    • Устанавливаем порт ipsec-tools.
      > cd /usr/ports/security/ipsec-tools
      > make config
      > make install clean
      > ee /etc/rc.conf
      racoon_enable="YES"
      ipsec_enable="YES"
      > mkdir -p /usr/local/etc/racoon/cert
      > cp /usr/local/share/examples/ipsec-tools/racoon.conf /usr/local/etc/racoon/racoon.conf
      > cd /usr/local/etc/racoon/cert/

      Создаем SSL сертификаты на каждом хосте. Копируем с одной на другую файлики *.public. В принципе, имена ключей неважны, можно называть и по IP, с соответствующими расширениями.

      > openssl req -new -nodes -newkey rsa:1024 -sha1 -keyform PEM -keyout your.key1.private -outform PEM -out your.key1.pem
      > openssl x509 -req -in your.key1.pem -signkey your.key.private  -out your.key1.public
  • Создаем файл ipsec.conf. Настройка на шлюзе #1 (где есть публичный IP адрес A.B.C.D) для включения шифрования всего предназначенного W.X.Y.Z трафика. A.B.C.D/32 и W.X.Y.Z/32 это IP адреса и сетевые маски, определяющие сети или хосты, к которым будет применяться данная политика. В данном случае мы хотим применить их к трафику между этими двумя хостами. Параметр ipencap сообщает ядру, что эта политика должна применяться только к пакетам, инкапсулирующим другие пакеты. Параметр -P out сообщает, что эта политика применяется к исходящим пакетам, и ipsec – то, что пакеты будут зашифрованы.

Оставшаяся часть строки определяет, как эти пакеты будут зашифрованы. Будет использоваться протокол esp, а параметр tunnel показывает, что пакет в дальнейшем будет инкапсулирован в IPsec пакет. Повторное использование A.B.C.D и W.X.Y.Z предназначено для выбора используемых параметров безопасности, и наконец параметр require разрешает шифрование пакетов, попадающих под это правило.

Это правило соответствует только исходящим пакетам. Вам потребуется похожее правило, соответствующее входящим пакетам.

> ee /etc/ipsec.conf
spdadd A.B.C.D/32 W.X.Y.Z/32 ipencap -P out ipsec esp/tunnel/A.B.C.D-W.X.Y.Z/require;
spdadd W.X.Y.Z/32 A.B.C.D/32 ipencap -P in ipsec esp/tunnel/W.X.Y.Z-A.B.C.D/require;

Настройка на шлюзе #2 аналогична только меняются IP местами.

> ee /usr/local/etc/racoon/racoon.conf
path include "/usr/local/etc/racoon";
path certificate "/usr/local/etc/racoon/cert/";
# following line activates logging & should deactivated later
log debug;

# если директива listen не задана, racoon слушает все доступные
# адреса интерфейсов.

listen
{
        #isakmp ::1 [7000];
        isakmp 202.249.11.124 [500];
        #admin [7002];          # administrative port for racoonctl.
        #strict_address;        # requires that all addresses must be bound.
}

# описываем удалённый хост (на второй машине - идентично,
# тока другой IP и ключи)
remote  217.15.62.200
{
        exchange_mode aggressive,main;
        my_identifier asn1dn;
        peers_identifier asn1dn;
	# сертификаты этой машины
        certificate_type x509 "via.epia.public" "via.epia.private";
	# сертификат удлённой машины
        peers_certfile x509 "test.su.public";
        proposal {
                encryption_algorithm 3des;
                hash_algorithm sha1;
                authentication_method rsasig;
                dh_group 2 ;
        }
}

sainfo anonymous
{
        pfs_group 2;
        encryption_algorithm 3des;
        authentication_algorithm hmac_sha1;
        compression_algorithm deflate;
}
  • Настройка пакетного фильтра PF, где esp_peers шлюз с которым создается шифрованный туннель. Разрешаем прохождение пакетов ESP и IPENCAP в обе стороны.
#pass IPSec
pass in on $ext_if_a inet proto udp from { $esp_peers } to ($ext_if_a) port isakmp
pass in on $ext_if_a inet proto esp from { $esp_peers } to ($ext_if_a)
#
pass out on $ext_if_a inet proto udp from { $esp_peers } to ($ext_if_a) port isakmp
pass out on $ext_if_a inet proto esp from { $esp_peers } to ($ext_if_a)

Cмотрим логи /var/log/security и /var/log/messages.

Как только параметры безопасности установлены, вы можете просмотреть их используя setkey(8). Запустите

> /etc/rc.d/ipsec start
> /usr/local/etc/rc.d/racoon start
> setkey -D  # список созданных защищенных каналов
> setkey -DP # покажет список политик безопасности

на любом из хостов для просмотра информации о параметрах безопасности.

  • Проверка работоспособности:
  • ping между сетями должен работать
  • tcpdump Linux примеры использования запускаем для прослушки физического интерфейса на котором построен туннель (а не виртуального gif0). В другом окне например ping -ем удаленную серую сеть (например, ping 192.168.1.11)
    tcpdump -i em0 -n host 91.x.x.81
    ...
    16:15:54.419117 IP x.x.x.x > 91.x.x.81: ESP(spi=0x01540fdd,seq=0xa20), length 92
    ...

tcpdump Linux примеры использования должен показывать ESP пакеты.

# aptitude install ipsec-tools racoon
  • Алгоритм настройки IPsec
  1. Настройка пакета racoon
  2. Создание политики безопасности
  3. Виртуальные интерфейсы. Они нужны для маршрутизации сетей находящихся в локальных сетях. Два соединенных сервера будут видеть себя без интерфейсов(иногда без них не заводится и между серверами, странно вообще-то).

Ниже приведены конфиги для случая с предопределёнными ключами.

> nano /etc/racoon/racoon.conf
path include "/etc/racoon";
path pre_shared_key "/etc/racoon/psk.txt";
#path certificate "/etc/racoon/certs";

remote 10.5.21.23
{
        exchange_mode aggressive,main;
        doi ipsec_doi;
        situation identity_only;
        my_identifier address; #Определяет метод идентификации, который будет использоваться при проверке подлинности узлов.
        lifetime time 2 min; 
        initial_contact on;
        proposal {
                encryption_algorithm 3des;
                hash_algorithm sha1;
                authentication_method pre_shared_key; # Определяет метод проверки подлинности, используемый при согласовании узлов.
                dh_group 2;
        }
        proposal_check strict;
}

sainfo anonymous # Отмечает, что SA может автоматически инициализировать соединение с любым партнёром при совпадении учётных сведений IPsec.
{
        pfs_group 2;
        lifetime time 2 min ;
        encryption_algorithm 3des, blowfish 448, des, rijndael ;
        authentication_algorithm hmac_sha1, hmac_md5 ;
        compression_algorithm deflate ;
}

Создадим политику безопасности

> nano pol.cfg
#!/sbin/setkey -f
flush;
spdflush;

spdadd  10.5.21.24 10.5.21.23 any -P out ipsec esp/transport//require;

spdadd 10.5.21.23 10.5.21.24 any -P in ipsec esp/transport//require;
> chmod +x pol.cfg
> ./pol.cfg

Создадим выполняемый файл для создания интерфейсов и запустим его.

>nano tun.sh
#!/bin/sh
ip tunnel del tun0
ip tunnel add tun0 mode ipip remote 10.5.21.23 local 10.5.21.24 dev eth0 # создаем интерфейс tun0 и устанавливаем туннель
                                                                         # между хостами (здесь нужно использовать реальные IP адреса сетевых интерфейсов).
ifconfig tun0 10.0.9.1 pointopoint 10.0.9.2                              # назначаем интерфейсу IP адреса, для текущего хоста и для другого конца
                                                                         # туннеля (не обязательно).
ifconfig tun0 mtu 1472
ifconfig tun0 up

# ниже можно прописать нужные нам маршруты, например так
route add -net ... netmask 255.255.255.0 gw ...
route add -net ... netmask 255.255.255.0 gw ...

> ./tun.sh
Для автоматической загрузки правил файл tun.sh правильно поместить для Операционная система Debian в директорию /etc/network/if-up.d

Все IPSec тунель между сетями настроен.

$IPT -A INPUT -p udp -m udp -s xxx.xxx.xxx.xxx -d xxx.xxx.xxx.xx --dport 500 -j ACCEPT
$IPT -A INPUT -p esp -j ACCEPT
$IPT -A INPUT -p ah -j ACCEPT 
$IPT -A INPUT -p ipencap -j ACCEPT
$IPT -A INPUT -p udp -m udp -s xxx.xxx.xxx.xxx -d xxx.xxx.xxx.xx --dport 4500 -j ACCEPT

Задача. При помощи IPSec (pre_shared_key) соединить два сервера (Debian 5 и Debian 7). У обоих реальные IP. Никаких сетей пробрасывать не надо. Должен шифроваться трафик между этими IP. То есть строим транспортный режим (между двумя хостами).

Настройка сводится к двум пунктам

  • Настройка пакета racoon
  • Создание политики безопасности: нужно указать режим transport и any
    spdadd x.x.x.x/32 y.y.y.y/32 any -P out ipsec esp/transport//require;
    spdadd y.y.y.y/32 x.x.x.x/32 any -P in ipsec esp/transport//require;

Задача: построить IPsec в туннельном режиме. Описание RFC протокола SIP сигнализация между поставщиком (Cisco) и клиентом (Debian 5) шифруется IPsec, а RTP минуя туннель идет кратчайшим маршрутом через обычный Интернет.

  • Клиент tunnel-endpoint is: 193.xxx.xxx.xxx
  • Сервер tunnel-endpoint is: 62.xxx.xxx.xxx
  • Клиент Sip Server is : 193.xxx.xxx.xxx
  • Сервер SIP Servers are : 62.xxx.237.xxx/26 and 62.xxx.246.xxx/26

да и перед настрокой туннеля (перед auto tun0) прописать pre-up modprobe ip_gre

# modprobe ip_gre

Скрипт для создания GRE туннели туннеля в Debian:

#!/bin/sh -e

modprobe ip_gre
#ip tunnel del tun0
ip tunnel add tun0 mode gre remote 62.xxx.xxx.xxx local 193.xxx.xxx.xxx dev eth0
ifconfig tun0 mtu 1472
ifconfig tun0 up
route add -net 62.xxx.237.xxx netmask 255.255.255.192 dev tun0
route add -net 62.xxx.246.xxx netmask 255.255.255.192  dev tun0

Утилиты

  • Для управления можно использовать утилиту racoonctl
    racoonctl show-sa esp
  • Cписок созданных защищенных каналов
    > setkey -D
  • список политик безопасности
    > setkey -DP

Мониторинг IPsec

Мониторинг IPsec в Операционная система Debian 5.0 2.6.26-2-686-bigmem i686. В уровень детализации логов log notify или log debug устанавливается в файле racoon.conf.

# tail -F /var/log/syslog | grep racoon

IPSec Openswan

OpenSWAN начал разрабатываться как форк прекратившего в настоящее своё существование проекта FreeS/WAN (Free Secure Wide-Area Networking), релизы продолжают выпускаться под свободной GNU General Public License. В отличие от проекта FreeS/WAN, OpenSWAN разрабатывается не только специально под операционную систему GNU/Linux. OpenSWAN обеспечивает стек протоколов IpSec: AH и ESP для ядра Linux,а также инструментарий для управления ими.

OpenSWAN для ветки ядра 2.6 предоставляет встроенную, NETKEY реализацию IpSec, так и собственную KLIPS.

CentOS 6.6 поддерживает только Openswan в основных пакетах.

Задача. Создать шифрованный туннель между CentOS теперь CentOS Stream 6.6 и Операционная система Debian 7.8 Wheezy. GRE туннели + Openswan (type=transport)

  • В первую очередь создаем интерфейсы GRE туннели и проверяем маршрутизацию между нашими сетями.
  • Openswan будет шифровать наш трафик в транспортном режиме(host-to-host), не вмешиваясь в маршрутизацию. Установим пакеты на обоих серверах
    yum install openswan
    aptitude install openswan
  • На обоих концах туннеля настраиваем Руководство по iptables: Настройка и оптимизация фаервола Linux. Открыть 500 порт, по которому идет обмен сертификатам и ключами.
    iptables -A INPUT -p udp --dport 500 -j ACCEPT
    iptables -A INPUT -p tcp --dport 4500 -j ACCEPT
    iptables -A INPUT -p udp --dport 4500 -j ACCEPT
     
    # Более строго выпишем правила для IPSec
    IPT="/sbin/iptables"
    $IPT -A INPUT -p udp -s x.x.x.x -d x.x.x.x --dport 500 -m comment --comment "IpSec" -j ACCEPT
    $IPT -A INPUT -p tcp -s x.x.x.x -d x.x.x.x --dport 4500 -m comment --comment "IpSec" -j ACCEPT 
    $IPT -A INPUT -p udp -s x.x.x.x -d x.x.x.x --dport 4500 -m comment --comment "IpSec" -j ACCEPT
  • Подготовка конфигурационных файлов. Используемые файлы и директории
    /etc/ipsec.d/
    /etc/ipsec.conf
  • Проверка системы на правильность окружения для IPsec
    ipsec verify

    Добавить в конец файла sysctl.conf

    # IPSec Verify Compliant
    # Разрешить пересылку пакетов между интерфейсами для IPv4
    net.ipv4.ip_forward = 1
    # отключаем icmp redirect
    net.ipv4.conf.all.send_redirects = 0
    net.ipv4.conf.all.accept_redirects = 0
    net.ipv4.conf.default.send_redirects = 0
    net.ipv4.conf.default.accept_redirects = 0

    Применим параметры ядра без перезагрузки

    sysctl -p
  • Webmin администрирование Linux имеет встроенный модуль IPsec VPN Configuration Openswan version U2.6.37/K3.0.0-1-amd64
  • Первым конфигурационным файлом является /etc/ipsec.conf. Задаем явно в разделе config setup
    config setup
            protostack=netkey
            plutoopts="--perpeerlog"
            dumpdir=/var/run/pluto/
            nat_traversal=yes
            virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,
            %v4:172.16.0.0/12,%v4:25.0.0.0/8,%v6:fd00::/8,%v6:fe80::/10
            oe=off
            #plutostderrlog=/dev/null
  • В первую очередь вам необходимо сформировать ключи, используемые шлюзами для аутентификации. В Debian это ключ можно создать при инсталляции. Запускаем на обеих системах ipsec newhostkey, генерируя нужные нам ключи.
    ipsec newhostkey --output /etc/ipsec.secrets
     
    ipsec showhostkey --left
    ipsec showhostkey --right
  • Независимо от того, как вы сконфигурируете сервер, всегда рассматривайте вашу подсеть как расположенную «слева» (left), а подсеть, к которой доступ осуществляется дистанционно, сайт, как расположенный «справа» (right). Следующая конфигурация выполняется на сервере VPN на стороне Left. На другом сервере должен быть точно такие настройки для этого соединения.
    conn gagahost-to-miraxhost
            auto=start
            left=188.x.x.x
            leftrsasigkey=0sN4vI6ooUyMyL ...
            right=91.x.x.x
            rightrsasigkey=0sfAhuo4SQ0Qt ...
            type=transport
    scp /etc/ipsec.conf admin@192.168.35.254:/home/admin/
  • Диагностика IPSec Openswan:
    service ipsec start
    ipsec verify
    ip xfrm state list

Запуск сервиса и поиск возникающих проблем.

Openwan logs (pluto): /var/log/auth.log /var/log/syslog /var/log/pluto/peer/a/b/c/d/a.b.c.d.log

  • The /var/log/auth.log is where logs on the authentication transactions are, stored.
  • The /var/log/syslog is the system log, it's always good to check here for any startup or general errors.
  • /var/log/pluto/peer/a/b/c/d/a.b.c.d.log file is the per peer pluto log. You can find some of the startup and shutdown information in here.

Если на обоих серверах нет ошибок, то туннель должен сейчас подняться. Вы можете проверить туннель с помощью команды ping с следующим образом. Если туннель не поднят, то частная подсеть на стороне B не должна быть доступна со стороны А, т. е. команда ping не должна работать. После того, как туннель будет поднят , попробуйте команду ping для доступа к частной подсети на стороне B со стороны A. Это должно работать.

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

# ip route 
[siteB-private-subnet] via [siteA-gateway] dev eth0 src [siteA-public-IP]
default via [siteA-gateway] dev eth0
  • Команды проверки состояний соединений:
    ipsec verify
    service ipsec status
    ip xfrm state list - управления SAD, возможности шире, чем у setkey
    ipsec addconn --checkconfig - проверка конфигурации
    ipsec auto --status - подробное состояние
    ip xfrm monitor
  • Политики ipsec, согласно которым принимается решение какой трафик направлять в туннель
    ip xfrm pol show
  • tcpdump Linux примеры использования запускаем для прослушки физического интерфейса на котором построен туннель (а не виртуального GRE). В другом окне например ping -ем удаленную серую сеть (например, ping 192.168.1.11). tcpdump должен показывать ESP пакеты.
    tcpdump -i em0 -n host 91.x.x.81
    ...
    16:15:54.419117 IP x.x.x.x > 91.x.x.81: ESP(spi=0x01540fdd,seq=0xa20), length 92
    ...

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

PQ VPS сервера в 28+ странах.