User Tools

Site Tools


workbook:jno-332:332_ipsec

JN0-332: IPSec VPNs

Необходимые знания по IPSec:

  • Identify the concepts, benefits and operation of IPSec VPNs:
    • Secure VPN characteristics and components
    • IPSec tunnel establishment
    • IPSec traffic processing
    • Junos OS IPSec implementation options
  • Demonstrate knowledge of how to configure, monitor and troubleshoot IPSec VPNs:
    • IPSec VPN configuration steps
    • Monitoring and troubleshooting

Проблемы безопасности в разрезе передачи информации через через ip сети:

  • Конфиденциальность (Confidentiality) - чувствительную для бизнеса информацию надо шифровать.
    Нужно добиться того, что бы в случае перехвата информации её нельзя было прочесть и\или понять.
  • Целостность (Integrity) - всегда надо проверять целостность принятой информации.
    Информация по пути может “попортиться” в случае потерь на одном из каналов связи или при её намеренном изменении. Факт изменения информации надо отслеживать .
  • Аутентификация (authentication) - всегда надо понимать с кем ты строишь ipseс туннель, что бы не построить его с врагом.

Соответственно задачи srx при построении ipsec туннеля будут такими:

  • Зашифровать ip пакет.
  • Проверить целостность передаваемых пакетов
  • Идентифицировать удаленный srx c которым строится ipsec туннель.

Confidentiality

Data Encryption

Шифрование - процесс перевода plaintext в нечитаемый вид, т.н. ciphetext.
Основные составными части шифрования - алгоритм и ключ шифрования, что бы можно было расшифровать данные нужно знать алгоритм и ключ.
Типы шифрования :

  • Шифрование симметричный ключом - данные шифруются и расшифровываются одним и тем же ключом.
    Пример - AES (Advanced Encryption Standart), ГОСТ, Blowfish, CAST, DES (Data Encryprion Standart).
  • Шифрование несимметричный (открытым) ключом - данные шифруются открытым ключом, а расшифровываются закрытом ключом получателя.
    Пример - RSA, El-Gamal.
Symmetric Key Encryption

Обмен информацией осуществляется в три этапа:

  1. отправитель передает получателю ключ (в сети с несколькими абонентами у каждой пары абонентов должен быть свой ключ, отличный от ключей других пар);
  2. отправитель, используя ключ, зашифровывает сообщение, которое пересылается получателю;
  3. получатель получает сообщение и расшифровывает его.

Размер ключа обычно варьируется от 40 до 1024 бит. Такой способ хорошо подходит для шифрования больших объемов данных. Надо аккуратно относиться к передачи секретного ключа.
Симметричное шифрование используется при построении ipsec туннелей, с каждой стороны пишем pre-shared-key (??).

Public (open) Key Encryption

Схема обмена информацией следующая:

  • Получатель вычисляет открытый и секретный ключи, секретный ключ хранит в тайне, открытый же делает доступным (сообщает отправителю, группе пользователей сети, публикует);
  • Отправитель, используя открытый ключ получателя, зашифровывает сообщение, которое пересылается получателю;
  • Получатель получает сообщение и расшифровывает его, используя свой секретный ключ.

Размер ключа обычно выбирают от 512 до 2048 бит. Т.к. ключ длинный процесс шифрование идет медленнее.

Integrity

Данные зашифрованы и отправлены, теперь на стороне получателя надо проверить, что эти данные по пути не были модифицированы. Для этого используют алгоритмы хэширования.

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

К функции хэша применяются след. требования:

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

Примером такой функции является функция определения остатка от деления - остаток при делении 80 на 11 будет равняться 3 (80 делим на 11 целое число раз и получаем остаток - целое число раз будет равняться 7, 7*11=77, 80-77=3 ). Зная, что остаток равняется 3 мы не сможем точно узнать что на что делилось.
80mod11=3
13mod5=3
203mod10=3 и т.д.

13mod5=3 эта такая форма записи в англоязычной литературе, к нашему модулю “| |” отношение вроде не имеет.

На на практике вычисления функция вычисления остатка не применяется, т.к. невозможно обеспечить уникальность результата.

Наиболее распространенными функциями являются SHA1, SHA3 (secure hash algoritm) и MD5 (message digest).

Аuthentication

