Маршрутизаторы Cisco Systems и их конфигурирование
Rambler's Top100
Pyramids Telecomm
Главная Архив статей Теория, практика, примеры конфигураций Словарь терминов

Безопасность маршрутизаторов Cisco Systems

Вам знакомы эти термины: безопасность, межсетевой экран, система защиты, безопасность в Internet ? Наверняка Вы часто встречаете их на страницах популярных сайтов, в почтовых рассылках, на страницах журналов и т.д. Большая часть тем посвящена настройкам межсетевых экранов, защите серверов локальной сети на уровне операционной системы и приложений, защите хостов (компьютеров) при работе в Internet. Но очень мало внимания уделяется настройке маршрутизаторов.

Маршрутизатор - это "первая линия обороны" нашей корпоративной сети непосредственно соприкасающаяся с Internet. Они часто применяются в качестве ключевых элементов в системах защиты сетей (например, firewall для фильтрации пакетов и ограничения прохождения определенного IP -трафика). Наиболее широко распространенным сейчас является оборудование фирмы Cisco Systems, которое благодаря различной реализации своей "фирменной" операционной системы Cisco IOS может приобретать свойства, необходимые администраторам. Например, существует версия IOS, называемая Firewall Feature Set, включающая в себя функции межсетевого экранирования и встроенные средства обнаружения вторжений (IDS - Intrusion-Detection Systems). В данном материале я не буду рассматривать подобные версии IOS. Большая часть маршрутизаторов использует другие операционные системы Cisco IOS, отличающихся друг от друга некоторыми особенностями, но имеющих стандартные настройки. Их неправильная конфигурация может стать причиной нарушения безопасности действующей системы со всеми вытекающими последствиями.

Рассмотрим основные пункты конфигурации маршрутизатора, определяющие его защищенность:

    Установки "по умолчанию"
    Пользовательский и привилегированный уровни доступа
    Парольная защита
    Списки доступа (access control lists)
    Ограничение доступа к маршрутизатору


Установки "по умолчанию"

Особенностью (не очень удобной) операционной сисмемы Cisco IOS является вывод параметров настройки конфигурации на консоль пользователя. Те настройки, которые заданы "по умолчанию", не отображаются при выводе текущей конфигурации маршрутизатора. Их отображение происходит только при отмене данных настроек. К тому же настройки "по умолчанию" меняются в зависимости от версии IOS.
Например, в IOS 11.2 сервисы "udp-small-servers" и "tcp-small-servers" включены по умолчанию. Но строк, подтверждающих это, в конфигурации мы не увидим. При отключении этих сервисов в конфигурации появятся следующие строки:

При переходе к версии IOS 11.3 сервисы "udp-small-servers" и "tcp-small-servers" уже выключены по умолчанию и в конфигурации не отображаются. И при их включении мы увидим следующее:

Поэтому при изменении операционной системы в маршрутизаторе следует уделить большое внимание отличиям нового IOS от предыдущего, а также проанализировать конфигурацию на наличие "появившихся" и "исчезнувших" строк, чтобы заблаговременно предотвратить возможность появления бреши в безопасности сети и маршрутизатора. При глобальной смене IOS (например, с версии 11 на версию 12) лучше перепроверить реализацию всех функций и сервисов, используемых маршрутизатором. Даже при смене версии IOS 12.1 на 12.2 в мае 2001 года у меня в конфигурации в разных местах появились следующие строки:

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

Пользовательский и привилегированный уровни доступа

Cisco IOS для конфигурации маршрутизатора поддерживает интерфейс командной строки, работать с которым можно с терминала, подключенного к маршрутизатору через консольный порт (Console port) или с помощью удаленного доступа по модему и telnet - соединения по сети. Сеанс командной строки называется EXEC-сессией.

