Все, что нужно, — сетевая инфраструктура и командная строка Cisco IOS!

Тестовая лаборатория представляет собой группу компьютеров, отличие которых от остальных компьютеров корпоративной сети состоит в том, что они предназначены для проверки новых стандартов безопасности и управления. Такая среда может понадобиться для компьютеров, не контролируемых корпоративным ИТ-персоналом, или для проверки программного обеспечения, которое предполагается развернуть в корпоративной сети. Как показывает практика, такую лабораторную среду вполне можно построить на имеющемся в наличии сетевом оборудовании Cisco — стоит только разобраться с командной строкой Cisco IOS (Internetworking Operating System — резидентная операционная система реального времени, разработанная компанией Cisco Systems для маршрутизаторов). Стандартное сетевое оборудование позволяет сформировать тестовую лабораторию с доступом к Internet через имеющееся подключение и предоставить пользователям возможность подключения к лабораторной среде с их персональных компьютеров в корпоративной сети.

В этой статье речь пойдет о том, как установить лабораторную сеть, используя VLAN (сокр. от virtual LAN — виртуальная локальная сеть) и ACL (Access Control List — список контроля доступа) — эти функциональные возможности имеются у оборудования Cisco и других поставщиков. Компьютеры лабораторной сети смогут иметь доступ к Internet, а пользователи — задействовать RDP (Remote Desktop Protocol — протокол управления удаленными компьютерами) для доступа к компьютерам лабораторной сети. Кроме того, машины лабораторной сети не будут иметь доступ к компьютерам корпоративной сети, что защищает сеть от неконтролируемой лабораторной среды.

Оборудование

При подготовке этой статьи я использовал коммутатор Cisco Catalyst 2950 и маршрутизатор Cisco 800. Как правило, оборудование Cisco поддерживает VLAN и ACL. Возможно, что и сетевое оборудование других поставщиков поддерживает эти функции, правда, команды настройки у различных поставщиков могут отличаться друг от друга.

Регистрация в системе и резервное копирование в Cisco IOS

Большинство устройств имеют общепринятый пользовательский Web-интерфейс, однако в этой статье я использую командную строку Cisco IOS для доступа к полной функциональности сетевого устройства. Для этой цели нужно знать консоль и пароль Telnet, а также пароль Enable, эквивалент пароля учетных записей Administrator или root в Cisco IOS.

Начать следует с подключения кабеля к порту, помеченному как Console на маршрутизаторе или коммутаторе, и к последовательному порту компьютера. В комплект оборудования Cisco обычно входит нужный голубой кабель, который можно узнать по коннектору RJ-45 и 9-штырьковому коннектору последовательного порта на концах. Затем необходимо использовать Microsoft HyperTerminal для подключения к сетевому устройству. Можно также указать в Telnet IP-адрес устройства, если оно предусматривает доступ по Telnet. На экране 1показаны правильные настройки для HyperTerminal.

Экран 1. Параметры для HyperTerminal

