Обзор "прозрачного" прокси

Зачем это надо?

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

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

Маршрутизаторы Cisco поддерживают прозрачный прокси. Но, (к вашему большому удивлению) Linux тоже может быть маршрутизатором и поддерживать прозрачный прокси, перенаправляя TCP-соединения на локальные порты. Кроме того, наш прокси-сервер может знать все последствия этого перенаправления, и не делать его. Таким образом у нас есть два пути:

Первый. Если ваш прокси-сервер не может быть прозрачным, вы можете использовать маленький сервер transproxy, который все сделает за вас. transproxy написал John Saunders, и он доступен на ftp://ftp.nlc.net.au/pub/linux/www/ или на вашем местном зеркале metalab. Далее в этом тексте мы не будем обращаться к transproxy.

Более "чистый" путь - взять веб-прокси-сервер, который сам поддерживает прозрачность. Один из них, на который мы хотим обратить внимание - это squid. Squid - это кэширующий прокси-сервер с открытыми исходными текстами (Open Source) для систем Unix. Его можно найти на www.squid-cache.org

Область действия этого документа

Этот документ уделяет внимание squid версии 2.3 и ядру версии 2.2 - наиболее стабильным текущим версиям на момент, когда пишется этот текст (Март 2000). Однако это работает и на более ранних версиях squid 2.0 и ядрах 2.1 и выше. Если вам нужна информация о старых версиях, некоторые ранние документы доступны на www.unxsoft.com.

Если у вас ядро 2.3, вам нужно использовать netfilter вместо ipchains. Тем не менее, если вы используете разрабатывающееся ядро, вы должны сами разобраться с netfilter на основе предусмотренной документации. Если нет, вам не надо использовать разрабатывающееся ядро (поверьте мне на слово). Как только выйдет ядро 2.4, этот документ будет изменен согласно утилите netfilter.