img

Повышаем безопасность коммутаторов и маршрутизаторов Cisco

21 ноября
20:00
Бесплатный вебинар
Введение в Docker
Ведущий — Филипп Игнатенко.
Руководитель центра разработки
Записаться
img
img

Сетевая инфраструктура (роутеры, коммутаторы, МСЭ, АТС и так далее) являются очень важными ресурсами организации, и поэтому очень важно корректно настроить доступ к данным устройствам – для достижения нужного уровня защиты.

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

К примеру, скомпрометированный маршрутизатор может доставить гигантское количество проблем – злоумышленники могут получить доступ к информации, трафик может улетать на другое направление и так далее. Так что корректная настройка устройств с точки зрения сетевой безопасности является крайне важным моментом при обеспечении защиты информации вашей организации.

К примеру Cisco разделяет любое сетевое устройство на 3 функциональных плоскости, а именно:

  • Плоскость менеджмента – это все о том, как непосредственно управлять железкой. То есть данная плоскость используется для доступа, настройки и мониторинга устройства. В нашей статье мы непосредственно расскажем, как защитить данную плоскость;
  • Плоскость управления – данная плоскость содержит в себе сигнальные протоколы и процессы, которые отвечают за связность между устройствами – например такие известные вам протоколы как OSPF, EIGRP и так далее;
  • Плоскость данных – плоскость, ответственная за перемещение информации по сети от источника до ее назначения. В данной плоскости и происходит, как правило, обмен пакетами между устройствами;

Из этих трех плоскостей наиболее защитить первую и вторую плоскости, однако в нашей статье мы сконцентрируемся на плоскости менеджмента и обсудим 10 важных шагов по улучшению защищенности сетевого устройства Cisco с IOS.

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


Создание секретного пароля

В целях предоставления доступа к IOS устройству только людям, имеющим право (например, сисадмину/эникею/инженеру) всегда нужно создавать сложный «секретный» пароль (enable secret). Мы советуем придумать/сгенерировать пароль минимум 12 знаков, содержащий цифры, буквы и специальные символы. Проверьте, что вы вводите именно

enable secret
- тогда в конфиге пароль будет отображаться в зашифрованном виде.

Router# config terminal
Router(config)# enable secret сложныйпароль

Зашифруйте пароли на устройстве

Все пароли, настроенные на устройстве (за исключением «секретного»), не шифруются от слова совсем и легко видны в конфиге. Чтобы зашифровать все пароли в конфиге, необходимо использовать глобальную команду

service password encryption

Router# config terminal
Router(config)# service password-encryption

Используйте внешний сервер авторизации для аутентификации пользователей

Вместо использования локальных учетных записей на каждом устройстве для доступа администратора, мы рекомендуем использование внешнего AAA сервера (TACACS+ или RADIUS) для обеспечения Аутентификации, Авторизации и Учета (вольный перевод Authentication, Authorization, Accounting).

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

Ниже на схеме вы можете видеть как настроить TACACS+ и RADIUS серверы с использованием enable secret пароля в случае отказа этих серверов.

Диаграмма сети и сценарий при доступа к настройке устройства с использованием AAA сервера
TACACS+
Router# config terminal
Router(config)# enable secret K6dn!#scfw35    //создаем “секретный ” пароль
Router(config)# aaa new-model   //включаем ААА службу
Router(config)# aaa authentication login default group tacacs+ enable  //Используем TACACS сервер и обычный пароль на случай отказа
Router(config)# tacacs-server host 192.168.1.10 //указываем внутренний ААА сервер
Router(config)# tacacs-server key ‘secret-key’ //указываем секретный ключ для ААА сервера
Router(config)# line vty 0 4  
Router(config-line)# login authentication default //применяем ААА аутентификацию для линий удаленного доступа (telnet, ssh)
Router(config-line)# exit
Router(config)# line con 0 //применяем ААА аутентификацию для консольного порта
Router(config-line)# login authentication default
RADIUS
Router# config terminal
Router(config)# enable secret K6dn!#scfw35    //создаем “секретный ” пароль 
Router(config)# aaa new-model   //включаем ААА службу
Router(config)# aaa authentication login default group radius enable  //Используем RADIUS сервер и обычный пароль на случай отказа
Router(config)# radius-server host 192.168.1.10 //указываем внутренний ААА сервер
Router(config)# radius-server key ‘secret-key’ //указываем секретный ключ для ААА сервера
Router(config)# line vty 0 4  
Router(config-line)# login authentication default //применяем ААА аутентификацию для линий удаленного доступа (telnet, ssh)
Router(config-line)# exit
Router(config)# line con 0 //применяем ААА аутентификацию для консольного порта
Router(config-line)# login authentication default

Создайте отдельные аккаунты для пользователей

Если у вас отсутствует возможность использовать внешний ААА сервер, по инструкции, описанной в предыдущем шаге, то как минимум, вам необходимо создать несколько отдельных локальных аккаунтов для всех, у кого должен быть доступ к устройству. Приведем пример создания трех локальных аккаунтов для троих системных администраторов.

Кроме того, в версии IOS начиная с 12.2(8)T и позднее, есть возможность настроить повышенную надежность паролей (Enhanced Password Security) для локальных учетных записей – это зашифрует пароли с помощью MD5 хэша.

Ниже пример настройки трех учетных записей:

