Посмотреть логи ipsec linux

Содержание
  1. Установка IPSEC соединения между компьютерами Linux (FreeS/WAN) и Windows в Transport Mode c использованием PSK.
  2. Оглавление
  3. Часть сугубо философская о смысле жизни, в которой Вини-Пух. то есть, нет, Eжик! рассуждает о смысле жизни и IPSEC.
  4. Часть практическая linux’овая, в которой мы устанавливаем FreeS/WAN v1.99 в gentoo linux, а некоторые, особо смелые, делают небольшой, но очень симпатичный финт ушами под чутким руководством Ежа.
  5. Часть практическая windows’овая, в которой мы ничего не делаем, кроме настройки IPSEC соединения.
  6. Создаем политику безопасности IPSEC
  7. Добавляем правило безопасности в нашу политику.
  8. Добавляем фильтр для трафика, который будем шифровать.
  9. Добавляем фильтр действий (Filter Action).
  10. Заключительная настройка IPSEC.
  11. Часть кульминационная, в которой мы запускаем IPSEC соединение.
  12. Часть заключительная, в которой мы рассуждаем о том, что еще хорошо бы сделать для сохранности нашего бочонка с медом.
  13. IPsec в Linux
  14. Материал из Xgu.ru
  15. Содержание
  16. [править] Конфигурация ядра
  17. [править] Необходимые программы
  18. [править] IPSec и Netfilter
  19. [править] Конфигурирование Security Association
  20. [править] Поддерживаемые криптографические алгоритмы
  21. [править] Конфигурирование Security Policy
  22. [править] Конфигурирование IKE в Racoon
  23. [править] Аутентификация с помощью preshared key
  24. [править] Использование сертификатов X.509
  25. [править] NAT-Travesal
  26. [править] Практикум и готовые решения
  27. [править] Конфигурационные файлы для L2TP сервера с IPsec.

Установка IPSEC соединения между компьютерами Linux (FreeS/WAN) и Windows в Transport Mode c использованием PSK.

Оглавление

Часть сугубо философская о смысле жизни, в которой Вини-Пух. то есть, нет, Eжик! рассуждает о смысле жизни и IPSEC.

Часть практическая linux’овая, в которой мы устанавливаем FreeS/WAN v1.99 в gentoo linux, а некоторые, особо смелые, делают небольшой, но очень симпатичный финт ушами под чутким руководством Ежа.

  • (Если у нас vanillia-sources) Распаковываем дистрибутив freeswan куда-нибудь в укромное место, где он может лежать и никому не мешать. Заходим в каталог с исходниками и даем команду make insert(патчим ядро на предмет добавления модуля ipsec)
  • Компилируем ядро с модулем IPSEC
  • emerge freeswan

FreeS/WAN установлен =)

Далее проверяем работоспособность FreeS/WAN и, если все хорошо, редактируем ipsec.conf и ipsec.secrets. Где это ваш интерфейс, например eth0 (причем у меня это был 802.1d бридж, состоящий из двух физических интерфейсов eth2 и eth3, созданный соответственно с помощью bridge-utils),
— IP адрес интерфейса, — IP адрес windows машины.

