В продолжение Темы Настройки Juniper SRX Предлагаю вашему вниманию пошаговую инструкцию по настройке Site-to-Site IPSec VPN с использованием pre-shared-key. Обратите внимание, что оба SRX должны иметь статический внешний IP-адрес.
Начнем со схематической диаграммы нашей сети:
Из этой схемы видно, что оба устройства подключены к провайдеру через интерфейсы ge-0/0/0 и каждый SRX имеет свою собственную частную сеть (подключенную к ge-0/0/1).
Наша цель — построить туннель IPSec и разрешить трафик между сетями 172.16.1.0/24 и 172.16.2.0/24. Предполагается, что внешний интерфейс получает адрес через DHCP для упрощения настройки.
Прошу всех интересующихся под катом.
Предлагаю вам сначала взглянуть на конфигурацию одного из роутеров ПЕРЕД настройкой IPSec, чтобы вам было с чего отталкиваться: root@gw-jvsrx-a# показать
Конфигурация второго устройства аналогична, за исключением настроек DHCP-сервера и интерфейса lo0. В данной ситуации мы имеем дело с обычным роутером.version 12.1X46-D10.2; system { host-name gw-jvsrx-a; root-authentication { encrypted-password "$1$XXX"; ## SECRET-DATA } services { ssh { protocol-version v2; client-alive-count-max 5; client-alive-interval 120; connection-limit 5; rate-limit 2; } dhcp { default-lease-time 21600; pool 172.16.1.0/27 { address-range low 172.16.1.2 high 172.16.1.30; router { 172.16.1.1; } propagate-settings ge-0/0/1.0; } } } ntp { server 0.pool.ntp.org prefer; server 1.pool.ntp.org; server 2.pool.ntp.org; server 3.pool.ntp.org; } } interfaces { ge-0/0/0 { unit 0 { family inet { dhcp; } } } ge-0/0/1 { unit 0 { family inet { address 172.16.1.1/27; } } } lo0 { unit 0 { family inet { address 172.31.255.1/32; } } } } security { nat { source { rule-set trust-to-untrust { from zone trust; to zone untrust; rule source-nat { match { source-address 0.0.0.0/0; } then { source-nat { interface; } } } } } } policies { from-zone trust to-zone untrust { policy trust-to-untrust { match { source-address any; destination-address any; application any; } then { permit; } } } from-zone trust to-zone trust { policy trust-to-trust { match { source-address any; destination-address any; application any; } then { permit; } } } } zones { security-zone untrust { tcp-rst; interfaces { ge-0/0/0.0 { host-inbound-traffic { system-services { dhcp; ping; ssh; } } } } } security-zone trust { interfaces { ge-0/0/1.0 { host-inbound-traffic { system-services { all; } protocols { all; } } } lo0.0 { host-inbound-traffic { system-services { ping; } } } } } } }
Дополнительную информацию об IPSec (например) можно прочитать на сайте Википедия .
Приступим к настройке туннеля.
Туннельный интерфейс
Для начала давайте создадим виртуальный интерфейс, который будет использоваться для построения туннеля: set interfaces st0 unit 0 family inet address 172.16.0.1/30
Т.
к.
если мы собираемся строить туннель всего на два устройства, то сети /30 нам будет достаточно.
Первая фаза
Давайте настроим IKE для использования базового режима IKE: set security ike proposal ike-proposal authentication-method pre-shared-keys
set security ike proposal ike-proposal dh-group group14
set security ike proposal ike-proposal authentication-algorithm sha-256
set security ike proposal ike-proposal encryption-algorithm aes-128-cbc
set security ike proposal ike-proposal lifetime-seconds 3600
set security ike policy ike-policy mode main
set security ike policy ike-policy pre-shared-key ascii-text "YOUR_PRE_SHARED_KEY"
set security ike policy ike-policy proposals ike-proposal
set security ike gateway gw-jvsrx-b ike-policy ike-policy
set security ike gateway gw-jvsrx-b address 20.20.20.20
set security ike gateway gw-jvsrx-b external-interface ge-0/0/0.0
Подробности: предварительные общие ключи метода аутентификации — включить использование предварительных общих ключей; dh-группа группа14 — необходимо для генерации общего закрытого ключа при обмене данными по незащищенному каналу (подробно описано здесь ), я использую 2048-битный модуль; алгоритм аутентификации sha-256 — для аутентификации будем использовать sha-256; алгоритм шифрования AES-128-cbc — на первом этапе мы зашифруем данные aes-128-cbc; время жизни-секунд 3600 — время жизни закрытого ключа (генерировалось автоматически при инициализации соединения) первой фазы; режим основной — основной режим ascii-текст с предварительным общим ключом — сам ключ (рекомендую сгенерировать его достаточно большого размера, например вот так openssl рандом -base64 32 ) адрес 20.20.20.20 — публичный адрес второго SRX внешний интерфейс ge-0/0/0.0 — интерфейс, через который будет проходить IPSec-трафик.
Второй этап
На этом этапе создается сам туннель IPSec. set security ipsec proposal ipsec-proposal protocol esp
set security ipsec proposal ipsec-proposal authentication-algorithm hmac-sha-256-128
set security ipsec proposal ipsec-proposal encryption-algorithm aes-128-cbc
set security ipsec proposal ipsec-proposal lifetime-seconds 7200
set security ipsec policy ipsec-policy perfect-forward-secrecy keys group14
set security ipsec policy ipsec-policy proposals ipsec-proposal
set security ipsec vpn gw-jvsrx-b bind-interface st0.0
set security ipsec vpn gw-jvsrx-b ike gateway gw-jvsrx-b
set security ipsec vpn gw-jvsrx-b ike ipsec-policy ipsec-policy
set security ipsec vpn gw-jvsrx-b establish-tunnels immediately
Подробности: протокол особенно — мы будем использовать ESP (Encapsulated Security Payload header) (подробно описано здесь ); алгоритм аутентификации hmac-sha-256-128 — алгоритм аутентификации IPSec; алгоритм шифрования AES-128-cbc — алгоритм шифрования; время жизни-секунд 7200 — время жизни закрытого ключа (генерировалось автоматически при инициализации соединения) второй фазы; Группа ключей Perfect Forward Secret 14 - аналогично dh-группе; интерфейс привязки st0.0 — виртуальный интерфейс для построения IPSec-туннеля; немедленно установить туннели - создайте туннель прямо сейчас.
Аналогичные настройки нужно применить и на втором роутере (заменив IP-адрес на st0.0 и шлюз ike).
Финишная черта
На этом настройка самого IPSec-туннеля закончена, но.Серия SRX является еще и межсетевым экраном, тогда с этими параметрами туннель не поднимется - межсетевой экран будет отбрасывать все пакеты, пытающиеся установить туннель.
Поэтому внесем изменения в настройки брандмауэрной части: set security zones security-zone untrust interfaces ge-0/0/0.0 host-inbound-traffic system-services ike
set security zones security-zone trust interfaces st0.0 host-inbound-traffic system-services all
set security zones security-zone trust interfaces st0.0 host-inbound-traffic protocols all
Первая команда разрешает трафик IKE на нашем внешнем интерфейсе (который обращен к провайдеру); второй и третий разрешают прохождение всего трафика внутри туннеля IPSec.
Туннель теперь должен подняться, проверим это: root@gw-jvsrx-a# run show security ike security-associations detail
IKE peer 20.20.20.20, Index 2116322, Gateway Name: gw-jvsrx-b
Role: Responder, State: UP
Initiator cookie: 1fa7a8730c817511, Responder cookie: 2a3e1f8c554ddb85
Exchange type: Main, Authentication method: Pre-shared-keys
Local: 10.10.10.10:500, Remote: 20.20.20.20:500
Lifetime: Expires in 2291 seconds
Peer ike-id: 20.20.20.20
Xauth assigned IP: 0.0.0.0
Algorithms:
Authentication : hmac-sha256-128
Encryption : aes128-cbc
Pseudo random function: hmac-sha256
Diffie-Hellman group : DH-group-14
Traffic statistics:
Input bytes : 1244
Output bytes : 948
Input packets: 6
Output packets: 4
Flags: IKE SA is created
IPSec security associations: 1 created, 1 deleted
Phase 2 negotiations in progress: 0
Negotiation type: Quick mode, Role: Responder, Message ID: 0
Local: 10.10.10.10:500, Remote: 20.20.20.20:500
Local identity: 10.10.10.10
Remote identity: 20.20.20.20
Flags: IKE SA is created
root@gw-jvsrx-a# run show security ipsec security-associations detail
ID: 131073 Virtual-system: root, VPN Name: gw-jvsrx-b
Local Gateway: 10.10.10.10, Remote Gateway: 20.20.20.20
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.0
Port: 500, Nego#: 2, Fail#: 0, Def-Del#: 0 Flag: 0x600a29
Last Tunnel Down Reason: Delete payload received
Direction: inbound, SPI: ea287d13, AUX-SPI: 0
, VPN Monitoring: -
Hard lifetime: Expires in 5884 seconds
Lifesize Remaining: Unlimited
Soft lifetime: Expires in 5295 seconds
Mode: Tunnel(0 0), Type: dynamic, State: installed
Protocol: ESP, Authentication: hmac-sha256-128, Encryption: aes-cbc (128 bits)
Anti-replay service: counter-based enabled, Replay window size: 64
Direction: outbound, SPI: 14a16181, AUX-SPI: 0
, VPN Monitoring: -
Hard lifetime: Expires in 5884 seconds
Lifesize Remaining: Unlimited
Soft lifetime: Expires in 5295 seconds
Mode: Tunnel(0 0), Type: dynamic, State: installed
Protocol: ESP, Authentication: hmac-sha256-128, Encryption: aes-cbc (128 bits)
Anti-replay service: counter-based enabled, Replay window size: 64
Вы также можете проверить это старым добрым способом: root@gw-jvsrx-a# run ping 172.16.0.2 count 5 interface st0.0
PING 172.16.0.2 (172.16.0.2): 56 data bytes
64 bytes from 172.16.0.2: icmp_seq=0 ttl=64 time=14.274 ms
64 bytes from 172.16.0.2: icmp_seq=1 ttl=64 time=10.420 ms
64 bytes from 172.16.0.2: icmp_seq=2 ttl=64 time=10.448 ms
64 bytes from 172.16.0.2: icmp_seq=3 ttl=64 time=10.448 ms
64 bytes from 172.16.0.2: icmp_seq=4 ttl=64 time=10.439 ms
--- 172.16.0.2 ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max/stddev = 10.420/11.206/14.274/1.534 ms
Статистику использования туннеля можно просмотреть следующим образом: root@gw-jvsrx-a# run show security ipsec statistics
ESP Statistics:
Encrypted bytes: 85052
Decrypted bytes: 41088
Encrypted packets: 553
Decrypted packets: 512
AH Statistics:
Input bytes: 0
Output bytes: 0
Input packets: 0
Output packets: 0
Errors:
AH authentication failures: 0, Replay errors: 0
ESP authentication failures: 0, ESP decryption failures: 0
Bad headers: 0, Bad trailers: 0
Но это не все! Ведь нам нужно прописывать маршруты в сеть «за другим роутером», а так как… мы ленивы и не любим лишней работы (верно?), то будем использовать OSPF: set protocols ospf area 0.0.0.0 interface ge-0/0/1.0
set protocols ospf area 0.0.0.0 interface st0.0
Как всегда, не забудьте выполнить коммит (и применить симметричные настройки на другом конце туннеля), иначе ничего не будет работать: root@gw-jvsrx-a# commit check
configuration check succeeds
root@gw-jvsrx-a# commit
commit complete
Теги: #Сетевые технологии #сетевое оборудование #Системное администрирование
-
Xpath, Xslt И Другие Спецификации Xml
19 Oct, 24 -
Eboostr: Readyboost Для Windows Xp
19 Oct, 24 -
Macosx Leopard (10.5) Появился В Торрентах
19 Oct, 24 -
Продавайте Свой Побочный Продукт
19 Oct, 24 -
Uwp — Выпуск № 211
19 Oct, 24