Тестовая лаборатория представляет собой группу компьютеров, отличие которых от остальных компьютеров корпоративной сети состоит в том, что они предназначены для проверки новых стандартов безопасности и управления. Такая среда может понадобиться для компьютеров, не контролируемых корпоративным ИТ-персоналом, или для проверки программного обеспечения, которое предполагается развернуть в корпоративной сети. Как показывает практика, такую лабораторную среду вполне можно построить на имеющемся в наличии сетевом оборудовании 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. Возможно, что и сетевое оборудование других поставщиков поддерживает эти функции, правда, команды настройки у различных поставщиков могут отличаться друг от друга.
Большинство устройств имеют общепринятый пользовательский 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 (/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
Итак, у нас есть резервная копия, и мы знаем, как ее восстановить. Вот теперь можно начать менять конфигурацию.
Рассмотрим схему сети, представленную на рис. 1. Здесь CorpBox — корпоративная система; LabBox — система, не входящая в общую корпоративную подсеть 192.168.0.0/24, Switch — коммутатор. Эти устройства, CorpBox и LabBox, могут свободно обмениваться информацией. В подсеть также включен маршрутизатор, Router, который обеспечивает доступ к Internet и другим корпоративным подсетям (на рисунке, соответственно, Internet и Other Corporate Subnets).
Рисунок 1. Схема сети до изоляции лабораторной сети |
Наша цель состоит в том, чтобы использовать VLAN для изоляции LabBox от CorpBox, т. е. надо сделать так, чтобы устройства, работающие на лабораторной сети, не могли взаимодействовать с устройствами корпоративной сети. Виртуальная сеть VLAN представляет собой логически сгруппированные Ethernet-порты на коммутаторе. Все устройства, подключенные к портам на одной и той же виртуальной сети VLAN, могут взаимодействовать между собой, но не могут взаимодействовать с устройствами в других виртуальных сетях. Для решения этой задачи надо выполнить следующие шаги:
name Labв режиме config-vlan для присвоения VLAN имени, затем команду
exitдля выхода из режима config-vlan.
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» (/warp/public/701/3.html).
И CorpBox, и LabBox теперь смогут находить друг друга по ping. Подсеть LabBox сможет получить ответы по ping от хостов в Internet, например, на Google.com.
Итак, мы возвращаемся назад, откуда стартовали. Разница в том, что теперь мы можем использовать списки контроля доступа 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 из лабораторной сети и в то же время по-прежнему запрещать весь трафик, кроме RDP, между лабораторной и корпоративной подсетями, нужно ввести ACL-правила, пункты C — F из таблицы на маршрутизаторе. Мы выполнили пункты A и B на предыдущих шагах. Порядок имеет значение, поэтому следует вводить их в указанной последовательности.
Теперь маршрутизатор будет позволять хостам из лабораторной подсети иметь доступ к Internet и будет запрещать доступ к корпоративной подсети. Поскольку ваши серверы DNS, вероятно, находятся в корпоративной подсети, системы лабораторной подсети не смогут разрешать имена доменов с помощью корпоративных серверов DNS. Эту проблему можно устранить или настраивая хосты из лабораторной подсети, чтобы использовать сервер DNS провайдера, или устанавливая сервер DNS в лабораторной сети.
На рис. 7 показан исходящий и входящий трафик в лабораторной сети. Эта простая конфигурация, конечно, не является настоящим брандмауэром и не может сдержать атаки злоумышленников. Однако с помощью этой конфигурации можно ограничить доступ к производственной информационной сети и установить альтернативные системы в лабораторной подсети дл тестирования, разработки и других целей, не беспокоясь о том, что они могут повлиять на корпоративные системы.
|
Рисунок 7. Трафик в лабораторную сеть и из нее |
Команда ACL | Направление на Ethernet 1 | Цель | |
A | access-list 110 permit tcp any 192.168.1.0 0.0.0.255 eq 3389 | Исходящий / входящий в лабораторную сеть | Разрешить все пакеты RDP в лабораторную подсеть |
B | access-list 120 permit tcp 192.168.1.0 0.0.0.255 any established | Входящий / исходящий из лабораторной сети | Разрешить хостам из лабораторной сети отвечать на любые запросы |
C | Access-list 120 deny ip any 192.168.1.0 0.0.0.255 | Входящий / исходящий из лабораторной сети | Запретить весь трафик из лабораторной сети, направленный в корпоративную подсеть, не разрешенный ранее правилом B |
D | Access-list 120 permit ip any any | Входящий / исходящий из лабораторной сети | Разрешить исходящий из лаборатории трафик в Internet |
E | Access-list 110 deny ip 192.168.1.0 0.0.0.255 any | Исходящий / входящий в лабораторную сеть | Запретить весь трафик из корпоративной сети в лабораторную, не разрешенный ранее правилом A |
F | Access-list 110 permit ip any any | Исходящий / входящий в лабораторную сеть | Разрешить лабораторной сети получение ответов из Internet |
CiscoSwitch#config t Enter configuration commands, one per line. End with CNTL/Z. CiscoSwitch(config)#vlan 2 CiscoSwitch(config-vlan)#name Lab CiscoSwitch(config-vlan)#exit CiscoSwitch(config)# CiscoSwitch(config)#interface FastEthernet 0/4 CiscoSwitch(config-if)#switchport access vlan 2 CiscoSwitch(config-if)#exit CiscoSwitch(config)#exit CiscoSwitch#
CiscoRouter(config)#config t Enter configuration commands, one per line. End with CNTL/Z. CiscoRouter(config)#interface ethernet 1 CiscoRouter(config-if)#ip address 192.168.1.1 255.255.255.0 CiscoRouter(config-if)#no shudown CiscoRouter(config-if)#exit CiscoRouter(config)#exit CiscoRouter#
CiscoRouter(config)#config t Enter configuration commands, one per line. End with CNTL/Z. CiscoRouter(config)#router rip CiscoRouter(config-router)#network 192.168.1.0 CiscoRouter(config-router)#exit CiscoRouter(config)#exit CiscoRouter#
CiscoRouter(config)#config t Enter configuration commands, one per line. End with CNTL/Z. CiscoRouter(config)#access-list 110 permit tcp any 192.168.1.0 0.0.0.255 eq 3389 CiscoRouter(config)#access-list 120 permit tcp 192.168.1.0 0.0.0.255 any established CiscoRouter(config)#interface Ethernet 1 CiscoRouter(config-if)#ip access-group 110 out CiscoRouter(config-if)#ip access-group 120 in CiscoRouter(config-if)#exit CiscoRouter(config)#exit CiscoRouter#
С помощью двух отдельных кабелей я присоединил маршрутизатор к коммутатору — на каждую подсеть по одному кабелю. Если маршрутизатор и коммутатор поддерживают разбиение на группы, то можно настроить маршрутизатор на доступ к обеим подсетям через один и тот же кабель Ethernet. На коммутаторе следует применить команду Switchport Mode Access Trunk в режиме config-if. На маршрутизаторе нужно использовать команду Encapsulation Dot1q в режиме config-if. Тогда можно будет настроить подынтерфейс на маршрутизаторе для каждой подсети. Например, для настройки подынтерфейса 1 на интерфейсе Ethernet 1 следует ввести команду
interface ethernet1.1.