Данные зашифрованы - никто их не прочитает. Хэш посчитан - о изменении передаваемых данных узнаем.
Осталось убедиться, что мы обмениваемся данными с правильным “собеседником”.
Для этого применяется механизм HMAC (Hashed MeassageAuthentication Code).

Принцип hmac:

  • отправляющий к данным добавляем (appends) preshared-key, хэширует данные и отправляет
  • данные с хэшем доходят до получателя
  • получатель отделяет данные от хэша
  • получатель добавляет свою версию preshared-key и считает хэш.
  • получатель сравнивает высчитанное значение хэша с тем которое он получил от отправителя, если одинаковые, то все ок.

Вставить картинку с chapter7-6

Обмен ключами

Ключи используются при шифровании и аутентификации, ключами надо как-то безопасно обмениваться.

Обменяться ключами можно в ручном режиме или автоматически.
При ручном обмене обычно с обоих сторон ставят один ключи и его всегда используют, передать этот ключ можно, например. на флешке. Часто менять ключ сложно т.к. его каждый раз надо надежным способом доставить и настроить.

При автоматическом обмене флешку возить не надо, но надо как-то безопасным образом передавать ключи через интернет. Для этого используют протокол Diffie-Hellman с помощью которого две стороны получают общий секретный ключ который в дальнейшем используются при не (Перечитать!!) симметричном шифровании.

DH

У протокола DH есть несколько групп определяющие длину числа, над которым производятся математические вычисления (combination of exponential and modulus calculation), используемое при генерации ключа.
Junos поддерживает группы 1 (длина числа 768 бит), 2 (1024 бит) и 5 (1536 бит).

Вставить картинку с chapter7-7

—-

IPSec

IPSec - это набор стандартов\протоколов с помощью которых можно организовать безопасную передачу данных через ip сети.

Два основных этапа:

  • Поднятие ipsec туннеля - туннеля поднимается руками (??) или автоматически c помощью протокола IKE (Internet Key Excahnge).
  • Передача данных внутри ipsec туннеля - собственно шифруем данные.

IKE

IKE это протокол используемый для безопасного согласования параметров туннеля.
IKE работает по udp/500 и udp/4500. System service должен быть включен на интерфейсе от имени которого строится туннель.

{primary:node0}[edit security zones security-zone untrust]
admin@srx650-master# show
...
    reth0.261 {
        host-inbound-traffic {
            system-services {
                ping;
                traceroute;
                ike;
            }
        }
    }

Обмен информацией осуществляется парными сообщениями «запрос — ответ». Такие пары называются «обмен» («exchange»).
Обмен данными в IKE происходит в 2 фазы. В первой фазе устанавливается SA IKE. Во второй фазе SA IKE используется для согласования пары SA IPSec.

SA

Security Associations - это набор согласованных параметров (см. выше), ключей и протоколов которыми будет шифроваться данные. Другими словами SA в принципе можно назвать соединением, после установления которого начинается безопасная передача данных.

SA уникальна и идентифицируется след. параметрами:

  • SPI (Security Paremeter Index)
  • Адрес назначения
  • Протокол безопасности (ESP или AH)

SA IKE - устанавливается во время первой фазы, SA двунаправленная

{primary:node0}[edit security zones security-zone untrust]
admin@srx650-master# run show security ike security-associations
node0:
--------------------------------------------------------------------------
Index   State  Initiator cookie  Responder cookie  Mode           Remote Address
8191533 UP     ef6b34533d577417  7c3c47e505cbae39  Main           10.11.5.5


{primary:node0}[edit security zones security-zone untrust]
admin@srx650-master# run show security ike security-associations index 8191533 detail
node0:
--------------------------------------------------------------------------
IKE peer 10.11.5.5, Index 8191533, Gateway Name: IKE-GW-MSK-01-PTP
  Role: Initiator, State: UP
  Initiator cookie: ef6b34533d577417, Responder cookie: 7c3c47e505cbae39
  Exchange type: Main, Authentication method: Pre-shared-keys
  Local: 10.11.5.4:500, Remote: 10.11.5.5:500
  Lifetime: Expires in 42709 seconds
  Peer ike-id: 10.11.5.5
  Xauth assigned IP: 0.0.0.0
  Algorithms:
   Authentication        : hmac-sha1-96
   Encryption            : aes256-cbc
   Pseudo random function: hmac-sha1
   Diffie-Hellman group  : DH-group-5
  Traffic statistics:
   Input  bytes  :               811208
   Output bytes  :               809296
   Input  packets:                 8773
   Output packets:                 8743
  IPSec security associations: 15 created, 15 deleted
  Phase 2 negotiations in progress: 1

    Negotiation type: Quick mode, Role: Initiator, Message ID: 0
    Local: 10.11.5.4:500, Remote: 10.11.5.5:500
    Local identity: 10.11.5.4
    Remote identity: 10.11.5.5
    Flags: IKE SA is created

