Вы находитесь здесь: version6.ru » Настройка прозрачного HTTP-прокси с поддержкой IPv4 и IPv6
Различия
Здесь показаны различия между выбранной ревизией и текущей версией данной страницы.
|
tproxy [2012-01-10 11:16 UTC] rm |
tproxy [2012-01-11 05:29 UTC] (текущий) rm |
||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| ====== Настройка прозрачного HTTP-прокси с поддержкой IPv4 и IPv6 ====== | ====== Настройка прозрачного HTTP-прокси с поддержкой IPv4 и IPv6 ====== | ||
| + | //Впервые опубликовано 2012-01-10.// | ||
| + | |||
| Установка в локальной сети прокси-сервера позволяет: | Установка в локальной сети прокси-сервера позволяет: | ||
| - | * ускорить доступ в Интернет благодаря локальному сохранению и последующей раздаче из кэша часто запрашиваемых с разных компьютеров локальной сети ресурсов (страниц, картинок, CSS); | + | * ускорить доступ в Интернет благодаря локальному сохранению и последующей раздаче из кэша часто запрашиваемых ресурсов (страниц, картинок, CSS); |
| - | * настроить блокировку рекламы (либо другого нежелательного содержимого) в одном месте, сразу для всех пользователей локальной сети. | + | * настроить [[http://www.instanceof.ru/upravlenie.serverami/squid.protiv.reklamy|блокировку рекламы]] (либо другого [[http://www.msav.ru/archives/200|нежелательного содержимого]]) в одном месте, сразу для всех пользователей локальной сети. |
| + | |||
| + | **Прозрачный** HTTP-прокси называется так потому, что все клиенты, обращающиеся к внешним веб-серверам из внутренней сети, проходят через него автоматически, не внося никаких изменений в настройки на своей стороне (не указывая явно прокси во всех используемых программах, в части из которых может вовсё и не быть поддержки прокси). | ||
| - | **Прозрачный** HTTP-прокси называется так потому, что все клиенты, обращающиеся к веб-серверам из внутренней сети, проходят через него автоматически, не внося никаких изменений в настройки на своей стороне (не указывая явно прокси во всех используемых программах, в части из которых может и вовсё не быть поддержки прокси). Давайте рассмотрим, как обеспечить эту весьма удобную прозрачность одновременно по IPv4 и по IPv6. | + | Давайте рассмотрим, как обеспечить эту весьма удобную прозрачность одновременно по IPv4 и по IPv6. |
| В нижеследующих примерах подразумевается: | В нижеследующих примерах подразумевается: | ||
| - | * вы используете маршрутизатора на базе GNU/Linux; | + | * вы используете маршрутизатор на базе GNU/Linux; |
| - | * на нём установлен прокси-сервер Squid 3.1+ (описание установки и настройки Squid выходит за рамки данной статьи); | + | * на нём установлен прокси-сервер Squid **3.1+** (описание установки и настройки Squid выходит за рамки данной статьи); |
| - | * в ОС используется ядро Linux версии 2.6.37+ и пакет iptables 1.4.10+; | + | * в ОС используется ядро Linux версии **2.6.37+** и пакет iptables **1.4.10+**; |
| * внутренний интерфейс маршрутизатора называется ''eth0''. | * внутренний интерфейс маршрутизатора называется ''eth0''. | ||
| Строка 17: | Строка 21: | ||
| ==== iptables ==== | ==== iptables ==== | ||
| <code>iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8084</code> | <code>iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8084</code> | ||
| - | Добавьте данную строку в уже используемый на вашем маршрутизаторе скрипт для настройки iptables. | + | Добавьте данную строку в уже используемый вами скрипт iptables. |
| ==== Squid ==== | ==== Squid ==== | ||
| Со стороны Squid необходимо добавить в ''/etc/squid3/squid.conf'': | Со стороны Squid необходимо добавить в ''/etc/squid3/squid.conf'': | ||
| <code>http_port 8084 transparent</code> | <code>http_port 8084 transparent</code> | ||
| + | Порт можно использовать любой другой на ваш выбор, главное чтобы он не был занят ничем другим, и был одним и тем же как в правиле ''iptables'', так и в конфиге Squid. | ||
| ===== IPv6 ===== | ===== IPv6 ===== | ||
| Строка 29: | Строка 34: | ||
| <code>#!/bin/sh | <code>#!/bin/sh | ||
| - | # === Удаление прежней конфигурации ============== | + | # === Удаление прежних настроек (если были) =========== |
| ip -6 route flush table 64 | ip -6 route flush table 64 | ||
| Строка 36: | Строка 41: | ||
| ip6tables -t mangle -X DIVERT | ip6tables -t mangle -X DIVERT | ||
| - | # === Внесение новой конфигурации ================ | + | # === Внесение новой конфигурации ===================== |
| ip -6 route add local default dev lo table 64 | ip -6 route add local default dev lo table 64 | ||
| Строка 52: | Строка 57: | ||
| В ''/etc/squid3/squid.conf'' нужно добавить: | В ''/etc/squid3/squid.conf'' нужно добавить: | ||
| <code>http_port 8086 tproxy</code> | <code>http_port 8086 tproxy</code> | ||
| + | Как и в вышеописанном процессе настройки для IPv4, порт можно выбрать и какой-нибудь другой. | ||
| + | |||
| + | ===== Применение настроек ===== | ||
| + | Чтобы применить внесённые в ''squid.conf'' изменения, достаточно указать Squid'у перечитать этот файл; к примеру, в Debian-based дистрибутивах для этого достаточно выполнить ''/etc/init.d/squid3 reload''. | ||
| + | |||
| + | Настройки ip/iptables/ip6tables вступают в силу сразу после выполнения соответствующих команд. Для того, чтобы они применялись при каждой загрузке системы, добавьте их в ваш скрипт файрволла (в используемом мною [[pdo>arno-iptables-firewall]] пользовательские дополнения можно прописывать в ''/etc/arno-iptables-firewall/custom-rules''), либо просто добавьте в ''/etc/rc.local''. | ||
| + | |||
| + | ===== Проверка ===== | ||
| + | С любой машины в локальной сети (но не с самого сервера) выполните: | ||
| + | <code>curl -I4 http://version6.ru/</code> | ||
| + | <code>curl -I6 http://version6.ru/</code> | ||
| + | В обоих случаях в выводе ''curl'' должны присутствовать строки: | ||
| + | <code>X-Cache: MISS from вашпрокси | ||
| + | X-Cache-Lookup: MISS from вашпрокси:порт</code> | ||
| + | Если их нет, либо соединение не устанавливается, значит что-то настроено не так. В случае, если настроить так и не получается, заходите [[irc#русскоязычные-irc-каналы-об-ipv6|к нам в IRC]], возможно кто-нибудь сможет помочь. | ||
| ===== Ссылки ===== | ===== Ссылки ===== | ||
tproxy.1326194180.txt.gz · Последние изменения: 2012-01-10 11:16 UTC От rm


