Wednesday, September 18, 2013

Аутентификация в EIGRP и немного про связки ключей Key-chain в Cisco


Есть такой прекрасный протокол маршрутизации EIGRP, где заботливые разработчики заложили возможность аутентификации пришедшего обновления маршрутов. Аутентифицируется все при помощи пароля. На отправляемом обновление роутере берется пакет с обновлением с одной стороны и пароль с другой стороны. Потом из этих двух составляющих с помощью алгоритма MD5 вычисляется хеш и прикрепляется к пакету. Целевой роутер получает обновление маршрутов, берет этот пакет  и свой пароль. Дальше по аналогии вычисляет хеш. Если пароли на обоих роутерах совпадают, то хеш тоже будет совпадать. Таким образом если злоумышленник захочет обмануть нас с маршрутом, то у него ничего не выйдет пока он не узнает пароль. Пакеты с обновлениями без правильного хеша будут игнорироваться.



Как же это все настраивается.
  1. Создаем связку ключей
    Будем использовать разные ключи. Связка это набор ключей, в нашем случае – паролей. Все как в жизни, создаем связку и вешаем туда по одному ключику. Для создания связки используем команду key chain, после которой указываем непосредственно название связки. Названия могут не совпадать на разных роутерах, это локальное значение.
    EvilRouter(config)#key chain MyChain
    Далее привязываем ключи командой key, за которой следует номер ключа. Номера также не должны совпадать на разных роутерах.
    EvilRouter(config-keychain)#key 10
    EvilRouter(config-keychain-key)#
    Теперь вводим ключ командой key-string, вот он то и должен совпадать.
    EvilRouter(config-keychain-key)#key-string $ecretKey
    EvilRouter(config-keychain-key)#
    Создадим еще парочку ключей в связке
    EvilRouter(config-keychain)#key 20
    EvilRouter(config-keychain-key)#key-string $ecret20
    EvilRouter(config-keychain-key)#exit
    EvilRouter(config-keychain)#key 30
    EvilRouter(config-keychain-key)#key-string $ecret30
    EvilRouter(config-keychain-key)#exit
    EvilRouter(config-keychain)#
  2. Включаем аутентификацию в EIGRP
    EvilRouter(config)#int fa0
    EvilRouter(config-if)#ip authentication mode eigrp 23 md5
    EvilRouter(config-if)#
    обратите внимание, что аутентификация включается на интерфейсе. (23 здесь это номер автономной системы)
  3. Прикручиваем там же на интерфейсе ко всему этому название свзки ключей
    EvilRouter(config-if)#ip authentication key-chain eigrp 23 MyChain
    EvilRouter(config-if)#
И вуаля, как итог имеем прикрученную аутентификацию к протоколу маршрутизации EIGRP. Хочу уточнить, что никакого шифрования и приватности тут и близко нет. Злоумышленник может получить пакет и просмотреть информацию о вашей сети. Другое дело, что подделка пакета невозможна.
Теперь взглянем ближе на связки ключей. Их тут н, при их использовании маршрутизатор руководствуется следующими правилами:
- при отправке пакета, будет использоваться ключ с наименьшим номером
- при получении пакета, он будет проверяться всеми доступными на этот момент ключами

Не могу пройти мимо следующей фичи. Ключи можно использовать с привязкой ко времени. Например, сегодня используется один ключ, завтра следующий, потом три дня будет использоваться третий ключ. При чем маршрутизатор будет использовать ключи, которые доступны в данный момент, а не все, которые есть в связке.
Рассмотрим пример. Войдем еще раз в режим конфигурирования нашей связки ключей и добавим к ней еще один ключ, который будет действовать с первого сентября по первое октября 2013 года.
EvilRouter(config)#key chain MyChain

EvilRouter(config-keychain)#key 40

EvilRouter(config-keychain-key)#key-string $eptembeR

