суббота, июля 30, 2016

Обеспечение безопасности протокола RIP

Привет, привет, привет! Сегодня мы продолжаем общаться с Вами на тему протокола динамической маршрутизации RIP. А если точнее  сегодня мы рассмотрим аспекты обеспечения безопасности данного протокола. Перед прочтением данной статьи рекомендую Вам ознакомиться со статьями о RIP-1 и RIP-2, для лучшего понимания процесса настройки данных протоколов.

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

Тестовая сеть для работы с протоколом RIP
Тестовая сеть для работы с протоколом RIP
В данной сети, как и раньше запущен протокол динамической маршрутизации RIP. Пусть это будет протокол RIP версии 1. Далее заменим в ней компьютер PC0 еще на один маршрутизатор - Router 3, и получим сеть вот такого вида:
Новая тестовая сеть
Новая тестовая сеть
Настроим маршрутизатор 3, для связи с маршрутизатором 0 и присоединению к облаку динамической маршрутизации, для этого выполним на нем команды:

Router(config)#interface fastEthernet 0/0
Router(config-if)#ip address 192.168.1.2 255.255.255.0
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#router rip
Router(config-router)#version 1
Router(config-router)#network 192.168.1.0

Проверяем связность сети и если все объекты сети видят друг друга идем дальше.

Теперь представьте себе такую ситуацию, что маршрутизаторы 0,1,2 принадлежат сети вашей организации, а маршрутизатор 3 принадлежит сети другой организации. Давайте заглянем в его таблицу маршрутизации, выполнив на маршрутизаторе 3 команду:

Router#show ip route

Её вывод будет иметь следующий вид:

Gateway of last resort is not set
R    172.20.0.0/16 [120/1] via 192.168.1.1, 00:00:18, FastEthernet0/0
C    192.168.1.0/24 is directly connected, FastEthernet0/0
R    192.168.2.0/24 [120/2] via 192.168.1.1, 00:00:18, FastEthernet0/0
R    192.168.4.0/24 [120/1] via 192.168.1.1, 00:00:18, FastEthernet0/0
R    192.168.5.0/24 [120/2] via 192.168.1.1, 00:00:18, FastEthernet0/0

Как мы видим, маршрутизатор 3 (а еще это, например, может быть не физический маршрутизатор, а просто компьютер с ОС поддерживающей функции маршрутизации, и поддерживающей протокол RIP), принадлежащий другой организации, прекрасно знает маршруты ко всем нашим сетям. Как вы сами понимаете в этом нет ничего хорошего.

Для того чтобы запретить маршрутизатору 0 анонсировать маршруты сети нашего предприятия на маршрутизатор 3, на нем необходимо выполнить следующие команды (интерфейс fastEthernet 0/0  маршрутизатор 0 используется для связки маршрутизаторов 0 и 3):

Router(config)#router rip
Router(config-router)#passive-interface fastEthernet 0/0

Команда passive-interface запрещает интерфейсу fastEthernet 0/0 рассылать обновления протокола динамической маршрутизации RIP, но она не запрещает их ему принимать. Теперь снова выполним на маршрутизаторе 3 команду:

Router#show ip route

В этот раз содержимое его таблицы маршрутизации будет следующим:

Gateway of last resort is not set
R    172.20.0.0/16 is possibly down, routing via 192.168.1.1, FastEthernet0/0
C    192.168.1.0/24 is directly connected, FastEthernet0/0
R    192.168.2.0/24 is possibly down, routing via 192.168.1.1, FastEthernet0/0
R    192.168.4.0/24 is possibly down, routing via 192.168.1.1, FastEthernet0/0
R    192.168.5.0/24 is possibly down, routing via 192.168.1.1, FastEthernet0/0

Как мы видим маршруты полученные ранее по протоколу RIP, стали недоступными. Подождем еще немного, для того чтобы дать отработать таймерам протокола RIP, и выполним команду show ip route еще раз, увидим следующий результат:

Gateway of last resort is not set
C    192.168.1.0/24 is directly connected, FastEthernet0/0

Как видим, все сделано верно, маршрутизатор 3 не знает о сетях известных маршрутизатору 0. Команда passive-interface поддерживается как протоколом RIP-1, так и RIP-2.

Теперь поговорим еще об одной фишке протокола RIP, которая повышает безопасность его использования. А именно о аутентификации сообщений протокола RIP. Сразу хочу сказать, что такая возможность поддерживается только для протокола RIP версии 2. Поэтому переводим все маршрутизаторы нашей сети на RIP-2.

К сожалению Packet tracer не поддерживает работу команд key chain, поэтому нам придется собрать сеть аналогичную, сети, приведенной в самом начале статьи, но уже в GNS3.
Собрали аналогичную сеть в GNS3
Собрали аналогичную сеть в GNS3
Настройки маршрутизатора 1:

R1(config)#interface fastEthernet 0/0
R1(config-if)#ip address 192.168.1.1 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#exit
R1(config)#interface fastEthernet 0/1
R1(config-if)#ip address 192.168.4.1 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#exit
R1(config)#interface fastEthernet 1/0
R1(config-if)#ip address 172.20.20.1 255.255.255.252
R1(config-if)#no shutdown
R1(config-if)#exit
R1(config)#router rip
R1(config-router)#version 2
R1(config-router)#network 192.168.1.0
R1(config-router)#network 192.168.4.0
R1(config-router)#network 172.20.20.0

Настройки маршрутизатора 2:

