Операционные системы - статьи

         

О чем это вообще?


Это о пересылке (forwarding), маскарадинге (masquerading) и фильтрации IP-пакетов на Линуксе с ядрами 2.1.* и выше и, в частности, о программе ipchains. Ссылки на более подробные материалы смотри . В этой статье не рассматриваются вопросы маршрутизации, подробности работы протоколов семейства TCP/IP и проксирования, а также подробности настройки и конфигурирования ядер, сетевых интерфейсов и комплексной защиты от хакеров ;-)

Как известно, все коммуникации, использующие протокол IP, передают данные в виде пакетов. В начале каждого пакета есть заголовок, в котором написано, от кого и кому этот пакет (в виде IP-адресов), к какому протоколу более высокого уровня он относится (ICMP, TCP, UDP и т.п.), в некоторых случаях (для протоколов UDP и TCP) - номера портов отправителя и получателя, а также другая специфическая информация.

На пути от отправителя к получателю пакет может проходить через промежуточные узлы. В зависимости от информации, которая содержится в заголовке IP-пакета, они могут этот пакет переслать на следующий узел (forward), передать локальной программе для обработки, уничтожить (deny), отвергнуть, т.е. уничтожить и отправить об этом уведомление отправителю (reject). Выбор и осуществление одного из этих действий и называется фильтрацией пакетов.

Возможность фильтрации встроена в ядро Линукса, но для установки конкретных правил используются отдельные программы. В ядрах 2.0.x использовалась программа ipfwadm, в ядрах 2.1.x и выше используется более мощная программа ipchains. ipfwadm в ядрах 2.1.x не работает в принципе, а ipchains может работать в ядрах 2.0.x после небольшого патча ядра.

Firewall (или "по-русски" - брандмауэр, хотя у меня язык не поворачивается его так называть) - это программа или специализированная железка, которая, основываясь на некоторых правилах, разрешает или запрещает передачу информации, проходящей через нее, с целью ограждения некоторой подсети от внешнего доступа или наоборот, для недопущения выхода наружу. Firewall может определять правомерность передачи информации на основе только заголовков IP-пакетов, а может анализировать и их содержимое, т.е. использовать данные протоколов более высокого уровня.

Маскарадинг - это подмена некоторых параметров в заголовках IP-пакетов, позволяющая машинам, не имеющим реальных IP-адресов, практически полноценно работать в интернете.

Прозрачное проксирование (transparent proxying) - это переадресация пакетов на другой порт машины. Обычно используется для того, чтобы заставить пользователей из локальной сети пользоваться местным proxy-сервером без дополнительного конфигурирования их клиентских программ.

Вообще-то, фильтрация пакетов, маскарадинг и прозрачное проксирование - вещи мало связанные друг с другом, но их конфигурирование выполняется одной утилитой - ipchains, поэтому они и рассматриваются тут вместе.



Содержание раздела