service pad cisco что это
Курс молодого бойца: защищаем сам маршрутизатор
Следуя аксиомам безопасности, будем считать, что любой узел в сети является потенциальной целью. Поэтому хорошо бы знать, какие потенциально уязвимые места есть у этих самых узлов. Рассмотрим маршрутизатор cisco. Сразу же возникнет возражения: их много, сервисы поддерживаемые – разные и вообще, трудно свалить в одну кучу CRS-1 и древний 1600. Однако, я не ставлю своей целью охватить всё, но кое какие общие вещи опишу.
Итак, первое что надо запомнить, что маршрутизатор по умолчанию не блокирует на интерфейсе никакой нормальный трафик (фреймы с неправильной контрольной суммой не счёт). Однако, часть пакетов, при более глубоком рассмотрении (процессором) маршрутизатор таки признает ненужными, например:
1. Пакеты с TTL =0 или меньше
2. Пакеты, которые неизвестно куда отправить (сеть назначения пакета не присутствует в таблице маршрутизации и нет никакого явного правила отправки пакета (PBR))
3. Пакеты, относящиеся к служебным протоколам (например, протоколам маршрутизации), которые не запущены на маршрутизаторе.
Эти уничтоженные пакеты могут сыграть злую шутку: если такого трафика будет много, то он может существенно загрузить процессор маршрутизатора.
Далее, кроме транзитного трафика, маршрутизатор обрабатывает некоторый служебный трафик (направленный на него самого). Часто по умолчанию (или незнанию) на маршрутизаторе запущены ненужные для работы протоколы. Они опасны тем, что маршрутизатор обрабатывает пакеты этого протокола. И можно устроить, например, DoS атаку, узнать удалённо сведенья, не предназначенные для распространения или исследовать топологию сети. К таким протоколам относятся
1. TFTP (маршрутизатор может выступать сервером TFTP).
2. BOOTP (может раздавать бездисковым станциям их файлы настройки)
3. DHCP (Маршрутизатор может выступать сервером и клиентом)
4. TCP Small Servers (TCP Echo, Finger и др.)
5. UDP Small Servers (UDP Echo, Discard и др.)
6. CDP (Cisco Discovery Protocol)
7. NTP (Network Time Protocol. Маршрутизатор может выступать сервером и клиентом)
8. DNS (Включен по умолчанию броадкастовый поиск ДНС серверов в сегменте)
9. PAD (Packet Accembler/Disaccembler)
10. SNMP (Часто сконфигурированы дефолтные community)
Как правило, если данные протоколы не нужны, их лучше отключить.
1. no tftp-server
2. no ip bootp server (старая команда no service bootp)
3. no ip dhcp pool (no service dhcp)
4. no service tcp-small-servers
5. no service udp-small-servers
6. no cdp run (глобально), no cdp enable (на конкретном интерфейсе). Не стоит выключать этот протокол, если к интерфейсу подключен cisco ip phone, т.к. именно по этому протоколу происходит автоопределение подключенного устройства (данная рекомендация больше характерна для коммутаторов, но всё же)
7. no ntp master, no ntp server
8. no ip domain-lookup. Помните, что часто DNS на маршрутизаторе нужен, так что отключать надо не всегда
9. no service pad
10. no snmp-server community
Однако, даже если выключить эти и другие служебные протоколы (например, http, https, ssh), пакеты этих протоколов, приходящие на интерфейс маршрутизатора, попадут в мозг и только там будут откинуты. Т.е. даже выключив все, можно попробовать нагрузить процессор маршрутизатора отбрасыванием мусора.
Хотелось бы научиться отбрасывать такие пакеты, не нагружая мозг. Также, часто возникает задача ограничить нагрузку служебным трафиком на процессор. Например, указав максимальное количество служебных пакетов (всего или по отдельным протоколам) в очереди или количество служебных пакетов в секунду.
Эти задачи решаются при помощи специального режима
сontrol-plane host
Чтобы воспользоваться этой технологией можно создать специальные классы трафика
class-map type?
access-control access-control specific class-map
control Configure a control policy class-map
inspect Configure CBAC Class Map
logging Class map for control-plane packet logging
port-filter Class map for port filter
queue-threshold Class map for queue threshold
stack class-map for protocol header stack specification
Создать специальную политику (Policy-map type )
policy-map type?
access-control access-control specific policy-map
control Configure a control policy policy-map
inspect Configure CBAC Policy Map
logging Control-plane packet logging
port-filter Control-plane tcp/udp port filtering
queue-threshold Control-plane protocol queue limiting
И применить её в этом режиме:
control-plane host
service-policy type?
logging Control-plane packet logging
port-filter Control-plane tcp/udp port filtering
queue-threshold Control-plane protocol queue limiting
Ограничение же нагрузки на мозг служебными пакетами организуется похоже, только для этого достаточно описать обычный класс трафика, обычную политику, где в качестве действия указать ограничение словом police
police rate [units] pps
Разберем примеры:
1. Ограничим количество телнетовских пакетов от всех сетей, кроме хоста 10.1.1.100, до 100 пакетов в секунду
Для этого напишем список доступа
ip access-list extended TELNET
deny tcp host 10.1.1.100 any eq 23
permit tcp any any eq 23
Далее, создадим класс трафика
class-map TELNET
match access-group TELNET
Опишем политику
policy-map TELNET
class TELNET
police rate 100 pps
И повесим политику в control-plane
control-plane host
service-policy input TELNET
2. Заблокируем пакеты, направленные на порты приложений, не используемые маршрутизатором
Создадим специальный класс трафика
class-map type port-filter PORTS
match closed-ports
Опишем специальную политику
policy-map type port-filter PORTS
class PORTS
drop
И повесим политику в control-plane
control-plane host
service-policy type port-filter input PORTS
Чтобы защитить management-plane, т.е. управление маршрутизатором надо помнить следующие моменты:
1. По возможности надо использовать безопасные протоколы управления: ssh, https. Для этого надо выработать ключевую пару RSA, указать правила аутентификации и включить поддержку https (ip http secure-server)
2. Даже при использовании безопасных протоколов управления, а особенно при невозможности их использования, надо ограничивать административный доступ снаружи и изнутри при помощи списков доступа, примененных на интерфейсах, терминальных линиях (line vty) или в режиме control-plane host
3. Желательно применять сложные пароли, минимальной длиной 8 символов и содержащие цифры, буквы разного регистра и символы. А чтобы какой-нибудь юный администратор маршрутизатора не нарушил это правило создания паролей, есть команда
security passwords min-length [длина]
4. Пароли в конфиге лучше иметь захешированными. Тогда не будет возможности подглядеть пароль. Для этого применяйте не слово “password”, но слово “secret”
Примеры:
username admin secret <пароль>
enable secret <пароль>
5. Не забывайте о порте AUX. Это практически та же консоль и имеющий доступ к железу сможет подключиться, используя AUX, к командной строке. Если пароля на AUX не будет, то подключившийся сможет попасть как минимум в непривилегированный режим.
6. У многих маршрутизаторов есть функция защиты от подбора паролей. Можно блокировать пользователя после N неправильно введенных паролей, а можно после нескольких попыток вставлять задержку.
Пример:
security authentication failure rate [попытки] [log]
После N неправильных паролей (по умолчанию – 10) будет вставлена 15 секундная задержка. Слово log позволяет логгировать такие события.
7. Помните, что при использовании протокола SNMP желательно использовать 3 версию протокола с аутентификацией и шифрованием. При использовании более ранних, практически ничем не защищённых версий, строго следите за тем, что принятые по умолчанию community отключены.
8. В сетях с большим количеством устройств имеет смысл выделять так называемую сеть для управления (OOB, Out-of-Band management). Это отдельный сегмент сети, не имеющий пересечений с сетью передачи данных. До недавних пор маршрутизатор мог быть помещен в OOB только посредством консольного сервера, но в новых IOS вы можете административно задать интерфейс, с которого можно настраивать маршрутизатор и только с него. Делается это всё в том же режиме control-plane host явным указанием интерфейса и разрешенных протоколов
Пример:
control-plane host
management-interface f0/0 allow ssh snmp
Защита протоколов маршрутизации
Защита динамических протоколов маршрутизации тоже является весьма важной темой, т.к. если злоумышленнику удастся повредить таблицу маршрутизации, нужные пакеты просто будут уничтожены или пойдут «не туда». Поэтому очень рекомендую при работе с динамическими протоколами маршрутизации использовать аутентификацию обновлений, желательно MD5 суммой (хэшем). Такую технологию поддерживают почти все протоколы: BGP, OSPF, RIPv2, EIGRP. Часть протоколов поддерживает также и аутентификацию clear text (просто ключом), но т.к. ключ передается в самом пакете обновления, назвать такой механизм защищённым язык не поворачивается.
Для настройки аутентификации по MD5 как правило надо:
1. Описать одинаковый ключ на всех маршрутизаторах, работающих по одному протоколу (или на конкретном интерфейсе, в конкретной зоне)
2. Настроить метод защиты (без защиты, clear text, MD5)
3. Включить механизм
Пример: протокол OSPF
Ro(config-if)# ip ospf authentication message-digest
Ro(config-if)# ip ospf message-digest-key 1234 md5 cisco
Где 1234 – номер ключа, а от слова «cisco» будет вычислен md5 хэш.
Service pad cisco что это
Для удобства использования на роутерах по умолчанию включены различные сервисы. Эти сервисы создают угрозу для безопасности. При правильном дизайне сети роутеры находятся за файерволом, что исключает доступ к устройству или его сервисам из вне. Некоторые сетевые устройства помещают в зону DMZ в которой к ним открывается доступ. Не безопасное решение если роутер смотрит напрямую в интернет. В этом случае необходимо отключать открытые сервисы, и ограничивать доступ.
Уязвимость сервисов роутера
Сервисы роутера по угрозам безопасности группируются в след группы:
Рассмотрим эти группы подробнее.
Unnecessary services and interfaces
Сервисы | Описание | Значения по умолчанию | Способ отключения |
Интерфейсы роутера | Осуществляют прием и передачу пакетов | Выключены у роутера | (config-if)#shutdown |
BOOTP сервер | Роутер выступает в качестве bootp сервера для сетевых устройств | Включен | (config)#no ip bootp server |
CDP | Рассылает инфу соседям | Включен глобально и на интерфейсах | (config)#no cdp run (config-if)#no cdp enable |
Configuration auto-loading | Автоматически копирует конфигу с сервера при загрузке | Выключен | (config)#no service config |
FTP сервер | FTP сервер | Выключен | (config)#no ftp-server enable |
TFTP сервер | TFTP сервер | Выключен | (config)#no tftp-server file-sys:image name |
NTP сервис | Возволяет как принимать время с другого сервера так и отсылать время другим NTP клиентам | Выключен | (config)#no ntp server ip address |
Packet assemble/disassemble (PAD) сервис | Обеспечивает доступ для X.25 PAD команд в X.25 сети | Включен | (config)#no service pad |
TCP и UDP minor service | Небольшой сервер в роутере используемый для диагностики. | До 11.3 включен, после выключен | (config)#no service tcp-small-servers (config)#no service udp-small-servers |
Maintance Operation Protocol (MOP) | Сервис поддержки Digital Equipment Corporation (DEC) в роутере. | Включен на большинстве Ethernet интерфейсах | (config-if)#no mop enable |
Common Management Services
Сервисы в этой категории служат для передачи конфигурационных файлов и IOS роутеру.
Сервисы | Описание | Значение по умолчанию | Способ отключения |
SNMP | Используется для конфигурации и получения информации с роутера | Включен | (config)#no snmp-server enable |
HTTP сервер | Позволяет конфигурировать роутер по HTTP протоколу | В зависимости от устройства | (config)#no ip http server (config)#no ip http secure-server |
DNS | Cisco роутеры по умолчанию используют 255.255.255.255 адрес для поиска DNS сервера и реализации имени | Включен | (config)#no ip domain-lookup |
Path integrity Mechanisms
Сервисы этой категории используются для передачи конфигурационных файлов, IOS, и вообще пакетов.
Сервис | Описание | Значение по умолчанию | Способ отключения |
ICMP Redirects | Этот сервис используется роутером для отсылки ICMP redirect сообщение когда пакет форвардится на тот же интерфейс, с которого и получен этот интерфейс | Включен | (config)#no ip icmp redirect (config-if)#no ip redirects |
IP Source Routing | Этот сервис позволяет отправителю контролировать маршрут по которому пройдет пакет через сеть. | Включен | (config)#no ip source-route |
Probes and Scans
Сервисы этой категории используются для сбора информации, которая может быть использована злоумышленником.
Сервис | Описание | Значение по умолчанию | Способ отключения |
Finger service | Через Finger протокол (79 порт) получают список пользователей от сетевого устройства, который описывает номер линии, название соединения, время и место расположения терминала. | Включен | (config)#no service finger |
ICMP unreachable notification | Этот сервис отправляет пользователю ICMP сообщение в котором говорится о недоступности IP подсети или IP адреса | Включен | (config-if)#no ip unreachables |
ICMP mask reply | Этот сервис отправляет маску IP подсети по запросу | Выключен | (config)#no ip mask-reply |
IP directed broadcast | Этот сервис обеспечивает уникастовому пакету попавшему на роутер стать броадкастовым для определенного сегмента. | Включен до 12.0, выключен после | (config-if)#no ip directed-broadcast |
Terminal Access Security
Эта группа сервисов используется для сбора информации о пользоваетлях или для DoS атак.
Сервис | Описание | Значение по умолчанию | Способ отключения |
IP identification service | Этот сервис по протоколу RFC 1413 оповещает идентификатор инициатора TCP соединения. | Включен | (config)#no ip identd |
TCP keepalives | TCP keepalives позволяют закрыть TCP соединение если удаленная сторона перестала отвечать. | Выключен | (config)#service tcp-keepalives-in (config)#service tcp-keepalives-out |
Gratuitous and Proxy ARP
Эта группа сервисов используется для сбора информации о пользоваетлях или для DoS атак.
Сервис | Описание | Значение по умолчанию | Способ отключения |
Gratuitous ARP | Этот сервис обычно используется для атак ARP poisoning. | Включен | (config)#no ip arp gratuitous |
Proxy ARP | Этот сервис используется для резолва адресов 2го уровня если роутер выступает в качестве бриджа. | Включен | (config)#no ip arp proxy |
Использование AutoSecure для защиты роутера.
Эта команда доступна с версии IOS 12.3 и позже. Может применятся в автоматическом режиме или интерактвном. В автоматическом режиме опции безпасности применяются ко всем сервисам, в интерактивном можно опционально отключать сервисы. Помимо отключения AutoSecure еще использует и другие функции для обеспечения безопасности.
Команда имеет следующий вид:
router#auto secure [management | forwarding] [no-interact | full] [login | ntp | ssh | firewall | tcp-intercept]
no-interact включает ручной режим в котором можно конфигурировать отдельные сервисы.
Сайт ARNY.RU
Базовая безопасность CISCO — на сетевом устройстве CISCO задан пароль. По факту многие этим и ограничиваются. Что ещё можно сделать чтобы улучшить защиту? В статье рассказаны довольно простые методы, однако не все с ними знакомы.
Немного теории
Network Foundation Protection (NFP) Framework — интересная концепция, комплексный подход к защите, разработанный CISCO. NFP логически делит устройство на плоскости (planes):
Теперь подробнее о каждой плоскости и о том, зачем её нужно защищать.
Management Plane
Конфигурация, операционная система, протоколы Telnet, SSH, TFTP, FTP, NTP, AAA, SNMP, Syslog, NetFlow. Зачем защищать? Очевидно, что если есть контроль над устройством с помощью одного из этих протоколов, то можно как минимум получать информацию с устройства о его настройках или событиях, как максимум полностью управлять устройством.
Control Plane
Сетевые устройства получают и отправляют друг другу различную информацию. Пример — информация динамических протоколов маршрутизации, роутеры-соседи постоянно отправляют пакеты-приветствия и пакеты-обновления. Кроме этого возникают события, которые должны быть обработаны устройством. Пример — когда у пакета закончился TTL, устройству нужно подготовить и отправить сообщение ICMP.
Первой проблемой является то, что пакеты плоскости управления обрабатываются с большой утилизацией CPU и это позволяет проводить DoS-атаки на незащищённое устройство. Вторая проблема защититься от спуфинга, например фейковые пакеты обновлений информации о маршрутах, позволят направлять трафик от устройства по ложным маршрутам или вообще отбрасывать этот трафик.
Data Plane
Основной вид трафика в устройстве. Обрабатывается программно или аппаратно с помощью CISCO Express Forwarding (CEF) при минимальных затратах ресурсов CPU. Здесь нужно защититься от нежелательного трафика в явном виде и также защититься от спуфинга.
Взаимозависимость
Существует взаимозависимость между плоскостями. К примеру, если если сбой в плоскости управления, то устройство не знает как форвардить трафик, соответственно сбой плоскости передачи данных. Другой пример это сбой в плоскости менеджмента, который даёт атакующему контроль над устройством, возможность перенастройки, в результате сбой оставшихся двух плоскостей.
Защита Management Plane
Рассказывать про защиту всех 3 плоскостей не буду, это весьма объёмно и не было такой цели. Цель — простые методы повышения защиты плоскости менеджмента.
Настройка журналирования
Для просмотра событий, в том числе событий безопасности, на устройстве как минимум должен быть включен и настроен сбор логов в буфер устройства:
Далее, сохраним конфу и посмотрим какое сообщение будет:
Как видно в примере выше, действия по конфигурированию устройства имеют уровень 5, поэтому нужно журналировать его (или уровень 6):
Тут нужно учитывать, что чем больше номер уровня журналирования, тем больше сообщений и тем быстрее заполнится буфер. Буфер записывается циклически, при переполнении старые записи перезаписываются новыми. Буфер организуется в памяти устройства, размер в байтах, значения 16 000 байт должно вполне хватить:
Best practice настраивать отправку сообщений на Syslog сервер и там их парсить (например с помощью Kibana):
Суммируем: лог настраивается отдельно для консоли, буфера устройства, монитора удалённой сессии и Syslog сервера. Для сервера уровень лога определяет команда logging trap. А logging facility это типа такая метка, чтобы с помощью неё сервер распихивал логи по разным файлам и обработчикам.
Настройка времени
Чтобы у событий лога была правильная метка времени, метка должна быть включена:
И время должно быть настроено. Вручную никто не настраивает, особенно когда много устройств, используется сервис NTP. В качестве локального NTP-сервера может быть выбран домен-контроллер с FSMO ролью PDC эмулятор или же, если сеть без домена, сервис NTP может быть без особого труда развёрнут на произвольном сервере. Настройки на устройстве:
NTPv3 и более поздней поддерживает механизм аутентификации между сервером и клиентами. Клиенты настроенные без аутентификации всё равно будут получать время с сервера. Отличие в том, что такие клиенты не аутентифицируют этот сервер как защищенный источник. В рамках статьи про базовую безопасность про NTPv3 говорить не будем.
Модели организации удалённого доступа
Вариант с вводом только пароля рассматривается как небезопасный. Метод локальной базы сам по себе повышает безопасность, так как для входа на устройство нужно знать связку логин/пароль. По этой причине логин admin лучше не использовать, хотя все привыкли так делать.
Есть ещё методы входа с использованием AAA, рассматривать также не будем. Важно то, что даже при наличии настроенного метода входа с серверным AAA, метод локальной базы должен быть обязательно настроен и используется как резервный в случае отказа/недоступности AAA-сервера.
Защита от физического доступа
Советы от Капитана Очевидность, но не так уж редко данными мерами пренебрегают:
Тут подробнее. Режим ROMmon становится недоступным. Если далее при загрузке инициировано прерывание (для Putty Ctrl-Breake), то будет предложено подтвердить действие, после чего конфигурация стирается, сервис восстановления пароля включается и устройство загружается с дефолтной конфигурацией. Важный момент: если Flash не содержит работоспособный IOS (повреждён/удалён), тогда что называется приплыли. Если действие прерывания при загрузке не подтверждено, то устройство загружает как обычно и сервис восстановления пароля остаётся выключенным. Зачем всё это нужно? Чтобы не дать доступ к текущей конфигурации.
Повышение безопасности пароля
Данные команды оставлены в современных версиях IOS лишь для обратной совместимости.
Алгоритмы хеширования пароля
Хеш MD5 больше не считается безопасным для хеширования паролей управления. Если железка новая, IOS 15.3(3)M или новее, то доступны более совершенные алгоритмы хеширования:
Если нужно поставить на новое устройство пароль с другого устройства, то можно посмотреть готовый хеш в конфигурации и использовать его (вместе с соответствующей цифрой):
Алгоритм хеширования выбирается с помощью algorithm-type:
Хеш MD5 — type 5, SHA256 — type 8 и Scrypt — type 9 (самый устойчивый к взлому). Если не указывать algorithm-type, будет по умолчанию использован MD5. Алгоритмы хеширования доступны как для команды enable, так и для команды username.
Защита линий подключений
Сессия с хоста отличного от 192.168.1.11 будет прервана на этапе открытия:
Команда exec timeout 0 0 или no exec-timeout отключает завершение сеанса при бездействии и иногда удобно ей пользоваться. Например, в лабах. Тут её надо вешать на консоль.
Честно говоря не знаю когда это может потребоваться. Её нужно использовать обязательно с командой, предупреждающей что будет разрыв соединения:
Протокол Telnet передаёт инфу (включая пароль) открытым текстом и поэтому от использования данного протокола нужно отказаться на всех сетевых устройствах.
Чтобы была возможность настроить SSH у устройства должна присутствовать поддержка криптографии, которая обеспечивается на уровне прошивки. Указание на возможность использования криптографии для старых прошивок (12.XX) является приставка k9 в названии прошивки:
Для новых прошивок криптография есть по умолчанию. Посмотреть на устройстве можно используя команду show version.
Команда ip ssh time-out задаёт период, в течении которого пользователь должен ввести реквизиты для входа, по умолчанию 120 секунд, возможность настройки от 1 до 120 секунд. После входа в систему работают уже настройки таймаута для VTY.
Команда ip ssh authentication-retries задаёт количество попыток до ввода правильных реквизитов, по умолчанию 3, возможность настройки от 0 до 5.
Просмотреть текущие подключения SSH команда show ssh, посмотреть общую информацию о SSH команда show ip ssh, посмотреть информацию о ключах команда show crypto key mypubkey rsa.
Кроме всего этого устройства CISCO позволяют устанавливать SSH-соединение с одного устройства на другое. При этом настройка SSH на устройстве, которое инициирует подключение, не требуется:
Также следует учитывать количество линий VTY, для маршрутизатора их обычно по умолчанию 5, а для коммутатора 16. Как правильно сказано в комментарии к статье можно включить для маршрутизатора оставшиеся линии, но.. в конфе по умолчанию для маршрутизатора vty 0 4, для коммутатора vty 0 4 и vty 5 15.
Не то чтобы часто, но встречаю примеры настройки, когда человек забыл или не знал, что на коммутаторе линий VTY больше и выполнил настройку SSH только для линий 0 4, а линии 5 15 имеют старую настройку для Telnet с каким-то простым паролем в явном виде. Тогда работает следующий трюк, быстро открываем 5 сессий SSH без ввода реквизитов, просто окна (они прицепятся к линиям 0-4), затем ещё 1 сессию Telnet (линия 5), вводим этот простой пароль и.. удачный логин!
Вряд ли кто-то, кто, допустим, увидел случайно конфигурацию этого коммутатора на мониторе будет так делать (и догадается так сделать), но само по себе такое возможно.
Скрин текста из последней официальной версии CCNA Security:
Улучшения процесса входа в систему
А что делать, если на устройствах настроены уровни привилегий, подключается довольно больше число пользователей для выполнения разных по сути задач? При этом число хостов, с которых происходит подключение тоже большое и настройка списка доступа ACL для линий VTY с указанием IP всех этих хостов скорее неудобство, чем достоинство. С другой стороны отсутствие списка ACL позволяет подключаться с любого хоста и использовать сколько угодно попыток для входа. Как защититься от атаки? Кроме того, применение сложных и длинных паролей это хорошо, но само по себе также не может предотвратить атаку на взлом/подбор пароля.
Улучшенные возможности входа позволяют достаточно замедлить атаку. Тут есть некоторые ограничения:
Команда login block-for обеспечивает защиту как от DoS-атак, так и от попыток взлома пароля и работает 2 режимах:
Чтобы обеспечить доступ администратора к устройству на период режима тишины, применяется список ACL с указанием IP адресов административных хостов с помощью команды login quiet-mode access-class. Как же так? Мы отказались от использования ACL на линиях VTY, стали использовать дополнительные методы для защиты и опять ACL. Получается притянуто за уши и логически несвязно. На самом деле здесь используется небольшое число IP административных хостов, которые гарантированно должны иметь доступ.
Сразу после применения команды login block-for между попытками входа включается задержка в 1 секунду, что уже хорошо. Задержку можно увеличить с помощью команды login delay. Пример конфигурирования:
Чтобы проверить настройки команды login block-for используется команда show login:
Помимо этого команда показывает текущий режим работы (Normal-Mode или Quiet-Mode), время до конца текущего периода наблюдения и количество неудачных попыток входа в текущем периоде наблюдения для Normal-Мode, время до окончания режима тишины для Quiet-Mode.
Внеполосное управление
Существует 2 варианта трафика между хостом администратора и управляемым устройством:
OOB конечно же предпочтительнее и если для внутриполосного управления незащищённые протоколы управления и мониторинга представляют опасность, то для OOB это компромиссное решение. Изначально OOB рассматривалась как отдельная физическая сеть для целей управления. Может где-то так и реализовано, но это чрезвычайно сложно и дорого. Обычно используют выделенный Management-VLAN. Хорошая практика, но в случае большой сети также сложно реализуемо.
Подводим итог: лучше всего выделять под управление отдельную подсеть, затем администраторы подсоединяются к этой сети на рабочем месте или удалённо и уже из неё работают. Доступ к оборудованию ограничивается только на эту подсеть. Тогда всех проблем из раздела «Улучшения процесса входа в систему» можно легко избежать.
Неудачные попытки входа
Для генерации Syslog-сообщения об удачных и неудачных попытках входа применяются команды login on-success log и login on-failure log. В конце каждой команды неявно присутствует параметр every login равный 1, который означает, что сообщение будет генерироваться при каждом удачном/неудачном входе. Параметр можно указать в явном виде, диапазон от 1 до до 65535.
Данные команды являются частью улучшения входа в в систему и должны вводиться после команды login block-for.
Команда show login failures даёт дополнительную информацию о неудачных попытках входа.
Баннер при входе в систему
Рекомендуется к обязательному применению. Зачем? Если кто-то будет пойман на попытках взлома, то ему будет тяжелее отвертеться. Обычный, рядовой пользователь может случайно открыть сессию к устройству, нужно ему в явном виде указать, что не надо сюда пытаться зайти. Не рекомендуется использовать слова типа Welcome.
Баннер задаётся командой banner motd, начало и конец баннера могут быть отмечены любым символом, главное чтобы он не встречался в тексте баннера (в примере *):
Кроме общего баннера MOTD (Message Of The Day) существуют и другие:
Защита конфигурации
Конфигурацию устройств нужно бекапить, на случай поломки устройства. Имея под рукой текущую конфигурацию легко её применить на аналогичное работоспособное устройство.
$H-$T.cfg шаблон для файла, где $H – имя устройства, и $T – текущее время. Для просмотра отправленных копий используется команда show archive. Для роутеров нужна дополнительная строчка:
Резервные копии будут сохраняться на TFTP сразу после выполнения команды write memory. Те, кому такой вариант не нравится, могут воспользоваться расписанием:
Как видно из примера также требуется установка точного времени, возвращаемся к вопросу о NTP. Посмотреть задания можно с помощью команды show kron schedule.
При этом возможно копирование как сервера, так и на сервер конечно:
Нужно точно указывать реквизиты, сервис SCP должен быть указан с двоеточием (как scp:), иначе команда воспримет это как обращение к локальному файлу, а Flash может называться flash: или flash0: и так далее.
Защита IOS
Защищенные файлы не видны из CLI, как будто их и нет. Сохранение файлов только локально, хранение защищённых файлов на вешних источниках не предусмотрено. Используется команда show secure bootset, чтобы просмотреть информацию. Если используется secure boot-config и при загрузке устройства обнаруживается несоответствие текущего конфига сохранённому, то подгружается сохранённый. Аналогично и для secure boot-image. Чтобы обновить защищённые файлы нужно выполнить команды повторно. Если функция включена, то отключить её можно только через сеанс консоли. Восстановление защищённого образа IOS происходит через режим ROMmon:
Восстановление защищённого образа конфига:
Рекомендуется защищённый SNMPv3, хотя по факту он не так уж и часто используется. Чтобы хоть как-то обезопасить SNMPv2, нужно использовать ACL:
Это конечно не сделает сообщения между устройством и SNMP-сервером шифрованными, но лучше чем ничего.
Отключение лишних сервисов
Относится в первую очередь к граничным маршрутизаторам, то есть тем, которые смотрят в интернет. Сервисы нужно отключать чтобы снизить область возможных DoS-атак, да и ресурсы они тоже потребляют.
Сервисы
В устройствах CISCO множество сервисов, которые включены по умолчанию:
Большую часть этих сервисов рекомендуется отключать:
Глобальные настройки
Как минимум нужно отключать в режиме глобальной конфигурации:
На интерфейсах
Необходимо выключать неиспользуемые порты и интерфейсы. На интерфейсах необходимо выключать:
Данные манипуляции легко выполнить с помощью AutoSecure.
Функция AutoSecure
Выполняется AutoSecure с помощью команды auto secure и может быть настроена с помощью опций.
Интерактивный или автоматический режим:
Выполнение только для плоскости менеджмента или для плоскости передачи данных:
Для отдельных сервисов:
Важно обратить внимание, что что команда выполняется из привилегированного режима. Пример результата работы команды auto secure management перед применением в конфигурацию для роутера без подключения к интернету:
Очевидно, что результат работы не идеален, как минимум нужно оставить для линий VTY только SSH, убрать все команды содержащие password, но в целом можно пользоваться как начальным шаблоном для ускорения процесса настройки.
Auto secure firewall
Раз уж заговорили про команду auto secure, то нельзя не сказать про результат работы команды auto secure firewall. Хотя файрвол относится к защите Data Plane, но нужно отметить: очень быстро настраивается CBAC-файрвол. Это удобно для тех роутеров, где старая прошивка и нет ZBF-файрвола.
Пример. Результат выполнения auto secure firewall, интерфейс GigabitEthernet 0/1 смотрит в интернет:
Нужно обратить внимание, что весь трафик, который будет инициирован из вне, запрещён на внешнем интерфейсе фильтром ip access-list extended autosec_firewall_acl. Единственный разрешенный трафик bootpc (насколько понимаю, чтобы была возможность авто-получения IP от провайдера для данного интерфейса). Это никуда не годится. Для нормальной работы фильтр нужно сильно дополнять разрешающими правилами. Что конкретно разрешать зависит от применения роутера. А дырки для обратного трафика файрвол будет пропиливать в этом фильтре динамически.
Пример. Разрешить работу IPSec VPN между роутерами R1 (172.16.1.1/30) и R2 (172.16.1.2/30). Чтобы прошла фаза обмена информацией IKE разрешаем порт UDP 500 (правило 1), чтобы проходили шифрованные пакеты ESP разрешаем порт IP 50 (правило 2). Также удобно чтобы роутеры друг друга пинговали (правило 3). Для R1 (для R2 симметрично):
Поскольку пакеты ESP не содержат UDP или TCP заголовка, а только зашифрованную нагрузку, то ESP не сможет работать в каких-то конкретных реализациях через каких-то провайдеров. В частности, ESP не умеет работать напрямую через NAT. В этих случаях пакеты ESP надо заворачивать в UDP, который уже гарантированно будет доставлен. Делается это с помощью NAT-Traversal (NAT-T, обход NAT). Фильтр при этом видоизменяется в следующий:
Infrastructure ACL
Ну и раз заговорили, что граничный роутер, смотрящий в интернет, снаружи нужно защищать ACL, то CISCO называет такой ACL — Infrastructure ACL. В этом ACL в явном виде должны быть пропилены дырки для некоторых сервисов. Варианта тут 2:
Пример Infrastructure ACL от CISCO (вариант 1, из официального гайда к экзамену 300-101 Route):
Это такая рыба, которую дорабатывать и дорабатывать. Фрагментированные пакеты запрещены, так как это уязвимость. Трафик к внутренним сетевым адресам запрещён, так как работает NAT.
В реалиях всё может быть по-другому. Пример боевого ACL (совместно с CBAC). Насколько он плох или хорош.. люди пользуются:
Широко задействованы группы object-group.
Заключение
В задачи статьи не входило рассмотреть все доступные методы защиты, а только простые и легкореализуемые и то очень выборочно. Использование этих методов поможет повысить безопасность сетевых устройств CISCO.