EvilRouter(config-keychain-key)#send-lifetime 00:00:00 Sep 1 2013 00:00:00 Oct 1 2013
И еще один ключ, который будет действовать с 1-го октября 3 три дня.
EvilRouter(config-keychain)#key 50

EvilRouter(config-keychain-key)#key-string Oct0ber

EvilRouter(config-keychain-key)#accept-lifetime 00:00:00 Oct 1 2013 duration 259200

EvilRouter(config-keychain-key)#send-lifetime 00:00:00 Oct 1 2013 duration 259200
Рассмотрим подробнее. В первом случе мы указываем время жизни в формате время и дата начала действия и время и дата конца действия. Во втором случае - время начала и продолжительность действия ключа в секундах. Максимальное значение продолжительности 2147483646 секунд. Кому интересно, посчитайте, сколько это. Хотя, я думаю, от роутера к роутеру это значение может отличаться.
Дальше. Используется две команды аccept-lifetime и send-lifetime. Разница очевидна, при задании первой команды ключ будет использоваться только для принимаемых сообщений, а при send-lifetime – для отправки сообщений. Капитан очевидность подсказывает нам, что если будут использованы обе команды, то ключ будет действовать и для приема и для передачи. При этом, если не указать время жизни, то ключ будет использоваться всегда.


Разумеется, при использовании временных интервалов для действия ключей на другом маршрутизаторе должно быть настроено все в согласовании не только ключей, но и времени. Напомню, что NTP-клиент в Cisco настраивается следующим образом:
EvilRouter(config)#ntp peer 78.152.160.1
Тут я использовал адрес сервера 0.ua.pool.ntp.org. Проверяем:
EvilRouter#show clock

18:41:24.098 UTC Wed Sep 18 2013

EvilRouter#
Проверяем связку ключей
EvilRouter#show key chain MyChain

Key-chain MyChain:

    key 10 -- text "$ecretKey"

        accept lifetime (always valid) - (always valid) [valid now]

        send lifetime (always valid) - (always valid) [valid now]

    key 20 -- text "$ecret20"

        accept lifetime (always valid) - (always valid) [valid now]

        send lifetime (always valid) - (always valid) [valid now]

    key 30 -- text "$ecret30"

        accept lifetime (always valid) - (always valid) [valid now]

        send lifetime (always valid) - (always valid) [valid now]

    key 40 -- text "$eptembeR "

        accept lifetime (always valid) - (always valid) [valid now]

        send lifetime (00:00:00 UTC Sep 1 2013) - (00:00:00 UTC Oct 1 2013) [valid now]

    key 50 -- text "Oct0ber"

        accept lifetime (00:00:00 UTC Oct 1 2013) - (259200 seconds)

        send lifetime (00:00:00 UTC Oct 1 2013) - (259200 seconds)

EvilRouter#

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

4 comments:

  1. Обновите картинку в статье

    ReplyDelete
    Replies
    1. Just Another Network Blog: Аутентификация В Eigrp И Немного Про Связки Ключей Key-Chain В Cisco >>>>> Download Now

      >>>>> Download Full

      Just Another Network Blog: Аутентификация В Eigrp И Немного Про Связки Ключей Key-Chain В Cisco >>>>> Download LINK

      >>>>> Download Now

      Just Another Network Blog: Аутентификация В Eigrp И Немного Про Связки Ключей Key-Chain В Cisco >>>>> Download Full

      >>>>> Download LINK Yj

      Delete
  2. Just Another Network Blog: Аутентификация В Eigrp И Немного Про Связки Ключей Key-Chain В Cisco >>>>> Download Now

    >>>>> Download Full

    Just Another Network Blog: Аутентификация В Eigrp И Немного Про Связки Ключей Key-Chain В Cisco >>>>> Download LINK

    >>>>> Download Now

    Just Another Network Blog: Аутентификация В Eigrp И Немного Про Связки Ключей Key-Chain В Cisco >>>>> Download Full

    >>>>> Download LINK ke

    ReplyDelete