R2(config)#interface fastEthernet 0/0
R2(config-if)#ip address 192.168.4.2 255.255.255.0
R2(config-if)#no shutdown
R2(config-if)#exit
R2(config)#interface fastEthernet 0/1
R2(config-if)#ip address 192.168.5.2 255.255.255.0
R2(config-if)#no shutdown
R2(config-if)#exit
R2(config)#router rip
R2(config-router)#version 2
R2(config-router)#network 192.168.4.0
R2(config-router)#network 192.168.5.0

Настройки маршрутизатора 3:

R3(config)#interface fastEthernet 0/0
R3(config-if)#ip address 172.20.20.2 255.255.255.252
R3(config-if)#no shutdown
R3(config-if)#exit
R3(config)#interface fastEthernet 0/1
R3(config-if)#ip address 192.168.5.1 255.255.255.0
R3(config-if)#no shutdown
R3(config-if)#exit
R3(config)#interface fastEthernet 1/0
R3(config-if)#ip address 192.168.2.1 255.255.255.0
R3(config-if)#no shutdown
R3(config-if)#exit
R3(config)#router rip
R3(config-router)#version 2
R3(config-router)#network 172.20.20.0
R3(config-router)#network 192.168.2.0
R3(config-router)#network 192.168.5.0



Для настройки аутентификации создадим на маршрутизаторе 1 ключевую последовательность, используя команды:

R1(config)#key chain RIP
R1(config-keychain)#key 1
R1(config-keychain-key)#key-string MyRIPPassword

И включаем аутентификацию сообщений протокола RIP, на интерфейсе смотрящем в сторону R2:

R1(config)#interface fastEthernet 0/1
R1(config-if)#ip rip authentication key-chain RIP

Далее на маршрутизаторе 2 выполняем команду:

R2#debug ip rip

Немного ждем, и видим следующее сообщение:

*Mar  1 05:14:47.546: RIP: ignored v2 packet from 192.168.4.1 (invalid authentication)
*Mar  1 05:14:57.686: RIP: received v2 update from 192.168.5.1 on FastEthernet0/1
*Mar  1 05:14:57.690:      172.20.0.0/16 via 0.0.0.0 in 1 hops
*Mar  1 05:14:57.690:      192.168.1.0/24 via 0.0.0.0 in 1 hops
*Mar  1 05:14:57.690:      192.168.2.0/24 via 0.0.0.0 in 1 hops

Как видим, маршрутизатор 2 не принимает обновления от протокола RIP отправленные маршрутизатором 1 из за проблем с аутентификацией. И это правильно, так как мы не настраивали аутентификацию на маршрутизаторе 2. В тоже время маршрутизатор 2 принимает обновления протокола RIP от маршрутизатора 3, так как аутентификация на участке маршрутизатор 2-3 не настраивалась вообще.

Настроим аутентификацию на маршрутизаторе 2 добавив в его конфиг строки аналогичные добавленным на маршрутизатор 1:

R2(config)#key chain RIP
R2(config-keychain)#key 1
R2(config-keychain-key)#key-string MyRIPPassword
R2(config-keychain-key)#exit
R2(config)#interface fastEthernet 0/0
R2(config-if)#ip rip authentication key-chain RIP

Немного подождем и посмотрим вывод дебага:

*Mar  1 05:20:24.998: RIP: received packet with text authentication MyRIPPassword
*Mar  1 05:20:24.998: RIP: received v2 update from 192.168.4.1 on FastEthernet0/0
*Mar  1 05:20:25.002:      172.20.0.0/16 via 0.0.0.0 in 1 hops
*Mar  1 05:20:25.002:      192.168.1.0/24 via 0.0.0.0 in 1 hops
*Mar  1 05:20:25.002:      192.168.2.0/24 via 0.0.0.0 in 1 hops

Как мы видим аутентификация успешно выполнена и обновления протокола RIP от маршрутизатора 1 успешно приняты маршрутизатором 2. Стоит отметить что при таком способе аутентификации пароль MyRIPPassword передается от маршрутизатора 1 к маршрутизатору 2, и обратно, открытым текстом. Защитить его можно используя MD5 хеширования. При таком способе аутентификации между маршрутизаторами будет передаваться не сам пароль, а его хеш. Для того чтобы включить данную функцию нужно добавить на интерфейсы маршрутизаторов 1 и 2 следующую команду:

R2(config)#interface fastEthernet 0/0
R2(config-if)#ip rip authentication mode md5

Теперь если мы посмотрим выводы дебага протокола RIP то увидим:

*Mar  1 05:29:44.354: RIP: received packet with MD5 authentication
*Mar  1 05:29:44.358: RIP: received v2 update from 192.168.4.1 on FastEthernet0/0
*Mar  1 05:29:44.358:      172.20.0.0/16 via 0.0.0.0 in 1 hops
*Mar  1 05:29:44.358:      192.168.1.0/24 via 0.0.0.0 in 1 hops
*Mar  1 05:29:44.362:      192.168.2.0/24 via 0.0.0.0 in 1 hops


Думаю что на сегодня хватит! Удачи и до новых встреч!

2 коммент.:

Благодарю за замечательный материал! Очень нравятся ваши уроки: всегда пишете подробно и подкрепляете выводом консоли. Еще раз спасибо. Уверен, новички хорошо оценят Ваш труд и желание помогать. Дальнейших успехов во всем

Спасибо! Буду стараться и дальше вас радовать статьями!

Отправить комментарий