![]() |
Pyramids Telecomm |
| Главная | Архив статей | Теория, практика, примеры конфигураций | Словарь терминов |
Вам знакомы эти термины: безопасность, межсетевой экран, система защиты, безопасность в 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" включены
по умолчанию. Но строк, подтверждающих это, в конфигурации мы не увидим. При
отключении этих сервисов в конфигурации появятся следующие строки:
version 11.2 no service udp-small-servers no service tcp-small-servers
При переходе к версии IOS 11.3 сервисы "udp-small-servers" и "tcp-small-servers" уже выключены по умолчанию и в конфигурации не отображаются. И при их включении мы увидим следующее:
version 11.3 service udp-small-servers service tcp-small-servers
Поэтому при изменении операционной системы в маршрутизаторе следует уделить большое внимание отличиям нового IOS от предыдущего, а также проанализировать конфигурацию на наличие "появившихся" и "исчезнувших" строк, чтобы заблаговременно предотвратить возможность появления бреши в безопасности сети и маршрутизатора. При глобальной смене IOS (например, с версии 11 на версию 12) лучше перепроверить реализацию всех функций и сервисов, используемых маршрутизатором. Даже при смене версии IOS 12.1 на 12.2 в мае 2001 года у меня в конфигурации в разных местах появились следующие строки:
no service single-slot-reload-enable
dial-peer cor custom
call rsvp-sync
no eigrp log-neighbor-changes
О назначении этих операторов можно только догадываться, но потребуется какое-то время. А где гарантия, что за ними не скрывается нарушение безопасности и вообще стабильной работы маршрутизатора.
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 режим:
aaa new-model
aaa authentication login default local
line con 0
exec-timeout 1 30
line aux
no exec
В этой конфигурации при подсоединении к консольному порту мы не сразу попадем в user EXEC режим как это происходит обычно, а только после ввода пользовательского имени и пароля. Хочу заметить, что в параметрах команды exec-timeout время задается в минутах и секундах (через пробел), но если мы захотим указать 0 минут и 0 секунд (exec-timeout 0 0), то это не означает, что совсем нельзя будет попасть на данный порт. А как раз наоборот - пользователь будет находиться в EXEC режиме бесконечно долго. Это нужно обязательно учитывать администраторам при конфигурации маршрутизатора. Самое минимальное время - 1 секунда (exec-timeout 0 1).
Удаленное ограничение доступа к маршрутизатору
Обычно рекомендуется совсем запрещать удаленный доступ к маршрутизатору по telnet или же жестко ограничивать его. Достичь этого можно благодаря применению списков доступа.
1. Полное запрещение доступа по telnet к маршрутизатору
access-list 1 deny any
line vty 0 4
access-class 1 in
2. Доступ к маршрутизатору по telnet разрешен только с определенного хоста (создадим расширенный список доступа и применим его к интерфейсу Ethernet 0/0)
access-list 101 permit tcp host 140.11.12.73 host 140.11.12.236 eq telnet
interface Ethernet0/0
ip address 140.11.12.236 255.255.255.0
ip access-group 101 in
Необходимо заметить, что в списке доступа в структуре "от кого - кому" в качестве "кому" прописан IP адрес интерфейса Ethernet 0/0. А так же то, что при данной конфигурации через Ethernet 0/0 больше никто никуда не попадет, отсекаемый неявным оператором deny any. Поэтому нужно будет дополнить список доступа необходимыми "разрешениями".
| Главная | Архив статей | Теория, практика, примеры конфигураций | Словарь терминов |
Created 2001 by Евгений
Copyright Pyramids Telecomm 2001