В целях безопасности Cisco IOS обеспечивает два уровня доступа к интерфейсу командной строки: пользовательский и привилегированный. Пользовательский уровень называется user EXEC режим, а привилегированный privileged EXEC режим.
Предусмотрено 16 уровней привилегий: от 0 до 15. На нулевом уровне доступно всего пять команд: disable, enable, exit, help, logout. На уровне 15 доступны все возможные команды.

Вид командной строки имеет вид Router>
Этот режим позволяет временно изменить настройки терминала, выполнить основные тесты, просмотреть системную информацию и подключиться к удаленному устройству. Пользовательский режим по умолчанию имеет первый уровень привилегии. Набор команд существенно ограничен. Для перехода на другой уровень привилегий необходимо ввести команду enable [номер уровня], например

Команды enable и enable 15 являются аналогичными и приводят пользователя на привилегированный уровень.

Вид командной строки в имеет вид Router#
Набор привилегированных команд устанавливает параметры работы системы. Пользователь имеет доступ к командам глобального конфигурирования и специальным конфигурационным режимам.

Возможности пользовательского режима с первым уровнем привилегий достаточно широкие. Из этого режима возможно выполнение "опасных" команд, таких как telnet, connect, tunnel, login и совсем не нужных для некоторых пользователей команд traceroute, enable, mstat, mrinfo, а также команд группы show: show hosts, show versions, show users, show flash: и многие другие.

Права пользователей можно тонко настраивать: любому пользователю можно назначить определенный уровень при входе в маршрутизатор, любую команду можно перевести на уровень, отличный от стандартного. В свое время у нас возникла задача создания пользователя с минимальными возможностями: запрет команды enable, всех команд группы show и единственной разрешенной командой telnet. Это возможно реализовать следующим образом:

1. Создадим пользователя cook с нулевым уровнем привилегий

2. Работать это будет только тогда, когда прописать следующее

После регистрации пользователь с именем cook по команде ? (список доступных команд) увидит перечень:

Router>?
Exec commands:
     <1-99>   Session number to resume
     disable  Turn off privileged commands
     enable   Turn on privileged commands
     exit     Exit from the EXEC
     help     Description of the interactive help system
     logout   Exit from the EXEC

Router>

3. Команду enable переведем на уровень выше (на уровень 1), а выполнение команды telnet разрешим для нулевого уровня

К данным командам действует некоторое исключение - их действие нельзя отменить при помощи стандартной команды no. Этот вариант здесь не проходит.

Для отмены действия этих команд необходимо ввести следующие команды:

Сейчас после регистрации пользователь cook по команде ? увидит следующее:

Router>?
Exec commands:
     <1-99>   Session number to resume
     disable  Turn off privileged commands
     exit     Exit from the EXEC
     help     Description of the interactive help system
     logout   Exit from the EXEC
     telnet   Open a telnet connection

Router>

Проделав все операции, получили пользователя с заранее заданными возможностями.

Существует такой тип пользователей, для которых необходимо зарегистрироваться на маршрутизаторе и выполнить одну единственную команду (например, show users). Для этого можно завести на маршрутизаторе пользователя с входом без пароля и с выполнением автокоманды.

После ввода имени пользователя dream на экран выдается информация о присутствующих в данный момент на маршрутизаторе пользователях.

Парольная защита

В соответствии с имеющимися пользовательским и привилегированным уровнями доступа существует два вида паролей: username password и enable secret (или enable password). Оба типа этих паролей могут иметь длину до 25 символов, содержать в себе различные знаки препинания и пробелы.

Пароль типа username password устанавливается с соответствующим ему именем пользователя. Задается это в режиме конфигурации следующей командой (пользователь cook с паролем queen):

При выводе конфигурации (при помощи команды show running-config) на экране мы увидим следующую информацию:

Из этой строки видим, что пароль находится в "открытом виде", тип "0" означает "незашифрованный пароль". Если внимательно посмотреть самое начало конфигурации, то можно заметить следующую строку:

