Установка и настройка прокси-сервера squid




Скачать 46.29 Kb.
НазваниеУстановка и настройка прокси-сервера squid
Дата публикации01.06.2013
Размер46.29 Kb.
ТипДокументы
odtdocs.ru > География > Документы



Настройка Squid в связке с Rejik

[исправить]

Введение: В статье хочу поделиться своим вариантом установки и конфигурирования прокси сервера SQUID в связке с Rejik для фильтрации баннеров. В заметке довольно наглядно описан конфигурационный файл SQUID, где можно гибко разграничить доступ по отдельным IP-адресам и на локальною подсеть. Рабочий пример, тест на FreeBSD 8.0-RELEASE i386: Установка и настройка прокси-сервера SQUID Ставим из пакетов: # pkg_add -r -K squid ключ -r загружает пакет с удаленного сервера. ключ -K сохраняет копию пакета в текущей директории. Конфигурируем: vi /usr/local/etc/squid/squid.conf #WELCOME TO SQUID 2.7.STABLE7 #---------------------------------------------------------------- #Имя листа доступа all, обозначающий все внутренние адреса: acl all src all #Имя листа доступа manager, отмечает протокол cache_object: acl manager proto cache_object #Имя листа доступа localhost, отмечает IP-клиента (127.0.0.1) acl localhost src 127.0.0.1/32 #Имя листа доступа to_localhost, отмечает подсеть ресурсов: acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 #---------------------------------------------------------------- #Отмечаем подсети клиентов, которые могут обращаться к SQUID: acl localnet src 172.16.0.0/24 acl localnet src 172.16.1.0/24 #---------------------------------------------------------------- #Имена листов доступа, с указанием ресурсов: acl ip-block dst "/usr/local/etc/squid/block/ip-block" acl sites-block1 dstdomain "/usr/local/etc/squid/block/sites-block1" acl sites-block2 dstdomain .odnoklassniki.ru .vkontakte.ru #---------------------------------------------------------------- #Имена листов доступа, отмечающие порты и медот соединения: acl SSL_ports port 443 acl ports-std port 21 80 443 5190 9080 9443 acl CONNECT method CONNECT #---------------------------------------------------------------- #Правило разрешает обращаться к КЭШу локальному ХОСТу. http_access allow manager localhost #Правило запрещает обращаться к КЭШу всему остальному. http_access deny manager #---------------------------------------------------------------- #Правило запрещает все порты, кроме указ. в листе доступа "ports-std" http_access deny !ports-std #Правило запрещает соединения по методу "CONNECT" кроме порта 443: http_access deny CONNECT !SSL_ports #--------------------------------------------------------------- #INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS #--------------------------------------------------------------- #Здесь указываем листы доступа отдельных клиентов, которым требуется #гибко настроить уровень доступа: #--------------------------------------------------------------- acl user1 src 172.16.0.100 http_access allow user1 #--------------------------------------------------------------- acl user2 src 172.16.0.101 http_access deny user2 ip-block http_access deny user2 sites-block1 http_access allow user2 #--------------------------------------------------------------- #Здесь указываем запреты для остальных клиентов нашего прокси: http_access deny localnet ip-block http_access deny localnet sites-block1 http_access deny localnet sites-block2 http_access allow localnet http_access deny all #================================================================ #Блокируем доступ к КЭШу нашего сервера: icp_access deny all #---------------------------------------------------------------- #Откл. ICP-порт, если др. сервера не обращаются к КЭШу нашего сервера: icp_port 0 #Указываем порт нашего прокси: #Если фаерволом используется редирект на прокси, #необходимо добавить опцию "transparent": #http_port 3128 http_port 3128 transparent #--------------------------------------------------------------- #Параметр указывает, какая программа использыется для редиректа. Если #утилита не установлена в системе, то требуется закомментировать опцию. #url_rewrite_program /usr/local/rejik/redirector /usr/local/rejik/redirector.conf #--------------------------------------------------------------- #Default: #Язык страницы-блокировки, отображается при блокировании ресурсов. #error_directory /usr/local/etc/squid/errors/English error_directory /usr/local/etc/squid/errors/Russian-koi8-r #--------------------------------------------------------------- #TAG: cache_peer #Default: #none #Если у вас есть родительский кеш, укажите его здесь. Администраторы #родительского кеша обычно дают вам необходимые инструкции. Но вы всегда #должы спрашивать разрешения перед тем, как добавить родительский кеш. #--------------------------------------------------------------- #Default: #Кол-во памяти (ОЗУ) выделенной под кеширование. #Предупреждение: реально SQUID использует больше, чем указанное здесь #значение. Золотое правило: если вы имеете N мегабайт свободной памяти, #которую можете отдать под squid, укажите здесь значение N/3. #cache_mem 8 MB cache_mem 256 MB #--------------------------------------------------------------- #Первое число 100 -это количество дискового пространства, отведенного #под кеш (в мегабайтах). Второе и третье число -каталоги первого #и второго уровня соответственно. #Default: #cache_dir ufs /usr/local/squid/cache 100 16 256 cache_dir ufs /usr/local/squid/cache 2048 16 256 #-------------------------------------------------------------- #TAG: cache_mgr #Адрес эл. почты администратора прокси-сервера, который отображается #только на английской версии страницы, при блокировке ресурсов. #Default: #cache_mgr webmaster cache_mgr you@hostname.local #-------------------------------------------------------------- #Default: #Имя пользователя, от имени которого работает SQUID в системе: #cache_effective_user squid #-------------------------------------------------------------- #TAG: visible_hostname #В некоторых случаях, для работы демона SQUID, требуется указать имя #хоста, на котором он работает. #Default: #none visible_hostname you.hostname.local #-------------------------------------------------------------- #Default: #Имя файла, для записи идентификатора процесса: #pid_filename /usr/local/squid/logs/squid.pid #-------------------------------------------------------------- #Default: #Показывает, какие объекты выбрасываются из кэша, и какие объекты #сохраняются и на какой срок. Если нет утилиты для анализа этих данных, #можно смело отключать. #cache_log /usr/local/squid/logs/cache.log cache_log none #-------------------------------------------------------------- #Default: #Показывает, какие объекты выбрасываются из кэша, и какие объекты #сохраняются и на какой срок. Если нет утилиты для анализа этих данных, #можно смело отключать. #cache_store_log /usr/local/squid/logs/store.log cache_store_log none #-------------------------------------------------------------- #TAG: hierarchy_stoplist #Список строк - через пробел, - при встрече в URL которых, запрос будет #направлен сразу напрямую, а не "по соседям"; по-умолчанию -"cgi-bin ?": hierarchy_stoplist cgi-bin ? #-------------------------------------------------------------- #TAG: access_log #Файл журнала деятельности запросу клиента. С каждой линии HTTP или #ICP запросу. Если статистика не нужна, указать: access_log none access_log /usr/local/squid/logs/access.log squid #-------------------------------------------------------------- #TAG: refresh_pattern #Используется, чтоб определить не устарел ли объект в КЭШе: #usage: refresh_pattern [-i] regex min percent max [options] refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern -i (/cgi-bin/|\?) 0 0% 0 refresh_pattern . 0 20% 4320 #-------------------------------------------------------------- #TAG: upgrade_http0.9 #Лист доступа shoutcast, обозн. имя заголовка по заданному выражению: acl shoutcast rep_header X-HTTP09-First-Line ^ICY.[0-9] #Опция upgrade_http0.9, позволяющая отключить обновл. откликов HTTP/0.9: upgrade_http0.9 deny shoutcast #-------------------------------------------------------------- #TAG: broken_vary_encoding #Лист доступа "apache", обозн. имя заголовка по заданному выражению: acl apache rep_header Server ^Apache #Правило разрешает принимать битые заголовки от ACL apache: broken_vary_encoding allow apache #-------------------------------------------------------------- #TAG: coredump_dir #Директория, где хранится КЭШ SQUID: coredump_dir /usr/local/squid/cache Далее создаем директорию, в которой будут хранится файлы для блокирования ресурсов, используемые SQUID`ом: # mkdir /usr/local/etc/squid/block Создаем сами файлы: Список блокируемых ip-адресов: # cat > /usr/local/etc/squid/block/ip-block 169.254.0.1 169.254.0.2 169.254.0.3 ^C Список блокируемых доменов: # cat > /usr/local/etc/squid/block/sites-block1 afisha.ru mail.ru ^C Назначаем владельца, на директорию # chown -R squid /usr/local/etc/squid/block/ Далее делаем первый запуск SQUID: # squid -z 2010/06/07 15:58:46| Creating Swap Directories Параметр -z нужен для создания (обнуления) каталога, содержащего кэш. Параметр -z нужен только при первом запуске. После, будет создан файл squid.pid, которому необходимо задать владельца: # chown -R squid /usr/local/squid/logs/squid.pid После этого заработает рестарт SQUID: # /usr/local/etc/rc.d/squid [start/stop/restart] и реконфигурирование SQUID: # squid -k reconfigure Добавим строку в /etc/rc.conf для автозапуска squid: squid_enable="YES" Увидеть что SQUID корректно запустился, можно посмотрев: vi /var/log/messages Jun 7 16:30:19 hostname squid[1014]: Squid Parent: child process 1018 started Или внести изменения в настроки браузера :) Возможные ошибки: Если после запуска в логах "/usr/local/squid/logs/cache.log" видно: Could not determine fully qualified hostname.Please set 'visible_hostname В "/usr/local/etc/squid/squid.conf" нужно указать: visible_hostname you.hostname.local Если store.log быстро растет без видимых причин, исправляем пересозданием директории с кЭшем SQUID. Установка и настройка Rejik Ставим из пакетов: # pkg_add -r rejik Копируем банлисты в рабочий каталог Режика: В случае установки из портов: # cp -R /usr/ports/www/rejik/work/banlists /usr/local/rejik В случае установки из пакетов, с официального сайта http://www.rejik.ru/ Качаем файл "banlists-2.x.x.tgz" и "www.tgz", для Веб-страниц Распаковываем банлисты: # tar vxzf ./banlists-2.x.x.tgz Копируем в директорию, где установлен Rejik: # cp -R ./banlists /usr/local/rejik/ Распаковываем странички: # tar vxzf ./www.tgz Копируем в директорию, где лежат файлы Apache-сервера: # cp -R ./www /usr/local/www/data Даем права пользователю, от которого работает Apache # chown -R www:www /usr/local/www/data/www/ Даем права пользователю на директорию Rejik, от которого работает SQUID: # chown -R squid:squid /usr/local/rejik/ Чтобы избежать ошибок в /usr/local/squid/logs/cache.log Can't write to file /usr/local/rejik/redirector.err: Permission denied Конфигурируем: vi /usr/local/rejik/redirector.conf error_log /usr/local/rejik/redirector.err change_log /usr/local/rejik/redirector.log make-cache /usr/local/rejik/make-cache #allow_urls /usr/local/rejik/banlists/allow_urls ban_dir /usr/local/rejik/banlists/banners url http://127.0.0.1/www/1x1.gif #log off
ban_dir /usr/local/rejik/banlists/porno url http://127.0.0.1/www/porno.html ban_dir /usr/local/rejik/banlists/mp3 url http://127.0.0.1/www/mp3.html ban_dir /usr/local/rejik/banlists/js url http://127.0.0.1/www/js.js #log off Далее, в /usr/local/etc/squid/squid.conf включаем опцию редиректа, сняв комментарий со строки: #url_rewrite_program /usr/local/rejik/redirector /usr/local/rejik/redirector.conf url_rewrite_program /usr/local/rejik/redirector /usr/local/rejik/redirector.conf Вносим изменения в файлы режика в соответствии по желаниям блокировки: /usr/local/rejik/banlists/banners/urls /usr/local/rejik/banlists/porno/urls /usr/local/rejik/banlists/js/urls Например, чтобы заблокировать баннеры на сайте www.test.ru, достаточно добавить эти строчки: # cat > /usr/local/rejik/banlists/banners/urls ad.test.ru bannerhost.ru doubleclick.net pagead2.googlesyndication.com ^C После выполнения команды: # squid -k reconfigure будут приняты изменения конфигурации, в том числе и нашего редиректа. Используемая литература: /usr/local/etc/squid/squid.conf.default Отдельное спасибо: Моему коллеге Dok`у, за скрипт убирающий комментарии. Сайту lissyra.su, некоторые материалы взяты оттуда. Сайту opennet.ru, и отсюда :)

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