SA IPSEC - устанавливается во время второй фазы через ранее установленный SA IKE, SA однонаправленный, нужно две.

{primary:node0}[edit security zones security-zone untrust]
admin@srx650-master# run show security ipsec security-associations
node0:
--------------------------------------------------------------------------
  Total active tunnels: 24
  ID    Algorithm       SPI      Life:sec/kb  Mon lsys Port  Gateway
  <131075 ESP:aes-cbc-256/sha1 2c00e182 2074/ unlim - root 500 10.11.5.5
  >131075 ESP:aes-cbc-256/sha1 34ea8f60 2074/ unlim - root 500 10.11.5.5

{primary:node0}[edit security zones security-zone untrust]
admin@srx650-master# run show security ipsec security-associations detail index 131075
node0:
--------------------------------------------------------------------------

ID: 131075 Virtual-system: root, VPN Name: IKE-VPN-MSK-01-PTP
  Local Gateway: 10.11.5.4, Remote Gateway: 10.11.5.5
  Local Identity: ipv4_subnet(any:0,[0..7]=0.0.0.0/0)
  Remote Identity: ipv4_subnet(any:0,[0..7]=0.0.0.0/0)
  Version: IKEv1
  DF-bit: clear, Bind-interface: st0.905
  Port: 500, Nego#: 1644, Fail#: 0, Def-Del#: 0 Flag: 0x600a29
  Tunnel events:
    Tue May 30 2017 11:35:04 +0300: IPSec SA negotiation successfully completed (218 times)
    Mon May 29 2017 23:38:32 +0300: IKE SA negotiation successfully completed (57 times)
    Mon May 22 2017 23:38:01 +0300: Reached maximum allowed negotiation trigger. Delayed triggering negotiation (2 times)
    Mon May 22 2017 23:15:42 +0300: IPSec SA negotiation successfully completed (48 times)
    Sun May 21 2017 07:33:52 +0300: Reached maximum allowed negotiation trigger. Delayed triggering negotiation (1 times)
    Sun May 21 2017 07:33:47 +0300: IPSec SA negotiation successfully completed (17 times)
    Sat May 20 2017 17:30:06 +0300: Reached maximum allowed negotiation trigger. Delayed triggering negotiation (1 times)
    Sat May 20 2017 17:30:01 +0300: IPSec SA negotiation successfully completed (3 times)
    Sat May 20 2017 15:00:49 +0300: Reached maximum allowed negotiation trigger. Delayed triggering negotiation (1 times)
    Mon Apr 03 2017 23:35:26 +0300: No response from peer. Negotiation failed (64 times)
    Mon Apr 03 2017 19:40:34 +0300: IKE SA negotiation successfully completed (1 times)
  Direction: inbound, SPI: 2c00e182, AUX-SPI: 0
    Hard lifetime: Expires in 2056 seconds
    Lifesize Remaining:  Unlimited
    Soft lifetime: Expires in 1494 seconds
    Mode: Tunnel(0 0), Type: dynamic, State: installed
    Protocol: ESP, Authentication: hmac-sha1-96, Encryption: aes-cbc (256 bits)
    Anti-replay service: counter-based enabled, Replay window size: 64
  Direction: outbound, SPI: 34ea8f60, AUX-SPI: 0
    Hard lifetime: Expires in 2056 seconds
    Lifesize Remaining:  Unlimited
    Soft lifetime: Expires in 1494 seconds
    Mode: Tunnel(0 0), Type: dynamic, State: installed
    Protocol: ESP, Authentication: hmac-sha1-96, Encryption: aes-cbc (256 bits)
    Anti-replay service: counter-based enabled, Replay window size: 64