ipsec.secrets

  • : PSK » »

    Где это ваше секретное слово (PSK — publicly shared key),

  • — IP адрес интерфейса, — IP адрес windows машины(можно указать %any для всех машин).

    Часть практическая windows’овая, в которой мы ничего не делаем, кроме настройки IPSEC соединения.

    Создаем политику безопасности IPSEC

    Добавляем правило безопасности в нашу политику.

    Добавляем фильтр для трафика, который будем шифровать.

    Добавляем фильтр действий (Filter Action).

    Заключительная настройка IPSEC.

    Часть кульминационная, в которой мы запускаем IPSEC соединение.

    Выдержка из message.log

    Feb 13 12:49:05 obelisk ipsec_setup: Starting FreeS/WAN IPsec 1.99.
    Feb 13 12:49:05 obelisk ipsec_setup: Using /lib/modules/2.4.24/kernel/net/ipsec/ipsec.o
    Feb 13 12:49:05 obelisk klips_info:ipsec_init: KLIPS startup, FreeS/WAN IPSec version: 1.99
    Feb 13 12:49:05 obelisk ipsec_setup: KLIPS debug `none’
    Feb 13 12:49:05 obelisk ipsec_setup: KLIPS ipsec0 on homelan

  • /255.255.255.0 broadcast 10.255.255.255
    Feb 13 12:49:05 obelisk ipsec__plutorun: Starting Pluto subsystem.
    Feb 13 12:49:05 obelisk ipsec_setup: . FreeS/WAN IPsec started
    Feb 13 12:49:05 obelisk pluto[17066]: Starting Pluto (FreeS/WAN Version 1.99)
    Feb 13 12:49:05 obelisk pluto[17066]: added connection description «win-lin»
    Feb 13 12:49:05 obelisk pluto[17066]: listening for IKE messages
    Feb 13 12:49:05 obelisk pluto[17066]: adding interface ipsec0/homelan
  • Feb 13 12:49:05 obelisk pluto[17066]: loading secrets from «/etc/ipsec.secrets»
    Feb 13 12:49:05 obelisk pluto[17066]: «win-lin» #1: initiating Main Mode
    Feb 13 12:49:11 obelisk pluto[17066]: packet from :500: ignoring Vendor ID payload
    Feb 13 12:49:11 obelisk pluto[17066]: «win-lin» #2: responding to Main Mode
    Feb 13 12:49:11 obelisk pluto[17066]: «win-lin» #2: sent MR3, ISAKMP SA established
    Feb 13 12:49:11 obelisk pluto[17066]: «win-lin» #3: responding to Quick Mode
    Feb 13 12:49:11 obelisk pluto[17066]: «win-lin» #3: IPsec SA established
    Feb 13 12:49:15 obelisk pluto[17066]: «win-lin» #1: ignoring Vendor ID payload
    Feb 13 12:49:15 obelisk pluto[17066]: «win-lin» #1: ISAKMP SA established
    Feb 13 12:49:15 obelisk pluto[17066]: «win-lin» #4: initiating Quick Mode PSK+ENCRYPT+DISABLEARRIVALCHECK
    Feb 13 12:49:15 obelisk pluto[17066]: «win-lin» #4: IKE message has the Commit Flag set but Pluto doesn’t implement this feature; ignoring flag
    Feb 13 12:49:15 obelisk pluto[17066]: «win-lin» #4: ignoring informational payload, type IPSEC_RESPONDER_LIFETIME
    Feb 13 12:49:15 obelisk pluto[17066]: «win-lin» #4: sent QI2, IPsec SA established
    Feb 13 12:49:15 obelisk pluto[17066]: «win-lin» #4: IKE message has the Commit Flag set but Pluto doesn’t implement this feature; ignoring flag
    Feb 13 12:49:15 obelisk pluto[17066]: «win-lin» #4: message ignored because it contains an payload type (ISAKMP_NEXT_HASH) unexpected in this message
    Feb 13 12:49:15 obelisk pluto[17066]: «win-lin» #2: ignoring Delete SA payload
    Feb 13 12:49:15 obelisk pluto[17066]: «win-lin» #2: received and ignored informational message
    Feb 13 12:49:15 obelisk ipsec__plutorun: 104 «win-lin» #1: STATE_MAIN_I1: initiate
    Feb 13 12:49:15 obelisk ipsec__plutorun: 010 «win-lin» #1: STATE_MAIN_I1: retransmission; will wait 20s for response
    Feb 13 12:49:15 obelisk ipsec__plutorun: 003 «win-lin» #1: ignoring Vendor ID payload
    Feb 13 12:49:15 obelisk ipsec__plutorun: 106 «win-lin» #1: STATE_MAIN_I2: sent MI2, expecting MR2
    Feb 13 12:49:15 obelisk ipsec__plutorun: 108 «win-lin» #1: STATE_MAIN_I3: sent MI3, expecting MR3
    Feb 13 12:49:15 obelisk ipsec__plutorun: 004 «win-lin» #1: STATE_MAIN_I4: ISAKMP SA established
    Feb 13 12:49:15 obelisk ipsec__plutorun: 112 «win-lin» #4: STATE_QUICK_I1: initiate
    Feb 13 12:49:15 obelisk ipsec__plutorun: 003 «win-lin» #4: ignoring informational payload, type IPSEC_RESPONDER_LIFETIME
    Feb 13 12:49:15 obelisk ipsec__plutorun: 004 «win-lin» #4: STATE_QUICK_I2: sent QI2, IPsec SA established

    19:39:03.810739 >

  • : ESP(spi=0x356646be,seq=0xd4c) (DF)
    19:39:03.811865
  • > : ESP(spi=0x110d41a7,seq=0xde0) (DF) [tos 0x10]
    19:39:03.811839 >
  • : ESP(spi=0x356646be,seq=0xd4d) (DF)
    19:39:03.812325 >
  • : ESP(spi=0x356646be,seq=0xd4e) (DF)

    Вывод ipsec look:

    ipsec look
    obelisk Fri Feb 13 12:56:31 MSK 2004

  • Читайте также:  Creality slicer для windows 10
  • /32 -> /32 => esp0x25e409d0@ (0)
    ipsec0->homelan mtu=16260(1500)->1500
    esp0x25e409d0@ ESP_3DES_HMAC_MD5: dir=out src=
  • iv_bits=64bits iv=0x51fd9266fb73823c ooowin=64 alen=128 aklen=128 eklen=192 life(c,s,h)=addtime(436,0,0)
    esp0x722533e4@ ESP_3DES_HMAC_MD5: dir=out src=
  • iv_bits=64bits iv=0xe9fbc10da8750ac4 ooowin=64 alen=128 aklen=128 eklen=192 life(c,s,h)=addtime(440,0,0)
    esp0x72bdf8a9@
  • ESP_3DES_HMAC_MD5: dir=in src= iv_bits=64bits iv=0xffda9d19aae5b094 ooowin=64 seq=75 bit=0xffffffffffffffff alen=128 aklen=128 eklen=192 life(c,s,h)=bytes(4350,0,0)addtime(440,0,0)usetime(440,0,0)packets(75,0,0) idle=436
    esp0x72bdf8aa@
  • ESP_3DES_HMAC_MD5: dir=in src= iv_bits=64bits iv=0x9f82063ca057de6e ooowin=64 seq=7162 bit=0xffffffffffffffff max_seq_diff=1 alen=128 aklen=128 eklen=192 life(c,s,h)=bytes(445730,0,0)addtime(436,0,0)usetime(436,0,0)packets(7162,0,0) idle=0
    Destination Gateway Genmask Flags MSS Window irtt Iface
    0.0.0.0 255.255.255.0 U 0 0 0 homelan
    0.0.0.0 255.255.255.0 U 0 0 0 ipsec0
    255.255.255.255 UGH 0 0 0 ipsec0

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

    Для начала давайте посмотрим, что сделано и что мы должны были сделать. Мы установили IPSEC соединение, обеспечивающие шифрование между двумя нашими компьютерами. Вроде бы мы добились своей цели, однако все зависит от ситуации. Для уменьшения нештатных ситуаций (это когда все куда-то бегут и отовсюду слышится: «хакают! хакают!», хотя большинство спортсменов-бегунов имеют об этом весьма туманные представления) необходимо обязательно установить защиту от IP спуфинга на интерфейсах с выключенными rp_filter’ми. Потом мы должны быть уверенны, что наши сервера будут взаимодействовать только средствами IPSEC. В windows это может быть обеспечено отключением опции Allow unsecured communication with non-IPSec-aware computer и Accept unsecured communication, but always respond using IPSec в политике безопасности IPSEC. В linux это обеспечивается опцией auto=start, которая автоматически запускает шифрованный туннель и фильтрацией трафика с помощью iptables, разрешая взаимодействие только с помощью IPSEC, отбрасывая нешифрованный трафик:

    iptables -A INPUT -p udp -i -s —sport 500 —dport 500 -j ACCEPT
    iptables -A OUTPUT -p udp -o -d —sport 500 —dport 500 -j ACCEPT

    iptables -A INPUT -p esp -i -s -j ACCEPT
    iptables -A OUTPUT -p esp -o -d -j ACCEPT

    iptables -A INPUT -i -s -j DROP
    iptables -A OUTPUT -o -d -j DROP

    Если необходимо, то можно добавить:

    iptables -A INPUT -p ah -i -s -j ACCEPT
    iptables -A OUTPUT -p ah -o -d -j ACCEPT

    Источник

    IPsec в Linux

    Материал из Xgu.ru

    Данная страница находится в разработке.
    Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

    Если вы считаете, что её стоило бы доработать как можно быстрее, пожалуйста, скажите об этом.

    Содержание

    [править] Конфигурация ядра

    Для работы IPSEC необходима поддержка со стороны ядра Linux.

    Поддержка протоколов AH, ESP и IPComp (сжатие данных), а так же транспортного, тоннельного и BEET (Bound End-to-End Tunnel) режимов включается следующими опциями (для IPv4 и IPv6 соответственно):

    Так же, существуют модули для поддержки IPSec в NetFilter:

    Так же в разделе Cryptographic API необходимо включить в ядро статически или в виде модулей поддержку тех алгоритмов шифрования, которые вы собираетесь использовать. Автоматически выбираются следующие опции:

    [править] Необходимые программы

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

    ipsec-tools — Универсальный пакет программ для конфигурирования IPSec (так же существуют версии под другие операционные системы, что является большим плюсом), но несколько проигрывает по возможностям iproute2. iproute2 — Позволяет настроить практически все параметры IPSec, которые вообще используются в Linux, включая инкапсуляцию в UDP, что полезно в случае работы через NAT. Racoon/Racoon2/strongSwan — осуществляют поддержку IKE, если Вы будете использовать её. Openssl — необходимо для работы с различными сертификатами.

    Если вы используете только статические тоннели, то достаточно средств iproute2.

    [править] IPSec и Netfilter

    В ядре 2.6 обработка трафика ipsec значительно отличается от того, как это делается в ядре 2.4, в котором присутствует псевдоинтерфейс ipsecX, который является границей раздела между инкапсулированным/зашифрованным трафиком и трафиком в открытом виде. Далее всё описываемое актуально для ядра 2.6. Трафик, подпадающий под политики ipsec, дважды проходит по цепочкам netfilter — в открытом виде и в инкапсулированном/зашифрованным. Не зашифрованный трафик, подпадающий под политики ipsec, проходит по всем цепочкам netfilter сетевого уровня и после цепочки POSTROUTING таблицы nat подвергается шифрованию/инкапсуляции, и уже в инкапсулированном/зашифрованном виде попадает в цепочку OUTPUT таблицы raw, и передаётся далее. Инкапсулированный/зашифрованный же трафик, который подпадает под политики, так же проходит по стандартным цепочкам и уже после цепочки INPUT таблицы filter декапсулируется/расшифровывается, и уже в открытом виде попадает в цепочку PREROUTING таблицы raw, и передаётся далее. Таким образом, трафик можно фильтровать и до, и после инкапсуляции/шифрования.

    Netfilter имеет несколько модулей для работы с трафиком ipsec: модули iptables для обработки пакетов протоколов esp и ah, и модули xtables: xt_esp и xt_policy, взаимодействующий с подсистемой xfrm. Так же трафик ipsec можно фильтровать по полям заголовка ip (например, по адресам источника и назначения, номеру протокола, типу обслуживания и времени жизни, и т.п.).

    Модули netfilter обработки протоколов ah и esp позволяют задавать условие соответствия по значению поля spi. Не забывайте указывать при использовании этих модулей протокол, иначе получите сообщение об ошибке. Протокол esp имеет номер 50, а ah — 51. Модули поддержки протоколов ipsec (соответствия -m ah и -m esp) позволяют выбирать пакеты на основе значения поля spi. Для соответствия -m ah это опция —ahspi, а для соответствия -m esp это опция —espspi. В качестве параметра используется единственно значение или значения начала и конца непрерывного диапазона, разделённого двоеточием

    Следует учесть, что механизм conntrack не может отслеживать пакеты протоколов ipsec, поэтому к ним невозможно применять правила с совпадением по критерию —state. С учётом этого и того, что тоннели ipsec являются однонаправленными, необходимо строить правила так, чтобы разрешить передачу пакетов в обе стороны. Так же эти опции можно использовать для фильтрации транзитного трафика.

    Очень большими возможностями в плане фильтрации пакетов ipsec обладает модуль policy, но его действие не распространяется на транзитный трафик ipsec, так как он взаимодействует с подсистемой xfrm. Модуль policy поддерживает соответствие по следующим критериям:

    —dir in|out — пакеты, подпадающие под политики декапсуляции|инкапсуляции. —pol none|ipsec — применяемая к пакету политика. —reqid reqid — значение параметра reqid. —spi spi — значение параметра Security Parameters Index. —proto ah|esp|ipcomp — протокол ipsec. —mode transport|tunnel — режим ipsec — транспортный или тоннельный. —tunnel-src addr/mask — адрес источника (только в контексте —mode tunnel). —tunnel-dst addr/mask — адрес назначения (только в контексте —mode tunnel). —next — в одном правиле можно указать несколько политик, эта опция указывает, что далее следует параметры другой политики.

    При использовании опций —tunnel-src и —tunnel-dst следует указывать адреса (и маски) именно адреса концов тоннеля (находятся в заголовке пакета ip, в который инкапсулирован пакет). Так же следует учесть, что правила с опцией —dir in недействительны в цепочках POSTROUTING и OUTPUT, а с опцией —dir out в цепочках PREROUTING и INPUT.

    Так же, если вы используете какой-либо ike-демон, то соответственно необходимо разрешить udp-пакеты с/на 500 порт. Если же вы используете инкапсуляцию в udp (nat-travesal), то необходимо разрешить udp-пакеты с номером порта 4500.

    Так же, если вы используете nat, то в iptables необходимо добавить исключения для трафика IpSec.

    Действие RETURN при срабатывании прекращает дальнейшую обработку трафика в данной цепочке и переходит к следующей. Правила nat обрабатываются раньше, чем трафик завернется в IpSec туннель.

    [править] Конфигурирование Security Association

    Security Association (Безопасная Ассоциация) — это по сути и есть безопасное соединение, обеспечивающее защиту передаваемых данных. На каждом из хостов, между которыми необходимо обеспечить безопасную передачу данных, должны быть созданы безопасные ассоциации для каждого направления. SA содержит такие параметры как адреса узлов/сетей источника и направления, индекс политик безопасности, алгоритмы шифрования/аутентификации и ключи.

    Безопасными Ассоциациями можно управлять через утилиту ip, входящую в пакет iproute2. Во многом её возможности шире, чем у setkey. Благодаря сокращениям и единообразному интерфейсу, работать с Безопасными Ассоциациями немного удобнее. Для управления SAD используется конструкция ip xfrm state. Допустимы сокращения наподобие ip x s. В отличии от setkey, который умеет только добавлять и удалять записи SA, ip позволяет их редактировать.

    Добавление и изменение записей в SAD осуществляется командой:

    ID — идентификатор безопасной ассоциации в SAD. Может состоять из следующих параметров

    src ADDR — адрес источника dst ADDR — адрес назначения proto XFRM_PROTO — протокол ipsec (Соответственно может принимать значения ah (authentification header), esp (encrypted security payload), comp (ip compressed payload), route2 (type2 routing header) и hao (home address option). Последние два протокола используются в контексте mobile ipv6). spi SPI — значение security parameter index. mark MARK [mask MASK] — метка и маска пакета (используется при маркировке пакетов с помощью netfilter).

    mode transport | tunnel | ro | in_trigger | beet — режим безопасной ассоциации. Соответственно, может принимать одно из значений, означающих транспортный, тоннельный, beet (Bound End-to-End Tunnel), оптимизации маршрута (route optimization) или in_trigger режимы. (последние два используются в контексте mobile ipv6).

    reqid REQID — что-то вроде дополнительного идентификатора безопасной ассоциации. Удобно использовать при описании политик, чтобы не описывать шаблон безопасной ассоциации целиком.

    seq SEQ — начальное значение sequence номера в пакетах ipsec (по-умолчанию 0).

    replay-window SIZE — размер replay-window в пакетах (по-умолчанию имеет значение 32).

    replay-seq SEQ и replay-oseq SEQ — значения счётчиков sequence для входящего и исходящего направлений соответственно.

    Механизм anti-replay позволяет предотвратить атаки злоумышленников, использующих отправку ранее перехваченных зашифрованных пакетов против уязвимых узлов (так называемая «replay attack»). При выборе значения replay-window следует учесть, что если оно будет слишком маленьким, то в случае, если пакеты будут приходить в другом порядке (вызванном, например, следованием пакетов различными маршрутами или задержками на промежуточных узлах), то «запоздавшие» пакеты могут быть просто отброшены. Так что рекомендуется ставить размер окна как можно большим. При получении узлом зашифрованного пакета, его sequence-номер проверяется на предмет попадания в «окно» и на предмет дубливания с sequence-номерами ранее полученных пакетов. Если sequence-номер пакета больше, чем значение счётчика replay-seq, то пакет принимается и его номер отмечается в специальной битовой маске (replay.bitmap) как полученный; если sequence-номер пакета меньше, чем значение replay-seq — replay-window, то он отбрасывается, если же, он попадает в «окно», то проверяется, был ли получен пакет с таким номером ранее, если да, то он будет так же отброшен. Значения replay-seq, replay-oseq и replay.bitmap обновляются по мере получения пакетов. Так же в механизме учитываются не только сами sequence-номера пакетов, но и время ожидания «запаздывающих» пакетов.

    flag FLAG — устанавливает один или несколько флагов опций. Может принимать следующие знячения:

    noecn — не использовать механизм явных уведомлений о перегруженности. decap-dscp — учитывать поле DSCP инкапсулированного пакета. Бывает полезно при использовании QOS. nopmtudisc — не выполнять path MTU discovery. wildrecv icmp — разрешить приём icmp-пакетов, полученных через безопасную ассоциацию. Влияет только на входящий шифрованный трафик. af-unspec — позволяет инкапсулировать трафик одного протокола сетевого уровня в ipsec-трафик другого протокола сетевого уровня (например, ipv4 инкапсулировать в ipv6-ipsec). Наиболее актуален при beet-режиме безопасной ассоциации.

    encap ENCAP-TYPE SPORT DPORT OADDR — используется для инкапсулирования пакетов протокола esp в udp для решения проблемы с nat. Тут, соответственно, ENCAP-TYPE может принимать значения espinudp или espinudp-nonike, SPORT и DPORT — номера портов источника и назначения, а OADDR — адрес, который будет использован в качестве адреса источника в инкапсулирующих пакетах udp.

    limit — устанавливает время жизни (lifetime) безопасной ассоциации. Реализовано два типа: soft — после достижения лимита безопасная ассоциация остаётся в SAD, но система генерирует специальное событие timer expired (это событие обычно обрабатывется демонами ike, а так же будет отображено в режиме мониторинга); и hard — после достижения лимита безопасная ассоциация удаляется из SAD. Команда имеет следующие параметры:

    packet-soft | packet-hard PACKETS — время жизни устанавливается количеством пакетов, прошедшим через безопасную ассоциацию. byte-soft | byte-hard BYTES — время жизни устанавливается количеством данных, прошедшим через безопасную ассоциацию. time-soft | time-hard SECONDS — время жизни безопасной ассоциации в секундах с момента добавления в SAD. time-use-soft | time-use-hard SECONDS — время жизни безопасной ассоциации в секундах с момента начала использования, то есть прохождения первого пакета.

    sel src ADDR[/PLEN] dst ADDR[/PLEN] proto PROTO [ [ sport PORT ] [ dport PORT ] | [ type NUMBER ] [ code NUMBER ] ] [ dev DEV ] — определяет шаблон пакетов, проходящих через данную безопасную ассоциацию безопасную ассоциацию. Используется для поиска безопасной ассоциации в SAD, в случае если безопасные ассоциации имеют идентичный ID. Задаёт адреса и длину префиксов полей источника и назначения (src ADDR[/PLEN] dst ADDR[/PLEN]), код протокола верхнего уровня (proto PROTO), а так же может содержать другие критерии, например, номера портов (протоколы tcp/udp/sctp/dccp), тип или код сообщения (протокол icmp), а так имя интерфейса, с которого получен пакет, или через который будет отправлен.

    Посмотреть информацию о безопасных ассоциациях можно с помощью следующих команд.

    Показать безопасные ассоциации, соответствующие заданным параметрам. Так же может использоваться с параметром -s[tatistic], позволяющим отобразить более подробную информацию о безопасной ассоциации.

    Количество безопасных ассоциаций в SAD можно проверить командой

    Так же можно удалять безопасные ассоциации. Чтобы очистить SAD можно использовать команду

    [править] Поддерживаемые криптографические алгоритмы

    IPsec позволяет использовать различные алгоритмы для шифрования данных и для проверки целостности передаваемых данных, и аутентификации, при условии, что их поддержка включена в ядро статически или в виде модуля. Если вы ошиблись в названии алгоритма или поддержка со стороны ядра отсутствует, то утилита ip сообщит об ошибке — «RTNETLINK answers: Function not implemented». Так же необходимо учитывать то, что многие алгоритмы работают с ключами фиксированной длины, поэтому если указанный вами ключ будет отличаться по длине от требуемого, то вы получите сообщение об ошибке (в утилите ip это «RTNETLINK answers: Invalid argument»). Ключи можно задавать как в текстовом формате, заключая строку в двойные кавычки, так и в шестнадцатеричном, предваряя ключ символами 0x.

    Алгоритмы, используемые для проверки целостности данных и аутентификации.

    Алгоритм Длина хэша setkey ip Сокращение
    null null digest_null
    md5 128 hmac-md5 hmac(md5) md5
    sha-1 160 hmac-sha1 hmac(sha1) sha1
    sha-2 256 hmac-sha256 hmac(sha256) sha256
    sha-2 384 hmac-sha384 hmac(sha384) sha384
    sha-2 512 hmac-sha512 hmac(sha512) sha512
    ripemd 160 hmac(rmd160) rmd160
    aes 128 xcbc(aes)

    Алгоритмы, используемые для шифрования данных.

    Алгоритм Длина ключа setkey ip Сокращение
    null null ecb(cipher_null) cipher_null
    des 64 des-cbc cbc(des) des
    triple des 192 3des-cbc cbc(des3_ede) des3_ede
    cast-128 40-128 cast128 cbc(cast5) cast5
    blowfish 40-448 blowfish-cbc cbc(blowfish) blowfish
    aes 128-256 aes-cbc cbc(aes) aes
    serpent 128-256 cbc(serpent) serpent
    camelia 128-256 camelia-cbc cbc(camelia) camelia
    twofish 128-256 twofish-cbc cbc(twofish) twofish
    aes 128/160/256 aes-ctr rfc3686(ctr(aes))

    Алгоритмы, используемые для проверки целостности данных, аутентификации и шифрования.

    название длина ключа ip
    aes 128-256 rfc4106(gcm(aes))
    aes 128-256 rfc4309(ccm(aes))
    aes 128-256 rfc4543(gcm(aes))

    Так же для сжатия данных могут использоваться алгоритмы deflate, lzh, lzjh.

    [править] Конфигурирование Security Policy

    Security Policy (политики безопасности) определяют, какие именно пакеты будут передаваться с помощью ipsec, а так же, через какие безопасные ассоциации и какие действия к ним должны быть применены. Политики безопасности хранятся в Security Policies Database (База политики безопасности, далее SPD). Управление политиками безопасности так же осуществляется через утилиты setkey или ip (с помощью команд ip xfrm policy).

    Добавление или изменение политики безопасности осуществляется командой:

    dir DIR — направление движения пакетов, подпадающих под политику. Может принимать значения in — для входящих пакетов, out — для исходящих и fwd — для транзитных.

    SELECTOR — шаблон, описывающий, какие пакеты подпадают под действия политики. Может содержать следующие параметры: src ADDR[/PLEN] dst ADDR[/PLEN] proto PROTO [ [ sport PORT ] [ dport PORT ] | [ type NUMBER ] [ code NUMBER ] ] [ dev DEV ]. Имеют такое же значение, как и при описании безопасной ассоциации.

    index INDEX — идентификатор политики безопасности в SPD.

    ptype PTYPE — тип политики безопасности. Может принимать значения main и sub (по-умолчанию main).

    action ACTION — разрешить обработку пакета (allow) или отбросить его (block).

    priority PRIORITY — приоритет политики.

    limit LIMIT-LIST — время жизни политики. Полностью аналогично параметрам времени жизни безопасной ассоциации.

    tmpl TMPL-LIST — шаблон безопасной ассоциации, через которую должен быть передан или получен пакет. Шаблон должен содержать один или несколько параметров [ src ADDR ] [ dst ADDR ] [ proto XFRM_PROTO ] [ spi SPI ] [ mode MODE ] [ reqid REQID ] [ level LEVEL ]. Параметр level принимает значения required (обязательное шифрование) или use (необязательное шифрование), который задаёт действие по отношению к незашифрованным входящим пакетам, подпадающим под политику. Другие параметры аналогичны тем, что используются при описании безопасных ассоциаций.

    mark MARK [mask MASK] — метка netfilter пакета, подпадающего под политику.

    [править] Конфигурирование IKE в Racoon

    [править] Аутентификация с помощью preshared key

    [править] Использование сертификатов X.509

    [править] NAT-Travesal

    [править] Практикум и готовые решения

    [править] Конфигурационные файлы для L2TP сервера с IPsec.

    Аутентификация будет производиться по сертификатам безопасности.

    $EXTADDR — адрес, к которому будут коннектится клиенты. $SERVERCRT.crt и SERVERKEY.key — сертификаты безопасности нашего сервера.

    Авторизация только через CHAP. Логины и пароли пользователей должны быть прописаны в chap-secrets.

    $BEGRANGE и $ENDRANGE — начальный и конечный адреса клиентского диапазона. $LOCALADDR — адрес шлюза для клиентов.

    Указываем адреса днс-серверов. Значение параметра linkname можно использовать в скриптах ip-up и ip-down.

    $DNS1 и $DNS2 — айпи-адреса днс-серверов

    Прописываем Политики Безопасности для IPsec.

    $EXTADDR — адрес, к которому будут подключаться клиенты.

    Источник

    Читайте также:  Серийный номер daemon tools для mac os
  • Оцените статью