Похожие:

Настройка Squid для начинающих
Я, с помощью этой статьи, попытаюсь наглядно и доходчиво объяснить о настройках самого распространенного прокси сервера прокси сервера...

Учебно-методическое пособие «Операционная система gnu/Linux для системных...
Издание содержит подробные пошаговые инструкции по развертыванию сервера оу на основе ос mandriva 2007. 1 Free и содержит главы об...

Цель разработки и область применения
Установка авторизации squid через TraffPro при использовании терминального сервера и учёта его пользователей: 14

Міністерство освіти І науки україни
В методическом пособии рассматривается установка, настройка и тестирование web сервера Apache 2 и Интернет технологий ssi, perl,...

В них описывается настройка только в терминале. Недавно я подумал,...
В общем, долго не думая, поставил Freebsd; mc и Webmin из портов. Открыл в Webmin закладку «Службы» и squid там не обнаружил. В общем,...

Теоретические сведения
Установка и конфигурирование radius сервера Freeradius и сервера бд postgresql под операционной системой Linux. Конфигурирование...

Информационная система мониторинга туберкулеза Воронежской области...
...

Установка и настройка mssql сервера
«проверка подлинности» выбрать смешанный (проверка подлинности средствами Windows и MsSql) и записать введенный пароль. Вход под...

Установка и настройка mssql сервера
«проверка подлинности» выбрать смешанный (проверка подлинности средствами Windows и MsSql) и записать введенный пароль. Вход под...

Application server configuration Установка сервера приложений
В качестве сервера приложений используется Glassfish, дистрибутив доступен по адресу: https://glassfish dev java net/public/downloadsindex...

Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
odtdocs.ru
Главная страница