Настройка ISA2006 в конфигурации внутреннего межсетевого экрана с роутингом на основе хост-хеадеров
ИСУ я поднимал лично множество раз в различных конфигурациях и в различном окружении. У меня уже есть на сайте несколько различных описаний конфигурирования ISA, но на этой страничке я выложу описание весьма специфической конфигурации (весьма полезной для любого хостинга), суть которой в том, что ИСА разбрасывает входящие запросы к сайтам по множеству различных виртуальных и физических машин, некоторые из которых работают под юниксами, некоторые под Апачем на Win-платформе, некоторые на ASP.NET. В описанной ниже конфигурации ISA непосредственно не подключена к интернету, а расположена глубоко внутри хостинга за апппаратным брэндмауэром.
Любой роутер/фаервол, в том числе ISA server 2006 работает в конкретном окружении. Поэтому просто какое-то описание методик настройки ISA-Server, без его привязки к конкретному окружению - никакого значения не имеет. Измените здесь один шлюз или любое другое определение во внешнем окружении - и все описанное ниже может стать не только бессмысленным, но и вредным и вводящим в заблуждение. Поэтому чтобы перейти собственно к настройкам ИСЫ, сначала я в точности опишу все окружение, в котором я выполнил роутинг на основе хост-хеадеров.
- IP-конфигурация кампутера с ISA Server 2006, из которой мы видим что ISA имеет две карты - одна смотрит во внутрь сети и имеет адрес 10.10.10.16, а вторая смотрит в фаервол и имеет адрес 10.2.2.3. На внутренней карте есть DNS с адресом 10.10.10.11, а внешний фаервол расположен на адресе 10.2.2.3, который естественно является шлюзом для кампутера с ISA SERVER.
- DNS, работающий на адресе 10.10.10.11 выглядит вот так.
- На адресе 10.2.2.1 у меня работает аппартный фарвол, который коннектится к провайдеру. Для этого описания я нашел какой-то старенький фаевольчик трехгодичной давности. Это недорогая вещичка, стоимостью примерно тысячи полторы рублей. Сейчас она идет уже совсем в другой модификации и даже внешний вид ее WEB-управления выглядит иначе, но принцип работы такой же по-прежнему. Во-первых, в нем надо настроить коннект к провайдеру. Во-вторых, ее адрес в локальной сети - который является шлюзом для ISA-сервера. И в третьих, опубликовать в фаерволе компутер с ISA-сервером (и естественно, воткрув кабель от кампутера с ISA-сервером именно в нужный разъем, а не в разъем LAN фаервола). Для этого выбираем правило WAN->DMZ и разрешаем пропуск вовнутрь HTTP-реквестов. В итоге, вместе с умаливаемыми системными правилами пропуска пакетов, правила работы фаервола должны выглядеть вот так, а его конфигурационный файл для нашего простейшего случая выглядит вот так.
На самом деле, даже этот фаервольчик за полторы тысячи рублей - достоточно продвинутая штука. Он в частности имеет первосходный механизм защиты от DOS-атак, два VPN-сервера и VPN-клиент двух типов. Кроме того, в нем накручены оповещения, аутентификация к почтовому серверу и много чего еще. Все это работает и достойно высщих похвал. В частности я работаю на таких моделях в VPN-тоннелях и работает это отлично.
Но для этого описания настройки ISA-сервера нам важно обойти все специфические возможности и сложности этого конкретного фаервола. Ибо мы сконцентрируемся на настройке ISA-сервера, а не на продвинутых VPN-возможностях этого фаервола. И для дальнейшего нам важно, что все HTTP-реквесты фаервол будет с внешнего интерфейса пробрасывать на свой внутренний интерфейс 10.2.2.1 как http://10.2.2.3 - а это есть наш кампутер с ISA-сервером.
- Но какже реквест по симвоолическому имени, например http://torrent.asp-net.ru попадет в фаервол? Для этого есть много разных хитрых DNS-технологий, но для этого пример я сделал чтобы не заморачиватся простейшую - на внешнем DNS-сервере. Таким образом, где-то кто-то вводит такой символический адрес в браузер - реквест попадает в фаервол и фаервол его преобразует в реквест http://10.2.2.3 - при этом сохраняя в реквесте хост-хеадер, те то самое символическое имя, которое ввел кто-то где-то в браузер.
Соответственно, если много имен смотрит на этот адрес, например www.torrents.ru, torrent.mail.ru, torrent.asp-net.ru, то именно наша настройка ИСЫ произведет анализ хост-хеадера, который ввел юзер в браузер и разбросает обработку этого реквеста по разным кампутерам.
- Чтобы этот пример показать точно - у меня есть в распоряжении всего один кампутер (остальные заняты в реальной работе и потревожить их я не могу). Поэтому сам по себе ISA-сервер я подниму на виртуалке. Вот IP-конфигурация физической машины BOX2, на которой хостится виртуалка и собственно конфигурационный файл виртуалки, в котором видно, как мапируются сетевые интерфейсы виртуалки на сетевые интерфейсы физической машины. Естественно, в фаервол подключена физическая машина, а вирталка лишь как-бы "присасывается" к физическому интерфесу реальной машины, воткнутой в разъем DMZ фаервола. Любопытно, что в моей ситуации, на этой физ-машине много виртуалок и шлюз физмашины смотрит совсем в другое место (те, проще говоря, она сама и все прочие виртуалки в ней запитываются интернетом из другого источника). Там у меня в сотни раз более широкий канал интернета и эта виртуальная ISA просто неспособна по производительности обработать такой бандвич.
- И наконец, у меня есть собственно сайт, работающий на отдельной виртуалке. Я попытаюсь настроить ИСУ так, чтобы по запросу http://torrent.asp-net.ru отработала именно эта виртуалка на PHP и Аpache. Внутреннюю структуру сайтов в Apache внутри этой виртуалки я здесь описывать не буду. Апач умеет хостить одновременно множество сайтов, но сейчас нам важно, что во внутренней локалке сайт работает, причем как по символическому имени внутри локалки, так и по адресу без указания хост-хеадера.
Первое - шлюз на кампе с ИСОЙ должен смотреть в фаервол, а не куда либо еще. Если этого не сделать - выход в интернет будет происходить через другой канал.
В моей конфигурации - DNS используется только мой собственный внутренний, находящийся на внутреннем интерфейсе ИСЫ - фактически расположенный на физ-машине - 10.10.10.11 - и мы это укажем в IP-конфигурации ISA-сервера. Хотя можно обойтись и без внутреннего DNS.
Cамое важное, на чем начинающие теряют кучу времени - надо задушить собственный IIS, находящийся на кампутере с ИСОЙ - на ее внешнем интерфейсе. Ибо на этот самый интерфейс фактически пробрасывает все реквесты фаервол - http://torrent.asp-net.ru внешний DNS превращает в http://195.234.108.109, а на фаерволе они превращаются в http://10.2.2.3. И тут-то и срабатывает внутренний IIS этой машины и отвечает на реквест - какие бы там дальше правила в ИСЕ уже не были приписаны.
Теперь, задав правильно IP-конфигурацию кампутера с ИСОЙ - перейдем непосредственно к конфигурированию. Для нашей ситуации выбираем шаблон - Внутренний межсетевой экран - - именно он создаст все необходимые нам правила по умолчанию. Эти же правила в натральном виде выглядят так.
Мастер конфигурирования настроек этого шаблона - это пара окошек, которые просят ввести единственный параметр - адрес внутреннего интерфейса. Я его ввожу обычно без широковещательной составляющей, хотя в прессе ведется широкая дискуссия на эту тему. Некоторые придерживаются точки зрения, что "добрый" интерфейс надо определять с широковещательной составляющей, в данном случае 10.10.10.255, но я не ввожу ее и таким образом широковещательные запросы у меня становятся эквивалентными запросам по "злобным" интерфейсам.
Второе важное место, в конфигураторе ИСЫ - это инструменты - кирпичики, которымы строятся все правила - для начала они не нужны, именно там надо все корректировать, если что-то не получится. Для удобства я там ввел символические обозначения двух кампутеров - Apache - это адрес у меня стоит Web-Сервер (10.10.10.15), который я хочу опубликовать и DMZ - внешний интерфейс этого кампутера, который смотрит в Фаервол (10.2.2.3)
Теперь решим первую простейшая задача - вывести этот кампутер и все прочие в интернет - именно через эту ИСУ.
В нашей учебной конфигурации - это будет правило номер 3. Это ОДНО-ЕДИНСТВЕННОЕ правило, которое нужно, чтобы все могли ходить в инет через эту ису. Конечно, тут можно накрутить аутентификацию и много чего еще (даже безо всяких VPN), но мы рассматриваем САМЫЕ МИНИМАЛЬНЫЕ ДЕЙСТВИЯ для настройки ИСЫ.
Так вот, самое главное место, где настраивается выход в интернет - помимо собственно рассмотренно выше правила - еще надо поставить галки подсказки браузеру по автообраружению ИСЫ. Это место микрософтовцы запрятали на четыре вкладки свойств локальной сети, но в принципе там все стоит по умолчанию достаточно нормально и, если повезет - там можно ничего не ковырять.
Если автообнаружение ИСЫ браузером работает нормально, то в браузере достаточно будет просто поставить галку "автоматическая настройка параметров". В противном случае надо явно указать порт (стандартно 8080) и адрес (в моей конфигурации - это внутренний интерфейс ИСЫ - 10.10.10.16)
Теперь я покажу, как опубликовать Web-сервер, да не просто так, а чтобы в зависимости от доменного имени реквест попадал В ТУ ИЛИ ИНУЮ ВИРТУАЛКУ. Для этого нам понадобится ДВА ПРАВИЛА. Правило прав доступа - желтое с ключиком и правило роутинга - с синим кампутером.
Я не буду заморачиватся с правами доступа в этом примере и сейчас настрою правило доступа очень просто - все отовсюду имеют право ходить по HTTP.
Теперь поднимем правило роутинга.
Само по себе правило роутинга - это достаточно сложная штука, которая состоит из 14 вкладок, на которых определяется алгоритм роутинга пакетов. Правила обрабатываются сверху вниз по вот такому алгоритму (да еще и с учетом прав доступа).
Создается это правило мастером, который спросит основные параметры этих 14-ти вкладок. Один из моментов этого мастера - это выбор прослушивателя. Те где собственно говоря ИСА будет слушать реквесты. Этот прослушиватель указывается на вкладке правила и он же виден как инструмент-кирпичик конфигурирования ИСЫ.
Теперь посмотрим самые важные вкладки правила публикации. Трафик идет с каких адресов c любых, Идет куда - в нашу виртуалку с апачем, какой TCP/IP Listener его слушает, как разбирается заголовок и на основании какого host-header'а именно роеквест будет пробрасыватся в нашу виртуалку и в какой именно ее порт. Остальные вкладки с безопасностью мы рассматривать не будем - там достаточно для начала все отключить.
Теперь мы посмотрим, как можно проверить теперь все. Ну во-первых, это правило публикации может сразу не получится, поэтому я всегда сначала готовлю запасное правило роутинга для обхода сложных контекстных правил ИСЫ. Это конечно совсем не то правило, которые мне нужно для моего хостинга, однако этим правилом я могу проверить DNS, фаервол, коннекты к провайдеру, внешний DNS, привязку виртуалки к физической машине. Так вот, я включаю это правило роутинга - в обход ИСЫ и глубокого контекстного разбора реквеста по хост-хеадерам и перехожу на вкладку наблюдение. Затем даю реквест совсем с другого провайдера и получаю прямой проброс реквеста в требуемую виртуалку без анализа хост-хеадера - и вижу что все окружение нормально работает.
Теперь выключаю это проверочное правило и включаю правило глубокго разбора реквеста и маршрутизации на основе хост-хеадера, которое я описал выше (и правила доступа по этим марштурутам - с ключиком, четвертый номер). Как видите - все радикально изменилось - нету хеадера - нету и исполненного реквеста. Но с анализом хост-хедера все работает - что нам и требовалось! Теперь мы можем задействовать десятки виртуалок, назначив на каждую из них обработку отдельных пакетов хост-хеадеров.
Разумеется в жизни все гораздо сложнее - я не могу потревожить работающий хостинг и сделал это описание на примере одного из своих серверов, который пока не задействован в реальной работе. В жизни все существенно сложнее - есть и VPN, есть и почта, есть и торрент, есть и SSL, причем в моем случае даже не только стандартный SSL, но и по ГОСТ-овским сертификатам. Кроме того, к ISA существует множество примочек для онлайнового или офлайнового анализа трафика, и каждое из них достойно отдельного описания. Я возможно соберусь с силами и опишу еще некоторые примеры настроек моего хостинга для торрентов, SSL или по взаимодействию ИСЫ с почтой - но пока это все.
Надеюсь, это мое описание живой настройки ISA server 2006 с живыми скринами и живыми конфигами не одному человеку поможет сконфигурировать сеть. Удачи !

<SITEMAP> <MVC> <ASP> <NET> <DATA> <KIOSK> <FLEX> <SQL> <NOTES> <LINUX> <MONO> <FREEWARE> <DOCS> <ENG> <CHAT ME> <ABOUT ME> < THANKS ME> |