Исторически сложилось так, что пакетные маршрутизаторы разрабатывались для маршрутизации всего трафика. В некоторой степени такая особенность сохраняется и в принятой по умолчанию конфигурации современных пакетных маршрутизаторов. Но чаще всего эти устройства используются в качестве шлюза для доступа к Internet. В стандартной конфигурации многие из них уязвимы с точки зрения безопасности, особенно это касается атак по типу «отказ в обслуживании» (Denial of Service, DoS). В этой статье рассматриваются конфигурационные команды и концепция настройки фильтрации, применение которых позволяет повысить уровень безопасности стандартной конфигурации маршрутизатора Cisco. Многие сервисы можно отключить либо модифицировать без снижения его функциональности. Кроме того, обсуждаются базовая операционная система IOS и интегрированные функции брандмауэра маршрутизаторов Cisco.
РАЗМЕЩЕНИЕ МАРШРУТИЗАТОРА НА ПЕРИМЕТРЕ СЕТИ
Доступ организации к Internet обычно осуществляется путем подключения специального устройства (это может быть маршрутизатор) к глобальной сети через так называемую «точку присутствия» провайдера Internet.
Многие современные методы подключений — кабельное (сетевой доступ с помощью широкополосной линии связи), DSL (Digital Subscriber Line, высокоскоростная передача данных по медному проводу) — заканчиваются на клиентской стороне портом Ethernet (кабельный модем/маршрутизатор или модем/маршрутизатор DSL). Маршрутизатор может быть использован в точке подключения по протоколу Ethernet для обеспечения дополнительных сетевых сервисов, таких, как преобразование сетевых адресов (Network Address Translation, NAT) или динамического предоставления IP-адресов клиентам (Dynamic Host Configuration Protocol, DHCP). Многие кабельные и DSL-модемы обладают встроенными функциями маршрутизации и могут обеспечивать соединение с провайдером Internet, предоставляя дополнительные функции наподобие NAT.
Рисунок 1. Пример размещения пограничного маршрутизаторa. |
На Рисунке 1 представлены две схемы. На первой показано применение маршрутизатора в качестве оконечного устройства в точке подключения к глобальной сети. Он может находиться перед одним или несколькими другими маршрутизаторами, брандмауэрами либо иными сетевыми устройствами. На второй схеме маршрутизатор располагается в точке подключения сети малого или домашнего офиса (Small Office/Home Office, SOHO) к предоставляемому провайдером Internet кабельному или DSL-соединению.
ПАРАМЕТРЫ ГЛОБАЛЬНОЙ КОНФИГУРАЦИИ
В маршрутизаторах Cisco используются два типа параметров конфигурации: общие и интерфейсные. Общие параметры действительны для всего устройства, а интерфейсные касаются только конкретного сетевого интерфейса. В этом разделе дается определение ряда общих команд, имеющихся в большинстве версий Cisco IOS, применение которых позволит повысить общий уровень безопасности.
no ip source routе — четвертая версия IP имеет средства для включения информации о маршруте в пакет. Эта технология известна как маршрутизация от источника. Она никогда широко не применялась и уже удалена из новой версии протокола TCP/IP. Взломщики часто обращаются к ее возможностям, чтобы обойти таблицы маршрутизации устройств, и таким образом скрыть источник трафика. Данная команда заставляет маршрутизатор игнорировать пакеты с таким заголовком.
no service finger — процесс finger (указатель на детальную информацию об интересующем объекте) в маршрутизаторе подобен процессу finger в системе UNIX. Он может предоставить потенциальным взломщикам информацию, которую им не следует знать. Данная команда его отключает.
no service tcp-small-servers и no service udp-small-servers — в последних версиях IOS она применяется по умолчанию. Устройства Cisco поддерживают такие «малые» службы IP, как echo, chagren и discard. Ими легко воспользоваться, однако ввиду нечастого применения их лучше отключить.
no cdp run — протокол обнаружения Cisco (Cisco Discovery Protocol, CDP) является собственным информационным протоколом Cisco второго уровня. Предоставляемая им информация не нужна для работы маршрутизатора но может быть использована взломщиками. Однако если протокол CDP используется в вашей сети, то его можно отключить на тех интерфейсах, где он не нужен, с помощью соответствующей интерфейсной команды.
no ntp enable — синхронизирующий сетевой протокол (Network Time Protocol, NTP) может оказаться ненужным для пограничного маршрутизатора и должен быть отключен. При этом маршрутизатор не может быть ни источником, ни конечным пунктом маршрута для трафика NTP. Однако если протокол NTP все же используется в сети, то его можно отключить на тех интерфейсах, где он не нужен, с помощью соответствующей интерфейсной команды.
no ip domain-lookup — oтключает в маршрутизаторе функции поиска по DNS, которые в большинстве случаев не требуются для выполнения стандартных операций.
service password-encryption — определяет шифрование паролей, хранящихся на локальном маршрутизаторе, и обеспечивает необходимый уровень безопасности, если имеется брешь в системе защиты либо пароли скомпрометированы.
enable secret <пароль> — определяет шифрование паролей в привилегированном режиме, в отличие от команды enable password, которая разрешает передачу пароля в виде нешифрованного текста.
banner motd {char} text {char} — эта команда аналогична команде motd в операционной системе UNIX, которая выводит на экран окно с предупреждением для взломщиков о том, что они вошли в частную систему. Стандартный текст находится в действующей по умолчанию конфигурации маршрутизатора. Данная команда не обеспечивает какую-либо защиту, но может быть полезна в случае судебных разбирательств в связи со взломом сети, поэтому при создании такого баннера было бы целесообразно проконсультироваться с юридическим отделом вашей компании.
- ip tcp intercept mode intercept
- access-list 102 permit tcp any 172.30.0.0.0.0.255.255
- ip tcp intercept list 102
- ip tcp intercept max-incomplite high 200
Функция перехвата протокола TCP предоставляет возможность программной защиты серверов TCP от атак SYN flooding. Эта разновидность атак по типу «отказ в обслуживании» приводит к тому, что сервер оказывается заблокирован многочисленными запросами. Список доступа (дополнительную информацию см. далее в разделе «Списки доступа») определяет серверы и сети, от которых принимаются входящие соединения TCP. Параметр high 200 определяет максимально допустимое число открытых соединений TCP на хост. Команда может содержать много конфигурационных параметров, и ее следует применять, только если вы хорошо понимаете, какого типа трафик и соединения типичны для вашей сети.
ПАРАМЕТРЫ КОНФИГУРАЦИИ ИНТЕРФЕЙСА
Как уже говорилось в предыдущем разделе, эти параметры применяются непосредственно к сетевому интерфейсу для изменения его функции. Если не указано иное, большинство подобных команд должно применяться к внешнему по отношению к вашей сети интерфейсу маршрутизатора.
no ip redirects — отключает переадресацию протокола управляющих сообщений (Internet Control Messging Protocol, ICMP). ICMP переадресует сообщения от маршрутизатора с указанием лучшего сетевого маршрута. Такие сообщения могут быть использованы для организации атаки по типу «отказ в обслуживании».
no ip unreachables — отключает сообщения протокола ICMP о недоступности участков сети. Эти сведения маршрутизатор передает при невозможности доставить пакет адресату. Они также могут быть использованы для организации атаки по типу «отказ в обслуживании».
no ip proxy-arp — протокол разрешения адресов (Address Resolution Protocol, ARP) позволяет маршрутизатору отвечать на запросы ARP от подсетей помимо той, к которой он подключен. Для того чтобы информацией не воспользовались взломщики, такую возможность лучше отменить.
no ip mrout-cache — отключает кэш многоадресной рассылки Cisco IOS. Если рассылка не используется, то кэш для нее не нужен.
ntp disable — отключает NTP на уровне интерфейса. Это позволяет выполнять протокол NTP на маршрутизаторе, но делает его «невидимым» снаружи.
no cdp enable — отключает протокол CDP на уровне интерфейса, что очень полезно, если протокол CDP применяется только во внутренней локальной сети.
no ip directed broadcast — действует по умолчанию в IOS Version 12 и выше. Команда блокирует прямую широковещательную рассылку в конкретную сеть или ее подсеть. Появление широковещательного трафика в сети часто является признаком такой разновидности атак по типу «отказ в обслуживании», как Smurf. Этот режим хорошо бы установить на всех сетевых маршрутизаторах компании, естественно, если отсутствуют конкретные приложения, которым необходима широковещательная рассылка.
mac-address 00550.04FE.7F9C — изменяет MAC-адрес интерфейса (Burned In Address, BIA) в программном обеспечении. Это позволяет слегка повысить уровень безопасности путем введения в заблуждение злоумышленника. С помощью указанной команды можно переопределить MAC-адрес интерфейса. Так как производители сетевого оборудования назначают MAC-адреса при изготовлении устройств, изменение данного параметра поможет скрыть тип устройства, например тип вашего маршрутизатора. Обычно я беру MAC-адрес сетевого адаптера 3COM со своего компьютера. Подобная операция может запутать потенциального взломщика, а также окажется весьма полезной, если ваш поставщик услуг связи (кабельного или DSL-соединения) неодобрительно относится к использованию маршрутизаторов в его сети.
СПИСКИ ДОСТУПА
Списки доступа — наиболее важная часть процесса конфигурирования маршрутизаторов Cisco. Они предназначены для фильтрации пакетов, но могут использоваться при проверке пакетов и выполнении некоторых других функций. Основной вид списка доступа — так называемый стандартный список, когда проверяются только сетевые адреса отправителя. Расширенные списки предоставляют более широкие возможности фильтрации за счет проверки начального и конечного адресов маршрута, протокола/порта, а также битов синхронизации и квитирования SYN/ACK (при установлении соединения выставляются биты SYN и ACK). Неплохим способом повышения безопасности считается фильтрация пакетов по типам протоколов (выбираются те из них, которые наиболее часто применяются при несанкционированном вторжении), по неиспользуемым/неизвестным протоколам, а также недействительным адресам. Следующие примеры дают представление о фильтрации по известным групповым адресам. Первое описание представляет собой стандартный список доступа, второй — расширенный список, выполняющий ту же самую фильтрацию (учтите, что ! — это символ начала комментария в Cisco IOS, подобно знаку # в UNIX).
Стандартный список доступа
- access-list 10 deny 224.0.0.0 31.255.255.255
- ! групповые адреса не принимаются. Отмените их.
- ! 224.0.0.0 является началом диапазона многоадресной
- ! рассылки, а 31.255.255 указывает оставшийся
- ! диапазон адресов
- access-list 10 permit any
- ! подразумевается, что каждый список доступа
- ! заканчивается deny any («запрещено все, что не
- ! разрешено»), поэтому если это нежелательный результат,
- ! добавьте permit any («разрешено все, что не запрещено»)
Расширенный список доступа
- access-list 111 deny ip 224.0.0.0 31.255.255.255 any
- ! здесь необходимо указать протокол. (ip означает любой
- ! протокол ip) и конец каждого маршрута
- access-list 111 permit ip any any
Интерфейсная команда ip access group <номер> активизирует эти списки доступа на соответствующем интерфейсе. IOS позволяет задавать только по одному фильтру на каждом направлении (на входе или на выходе пакета). Если вы включили фильтрацию с использованием списков доступа IP, как минимум, убедитесь, что этот фильтр выполняет следующие операции фильтрации.
- Исходные адреса из диапазона частных адресов в соответствии с RFC 1918.
- Недействительные исходные адреса, например широковещательные.
- Адрес источника из внешней сети совпадает с одним из внутренних адресов.
Выполнение хотя бы минимальной фильтрации может быть полезно, даже если у вас есть брандмауэр между маршрутизатором на границе сети и внутренней сетью. Для пропуска только трафика, необходимого для работы вашей сети, могут быть разработаны более строгие фильтры. Пакетная фильтрация способна стать мощным средством безопасности. Однако пакетная фильтрация такого рода «не помнит» промежуточные состояния, поэтому маршрутизатор не «знает» о потоках, соединениях и обратном трафике. Например, если политика доступа разрабатывалась в предположении, что из вашей сети будет исходить только конкретный вид трафика, то природа пакетной фильтрации «без сохранения состояния» требует, чтобы вы проверяли и обратный трафик. Некоторые типы соединений предполагают, что пользователь устанавливает соединение вовне, а в ответ сервер инициирует соединение с пользователем (режим порта ftp, потоковое мультимедиа). Это потребует открытия «высоких» портов (больше чем 1023), а также контроля за битами TCP SYN и ACK, которые легко фальсифицировать.
Списки доступа следующего поколения — это возвратные списки доступа и контекстно-зависимые списки доступа (Context Based Access Control, CBAC). Они позволяют учитывать протоколы и функции более высокого уровня. Возвратные списки называют также фильтрацией сеанса IP, поскольку они строят динамический обратный путь на основе информации о сеансе. Возвратные списки доступа являются частью базового набора функций Cisco IOS, начиная с версии 12.0.
возвратные списки
- ip access-list extended internet-out
- ! используется на исходящем направлении, проверяет
- ! внешний трафик для построения таблицы состояний
- permit ip any any reflect dynamic-path
- ! dynamic-path означает список доступа с возвращаемой
- ! информацией
- ip access-list extended internet-in
- ! используется на входящем направлении, может также
- ! содержать нединамические открытия;
- ! например SMTP mail to 1.2.3.4
- permit tcp any host 1.2.3.4 eq smtp
- ! открывает на время дыры
- evaluate dynamic-path
- interface Serial 0/0
- ! применяет ваш возвратный список
- ! к внешнему интерфейсу
- description Access to the Internet via this interface
- ip access-group internet-in in
- ip access-group internet-out out
Возвратные списки обладают всей гибкостью расширенных и стандартных списков, но в них учтены и исправлены некоторые слабые места последних. Одна из замечательных особенностей возвратных списков состоит в том, что они позволяют выполнять исходящие команды ping (и другие аналогичные команды протокола ICMP), но при этом запрещают входящий трафик ICMP. В предыдущем примере разрешается весь исходящий трафик изнутри сети (и обратный трафик в ответ на команды), входящий трафик ответов и входящий трафик почтовых соединений по протоколу SMTP, направленных на адрес 1.2.3.4. Возвратные списки отличаются большими возможностями по сравнению со стандартными и расширенными, но обеспечивают фильтрацию только на уровне сеанса.
Контекстно-зависимые списки доступа типа работают на прикладном уровне. Они проверяют трафик, который проходит через брандмауэр в целях выявления информации о состоянии сеансов TCP и UDP и управления ими. Эта информация используется для создания временных окон в списках доступа брандмауэра с целью пропуска обратного трафика, а также для создания дополнительных соединений в рамках законных сеансов. Контекстно-зависимые списки доступа являются частью интегрированной системы безопасности Cisco (Cisco Secure Integrated Security (CSIS), ранее известной как Firewall IOS). В таких списках требуется задавать специфические параметры проверки в зависимости от типа протокола. Специальные правила проверки имеются для таких протоколов, как http, а также стандартные правила для протоколов TCP, UDP и фрагментации IP. Если общие списки доступа применяются к интерфейсу, то контекстно-зависимые управляют соединениями. Они могут работать только с протоколами TCP и UDP, поэтому фильтрация по протоколам IP и ICMP должна осуществляться с помощью списков доступа других типов — «без сохранения состояния». В предлагаемой в качестве образца конфигурации маршрутизатора приводятся примеры контекстно-зависимых списков доступа.
Использование списков доступа для фильтрации входящих коммуникаций с маршрутизатором
В системе IOS списки доступа могут служить для фильтрации как входящих, так и исходящих соединений маршрутизатора. Два вида таких соединений, telnet и SNMP, направлены к маршрутизатору. Список доступа может применяться непосредственно к процессам telnet и snmp для ограничения трафика.
Пример для входящего трафика telnet:
- access-list 10 permit 172.30.0.0 0.0.255.255
- ! определение списка доступа для разрешения доступа
- ! внутрь сети
- line vty 0 4
- ! конфигурирование виртуальных терминалов telnet
- access-class 10 in
- ! применение списка доступа к входящим процессам telnet
Пример для трафика SNMP:
- !использовать список доступа 10 для доступа SNMP
- snmp-server community my-community RW 10
ВСТРОЕННЫЕ ФУНКЦИИ IOS ДЛЯ ВЫЯВЛЕНИЯ ВТОРЖЕНИЙ
Контекстно-зависимые списки доступа — не единственный компонент интегрированной системы безопасности. Она также включает систему выявления вторжений (Intrusion Detection System, IDS). Технология IDS позаимствована от соответствующих продуктов Cisco (прежде называвшихся NetRanger). IOS IDS содержит подмножество специальных профайлов с сигнатурами наиболее часто встречающихся типов атак. IDS проверяет пакеты во время их прохождения через маршрутизатор. Этот процесс отнимает много ресурсов, поэтому IDS реализована только на наиболее мощных маршрутизаторах, где используется CSIS (маршрутизаторы серий 2600, 3600 либо 7x00). Процесс проверки контекстно-зависимых списков может значительно уменьшить производительность сети в зависимости от объема и вида трафика. Система выявления вторжений записывает информацию о событиях в буфере протоколирования системных событий маршрутизатора, но для внешнего хранения и использования этой информации потребуются CS IDS Director или сервер авторизации под управлением UNIX. IDS нуждается в соответствующей настройке и последующем контроле для того, чтобы обычный трафик не воспринимался ею как отклоняющийся от нормы. Буфер протоколирования системных событий можно просмотреть с помощью команды show log. К данному буферу следует обращаться в том случае, когда внешнее протоколирование невозможно. IDS может оказаться не в состоянии проверять весь трафик — все зависит от доступных ресурсов маршрутизатора и объема трафика. Она способна реально обеспечить дополнительный уровень защиты. Стандартная конфигурация включает систему IDS в автономном режиме, а запись о событиях производится в буфер протоколирования системных событий.
КОММЕНТАРИЙ К РАБОЧЕЙ КОНФИГУРАЦИИ МАРШРУТИЗАТОРА
Приведенная рабочая конфигурация в настоящее время используется на маршрутизаторе в домашнем офисе, подключенном к Internet по кабельному модему. Маршрутизатор Cisco2621 работает под управлением IOS версии 12.1(3)T (C2600-JO3S56I-M). В качестве внешнего интерфейса используется Fast Ethernet 0/0. Он подключается к кабельному модему с помощью переходного кабеля Ethernet. Внутренний интерфейс — Ethernet 0/1 — подсоединен к коммутатору Ethernet домашнего офиса. Внешний интерфейс имеет собственный MAC-адрес, как у сетевой платы компьютера, и получает адрес от провайдера по протоколу DHCP. Внутренний интерфейс использует сервер DHCP для предоставления информации об адресах оборудования домашнего офиса. Частный адрес (RFC 1918) применяется внутри. Маршрутизатор выполняет динамическое преобразование сетевых адресов NAT с использованием адреса внешнего интерфейса в качестве адреса отправителя. Безопасность обеспечивается за счет применения контекстно-зависимых списков доступа и системы выявления вторжений. Маршрутизатор использует также процесс учета, авторизации и идентификации (Accounting, Autho-rization, Authentication, AAA) для обеспечения безопасности консоли, вспомогательного последовательного порта и telnet. Процесс AAA обеспечивает большую безопасность, чем использование паролей отдельно для каждой линии, так как предоставляет унифицированный метод регистрации.
ЗАКЛЮЧЕНИЕ
Хотя в малых и домашних офисах уже широко используются брандмауэры, а также высокоскоростные линии связи, проблема безопасности внешнего периметра сети часто игнорируется. Маршрутизаторы Cisco при соответствующем конфигурировании могут обеспечить необходимый уровень безопасности любой сети.
Джон Тизо работает в качестве научного редактора и обозревателя в Cisco Press. Он является сертифицированным специалистом по межсетевому обмену Cisco (CCIE #5126), имеет также сертификаты Sun Microsystems, Microsoft и Novell. С ним можно связаться по адресу: johnt@jtiso.com.
Ресурсы Internet
Домашняя страница по документации Cisco Systems: http://www.cisco.com/univercd/home/home.htm.
Повышение безопасности маршрутизаторов Cisco: http://www.cisco.com/warp/public/707/21.html.
Повышение безопасности в сетях IP: http://www.cisco.com/univercd/cc/td/doc/ cisintwk/ics/cs003.htm.