The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Создание IPSEC VPN туннеля между Linux и Cisco PIX (linux cisco ipsec vpn tunnel)


<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>
Ключевые слова: linux, cisco, ipsec, vpn, tunnel,  (найти похожие документы)
From: Anatoly Pugachev <mator/at/mail.ru> Date: Mon, 27 Nov 2006 14:31:37 +0000 (UTC) Subject: Создание IPSEC VPN туннеля между Linux и Cisco PIX Оригинал: http://rootshell.ru/~mator/ipsec_between_linux_and_PIX.txt Создание IPSEC VPN туннеля на основе pre-shared keys между linux 2.6 ipsec-tools(racoon) и cisco PIX firewall 5xx Комментарии и дополнения к статье просьба присылать на mailto: 'Anatoly Pugachev <mator/at/mail.ru>' date: 21.09.2005 document version: 0.1 Введение: Термин VPN (Virtual Private Network) переводится как "виртуальная частная сеть". Этот сервис предоставляющий безопасную (защищенную шифрованием), надежную связь на основе уже существующего подключения к общей сети internet, например тем кому необходимо соединить удаленную локальную сеть или удаленный офис в единую сеть с обеспечением безопастности передаваемых данных. В моем примере будет создаваться защищенный IPSEC канал между двумя сетевыми устройствами, первое это Cisco PIX firewall - аппаратный фаервол от известного производителя и второе компьютер, работающий в качестве шлюза под управлением OS Linux. IPSEC стандарт разработанный и принятый к реализации, для повышения безопастности используемого IP протокола (см. http://www.rfc-editor.org/ RFC 2401 - IPSec) Ниже приводится небольшая схема поясняющая устанавливаемое соединение. Используемые ссылки: 1) http://groups.google.com/group/mailing.freebsd.net/browse_thread/thread/db94f9e5cb120c12/449dadd33fc50cdd 2) http://www.dlink.ru/technical/faq_vpn_22.php 3) http://www.bshell.com/projects/freebsd_pix/static.html 4) cisco.com : PIX Firewall and VPN Configuration Guide Version 6.3 и PIX Firewall Command Reference 6.3 5) http://ipsec-tools.sf.net/ Схема соединения : ( office_1 )--[ pix ] ~~ internet ~~ [ linux ]--( office_2 ) сети и интерфейсы : сеть office_1 - 10.0.0.0/24 сеть office_2 - 192.168.0.0/24 pix_int - 10.0.0.1/24 (внутренний интерфейс, office_1) pix_ext - 172.16.1.1 (внешний интерфейс) linux_ext - 172.16.2.1 (внешний интерфейс) linux_int - 192.168.0.1/24 (внутренний интерфейс, office_2) Настраиваем pix (у меня был 506E): ! общая настройка, у вас она уже по всей видимости выполнена ! и необходимости тут настраивать что-либо еще нет. interface ethernet0 auto interface ethernet1 auto nameif ethernet0 outside security0 nameif ethernet1 inside security100 mtu outside 1500 mtu inside 1500 ip address outside 172.16.1.1 255.255.255.0 ip address inside 10.0.0.1 255.255.255.0 route outside 0.0.0.0 0.0.0.0 172.16.1.254 1 ! настройка ipsec_acl для разрешения доступа сетям access-list ipsec_acl permit ip 10.0.0.1 255.255.255.0 192.168.0.0 255.255.255.0 access-list ipsec_acl permit ip 192.168.0.0 255.255.255.0 10.0.0.0 255.255.255.0 ! исключение ipsec_acl из NAT nat (inside) 0 access-list ipsec_acl ! The "sysopt connection permit-ipsec" command enables packets that have ! been processed by IPSec to bypass access list checks. sysopt connection permit-ipsec ! определение политики IPSec ! определение протоколов для шифрации трафика crypto ipsec transform-set myset1 esp-3des esp-sha-hmac ! определение номера последовательности и имени IPSec ISAKMP crypto map toOFFICE2 20 ipsec-isakmp ! определение perfect forward secrecy (PFS) группы 2 (1024-bit Diffie-Hellman) crypto map toOFFICE2 20 set pfs group2 ! Трафик определенный нашим ACL который будет шифроватся через туннель crypto map toOFFICE2 20 match address ipsec_acl ! кто будет принимать наше VPN соединение и терминировать его crypto map toOFFICE2 20 set peer 172.16.2.1 ! устанавливаем нашу схему шифрования трафика crypto map toOFFICE2 20 set transform-set myset1 ! данный туннель устанавливается на outside интерфейсе crypto map toOFFICE2 interface outside ! задание параметров и политики IKE ! IKE будет работать на внешнем интерфейсе isakmp enable outside ! secretkeyx - pre-shared key для шифрования с нашим удаленным peer'ом isakmp key secretkeyx address 172.16.2.1 netmask 255.255.255.255 ! использовать свой адрес для IKE идентификации с удаленным хостом isakmp identity address ! метод аутентификации, по исвестному ключу isakmp policy 9 authentication pre-share ! шифрование 3des isakmp policy 9 encryption 3des ! hash алгоритм sha isakmp policy 9 hash sha ! использование Diffie-Hellman группы 2 isakmp policy 9 group 2 ! время жизни SA (security association) в секундах, 86400 = 24 часа isakmp policy 9 lifetime 86400 ! keepalive для соединения, 120 seconds = 2 минуты isakmp keepalive 120 На этом настройка cisco PIX закончена. Для обьяснения большинства параметров указанных выше, смотрите документацию 4) cisco.com настройка Linux, на примере SLES-9 : Использовалось стандартное ядро, постовляемое с SLES-9: srv1:/etc/racoon # uname -a Linux srv1 2.6.5-7.97-bigsmp #1 SMP Fri Jul 2 14:21:59 UTC 2004 i686 i686 i386 GNU/Linux srv1:/etc/racoon # rpm -qf /boot/vmlinuz-2.6.5-7.97-bigsmp kernel-bigsmp-2.6.5-7.97 Опции ядра linux для пересборки, если у вас ядро не поддерживает IPSEC, необходимые для поддержки IPSEC. -> Networking -> Networking support (NET [=y]) -> Networking options -> TCP/IP networking CONFIG_INET_AH=m (IP: AH transformation) CONFIG_INET_ESP=m (IP: ESP transformation) CONFIG_INET_IPCOMP=m (IP: IPComp transformation) CONFIG_INET_TUNNEL=m (IP: tunnel transformation) -> Cryptographic options -> Cryptographic API включить все пункты модулями CONFIG_CRYPTO=y CONFIG_CRYPTO_HMAC=y CONFIG_CRYPTO_NULL=m CONFIG_CRYPTO_MD4=m CONFIG_CRYPTO_MD5=y CONFIG_CRYPTO_SHA1=m CONFIG_CRYPTO_SHA256=m CONFIG_CRYPTO_SHA512=m CONFIG_CRYPTO_DES=y CONFIG_CRYPTO_BLOWFISH=m CONFIG_CRYPTO_TWOFISH=m CONFIG_CRYPTO_SERPENT=m CONFIG_CRYPTO_AES=m CONFIG_CRYPTO_CAST5=m CONFIG_CRYPTO_CAST6=m CONFIG_CRYPTO_ARC4=m CONFIG_CRYPTO_DEFLATE=m CONFIG_CRYPTO_MICHAEL_MIC=m CONFIG_CRYPTO_TEST=m далее пересобираете ядро и перезагружаетесь в него. Для установления соединения были использованы ipsec-tools-0.3.3-1.3 идущие в поставке SLES. На момент написания статьи на сайте http://ipsec-tools.sf.net/ была доступна версия IPsec-tools 0.6.1 настройка конфигурационных файлов /etc/racoon/ : в файл psk.txt вы записываете ваши секретные ключи для нашего примера в данный файл необходимо добавить следующую запись: 172.16.1.1 secretkeyx в файле setkey.conf определяются SA/SP базы (man setkey) содержимое: flush; spdflush; # важно! # не перепутайте направление трафика (IP адреса сетей и маршрутизаторов) # для исходящего трафика spdadd 192.168.0.0/24 10.0.0.0/24 any -P out ipsec esp/tunnel/172.16.2.1-172.16.1.1/require; # для входящего трафика spdadd 10.0.0.0/24 192.168.0.0/24 any -P in ipsec esp/tunnel/172.16.1.1-172.16.2.1/require; конфигурационный файл для racoon - racoon.conf : path include "/etc/racoon"; path pre_shared_key "/etc/racoon/psk.txt"; path certificate "/etc/cert"; log notify; 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. } listen { isakmp 172.16.2.1 [500]; } 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 a send. # timer for waiting to complete each phase. phase1 30 sec; phase2 15 sec; } ## IKE phase 1 remote 172.16.1.1 { exchange_mode main,aggressive; doi ipsec_doi; situation identity_only; my_identifier address 172.16.2.1; nonce_size 16; lifetime time 24 hour; initial_contact on; proposal_check obey; # obey, strict or claim proposal { encryption_algorithm 3des; hash_algorithm sha1; authentication_method pre_shared_key ; dh_group 2 ; } } ## IKE phase 2 sainfo address 192.168.0.0/24 any address 10.0.0.0/24 any { pfs_group 2; # pfs_group modp768; encryption_algorithm 3des; authentication_algorithm hmac_sha1; compression_algorithm deflate; } Далее запускаем racoon через /etc/rc.d/init.d/racoon start или руками # racoon -f /etc/racoon/racoon.conf и при наличии трафика в тунеле, в логах вы увидите что-то похожее на : Sep 21 22:07:16 sles9 racoon: INFO: respond new phase 1 negotiation: 172.16.2.1[500]<=>172.16.1.1[500] Sep 21 22:07:16 sles9 racoon: INFO: begin Identity Protection mode. Sep 21 22:07:16 sles9 racoon: INFO: ISAKMP-SA established 172.16.2.1[500]-172.16.1.1[500] spi:93b2202c65692650:247ac3da3bb61f85 Sep 21 22:07:16 sles9 racoon: INFO: respond new phase 2 negotiation: 172.16.2.1[0]<=>172.16.1.1[0] Sep 21 22:07:16 sles9 racoon: INFO: IPsec-SA established: ESP/Tunnel 172.16.1.1->172.16.2.1 spi=182739187(0xae460f3) Sep 21 22:07:16 sles9 racoon: INFO: IPsec-SA established: ESP/Tunnel 172.16.2.1->172.16.1.1 spi=14128346(0xd794da) для проверки, на linux сервере можете подать команду : $ ping -I 192.168.0.1 10.0.0.xx где xx IP из офисной сети 1, любой адрес (внутренний интерфейс pix'a пинговатся не будет) Решение проблем: просмотр текущего состояния тунеля на PIX'e осуществляется двумя командами: show isakmp sa show crypto sa при перезапуске или даже останоке racoon у вас возможно все-еще будет работать IPSEC VPN туннель так как используется реализация на уровне Linux ядра. Для того чтобы перезапустить туннель на стороне PIX'a, необходимо выполнить 2 команды в _режиме конфигурации_ (conf t): clear isakmp sa clear crypto sa как только появится трафик совпадающий по ipsec acl или при его наличии, туннель должен поднятся.

<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>

Обсуждение [ RSS ]
  • 1, kregg (?), 16:16, 25/03/2008 [ответить]  
  • +/
    management-access inside
    позволит доступ из туннеля к внутреннему интерфейсу PIX
     
  • 2, Роман (??), 12:44, 14/03/2009 [ответить]  
  • +/
    а как сделать чтобы по умолчанию пакеты к ip за pix отправлялись от внутренего ip линукса?
    чтоб не набирать ping -I
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру