OSS Group :: Admin :: Настройка соединений IPsec с использованием ipsec-tools |
Быстрый поиск по WikiНавигация по сайтуНа эту страницу ссылаются: |
Настройка соединений IPsec с использованием ipsec-toolsДля настройки каналов IPsec требуется:
Непосредственно работа с IPsec в ядрах 2.6.x осуществляется на уровне самого ядра, заполнение таблиц SPD и SAD, а также реализация IKE осуществляются дополнительными утилитами. IPsec-Tools (пакет Рассмотрим сеть вида Gateway1 {192.168.0.0/24} <-> 192.168.0.254 Gateway2 172.16.0.1 < ...... > 172.31.255.1 10.0.0.254 <-> {10.0.0.0/24} Пусть требуется обеспечить туннель IPsec между хостами Gateway1 и Gateway2 для обеспечения связи Для создания туннеля IPsec требуется два SA, для передачи трафика в каждую из сторон. Таблица SPD заполняется с помощью утилиты setkey, описания политик хранятся в /etc/racoon/setkey.conf. Описание политик на Gateway1 (/etc/racoon/setkey.conf): # /usr/sbin/setkey -f # # Flush SAD and SPD flush; spdflush; # Create policies for racoon spdadd 192.168.0.0/24 10.0.0.0/24 any -P out ipsec esp/tunnel/172.16.0.1-172.31.255.1/require; spdadd 10.0.0.0/24 192.168.0.0/24 any -P in ipsec esp/tunnel/172.31.255.1-172.16.0.1/require; Для Gateway2 описание политик зеркальное: spdadd 10.0.0.0/24 192.168.0.0/24 any -P out ipsec esp/tunnel/172.31.255.1-172.16.0.1/require; spdadd 192.168.0.0/24 10.0.0.0/24 any -P in ipsec esp/tunnel/172.16.0.1-172.31.255.1/require; Содержимое файла /etc/racoon/setkey.conf загружается в SPD при запуске/перезапуске сервиса racoon. Просмотреть текущее содержание SPD можно командами ' Минимальная конфигурация racoon (/etc/racoon/racoon.conf): # File with key ID/key pairs, for pre-shared key authentication. path pre_shared_key "/etc/racoon/psk.txt"; # "log" specifies logging level. It is followed by either "notify", "debug" or "debug2". log notify; # "padding" defines some padding parameters. You should not touch these. padding { maximum_length 20; # maximum padding length. randomize off; # enable randomize length. strict_check off; # enable strict check. exclusive_tail off; # extract last one octet. } # Specify various default timers. timer { # These value can be changed per remote node. counter 5; # maximum trying count to send. interval 20 sec; # maximum interval to resend. persend 1; # the number of packets per send. # maximum time to wait for completing each phase. phase1 30 sec; phase2 15 sec; } # if no listen directive is specified, racoon will listen on all # available interface addresses. listen { isakmp 172.16.0.1 [500]; # IP [port] for ISAKMP protocol # isakmp_natt 172.16.0.1 [4500]; # IP [port] for NAT-T protocol strict_address; # requires that all addresses must be bound. } remote 172.31.255.1 { exchange_mode main; # nat_traversal on; proposal { encryption_algorithm 3des; hash_algorithm md5; authentication_method pre_shared_key; dh_group modp1024; } } sainfo address 192.168.0.0/24 any address 10.0.0.0/24 any { pfs_group modp1024; lifetime time 30 min; encryption_algorithm 3des; authentication_algorithm hmac_md5; compression_algorithm deflate; } Для Gateway конфигурация racoon аналогична, за исключением адреса внешнего интерфейса в listen и секций remote и sainfo: remote 172.0.0.1 { exchange_mode main; # nat_traversal on; proposal { encryption_algorithm aes; hash_algorithm md5; authentication_method pre_shared_key; dh_group modp1024; } } sainfo address 10.0.0.0/24 any address 192.168.0.0/24 any { pfs_group modp1024; lifetime time 30 min; encryption_algorithm aes; authentication_algorithm hmac_md5; compression_algorithm deflate; } Выбираемые алгоритмы должны быть одинаковыми для обоих сторон туннелей. От выбора алгоритма encryption_algorithm зависит скорость получаемого канала, наилучший выбор - AES. Выбор, например, 3DES приведёт к существенному (в разы) падению скорости соединения. В /etc/racoon/psk.txt хранятся пары ID/ключ для хостов, # file for pre-shared keys used for IKE authentication # format is: 'identifier' 'key' # For example: # # IPv4/v6 addresses # 10.160.94.3 mekmitasdigoat # 172.16.1.133 mekmitasdigoat # 192.168.55.1 whatcertificatereally # 3ffe:501:410:ffff:200:86ff:fe05:80fa mekmitasdigoat # 3ffe:501:410:ffff:210:4bff:fea2:8baa mekmitasdigoat # USER_FQDN # foo@www.example.com micropachycephalosaurus # FQDN # www.example.com 12345 172.31.255.1 some_output_of_pwgen На Gateway используется тот же ключ, с IP Gateway1 в качестве идентификатора. После запуска racoon ( При этом пакеты из 192.168.0.0/24, предназначающиеся для 10.0.0.0/24, должны согласно правилам маршрутизации уходить с 172.16.0.1, и не обрабатываться SNAT на шлюзе Gateway1. (Т.е., надо помнить, что IPsec пришёл в IPv4 из IPv6, где NAT не нужен). После появления необходимости в создании записи в SAD racoon запускает процесс обмена ключами, при успешном завершении которого в syslog должны появится записи вида Oct 24 15:29:46 gateway1 racoon: INFO: IPsec-SA established: ESP/Tunnel 17.31.255.1[0]->17.16.0.1[0] spi=125146770(0x7759692) Oct 24 15:29:46 gateway1 racoon: INFO: IPsec-SA established: ESP/Tunnel 17.16.0.1[0]->17.31.255.1[0] spi=3389063184(0xca010010) В SAD при этом должны появится соответствующие записи (которые можно увидеть по setkey -D, ip xfrm state). При обращении со шлюза Gateway1 к хостам в сети 10.0.0.0/24 требуется, чтобы пакеты уходили со шлюза с IP 192.168.0.254. Т.е., требуется что-то вида $ ping -I 192.168.0.254 10.0.0.100 В противном случае пакет не совпадёт с SPD и не будет обрабатываться IPsec. При анализе трафика tcpdump показывает пакеты непосредственно на интерфейсе. tcpdump -i reth0 -nv host 172.16.0.1 and host 172.31.255.1 должна показывать обмен пакетами по протоколу esp (50), а tcpdump -i reth0 -nv host 10.0.0.100 - получение пакетов ICMP с 10.0.0.100 на 192.168.0.254 (поскольку после получения пакета IPsec и извлечения из него исходного пакета тот снова помещается в очередь интерфейса, где его видит tcpdump). Отправляемые запросы с 192.168.0.254 на 10.0.0.100 tcpdump видеть не может (и показывать не должен). Ссылки
Дата создания: 2010-10-24 21:44:11 (Фетисов Н. А. (naf)) Не показывать комментарии Wiki::Admin Оглавление Карта раздела Изменения за сутки Изменения за неделю Изменения за месяц |
© 2006-2024 OSS Group. All rights reserved. | Техническая поддержка: Открытые Информационные Технологии и Системы
|