Фазы IKE

Фаза 1

Тезисно:

  • Два пира построили безопасный канал связи через который в дальшейшем будут согласовываться SA IPSec.
  • Алгоритм DH сформировал симметричный ключ.
  • Main mode - используется когда оба пира имеют статический внешний ip адрес.
  • Aggressive mode - используется когда один из пиров находится за vpn.

В ходе первой фазы согласовываются следующие параметры:

  • Алгоритм шифрования
  • Алгоритм хэширования
  • Метод аутентификации
    • Preshared key (разделяемый ключ, слово)
    • Digital key (Цифровая подпись, сертификат)
    • Public key encryption (открытый ключ)
  • Группа Diffie-Hellman

Main mode Вставить картинку с chapter7-10

Message1 и Message2 - пиры обмениваются куками и SA пропосалами.
Куки это уникальные числа сгенеренные (был взят хэш) на основе ip адресов, порта, времени. Посмотреть на ответную куку инициатор соединения сможет убедиться, что ему ответил нужный пир.
SA пропосал это предложение по параметрам SA.

{primary:node0}[edit security ike]
admin@srx650-master# show proposal DEFAULT-FILIALS-IKE-PROPOSAL
authentication-method pre-shared-keys;
dh-group group5;
authentication-algorithm sha1;
encryption-algorithm aes-256-cbc;
lifetime-seconds 86400;

Message3 и Message4 - алгоритм DH обменялся публичными данными и сформировал симметричный ключ. Дальнейший обмен уже шифруется.

Message5 и Message6 - пиры аутентифицируют друг друга выбранным методом (preshared key, open key, digital signature) и фаза1 успешно завершается.

Aggresive mode Используется когда один из пиров имеет динамический ip адрес или стоит за натом т.к. в main mode первые два сообщения используют внешние адреса при формировании куков. Пир с динамическим адресом достоверное не знает его.

Вставить картинку с chapter7-11

Message1 - пир с динамическим адресом посылает куки, SA пропосал, публичные ключ алгорима DH.

Message2 - пир со статическим адресом посылает ответные куки, сообщение о принятии SA пропосал, свою публичное ключ алгорима DH. Дальнейший обмен уже шифруется.

Message3 - пир с динамическим адресом посылает один из ключей (preshared key, open key, digital signature) и если все хорошо, то второй пир аутентифицирует первого и фаза 1 успешно завершается.

Фаза 2

Вставить картинку с chapter7-12

Message1 и Message2 - пиры обмениваются и согласовывают SA пропосалами.
SA пропосал включает в себя:

  • IPSec протокол - ESP или AH
  • Группу DH (0 если не формируем новый общий симметричный ключ)
  • Алгоритм шифрования
  • Алгоритм хэширования
  • Время жизни ключа (время и/или объем переданных данных)
  • Proxy ID
  • Публичные ключи DH
{primary:node0}[edit security ipsec]
admin@srx650-master# set proposal DEFAULT-FILIALS-IPSEC-PROPOSAL ?
Possible completions:
  <[Enter]>            Execute this command
+ apply-groups         Groups from which to inherit configuration data
+ apply-groups-except  Don't inherit configuration data from these groups
  authentication-algorithm  Define authentication algorithm
  description          Text description of IPSec proposal
  encryption-algorithm  Define encryption algorithm
  lifetime-kilobytes   Lifetime, in kilobytes (64..4294967294 kilobytes)
  lifetime-seconds     Lifetime, in seconds (180..86400 seconds)
  protocol             Define an IPSec protocol for the proposal
  |                    Pipe through a command

{primary:node0}[edit security ipsec]
admin@srx650-master# show
...
proposal DEFAULT-FILIALS-IPSEC-PROPOSAL {
    protocol esp;
    authentication-algorithm hmac-sha1-96;
    encryption-algorithm aes-256-cbc;
    lifetime-seconds 3600;
}
...
policy DEFAULT-FILIALS-VPN-POLICY {
    perfect-forward-secrecy {
        keys group5;
    }
    proposals DEFAULT-FILIALS-IPSEC-PROPOSAL;
}

Message3 - принимаем пропосал, поднимаем пару SA IPSEC и успешно завершаем вторую фазу.

IPSec: Передача трафика

