Принцип работы всех прокси-фаервол одинаков (имеется в виду ПО). При настройке прокси-фаервол создаются правила, в соответствии с правилами прокси-фаервол либо пропускает пакеты внутрь/наружу сети, либо отбрасывает. Мы рассмотрим построение прокси-фаервол сервера на примере ПО фирмы Kerio. Достаточно демократичное по цене ПО, обеспечивающее потребности небольшой сети. И даже если нет денег на сервер, то на базе обыкновенного Pentium4/512Mb, можно построить прокси-фаервол, который легко справится с сетью до 100 машин. Ну, ОС конечно лучше поставить серверную... Либо, всегда можно купить прокси на отличном сервисе advanced.name
И еще кое-что - фирма Kerio написала ПО, которое интегрируется в Active Directory. Это говорит о том, что если установить прокси-фаервол на компьютер, который является членом домена, то при настройке он легко импортирует базу данных пользователей. И при создании пользователя в домене, он автоматически получит доступ к сети Интернет (при правильной настройке). Однако это удобство спорное. Я, например, предпочитаю полностью контролировать все процессы в сети, и поэтому мы сейчас начнем устанавливать прокси-фаервол на компьютер, который не только не является членом домена, но и находится в совершенно другой группе. При такой постановке вопроса нам придется всех пользователей заводить руками на прокси-фаервол сервере. В принципе, нам все равно пришлось бы заводить пользователей отдельно на прокси-фаервол, так как продукт фирмы Kerio не дружит с кириллицей, а все пользователи в Active Directory наерняка заведены в русской раскладке. Начинаем...
Описание установки ОС, я думаю, можно опустить. Дадим имя компьютеру и рабочей группе, куда мы назначим прокси-фаервол сервер, одинаковое - PRFW. Так как компьютер затачиваем под прокси-фаервол сервер, выключим все ненужные сервисы и произведем установку по минимуму. Ничего лишнего нам не нужно.
Теперь еще одну штуку мы чуть не забыли. Прокси-фаервол сервер имеет две сетевые карты: одна подключена к локальной сети и имеет адрес, который мы указываем всем клиентам, как адрес прокси-сервера, вторая сетевая карта подключена к провайдеру и имеет IP-адрес, выданный тебе провайдером с маской и адресом DNS-сервера. Дабы при настройке прокси-фаервол сервера мы не путались в сетевых картах, мы переименуем сетевое подключение, идущее к провайдеру в "Internet Connection", а сетевое подключение, идущее в локальную сеть, оставим с именем по умолчанию "Local Area Connection".
Начинаем установку. Как обычно, к нам на помощь спешит встроенный помошник. Долго жмем на кнопку "Next", пока не попадаем на экран выбора установки. Здесь, конечно, выбираем тип установки "Custom".
Далее, если не планируешь использовать через свой прокси-фаервол сервер VPN-туннели, можешь сбросить эту галочку. Ну и если на досуге не собираешься читать help на чешском языке, исключаешь и его при установке. "Next".
На странице с заведением админского пароля и логина пропиши сразу логин и пароль для администрирования, иначе потом это все сменить не удастся. Таковы реалии программы. На следующей странице тебе предлагается установить адрес, с которого ты сможешь удаленно управлять прокси-фаервол сервером. Пока отложим это.
Теперь ждем некоторое количество минут, пока идет установка. Далее перегружаем компьютер и смотрим, что же получилось. После перезагрузки Kerio предложит запустить администраторскую консоль прокси-фаервол сервера. Запускаем.
Далее вводишь логин и пароль. И опять заботливые программисты сделали все, что бы мы сильно не перетрудились, морща свой мозг, - нам опять предлагают помошника для настройки прокси-фаервола. Здесь остановимся на минутку. Как обычно есть два пути: пройтись под руководством помошника и получить на выходе готовый работоспособный прокси-фаервол, в котором потом при необходимости можно подправить все правила или отказаться от услуг помошника и начать все делать ручками. Мы не ищем легких путей и сделаем все руками. Отменяем работу помошника. Теперь при запуске административной консоли нам необходимо либо зарегистрировать копию (только при наличии интернета), либо использовать демо-версию (при наличии интернета), или установить имеющийся лицензионный ключ. Устанавливаем ключ, он ведь есть у нас. С регистрацией закончили. Теперь смотрим, что мы имеем. А имеем мы одно правило (его нельзя ни удалить, ни изменить), которое полностью закрывает все порты.
Теперь пришло время помошника. На странице "Traffic Policy" внизу находим кнопку "Wizard" и нажимаем ее. Первая страница рассказала нам о том, как помошник настроит правила (читать можно только от скуки)–> "Next".
Вторая страница: выбираем тип подключения к Интернету, если не dual-up, то оставляем по умолчанию. На следующей страничке выбираем интерфейс, который подключен к Сети (мы его назвали "Internet Connection"). "Next".
Теперь нам предлагаются порты, которые будут открыты. Предлагаю оставлять все по умолчанию, все равно будем переделывать. На пятой страничке правило, относящееся к VPN: если оное не предполагается использовать, то сбрасываем галочку. "Next". Вот пришли к входящим правилам. На шестой странице помошник предлагает указать, какие сервисы, используемые в локальной сети, должны быть видны из Интернета (твой веб-сервер, почтовый сервер, фтп-сервер и так далее). Если ничего такого нет, на странице ничего и не добавляем. "Next".
На седьмой странице правило использования NAT. Это важная часть - оставляем отмеченным данное правило. На восьмой странице желанная кнопка "Finish". Мы получили готовый прокси-фаервол сервер.
Если ты внимательно посмотришь на правила, которые создал помошник, то увидишь, что, в принципе, все основное и необходимое для выхода из локальной сети в Интернет есть. Однако перед тем как начнем заводить пользователей на прокси-фаервол сервере, необходимо сделать еще кое-какие настройки. При такой настройке пользователь не получит доступ в интернет, так как не имеет на это прав, но некоторые сервисы, запущенные на машине пользователя, смогут достучаться в интернет, так как существует правило, позволяющее протоколам (HTTP, например), выходить в интернет. Первое, что необходимо сделать, это исключить возможность выхода из локальной сети в Сеть чему бы то ни было. Ни один сервис, ни одно приложение не должны иметь такой возможности. Пока не трогаем правила, которые создал помошник. Начинаем дописывать свои. Создадим два правила на уровне интерфейсов: одно разрешает сетевой карте локальной сети (Local Area Connection) полный доступ на прокси-фаервол, второе - запрещает локальной сети доступ на сетевую карту "Internet Connection".
На странице "Traffic Policy" нажимаем "ADD", и у нас появилось новое правило "New rule". Отредактируем его: двойной щелчок на правиле–> даем ему имя "Proxy1" -> меняем цвет (я делаю это для того, что бы отличать правила, созданные мной, от правил, созданных помошником) –> в Description пишем: "Обмен между внутренней сетью и файрволом". Теперь редактируем источник: двойной щелчок на правиле Proxy1 в столбце Source. В открывшемся окне Edit Source нажимаем Add, и в выпавшем списке выбираем Network connection to interface. Ну и в списке интерфейсов выбираем Local Area Connection. Таким же образом редактируем столбец Destination. Только теперь выбираем Firewall host. Колонку Service не трогаем: в ней по умолчанию оставляем Any (все сервисы). А в колонке Action необходимо выбрать Permit. Расшифруем правило: мы разрешили обмен всеми возможными пакетами любых возможных сервисов между сетевой картой прокси-фаервола, смотрящей во внутреннюю сеть (Local Area Connection), и программным комплексом прокси-фаервола. Вторым правилом мы запретим обмен любыми данными между сетевой картой Local Area Connection и сетевой картой Internet Connection. Добавляем правило, даем имя Proxy2, меняем цвет, даем описание, источником выбираем Local Area Connection (Source), приемником выбираем Internet Connection (Destination), сервисы оставляем все (Any), а в колонке Action выбираем Deny. Таким образом, ни один сервис, протокол или пакет не сможет пройти, минуя файрвол, из внутренней сети во внешнюю, и наоборот. И еще один нюанс: прокси-фаервол читает правила сверху вниз. Если первое правило разрешает пакету или сервису действие, то к этому пакету или сервису прикладывается следующее правило и так до самого низа списка правил. И если ни одно правило не запретило активность пакету-сервису, то он выпускается наружу или, наоборот, проходит внутрь сети. Разместим наши вновь созданные правила после правила, созданного помошником Firewall Traffic. Для перемещения правил вверх или вниз справа от таблицы правил существуют стрелочки.
Не забываем нажимать кнопку Apply после всех правильных действий, иначе все труды будут утеряны при выходе из программы! Вот теперь пришло время разобраться с остальными правилами.
Запретим доступ из интернета в нашу локальную сеть. Создаем правило, назовем его Ban. Помещаем его на самый верх. Это правило должно отсекать все попытки проникнуть в нашу внутреннюю сеть. Делаем его красным. Все разрешающие правила – зеленые, запрещающие – красные. Остальные – любого другого цвета. Тебе проще будет разбираться. Настраиваем правило Ban. Источником выбираем Internet Connection, приемником (Destination) – Local Area Connection и Firewall Host. Сервисы запрещаем следующие: Any ICMP, DNS, HTTP, HTTP Proxy, KWF Admin, Telnet. И закрываем следующие порты: ТСР с 135 по 139, ТСР 3389, ТСР 445, UDP 135-139, UDP 3389. В колонке Action ставим Deny. В колонке Log выбираем Log matching packets. Теперь в логах, в случае попыток проникновения в твою сеть, ты увидишь, кто и с какого адреса что-то хотел сотворить с твоей сетью.
Теперь отключим некоторые правила, созданные помошником, а некоторые подправим. Для отключения правила достаточно снять галочку возле имени и не забыть нажать Apply. Итак, отключаем следующие правила: ISS OrangeWeb Filter (спам-фильтр, который через некоторое время запросит денег), правило NAT (мы задали вместо него свои правила), правило Local Traffic (аналогично). Теперь подправим правило FireWall Traffic. Все нужные тебе сетевые сервисы добавляй в это правило. Мы добавим пока ICQ, IRC, Ping.
Вот, в первом приближении настроили. Теперь для примера создадим правило, которое будет резать рекламу в ICQ. Создаем правило, называем его "Баннеры", источник - Any, Destination – ar.atwola.com, Service – Any, Action – Deny, и писать лог, дабы проследить работоспособность правила.
Ну и напоследок создадим правило, разрешающее контроллеру домена обновлять зону DNS и синхронизировать время с серверами точного времени. Создаем правило, называем его по имени контроллера домена (дабы потом разобраться, что мы тут натворили), в источнике указываем IP-адрес контроллера домена, в назначении – Any, Service – DNS,NTP, Action – Permit, и в Translation выбираем Translate to IP address outgoing interface (typical setting).
Таким образом, мы рассмотрели случаи отрезания ненужных вещей (на примере правила "Баннеры") и создания специальных разрешений на примере правила XakDomain. Теперь, читая полезные форумы и наткнувшись где-нибудь на предупреждение о каком-либо вирусе, использующий определенный порт. Тебе достаточно этот порт внести в правило BAN, и через твой прокси-фаервол сервер вирус не пролезет. Аналогично ты поступаешь с навязчивой рекламой: вычисляешь адрес рекламы и прописываешь его в правило "Баннеры". Если тебе необходим какой-либо дополнительный сервис – прописываешь его в правило Firewall Traffic. Если необходимый тебе сервис отсутствует в таблице выбора, ты можешь создать его сам. Для этого раскрываешь закладку Definitions, далее Services, жмешь ADD, даешь имя сервису (например, MyService), выбираешь протокол, указываешь порты, заполняешь описание, нажимаешь ОК и Apply. Теперь созданный тобой сервис станет доступен в правилах.
Проверяем: лезем в Traffic Policy, добавляем наш вновь созданный сервис в правило Firewall Traffic, двойной щелчок на Service, и в списке находим наш сервис.
Мы рассмотрели примерное создание правил для защиты сети и обеспечения необходимой функциональности. В следующем раз мы продолжим настройку нашего прокси-фаервол сервера, разберемся с пользователями, квотами и контентными фильтрами.