ПРОКСИ В WINDOWS И LINUX
Различные задачи, решаемые прокси, соответствующим наиболее уместным образом воплотились как на различных уровнях модели OSI, так и в различных категориях ПО:
1. Ядро ОС.
2. СПО, включаемое в дистрибутив.
3. ППО, включаемое в дистрибутив.
4. Стороннее (third party) ПО, не включаемое в дистрибутив.
Начиная с Windows XP SP2 в ядро интегрирован Windows Firewall, позиционируемый как базовый сетевой экран.
Упрощенными для удобства пользователя специфическими формами NAT являются Internet Connection Sharing и Network Bridge (вытесняют Routing and Remote Access).
Network Bridge Connection позволяет объединить две возможно разнородные подсети с целью эмуляции одного сегмента.
Internet Connection Sharing позволяет нескольким пользователям из одной подсети разделять (совместно использовать в режиме разделения времени) один сетевой интерфейс из другой подсети, обычно с целью доступа к Internet.
Полноценная реализация NAT с графическим интерфейсом доступна в Server 2003.
В большинстве систем Unix широко применяется пакет IP Filter – в основном для целей фильтрации и NAT. В Linux эту роль выполняет пакет IP Tables (пришел на смену Ipfwadm и IP Chains).
Прохождение пакета в соответствии с IP Tables.
Рисунок -- Прохождение пакета в соответствии с IP Tables
Для нормальной работы IP Tables должны быть включены некоторые опции ядра.
Для обеспечения возможности управления введен одноименный сервис iptables.
Фильтры строятся на основе правил (rules). Каждое правило – это строка, содержащая в себе критерии, определяющие, подпадает ли пакет под правило, и действие, которое необходимо осуществить в случае выполнения условий. Правила могут объединяться в цепочки (chains) и образовывать сложную иерархию. Следовательно при работе с IP Tables необходимо внимательно проверять содержимое и последовательность правил.
Общий формат задания правила.
Рисунок -- Формат задания правила IP Tables
Примеры таблиц (tables):
а) nat – нужна для преобразования сетевых адресов;
б) mangle – нужна для внесения изменений в заголовки пакетов (TTL, TOS, MARK);
в) filter – нужна для фильтрации пакетов.
Примеры команд (commands):
а) –A(--append) – добавить новое правило в конец заданной цепочки;
б) –D(--delete) – удалить правило из цепочки;
в) –R(--replace) – заменить одно правило другим;
г) –I(--insert) – вставить новое правило в цепочку;
д) –L(--list) – вывести на экран список правил в заданной цепочке;
е) –F(--flush) – удалить все правила из заданной цепочки;
ж) –N(--new-chain) – создать новую цепочка с заданным именем в заданной таблице;
з) –X(--delete-chain) – удалить заданную цепочку из заданной таблицы;
и) –P(--policy) – определить политику по умолчанию для заданной цепочки.
Примеры критериев (matches):
а) –p(--protocol) – нужен для указания протокола;
б) –s(--source) – нужен для указания адреса отправителя;
в) –d(--destination) – нужен для указания адреса назначения;
г) –i(--in-interface) – нужен для указания сетевого интерфейса, принимающего пакеты;
д) –o(--out-interface) – нужен для указания сетевого интерфейса, передающего пакеты;
е) –f(--fragment) – нужен для включения поддержки фрагментации.
Примеры действий (targets):
а) ACCEPT – в таком случае, пакет прекращает движение по цепочке (и всем цепочкам, приведшим к текущей) и считается пропущенным, но он может быть отвергнут следующими цепочками;
б) DROP – в таком случае, пакет отвергается (окончательно);
в) LOG – протоколирование пакета или связанных с его прохождением событий.
Переходы (jumps) позволяют передавать пакет другим цепочкам.
Пример применения IP Tables на сетевом экране с NAT для разрешения принимать пакеты по протоколу HTTP станции с адресом 192.168.0.2 (10.10.10.1).
Рисунок -- Пример правила IP Tables
Подробное описание приведено в руководстве [8].
В случае масштабного применения для серверов Windows предлагается стандартный пакет ISA (Internet Security and Acceleration) Server (сейчас называется Forefront Threat Management Gateway), позиционируемый как кэширующий прокси-сервер с возможностями сетевого экрана.
Кроме того, очень широко применяются пакеты сторонних производителей, среди которых следует выделить WinGate, WinProxy и Winroute.
Де факто стандартным прокси-сервером для Linux является пакет Squid.