Это сервис шифрования видимой части пароля. По умолчанию он отключен. Правильным считается (для обеспечения безопасности - от простейшего подглядывания) включать этот сервис.

Тогда строка конфигурации об имени и пароле пользователя будет иметь несколько другой вид, где мы уже не видим текст пароля в явном виде (тип "7" - зашифрованный пароль):

Для входа в privileg EXEC level (привилегированный уровень) пользователь должен ввести пароль. При выключенном сервисе шифрования пароля соответствующая строка в конфигурации будет иметь вид:

При включенном же сервисе шифрования:

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

Лучшая возможность имеется для шифрования пароля к привилегированному уровню - использование не enable password, а enable secret, в котором для кодирования пароля применяется алгоритм MD5 (тип "5"):

Строка конфигурации:

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

Ограничение доступа к маршрутизатору

Управлять маршрутизаторами можно удаленно через telnet или локально через консольный порт или порт AUX. Отсюда следует два вида ограничения доступа к маршрутизатору: локальное и удаленное.

Во-первых, необходимо специальное помещение с ограничением доступа для персонала, в котором бы находилось оборудование. Это рекомендуется для того, чтобы посторонний человек не имел физический доступ к маршрутизатору, т.к. при работе с маршрутизатором через консольный порт или порт AUX мы работаем в EXEC сессии без пароля на уровне обычного пользователя. И для получения доступа к привилегированному режиму посторонний человек может воспользоваться самым простым методом восстановление паролей - перезагрузка маршрутизатора, вход в режим ROM-монитора, изменение значения регистра конфигурации, снова перезагрузка маршрутизатора и элементарный вход в привилегированный режим без всякого пароля (вообще-то, это стандартный метод восстановления забытого пароля для доступа в privileg EXEC mode, но вот может использоваться и для совершенно противоположной цели).

Если физический доступ к маршрутизатору не может быть достаточно ограничен, то необходимо установить пароль на работу в EXEC режиме по консольному порту и порту AUX. Вообще это лучше делать всегда, даже когда маршрутизатор находится в закрытом помещении под десятью замками (а вы уверены в своих коллегах?). Делается это достаточно просто и существует миниму два оптимальных варианта: совсем запретить вход в привилегированный режим или разрешить вход с нормальной авторизацией через пароль.

Пример конфигурации, в которой для консольного порта разрешен вход через пароль с временем работы на порту в течении 1,5 минут, а для порта AUX запрещен вход EXEC режим:

В этой конфигурации при подсоединении к консольному порту мы не сразу попадем в user EXEC режим как это происходит обычно, а только после ввода пользовательского имени и пароля. Хочу заметить, что в параметрах команды exec-timeout время задается в минутах и секундах (через пробел), но если мы захотим указать 0 минут и 0 секунд (exec-timeout 0 0), то это не означает, что совсем нельзя будет попасть на данный порт. А как раз наоборот - пользователь будет находиться в EXEC режиме бесконечно долго. Это нужно обязательно учитывать администраторам при конфигурации маршрутизатора. Самое минимальное время - 1 секунда (exec-timeout 0 1).

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

1. Полное запрещение доступа по telnet к маршрутизатору

2. Доступ к маршрутизатору по telnet разрешен только с определенного хоста (создадим расширенный список доступа и применим его к интерфейсу Ethernet 0/0)

Необходимо заметить, что в списке доступа в структуре "от кого - кому" в качестве "кому" прописан IP адрес интерфейса Ethernet 0/0. А так же то, что при данной конфигурации через Ethernet 0/0 больше никто никуда не попадет, отсекаемый неявным оператором deny any. Поэтому нужно будет дополнить список доступа необходимыми "разрешениями".

Главная Архив статей Теория, практика, примеры конфигураций Словарь терминов
Rambler's Top100 TopList be number one нЕУОСКФ НЕЗЪНЗЛЮ ъНВИWeb

Created 2001 by Евгений
Copyright Pyramids Telecomm 2001