Приглашение для ввода команд в Cisco IOS похоже на приглашение DOS или Microsoft Netsh. Ниже будут подробно описаны используемые команды, а дополнительную информацию о командах IOS можно найти на сайте Cisco (http://www.cisco.com/univercd/cc/td/doc/ product/software/ios124/124cr/).

Прежде чем вносить изменения в маршрутизатор или коммутатор, всегда надо делать резервную копию текущей конфигурации. Для резервного копирования можно просто скопировать конфигурацию на компьютер. Для этого понадобится программное обеспечение сервера TFTP (Trivial FTP). Если сервера TFTP нет, его можно бесплатно получить на сайте Solarwinds (http://solarwinds.net/FreeTools.htm).

В командной строке IOS нужно ввести

enable

для перехода в привилегированный режим. Привилегированный режим снимает ограничения системы безопасности IOS на время сеанса при выполнении изменений в конфигурации. Введите пароль Enable в ответ на приглашение системы для этой операции. Все команды, описанные в статье, вводятся в привилегированном режиме. О введении привилегированного режима свидетельствует знак (#), которым оканчивается приглашение IOS.

Затем с помощью команды Copy в IOS нужно выполнить резервное копирование текущей конфигурации. По аналогии с командой копирования в DOS команда Copy в IOS имеет два аргумента: источник и цель назначения. Вместо имен файлов аргументами в IOS являются startup-config, running-config и tftp. Аргумент startup-config обозначает конфигурацию, с которой устройство загружается, running-config представляет собой текущую конфигурацию устройств, а tftp указывает на копирование конфигурации на сервер TFTP или с него.

Для выполнения копирования текущей конфигурации следует ввести команду:

copy running-config tftp

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

copy tftp running-config

Итак, у нас есть резервная копия, и мы знаем, как ее восстановить. Вот теперь можно начать менять конфигурацию.

Логическое выделение сети с помощью VLAN

Рассмотрим схему сети, представленную на рис. 1. Здесь CorpBox — корпоративная система; LabBox — система, не входящая в общую корпоративную подсеть 192.168.0.0/24, Switch — коммутатор. Эти устройства, CorpBox и LabBox, могут свободно обмениваться информацией. В подсеть также включен маршрутизатор, Router, который обеспечивает доступ к Internet и другим корпоративным подсетям (на рисунке, соответственно, Internet и Other Corporate Subnets).

Рисунок 1. Схема сети до изоляции лабораторной сети

Наша цель состоит в том, чтобы использовать VLAN для изоляции LabBox от CorpBox, т. е. надо сделать так, чтобы устройства, работающие на лабораторной сети, не могли взаимодействовать с устройствами корпоративной сети. Виртуальная сеть VLAN представляет собой логически сгруппированные Ethernet-порты на коммутаторе. Все устройства, подключенные к портам на одной и той же виртуальной сети VLAN, могут взаимодействовать между собой, но не могут взаимодействовать с устройствами в других виртуальных сетях. Для решения этой задачи надо выполнить следующие шаги:

  1. Воспользоваться командой Configure Terminal (или сокращенно Config T). Эта команда переводит нас в тот режим настройки, в котором можно применять команды, изменяющие конфигурацию коммутатора. IOS при этом видоизменяет приглашение, показывая, что система находится в режиме настройки. Команду Configure Terminal можно найти в разделе "Основы настройки" (Configuration Fundamentals) в справочнике по командам IOS.
  2. По умолчанию все порты на коммутаторе будут находиться на первой виртуальной сети VLAN1. Следует присвоить второй сети VLAN2 имя Lab, чтобы помнить о ее роли. Команда Vlan берет в качестве аргумента номер виртуальной сети VLAN, конфигурацию которой нужно изменить. Команда Vlan 2 переводит VLAN2 в режим настройки config-vlan. Система снова изменяет вид приглашения, чтобы показать текущий режим. Информацию о команде Vlan можно найти в справочнике команд IOS в разделе по коммутации локальной сети, LAN Switching. Далее следует ввести команду
    name Lab
    в режиме config-vlan для присвоения VLAN имени, затем команду
    exit
    для выхода из режима config-vlan.
  3. Настроить порт на коммутаторе, к которому подключена подсеть LabBox, FastEthernet 0/4 для доступа к VLAN2. Воспользоваться командами доступа Interface и Switchport для завершения этого шага. Сначала нужно ввести команду
    interface FastEthernet 0/4
    для входа в режим настройки интерфейса (config-if) порта FastEthernet port 0/4. Информацию о командах Interface и Switchport можно найти в документации IOS в разделе Interface and Hardware Component.

Далее следует зарегистрироваться на коммутаторе и ввести указанные выше команды в соответствии с примером, показанным на рис. 2. После этого нужно выйти из режимов config-if и config, например введя команду

show vlan brief

для проверки результата выполнения операций. Теперь следует попытаться найти по ping CorpBox с LabBox. Попытка не удастся, потому что эти две системы теперь действуют так, как будто они находятся на разных коммутаторах.

Теперь конфигурация виртуальной сети VLAN отделяет LabBox от CorpBox, кроме того, LabBox отделена от маршрутизатора. Поскольку маршрутизатор обеспечивает доступ к Internet, LabBox больше не имеет доступа к Internet. Система CorpBox и маршрутизатор все еще подключены к подсети VLAN1, поэтому CorpBox имеет доступ к Internet.

Маршрутизация между виртуальными сетями

Пользователям потребуется доступ к лабораторной сети из производственной сети, а это означает, что необходимо назначить лабораторную сеть как уникальную подсеть и маршрутизировать трафик между двумя подсетями. Сначала подключим кабель Ethernet к свободному порту на маршрутизаторе и коммутаторе. Я использовал Ethernet 1 на маршрутизаторе и FastEthernet 0/2 — на коммутаторе. На коммутаторе следует включить порт, который только что был подключен к маршрутизатору, в подсеть VLAN2 таким же образом, как для LabBox. Другой способ рассмотрен во врезке «Разбиение на группы».

Теперь необходимо зарегистрироваться на маршрутизаторе и назначить IP-адрес 192.168.1.1 для интерфейса Ethernet 1. Следует использовать IOS на маршрутизаторе так же, как на коммутаторе. Команды Enable, Config T и Interface работают аналогично. Поскольку маршрутизатор представляет собой устройство третьего уровня, можно назначить его интерфейсам адреса IP из режима config-if с помощью команды IP Address, информацию о которой можно найти в документации IOS в разделе IP Addressing Services. Интерфейсы на маршрутизаторах Cisco по умолчанию отключены. Это означает, что IOS выключает их до тех пор, пока не будет задано другое условие. Для разблокирования интерфейса следует ввести команду No Shutdown. На рис. 3 показаны точные команды.

Рисунок 4. Изолированная лабораторная подсеть

Необходимо назначить LabBox IP-адрес 192.168.1.2 и шлюз по умолчанию 192.168.1.1. Вид сети показан на рис. 4. Если этот маршрутизатор — не единственный в сети, то надо информировать маршрутизаторы о новой подсети, тогда пользователи смогут иметь доступ к этой подсистеме из любого места сети. Обычно в таком случае используют протоколы маршрутизации. Протоколы маршрутизации автоматически позволяют маршрутизаторам иметь информацию о каждом маршрутизаторе подсети. На рис. 5 показаны команды, которые позволяют разблокировать протокол RIP (Router Information Protocol) на маршрутизаторе для этой новой подсети. Если в сети используются другие протоколы маршрутизации, например IGRP (Interior Gateway Routing Protocol), EIGRP (Enhanced IGRP) или OSPF (Open Shortest Path First), можно задействовать их вместо указанного протокола. Если в сети не используются протоколы маршрутизации, то надо создать статические маршруты на подсеть 192.168.1.0 на каждом маршрутизаторе.

Как видно по рис. 5, я воспользовался командой Router Rip для перехода в режим config-router для протокола маршрутизации RIP. Затем я применил команду Network для разблокирования маршрутизации RIP для новой подсети 192.168.1.0. Эти операции приводят к тому, что маршрутизатор извещает о подсети 192.168.1.0 другие маршрутизаторы, с которыми он связан, с помощью протокола RIP. Информацию о командах Router Rip, Network и т. д. для других протоколов маршрутизации можно найти в документации IOS в разделе IP Routing Protocols.

Следует заметить, что не нужно задавать шаблон подсети при настройке RIP, поскольку RIP использует классовую маршрутизацию, т. е. он автоматически определяет, что 192.168.1.0 представляет собой подсеть класса C и, следовательно, представляет IP-адреса от 192.168.1.1 до 192.168.1.254. Некоторые сети могут задействовать бесклассовую маршрутизацию для лучшего использования своего адресного пространства IP. Если в сети применяется более сложная бесклассовая схема маршрутизации, то полезную информацию о маршрутизации CIDR (Classless Interdomain Routing) можно найти в документе Cisco «IP Addressing and Subnetting for New Users» (http://www.cisco.com/warp/public/701/3.html).

И CorpBox, и LabBox теперь смогут находить друг друга по ping. Подсеть LabBox сможет получить ответы по ping от хостов в Internet, например, на Google.com.

Запретить все, кроме RDP

Итак, мы возвращаемся назад, откуда стартовали. Разница в том, что теперь мы можем использовать списки контроля доступа ACL на маршрутизаторе для ограничения доступа в лабораторную сеть и из нее. Списки контроля доступа Cisco ACL аналогичны, по существу, тем спискам, которые использует файловая система NTFS, но вместо ограничения доступа к файлам они ограничивают список пакетов, которым разрешено пересекать интерфейс маршрутизатора.

На LabBox работает служба Microsoft Terminal Services, поэтому самые первые правила ACL, которые мы настраиваем, будут разрешать пользователям корпоративной подсети задействовать Remote Desktop Client для доступа в лабораторную подсеть. Remote Desktop Client и Terminal Services используют для взаимодействия протокол RDP, который обращается к порту TCP 3389.

Для разрешения RDP мы должны настроить списки доступа, чтобы разрешить входящий трафик, направленный на порт 3389 лабораторной подсети. Cisco IOS поддерживает два типа списков доступа ACL для управления трафиком, который использует протокол IP: стандартный и расширенный, standard IP ACL и extended IP ACL. Оба списка доступа позволяют контролировать трафик с помощью такой информации, как IP-адрес, но расширенные списки ACL также позволяют использовать информацию из протоколов, основанных на TCP/IP. Поскольку нам нужно ограничить трафик порта TCP, мы воспользуемся расширенным списком IP ACL. Необходимо использовать уникальный номер для задания каждого списка ACL, который вы создаете. Тип списка ACL определяет те номера, из которых можно выбирать. Расширенные списки IP ACL можно пронумеровать от 100 до 199 или от 2000 до 2699. Для своих целей я произвольно использовал расширенный список IP ACL 110, к которому не было привязки на моем маршрутизаторе. Первая команда Access-List, которая показана на рис. 6, допускает трафик TCP с любого исходящего IP-адреса на целевой IP-адрес подсети 192.168.1.0/24, если номер порта назначения TCP равен 3389.

Следует иметь в виду, что число после адреса IP подсети подобно маске подсети, но является инвертированным. Система Cisco называет этот номер групповым символом, и он определяет разряды, отклоняемые при сравнении адреса IP из ACL с каждым адресом IP пакета. Мы хотим игнорировать последний октет адреса IP, поэтому последний октет группового символа — 255, или восемь единиц. Более подробную информацию о команде Access-List можно получить в документации IOS, раздел IP Application Services.

Дополнительно к разрешению входящего RDP мы должны разрешить хостам из лабораторной подсети отвечать на этот трафик. Второй список доступа, сконфигурированный на рис. 6, разрешает трафик TCP с исходного IP-адреса в лабораторной подсети на любые целевые IP-адреса для установленных соединений. Этот список контроля доступа позволит хостам из лабораторной подсети отвечать на запросы соединений TCP и будет запрещать пакеты (так называемые пакеты SYN), которые поступают из этой подсети для поиска и установления соединения TCP.

Cisco IOS обрабатывает списки ACL для трафика в тот момент, когда пакет трафика поступает или покидает интерфейс маршрутизатора, поэтому, прежде чем список сможет что-то сделать, необходимо указать IOS, к какому интерфейсу следует применить список ACL и к какому трафику: к входящему в маршрутизатор по этому интерфейсу или к исходящему трафику через этот интерфейс. Мы назначим списки ACL, которые сконфигурировали, интерфейсу Ethernet 1 на маршрутизаторе, поскольку создавали их, чтобы ограничивать трафик в лабораторную сеть, подключенную к интерфейсу Ethernet 1. Каждый интерфейс маршрутизатора может иметь — в терминологии Cisco — входящий или исходящий списки ACL. Направление имеет отношение к тому, как пакет проходит через интерфейс маршрутизатора, а не к тому, как он движется по сети. Поэтому список ACL, который мы назначаем исходящему направлению интерфейса Ethernet 1, будет применяться к пакетам, приходящим из какой-то другой подсети, например корпоративной сети или Internet, в лабораторную подсеть. После назначения списка ACL маршрутизатор будет безоговорочно отклонять любой трафик, не разрешенный списком ACL, так что дополнительно к разрешению RDP мы запретили все другие трафики. На рис. 6 показано, как применять команду IP Access-Group из режима config-if для назначения списков доступа ACL 110 и 120 исходящему и входящему направлениям интерфейса Ethernet 1. Более подробную информацию о команде IP Access-Group можно получить в документации IOS, раздел IP Application Services.

Для проверки правильной работы списков контроля доступа следует открыть Remote Desktop Client на CorpBox и подключить к LabBox. Протокол RDP должен выполняться. Затем нужно попытаться получить ответ по ping с LabBox от CorpBox и наоборот. Придется выполнять эту операцию с помощью IP-адреса, потому что в лабораторной подсети пока нет сервера DNS. Ответ не будет получен, так как наши списки контроля доступа не разрешают эхо-трафик ICMP (Internet Control Message Protocol). Для разрешения ошибок конфигурации на маршрутизаторе можно использовать команды Show Access-Lists (для просмотра определений списков контроля доступа) и Show IP Interface Ethernet 1 (для просмотра назначенных этому интерфейсу списков ACL).

Разрешение доступа к Internet из лабораторной сети

Для того чтобы разрешить доступ к Internet из лабораторной сети и в то же время по-прежнему запрещать весь трафик, кроме RDP, между лабораторной и корпоративной подсетями, нужно ввести ACL-правила, пункты C — F из таблицы на маршрутизаторе. Мы выполнили пункты A и B на предыдущих шагах. Порядок имеет значение, поэтому следует вводить их в указанной последовательности.

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

Выделение лабораторной сети

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

Рисунок 7. Трафик в лабораторную сеть и из нее

Адам Кархеден - Редактор журнала Windows IT Pro. acarheden@windowsitpro.com


Разбиение на группы — транкинг

С помощью двух отдельных кабелей я присоединил маршрутизатор к коммутатору — на каждую подсеть по одному кабелю. Если маршрутизатор и коммутатор поддерживают разбиение на группы, то можно настроить маршрутизатор на доступ к обеим подсетям через один и тот же кабель Ethernet. На коммутаторе следует применить команду Switchport Mode Access Trunk в режиме config-if. На маршрутизаторе нужно использовать команду Encapsulation Dot1q в режиме config-if. Тогда можно будет настроить подынтерфейс на маршрутизаторе для каждой подсети. Например, для настройки подынтерфейса 1 на интерфейсе Ethernet 1 следует ввести команду

interface ethernet1.1.