вторник, 28 февраля 2012 г.

Установка прозрачного прокси сервера Squid на CentOS 5.5


Источник: http://metalcandy.ru/how-to-forge-centos/219-transperity-proxy-squid-on-centos?showall=1

Конечно Squid популярный с открытом кодом GPL прокси сервер. Он имеет множество применений, от ускорения веб-сервера путем кеширования на неоднократные просьбы, кеширование запросов доменных имён, а блокирование сетевых ресурсов. Squid в первую очередь предназначена для работы в Linux / Unix-подобных систем. Squid это высокопроизводительный прокси-сервер кеширования для веб-клиентов, поддержка FTP, Gopher, HTTP и объектов данных. В отличие от традиционных программ кеширования, Squid обрабатывает все запросы в одном, не блокирование, I / O инициативе процесса. Squid хранит метаданные и особенно горячие запросы сохраняются в оперативной памяти, кеш DNS поиск, поддерживает неблокирующий DNS поиска, и реализует отрицательное кеширование отказавших запросов. Установим и настроим прозрачный прокси сервера Squid на CentOS / RHEL 5.

Описание таблиц в Iptables

Источник: http://iptables.ru/ (Так же там более подробная информация по настройке iptables)


А теперь рассмотрим порядок движения пакета, предназначенного локальному процессу/приложению:
Для локального приложения
Шаг
Таблица
Цепочка
Примечание
1


Кабель (т.е. Интернет)
2


Входной сетевой интерфейс (например, eth0)
3
mangle
PREROUTING
Обычно используется для внесения изменений в заголовок пакета, например для установки битов TOS и пр.
4
nat
PREROUTING
Преобразование адресов (Destination Network Address Translation). Фильтрация пакетов здесь допускается только в исключительных случаях.
5


Принятие решения о маршрутизации.
6
mangle
INPUT
Пакет попадает в цепочку INPUT таблицы mangle. Здесь внесятся изменения в заголовок пакета перед тем как он будет передан локальному приложению.
7
filter
INPUT
Здесь производится фильтрация входящего трафика. Помните, что все входящие пакеты, адресованные нам, проходят через эту цепочку, независимо от того с какого интерфейса они поступили.
8


Локальный процесс/приложение (т.е., программа-сервер или программа-клиент)
Важно помнить, что на этот раз пакеты идут через цепочку INPUT, а не через FORWARD.
Порядок движения пакетов, созданных локальными процессами.
От локальных процессов
Шаг
Таблица
Цепочка
Примечание
1


Локальный процесс (т.е., программа-сервер или программа-клиент).
2


Принятие решения о маршрутизации. Здесь решается куда пойдет пакет дальше -- на какой адрес, через какой сетевой интерфейс и пр.
3
mangle
OUTPUT
Здесь производится внесение изменений в заголовок пакета. Выполнение фильтрации в этой цепочке может иметь негативные последствия.
4
nat
OUTPUT
Эта цепочка используется для трансляции сетевых адресов (NAT) в пакетах, исходящих от локальных процессов брандмауэра.
5
Filter
OUTPUT
Здесь фильтруется исходящий траффик.
6
mangle
POSTROUTING
Цепочка POSTROUTING таблицы mangle в основном используется для правил, которые должны вносить изменения в заголовок пакета перед тем, как он покинет брандмауэр, но уже после принятия решения о маршрутизации. В эту цепочку попадают все пакеты, как транзитные, так и созданные локальными процессами брандмауэра.
7
nat
POSTROUTING
Здесь выполняется Source Network Address Translation. Не следует в этой цепочке производить фильтрацию пакетов во избежание нежелательных побочных эффектов. Однако и здесь можно останавливать пакеты, применяя политику по-умолчанию DROP.
8


Сетевой интерфейс (например, eth0)
9


Кабель (т.е., Internet)
Порядок движения транзитных пакетов
Шаг
Таблица
Цепочка
Примечание
1


Кабель (т.е. Интернет)
2


Сетевой интерфейс (например, eth0)
3
mangle
PREROUTING
Обычно эта цепочка используется для внесения изменений в заголовок пакета, например для изменения битов TOS и пр..
4
nat
PREROUTING
Эта цепочка используется для трансляции сетевых адресов (Destination Network Address Translation). Source Network Address Translation выполняется позднее, в другой цепочке. Любого рода фильтрация в этой цепочке может производиться только в исключительных случаях
5


Принятие решения о дальнейшей маршрутизации, т.е. в этой точке решается куда пойдет пакет -- локальному приложению или на другой узел сети.
6
mangle
FORWARD
Далее пакет попадает в цепочку FORWARD таблицы mangle, которая должна использоваться только в исключительных случаях, когда необходимо внести некоторые изменения в заголовок пакета между двумя точками принятия решения о маршрутизации.
7
Filter
FORWARD
В цепочку FORWARD попадают только те пакеты, которые идут на другой хост Вся фильтрация транзитного трафика должна выполняться здесь. Не забывайте, что через эту цепочку проходит траффик в обоих направлениях, обязательно учитывайте это обстоятельство при написании правил фильтрации.
8
mangle
POSTROUTING
Эта цепочка предназначена для внесения изменений в заголовок пакета уже после того как принято последнее решение о маршрутизации.
9
nat
POSTROUTING
Эта цепочка предназначена в первую очередь для Source Network Address Translation. Не используйте ее для фильтрации без особой на то необходимости. Здесь же выполняется и маскарадинг (Masquerading).
10


Выходной сетевой интерфейс (например, eth1).
11


Кабель (пусть будет LAN).
Теперь мы знаем, что есть три различных варианта прохождения пакетов.
1. Из вне на локальную службу (сервер) этого компьютера (INPUT).
2. От локальной службы (сервера) этого компьютера во вне (OUTPUT).
3. Прохождение мимо, шлюзование, мимо этого сетевого интерфейса этого компьютера (FORWARD).