В некоторых случаях требованиями ИБ доступ к устройству по протоколам управления SSH или Telnet необходимо обеспечить в отдельном VRF (virtual routing and forwarding). Это позволяет разделить пространства маршрутизации внутри устройства и обеспечить изоляцию сервисов управления им.
Схема
Задача
Настроить доступ к устройству посредством протоколов SSH и Telnet в отдельном VRF на маршрутизаторе с применением zone-based firewall механизмов контроля доступа к устройству и нестандартных портов.
О принципах работы zone-based firewall и настройке доступа к устройству с применением этого механизма можно ознакомиться в статьях:
Решение
Для того, чтобы организовать доступ к маршрутизатору по протоколам SSH и Telnet через VRF с учётом поставленной задачи, все настройки необходимо производить с привязкой к VRF. Мы создадим vrf с именем Management. Он будет использоваться для привязки всех дальнейших настроек. Для обеспечения работы мехнаизма zone-based firewall необходимо создать зону безопасности с именем Trusted. Она также должна быть определена к vrf. В vrf Management необходимо определить интерфейс и настроить на нём IP-адрес, через который будет осуществляться доступ к устройству. После создания зоны безопасности необходимо описать правила взаимодействия пар зон - зоны Trusted и зоны self. Далее необходимо определить нестандартные порты для протоколов SSH и Telnet и указать, что доступ к устройству с их помощью будет осуществляться через VRF.
Настройка VRF и зоны безопасности
Перейдём в глобальный режим конфигурирования и создадим VRF Management:
esr# configure esr(config)# ip vrf Management esr(config-vrf)# exit
Создадим зону безопасности Trusted и укажем её принадлежность к ранее созданному VRF:
esr(config)# security zone Trusted esr(config-security-zone)# ip vrf forwarding Management esr(config-security-zone)# exit
Настройка интерфейса
Настроим интерфейс, через который будет осуществляться доступ к устройству. Определим его к vrf Management, назначим зону безопасности Trusted и присвоим IP-адрес:
esr# configure esr(config)# interface gigabitethernet 1/0/4 esr(config-if-sub)# ip vrf forwarding Management esr(config-if-sub)# security-zone Trusted esr(config-if-sub)# ip address 10.0.0.1/24 esr(config-if-sub)# exit
Настройка object-group
Чтобы описать правила взаимодействия зон безопасности нам необходимо создать object-group для каждого из параметров, по которым будет проводиться проверка доступа.
Создадим object-group типа network с именем Remote_admin. В ней указывается диапазон IP-адресов, с которых будет инициироваться удалённое соединение. В данном примере это IP-адреса 10.0.0.241, 10.0.0.243 - 10.0.0.244:
esr(config)# object-group network Remote_admin esr(config-object-group-network)# ip address-range 10.0.0.241 esr(config-object-group-network)# ip address-range 10.0.0.243-10.0.0.244 esr(config-object-group-network)# exit
Создадим object-group типа network с именем Router_management. В ней указывается IP-адрес самого маршрутизатора, на который будет устанавливаться удалённое соединение. В примере это IP-адрес 10.0.0.1:
esr(config)# object-group network Router_management esr(config-object-group-network)# ip address-range 10.0.0.1 esr(config-object-group-network)# exit
Создадим object-group типа service для новых TCP-портов каждого из протоколов (SSH,Telnet), которые мы изменим со стандартных, с именами SSH_port и Telnet_port соответственно. В них указываются порты, на которые будет инициироваться каждое из соединений :
esr(config)# object-group service SSH_port esr(config-object-group-network)# port-range 33221 esr(config-object-group-network)# exit esr(config)# object-group service Telnet_port esr(config-object-group-network)# port-range 24221 esr(config-object-group-network)# exit
Настройка правил взаимодействия зон безопасности
Опишем правила взаимодействия между зонами Trusted и self. Мы будем допускать запросы по протоколам SSH и Telnet по следующим критериям:
- транспортный протокол - TCP
- запрос на установку соединения должен исходить от конкретного IP-адреса источника, описанного в object-group network Remote_admin
- запрос на установку соединения должен быть направлен на конкретный IP-адрес назначения маршрутизатора, описанный в object-group network Router_management
- запрос на установку соединения должен быть направлен на конкретные TCP-порты назначения, описанные в object-group service SSH_port и object-group service Telnet_port
security zone-pair Trusted self rule 1 description "SSH" action permit match protocol tcp match source-address Remote_admin match destination-address Router_management match destination-port SSH_port enable exit rule 2 description "Telnet" action permit match protocol tcp match source-address Remote_admin match destination-address Router_management match destination-port Telnet_port enable exit exit
Настройка нестандартных портов для протоколов SSH, Telnet
Настроим нестандартные порты для протоколов SSH и Telnet, на которые будет устанавливаться удалённое соединения для управления устройством. В пункте настройки object-group мы уже определили значения этих портов. Теперь зададим настройку, разрешающую подключение к устройству по данным протоколам на заданные порты:
esr(config)# ip ssh port 33221 esr(config)# ip telnet port 24221
Настройка SSH и Telnet серверов в vrf
Активируем работу SSH и Telnet серверов в созданном нами vrf:
esr(config)# ip ssh server vrf Management esr(config)# ip telnet server vrf Management
Проверка
Для проверки попробуем установить соединение до маршрутизатора с хоста по протоколам SSH и Telnet по указанным адресам и портам:
user@PC-1:~# telnet 10.0.0.1 24221 Trying 10.0.0.1... Connected to 10.0.0.1. Escape character is '^]'. esr login:
user@PC-2:~# ssh -l admin -p 33221 10.0.0.1 Password:
Для идентификации соединения на маршрутизаторе воспользуемся командой show ip firewall sessions vrf Management для просмотра зарегистрированных сессий удалённого доступа:
esr# show ip firewall sessions vrf Management Codes: E - expected, U - unreplied, A - assured, C - confirmed Prot Inside source Inside destination Outside source Outside destination Pkts Bytes Status ----- --------------------- --------------------- --------------------- --------------------- ---------- ---------- ------ tcp 10.0.0.243:50296 10.0.0.1:33221 10.0.0.243:50296 10.0.0.1:33221 -- -- AC tcp 10.0.0.244:50174 10.0.0.1:24221 10.0.0.244:50174 10.0.0.1:24221 -- -- AC