Logo

EcoRouter

EcoNAT

EcoQOE

EcoBypass

English

  • Release Notes
  • IPsec EcoRouter Documentation / Настройка туннелирования / IPsec

    IPsec (IP Security) – это набор протоколов для обеспечения сервисов защиты и аутентификации данных на сетевом уровне модели OSI. В операционной системе маршрутизатора предусмотрена возможность создания статических IPsec-туннелей, то есть туннелей без автоматического создания, установления, изменения и удаления SA (Security Associations) между двумя хостами сети посредством протокола IKE (Internet Key Exchange). Все используемые туннелем ключи, алгоритмы и протоколы задаются вручную и должны совпадать на обоих концах туннеля.

    На данный момент устройство поддерживает протокол защиты передаваемых данных ESP (Encapsulating Security Payload) и исключительно туннельный режим работы, когда у пакетов появляются дополнительные заголовки IP и ESP.


    Для шифрования доступны алгоритмы AES, 3DES, а для хеширования – MD5, SHA1/256/512.

    Основные параметры туннеля задаются в профиле IPsec. Для перехода в режим его конфигурирования необходимо в глобальном режиме конфигурирования ввести команду crypto-ipsec profile <NAME> manual, где NAME – имя профиля, а ключ 'manual' означает, что туннель является статическим.

    В первую очередь необходимо задать режим работы туннеля. Как сказано выше, на данный момент устройство поддерживает только туннельный режим работы. Данный режим задаётся командой mode tunnel.

    Далее следует задать ключевые параметры IPsec (ESP) туннеля в двух направлениях – входящем, т. е. от удалённой точки до локального устройства (inbound) и исходящем, т. е. от локального устройства до удалённой точки (outbound). Переход в режим конфигурирования туннеля в исходящем или входящем направлении производится командами ipsec-outbound esp и ipsec-inbound esp соответственно.

    Для каждого направления туннеля необходимо задать основные параметры для организации SA:

    • sp-index <NUMBER> – номер SP (Security Parameter Index);
    • authenticator sha1 | sha256 | sha512 | md5 <KEY> – выбор алгоритма хеширования и задание ключа в шестнадцатеричном виде;
    • encryption 3des | aes <KEY> – выбор алгоритма хеширования и задание ключа в шестнадцатеричном виде.

    CLI устройства принимает ввод ключа как с префиксом 0x, так и в обычном шестнадцатеричном виде. При неверной длине ключа устройство подскажет, какую длину следует использовать.

    Заданные для обоих направлений параметры SA должны совпадать на обоих концах туннеля.

    Затем с помощью криптографических карт crypto-map необходимо указать, к какому пиру следует применять соответствующий профиль IPsec. Переход в режим конфигурирования криптографической карты производится командой crypto-map <NAME> <PRIORITY>, где NAME – имя карты, а PRIORITY (иначе – последовательность карты) определяет порядок обработки карты. Чем меньше номер, тем выше приоритет и вероятность того, что трафик IPsec будет обработан именно этой последовательностью карты.

    В настройках карты необходимо указать профиль IPsec и соседа, к которому должен быть применён данный профиль:

    • match peer <ADDRESS>, где ADDRESS – IPv4-адрес соседа;
    • set crypto-ipsec profile <NAME>, где NAME – имя профиля.

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

    crypto-map TEST 10
       match peer 200.0.0.3
       set crypto-ipsec profile TEST1
    crypto-map TEST 20
       match peer 200.0.0.3
       set crypto-ipsec profile TEST2
    crypto-map TEST 30
       match peer 200.0.0.3
       set crypto-ipsec profile TEST3  

    При такой конфигурации к пиру могут быть применены 3 профиля, но обработка трафика IPsec от соседа с адресом 200.0.0.3 начнётся на локальном устройстве с профиля TEST1.

    Далее необходимо научить маршрутизатор перехватывать трафик, который должен быть обработан IPsec модулем. Для этого следует воспользоваться встроенными функциями списков контроля доступа filter-map ipv4 (см. главу "Списки доступа", раздел "Настройка L3 filter-map").

    Для перехвата входящего трафика IPsec от определённого соседа следует создать правило match/set вида:

    match esp host <Remote ADDRESS> host <Local ADDRESS>, где Remote ADDRESS – IPv4-адрес соседа в туннеле, а Local ADDRESS – локальный IPv4-адрес маршрутизатора для IPSec туннеля;

    set crypto-map <NAME> peer <Remote ADDRESS>, где NAME – имя ранее созданной криптографической карты (crypto-map), а Remote ADDRESS – IPv4-адрес соседа в туннеле, для точного соответствия.

    Для перехвата трафика IPsec, передаваемого из локальной сети в удалённую сеть, т. е. исходящего трафика, который должен быть зашифрован, следует создать правило match/set вида:

    match any <Local NETWORK> <Remote NETWORK>, где Local NETWORKлокальная IPv4-подсеть, а Remote NETWORKудалённая IPv4-подсеть. Таким образом, трафик, передаваемый из локальной подсети в удалённую подсеть, попадёт в туннель и будет зашифрован.

    set crypto-map <NAME> peer <Remote ADDRESS>, где NAME – имя ранее созданной криптографической карты, а Remote ADDRESS – IPv4-адрес соседа в туннеле, для точного соответствия.

    Последним действием следует применить командой set списки контроля доступа filter-map к необходимым L3-интерфейсам во входящем направлении. Пример для filter-map c именем ipsec_tunnel:

    interface lan
    ip mtu 1500
    connect port te2 service-instance lan
    ip address 192.168.100.100/24
    set filter-map in ipsec_tunnel
    !
    interface wan
    ip mtu 1500
    connect port te0 service-instance wan
    ip address 200.0.0.100/8
    set filter-map in ipsec_tunnel  

    Для вывода информации о настроенных SA предусмотрена команда show crypto sa.

    Ниже приведён пример настройки IPSec-туннелей для схемы c тремя соседями, LAG для WAN соединения и алгоритмов SHA1/256/512 и 3DES.


    crypto-ipsec profile test1 manual
    mode tunnel
    ipsec-outbound esp
    sp-index 1000
    authenticator sha1 0x000102030405060708090a0b0c0d0e0f00000000
    encryption 3des 0x000102030405060708090a0b0c0d0e0faaaaaaaabbbbbbbb
    ipsec-inbound esp
    sp-index 1001
    authenticator sha1 0x000102030405060708090a0b0c0d0e0f11111111
    encryption 3des 0x000102030405060708090a0b0c0d0e0faaaaaaaabbbbbbbb
    !
    crypto-ipsec profile test2 manual
    mode tunnel
    ipsec-outbound esp
    sp-index 2000
    authenticator sha256 0x000102030405060708090a0b0c0d0e0f00000000000102030405060708090a0b
    encryption 3des 0x000102030405060708090a0b0c0d0e0fbbbbbbbbcccccccc
    ipsec-inbound esp
    sp-index 2001
    authenticator sha256 0x000102030405060708090a0b0c0d0e0f22222222000000002222222222222222
    encryption 3des 0x000102030405060708090a0b0c0d0e0fbbbbbbbbcccccccc
    !
    crypto-ipsec profile test3 manual
    mode tunnel
    ipsec-outbound esp
    sp-index 3000
    authenticator sha512 0x000102030405060708090a0b0c0d0e0f00000000000102030405060708090a0b000102030405060708090a0b0c0d0e0f00000000000102030405060708090a0b
    encryption 3des 0x000102030405060708090a0b0c0d0e0fccccccccdddddddd
    ipsec-inbound esp
    sp-index 3001
    authenticator sha512 0x000102030405060708090a0b0c0d0e0f33333333000000003333333333333333000102030405060708090a0b0c0d0e0f33333333000000003333333333333333
    encryption 3des 0x000102030405060708090a0b0c0d0e0fccccccccdddddddd
    !
    crypto-map ipsec 10
    match peer 200.0.0.1
    set crypto-ipsec profile test1
    !
    crypto-map ipsec 20
    match peer 200.0.0.2
    set crypto-ipsec profile test2
    !
    crypto-map ipsec 30
    match peer 200.0.0.3
    set crypto-ipsec profile test3
    !
    filter-map ipv4 ipsec_tunnel 5
    match esp host 200.0.0.1 host 200.0.0.100
    set crypto-map ipsec peer 200.0.0.1
    !
    filter-map ipv4 ipsec_tunnel 10
    match any host 192.168.100.1 host 10.0.0.1
    set crypto-map ipsec peer 200.0.0.1
    !
    filter-map ipv4 ipsec_tunnel 15
    match esp host 200.0.0.2 host 200.0.0.100
    set crypto-map ipsec peer 200.0.0.2
    !
    filter-map ipv4 ipsec_tunnel 20
    match any host 192.168.100.2 host 172.16.0.2
    set crypto-map ipsec peer 200.0.0.2
    !
    filter-map ipv4 ipsec_tunnel 25
    match esp host 200.0.0.3 host 200.0.0.100
    set crypto-map ipsec peer 200.0.0.3
    !
    filter-map ipv4 ipsec_tunnel 30
    match any host 192.168.100.3 host 192.168.0.3
    set crypto-map ipsec peer 200.0.0.3
    !
    port ae.0
    bind te0
    bind te1
    mtu 9728
    service-instance wan
    encapsulation untagged
    !
    port te2
    mtu 9728
    service-instance lan
    encapsulation untagged
    !
    interface lan
    ip mtu 1500
    connect port te2 service-instance lan
    ip address 192.168.100.100/24
    set filter-map in ipsec_tunnel 10
    !
    interface wan
    ip mtu 1500
    connect port ae.0 service-instance wan
    ip address 200.0.0.100/8
    set filter-map in ipsec_tunnel 10
    exit
    exit  


    Для полноты изложения рассмотрим пример конфигурации маршрутизатора Cisco R1.

    hostname R1
    !
    crypto ipsec transform-set ipsec_tunnel esp-3des esp-sha-hmac
     mode tunnel
    crypto map ipsec 10 ipsec-manual
     set peer 200.0.0.100
     set session-key inbound esp 1000 cipher 000102030405060708090a0b0c0d0e0faaaaaaaabbbbbbbb authenticator 000102030405060708090a0b0c0d0e0f00000000
     set session-key outbound esp 1001 cipher 000102030405060708090a0b0c0d0e0faaaaaaaabbbbbbbb authenticator 000102030405060708090a0b0c0d0e0f11111111
     set transform-set ipsec_tunnel
     match address 100
    !
    interface Loopback0
     ip address 10.0.0.1 255.0.0.0
    !
    interface FastEthernet0/0
     ip address 200.0.0.1 255.0.0.0
     crypto map ipsec
    !
    access-list 100 permit ip host 10.0.0.1 host 192.168.100.1