Router# config terminal
Router(config)# username efstafiy-admin secret Lms!a2eZf*%_rete
Router(config)# username evlampiy-admin secret d4N3%sffeger
Router(config)# username vova-admin secret 54sxSFT*&_(!zsd

Настройте лимит возможных попыток подключения

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

Router# config terminal
Router(config)# username john-admin secret Lms!a2eZSf*% 
Router(config)# aaa new-model
Router(config)# aaa local authentication attempts max-fail 5  //max 5 failed login attempts
Router(config)# aaa authentication login default local

Открытие доступа на управление устройством только для определенных IP – адресов

Данный пункт является одним из наиболее важных для сетевых устройств Cisco – необходимо оставить доступ к Telnel или SSH только для определенных сетевых адресов (например, рабочей станции системного администратора). В нашем примере сисадмин находится в пуле 192.168.1.0/28

Router# config terminal
Router(config)# access-list 10 permit 192.168.1.0 0.0.0.15
Router(config)# line vty 0 4
Router(config)# access-class 10 in  //применить ограничения на все VTY линии (SSH/Telnet)

Включить логирование

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

Всего существует 8 уровней логирования (от 0 до 7), каждый из которых делает лог более насыщенным деталями. Лучше всего избегать 7 уровень логирования (дебаг), т.к это может легко потратить все ресурсы вашего устройства.

Ниже пример, как включить логирование и на внешний сервер, и на сам девайс (можно использовать два варианта одновременно).

Router# config terminal
Router(config)# logging trap 6  //Включить 6 уровень логирования для логов, отправляемых на внешний сервер
Router(config)# logging buffered 5  //Включить 5 уровень логирования для логов, хранимых на самом девайсе
Router(config)# service timestamps log datetime msec show-timezone  //Включить таймстампы с милисекундной точностью
Router(config)# logging host 192.168.1.2 //Отправлять логи на внешний сервер
Router(config)# logging source-interface ethernet 1/0  //Использовать интерфейс Eth1/0 для отправки логов

Включение NTP (Network Time Protocol)

Данный шаг необходим для корректной работы логирования – т.к вам необходимо синхронизированное и точное системное время на всех сетевых устройствах, для правильного понимания ситуации при траблшутинге. Вы можете использовать как публичный, так и свой собственный NTP cервер.

Router# config terminal
Router(config)# ntp server 3.3.3.3
Router(config)# ntp server 4.4.4.4

Использование безопасных протоколов управления

По умолчанию, протоколом, с помощью которого можно управлять устройством является Telnet. Однако весь трафик передается в незашифрованном виде – поэтому предпочтительно использовать SSH.

Важно – для использования SSH необходимо настроить хостнейм и доменное имя, а также сгенерировать SSH ключи. Также следует разрешить только протокол SSH на VTY линиях

Защитить SNMP доступ

Про SNMP мы писали в одной из наших статей – это протокол для управления сетью, который, однако, также может служить «дырой» для доступа в вашу сеть. Для защиты данного направления, вам необходимо установить сложную Community String (что-то вроде пароля для SNMP) и разрешить доступ только с определенных рабочих станций.

Давайте настроим две Community String – одну с правами на чтение, и другую с правами на чтение и изменение. Также добавим ACL с нужными сетевыми адресами.

Router# config terminal
Router(config)# access-list 11 permit 192.168.1.0 0.0.0.15
Router(config)# access-list 12 permit 192.168.1.12
Router(config)# snmp-server community Mer!0nET RO 11 //создание community string с правами на чтение и использование ACL 11 для SNMP доступа
Router(config)# snmp-server community Mer!0NeTRules RW 12 //создание community string с правами на чтение/запись и использование ACL 12 для SNMP доступа

Команды выше позволят сети сисадмина 192.168.1.0/28 иметь доступ на чтение и хосту 192.168.1.12 иметь полный доступ на SNMP чтение / запись к устройствам.

Ссылка
скопирована
Получите бесплатные уроки на наших курсах
Все курсы
DevOps
Скидка 25%
DevOps-инженер с нуля
Научитесь использовать инструменты и методы DevOps для автоматизации тестирования, сборки и развертывания кода, управления инфраструктурой и ускорения процесса доставки продуктов в продакшн. Станьте желанным специалистом в IT-индустрии и претендуйте на работу с высокой заработной платой.
Получи бесплатный
вводный урок!
Пожалуйста, укажите корректный e-mail
отправили вводный урок на твой e-mail!
Получи все материалы в telegram и ускорь обучение!
img
Еще по теме:
img
В начале 2000-х, когда идея мессенджеров только формировалась, расширяемый протокол обмена сообщениями и информацией о присутств
img
Задержка в сети, или сетевая задержка, - это временная задержка при передаче запросов или данных от источника к адресату в сетев
img
Система доменных имен (DNS – Domain Name System) обеспечивает сетевую коммуникацию. DNS может показаться какой-то невидимой сило
img
Wi-Fi это технология, которая использует радиоволны для отправки и получения сигналов от находящихся поблизости устройств, чтобы
img
BGP (Border Gateway Protocol) - это протокол граничного шлюза, предназначенный для обмена информацией о маршрутизации и доступно
img
Когда читаете данную статью, браузер подключается к провайдеру (или ISP) а пакеты, отправленные с компьютера, находят путь до се
21 ноября
20:00
Бесплатный вебинар
Введение в Docker