IPSec может работать в двух режимах:

  • Транспортный - в транспортном режиме шифруются только данные ip пакета, а заголовок (информация о изначальных ip адресах) не меняется и не шифруются.
    Такой режим используется когда надо зашифровать данные внутри иного туннеля, например L2PT.
  • Туннельный - шифруется весь ip и сверху добавляются новые ip заголовки. Это основной режим работы.

Протоколы IPSec

  • AH (Authentication Header) - протокол отвечает за:
    • Целостность данных (integrity, MD5/SHA-1)
    • Аутентификацию данных
    • Номер протокола 51 (/etc/protocols)
    • Не обеспечивает шифрование
  • ESP (Encapsulating Security Payload) - протокол отвечает за:
    • Целостность данных (integrity)
    • Аутентификацию данных
    • Номер протокола 50 (/etc/protocols)
    • Шифрует данные (DES, AES)

—-

Настройка

admin@srx650-master> show configuration security ike
...
proposal DEFAULT-FILIALS-IKE-PROPOSAL {
    authentication-method pre-shared-keys;
    dh-group group5;
    authentication-algorithm sha1;
    encryption-algorithm aes-256-cbc;
    lifetime-seconds 86400;
}
...
policy IKE-POLICY-MSK-01 {
    mode main;
    proposals DEFAULT-FILIALS-IKE-PROPOSAL;
    pre-shared-key ascii-text "$9$ixxxxxxxxxxxxxxxxxxxxxxxxxxxx6At"; ## SECRET-DATA
}
policy IKE-POLICY-MSK-01-PTP {
    mode main;
    proposals DEFAULT-FILIALS-IKE-PROPOSAL;
    pre-shared-key ascii-text "$9$kxxxxxxxxxxxxxxxxxxxfz"; ## SECRET-DATA
}
...
gateway IKE-GW-MSK-01 {
    ike-policy IKE-POLICY-MSK-01;
    address 147.45.yyy.xxx;
    dead-peer-detection always-send;
    external-interface reth0.261;
}
gateway IKE-GW-MSK-01-PTP {
    ike-policy IKE-POLICY-MSK-01-PTP;
    address 10.11.5.5;
    dead-peer-detection always-send;
    external-interface reth0.162;
}
...
{primary:node0}
admin@srx650-master> show configuration security ipsec
...
proposal DEFAULT-FILIALS-IPSEC-PROPOSAL {
    protocol esp;
    authentication-algorithm hmac-sha1-96;
    encryption-algorithm aes-256-cbc;
    lifetime-seconds 3600;
}
...
policy DEFAULT-FILIALS-VPN-POLICY {
    perfect-forward-secrecy {
        keys group5;
    }
    proposals DEFAULT-FILIALS-IPSEC-PROPOSAL;
}
...
vpn IKE-VPN-MSK-01 {
    bind-interface st0.5;
    ike {
        gateway IKE-GW-MSK-01;
        ipsec-policy DEFAULT-FILIALS-VPN-POLICY;
    }
    establish-tunnels immediately;
}
vpn IKE-VPN-MSK-01-PTP {
    bind-interface st0.905;
    ike {
        gateway IKE-GW-MSK-01-PTP;
        ipsec-policy DEFAULT-FILIALS-VPN-POLICY;
    }
    establish-tunnels immediately;
}
...
{primary:node0}
admin@srx650-master> show configuration interfaces st0
...
unit 5 {
    description vpn_to_msk-01;
    family inet {
        address 10.11.5.13/30;
    }
}
...
unit 905 {
    description vpn_to_msk-01_ptp;
    family inet {
        address 10.11.5.9/30;
    }
}
{primary:node0}
admin@srx650-master> show configuration security zones security-zone vpn
...
    st0.5 {
        host-inbound-traffic {
            system-services {
                ping;
                traceroute;
            }
            protocols {
                ospf;
            }
        }
    }
    st0.905 {
        host-inbound-traffic {
            system-services {
                ping;
                traceroute;
            }
            protocols {
                ospf;
            }
        }
    }
...
{primary:node0}
admin@srx650-master> show route
...
192.168.5.0/24     *[OSPF/10] 5d 00:33:01, metric 2
                    > via st0.905
...

Полезные материалы

workbook/jno-332/332_ipsec.txt · Last modified: 2021/08/12 08:35 by 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki