Организация IP брандмауэра встроенными средствами Windows 2000 и XP

ОГЛАВЛЕНИЕ

Вряд ли для кого-нибудь секретом является тот факт, что компьютеры нужно защищать. Особенно если вы используете сервер на базе Windows 2000 для выхода в Интернет. Это типично для многих организаций. Windows 2000 намного проще и удобнее в настройке, чем различные версии Unix. А при должной настройке эта система не менее устойчива к взлому и стабильна. Впрочем, многие любители Unix могут с этим не согласиться, но это мое мнение. Обычно к серверу Windows 2000 подключается модем выделенной линии (или любое другое устройство), параллельно с локальной сетью. При этом организуется либо раздача соединения с Интернетом по локальной сети (Internet Connection Sharing, простейший вариант NAT), либо устанавливается прокси-сервер. 

Каждый из этих вариантов имеет свои плюсы и минусы, но с точки зрения гибкости управления и учета деятельности пользователей я предпочитаю второй. В любом случае нужно ясно понять – сервер придется защищать. Самое удивительное – Windows 2000 (равно как и XP) обладают богатыми встроенными возможностями по защите, и в этой статье я постараюсь вам объяснить, как ими пользоваться. Но для начала давайте вспомним базовые концепции стека протоколов TCP/IP.

Особенности стека TCP/IP

Основной протокол стека TCP/IP – это IP (Internet Protocol). Он работает на сетевом уровне и занимается доставкой пакетов. У отправителя и получателя должны существовать уникальные IP адреса, которые указываются в заголовках каждого пакета. То есть первый критерий фильтрации – мы можем пропускать пакеты только от нужных (или только к нужным) IP адресам. Это самая примитивная фильтрация.

Но помимо протокола IP в сети работают несколько других протоколов. Каждый из них добавляет в пакет свой заголовок, то есть в момент передачи по сети пакет представляет собой «слоеный пирог», где помимо данных помещены заголовки различных протоколов. Один из этих заголовков вы уже знаете – это заголовок протокола IP.

Выше протокола IP находятся протоколы транспортного уровня – это TCP (Transmission Control Protocol) и UDP (User Datagram Protocol). Обычно используется либо TCP, либо UDP. Каждый из этих протоколов тоже добавляет в пакет свой заголовок. У UDP и TCP есть своя специфика – они, в отличие от IP, уже умеют работать с сетевыми службами. Причем адресация сетевых служб происходит по адресу службы – номеру порта. Отсюда вытекает вторая возможность фильтрации – мы можем ограничивать доступ по номеру порта. При этом номер порта можно комбинировать с IP адресом – к примеру, разрешать доступ на веб-сайт сервера (стандартно TCP порт 80) только с определенных IP адресов. Учтите, что хотя номера портов для TCP и UDP похожи, это разные протоколы и номера портов у них тоже разные. Номера портов большинства служб стандартизированы, и вы можете посмотреть их в файле "services", который размещается в каталоге %systemroot%system32driversetc. %Systemroot% - это каталог, где у вас установлена Windows. Кстати, комбинация «IP адрес» + «номер порта» называется сокетом. Сокет позволяет уникально адресовать службу в Интернете.

Когда вы обращаетесь к удаленному серверу по протоколу TCP, то происходит процесс установления связи. К примеру, вы обратились к веб-серверу узла 192.168.1.1 (стандартно – на TCP порт 80). При этом ваш компьютер (клиент) тоже должен выделить порт, чтобы сервер знал, куда отправлять ответ. Порт клиента выделяется случайным образом – к примеру, пусть это будет TCP 29334.

Кстати, очень полезно использовать утилиту "netstat.exe", которая входит в стандартную поставку Windows – она показывает все текущие TCP соединения и открытые порты.

Как правило, все сетевые службы общаются через TCP или UDP. TCP сегодня используется наиболее часто. Так что практически в любом пакете вы обнаружите заголовки TCP и UDP, по которым мы и будем осуществлять фильтрацию.

Осталось упомянуть протокол ICMP (Internet Control Message Protocol). Он использует IP, но не задействует ни TCP, ни UDP. ICMP предназначен для диагностики компьютерной сети, и его, в принципе, можно разрешать с любого IP адреса на любой IP адрес. По ICMP работает утилита "ping.exe", также стандартно поставляющаяся с Windows. С помощью утилиты ping вы сможете проверить доступность любого узла в Интернете. А с помощью еще одной утилиты – tracert.exe – проверить маршрут до выбранного узла.

Теперь после небольшого теоретического введения давайте перейдем собственно к построению защиты. Я буду иллюстрировать статью английской версией операционной системы, поскольку использовать русскую версию сервера Windows 2000 я настоятельно не рекомендую. Вряд ли «база знаний» на русском языке столь же информационно наполнена, как knowledge base на английском – а ведь это именно тот ресурс, который жизненно необходим всякому уважающему себя администратору. Для непосвященных отмечу – "knowledge base" содержит ответы практически на все вопросы, там указаны практически все ошибки Windows, а также даны рекомендации по их решению и различные советы.