прозорий squid

Навіщо потрібен прозорий Squid

При зверненні клієнтів локальної мережі до зовнішніх сайтів Squid повинен прозоро для клієнта перехопити запит і обробити його відповідно до своїх правил - вирішити, який контент віддати, Залогуватися чи активність користувача, чи можна взагалі цього користувачеві виходити в інтернет. Наше завдання - зробити так, щоб на самого клієнта не треба було б робити ніяких налаштувань браузерів. Клієнт просто підключився до локальної мережі і вже працює через наш проксі-сервер і НІЯК інакше. Тобто навіть якщо хто-небудь захоче обійти наш проксі, без хитрощів йому вже не обійтися.

# Redirect to local proxy
/ Sbin / ipfw add 0170 fwd 127.0.0.1,3128 tcp from 192.168.1.0/24 to any 80

  • 0170 - номер правила (в вашому випадку може бути будь-який).
  • fwd 127.0.0.1,3128 - куди будемо направляти пакети, - в нашому випадку нашому улюбленому Squid, запущеного на порту 3128 на шлюзі, -.
  • from 192.168.1.0/24 -. відправлені комп'ютерами локальної мережі.
  • to any 80 -. на який-небудь сайт в інтернеті

У конфіге вище запит відкрити сайт спочатку обробляється правилом 0170. яке загортає запит в Squid. Squid (як і будь-яка інша програма) також виконує вимоги брандмауера - тільки для нього правило 0170 не діє, а ось правило 0350 дозволяє Squid відправити запит в інтернет. Для того, щоб виходити в інтернет без Squid, необхідно закоментіровать правило 0170. В цьому випадку Squid не отримає нічого, а всі запити браузерів з локальної мережі будуть оброблятися правилом 0350.

Якщо на нашому шлюзі встановлена ​​Linux і iptables. то вищевказана команда буде виглядати так:

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128

де eth0 - внутрішній інтерфейс.

З цим розібралися. Тепер треба дати вказівку Squid про те, що він повинен обробляти пакети, спочатку на нього не спрямовані. Переходимо до включення режиму прозорості Squid.

Прозорий Squid в squid.conf

Тепер справа залишилася за малим - налаштувати Squid в режим невидимки, тобто приймати автоматично перенаправлені пакети і обробляти їх. У різних версіях Squid за це відповідали різні команди. Налаштування Squid версії 2.6. * Виглядає так:

http_port 127.0.0.1:3128 transparent # Squid працює в прозорому режимі

http_port 3128 # Squid працює в звичайному режимі

Плюси і мінуси

З плюсів можна відзначити абсолютну впевненість, що всі запити на 80 порт (стандартний для веб) будуть оброблені Squid-му. Відповідно, будуть логи, статистика для шефа і відсутність необхідності бігати і руками все налаштовувати.

З мінусів можна відзначити:

Налаштування Squid в прозорому режимі завершена. Ось тепер - все.

Схожі статті