Лабораторные работы по ПО/Настройка Proxy-сервера Squid

Материал из wiki.nntc.nnov.ru
Версия от 08:40, 1 апреля 2010; Gumanoed (обсуждение | вклад) (Базовая настройка Squid)
Перейти к навигации Перейти к поиску

Прокси-сервер (от англ. proxy — «представитель, уполномоченный») — служба в компьютерных сетях, позволяющая клиентам выполнять косвенные запросы к другим серверам. Сначала клиент подключается к прокси-серверу и запрашивает какой-либо ресурс (например, web-страницу), расположенный на другом сервере. Затем прокси-сервер либо подключается к указанному серверу и получает ресурс, либо возвращает ресурс из собственного кэша.

Основные задачи, решаемые с помощью proxy-сервера:

  • Кэширование данных, проходящих через основной сервер сети (это единственный способ кэширования информации)
  • Блокировка доступа к нежелательным web-сайтам или нежелаемому контенту (это единственный способ блокировки информации по типу данных или по содержимому)
  • Поточная проверка данных, передаваемых в сеть, на вирусы (единственный способ)
  • Изменение содержания передаваемой клиенту информации (например, блокировка рекламы, подмена на свой логотип)

Существует большое количество реализаций системы проксирования (3proxy, usergate, kerio и др.). Мы будем рассматривать самый распространенный в Internet прокси-сервер Squid.

Установка Squid

Как и другие программы в пакетных дистрибутивах Linux, squid устанавливается с помощью пакетного менеджера из репозитория.

Вам нужно проверить подключен ли репозиторий и дать команду обновить список доступных пакетов:

sudo aptitude update

Далее, даем команду для установки прокси-сервера squid

sudo aptitude install squid

Базовая настройка Squid

Для правильной работы proxy-сервера Squid вам понадобится сделать базовые настройки в файле /etc/squid/squid.conf

sudo nano /etc/squid/squid.conf


Вам нужно найти и проверить следующие параметры:

Порт, по которому будет доступен ваш proxy-сервер

http_port 3128


Адрес DNS сервера (сервера преобразования имен). В некоторых случая полезно указать этот параметр прямо в конфигурационном фале.

dns_nameservers 192.168.10.1


Имя вашего proxy-сервера, которое будет отображаться в сообщениях об ошибках

visible_hostname http-proxy


Сделав эти настройки перезапустите ваш proxy-сервер:

sudo /etc/init.d/squid restart


Проверка работоспособности установленного proxy-сервера

Для проверки работоспособности вашего proxy-сервера следует изменить настройки web-браузера на вашем комдпьютере, на работу с вновь установленным proxy.

FireFox proxy configuration.jpg

В нашем случае web-браузером будет FireFox.

  • Откройте меню Правка -> Настройки
  • Перейдите в раздел Дополнительно
  • Закладка Сеть
  • Нажмите кнопку Настроить
  • В появившемся окне укажите "Использовать Proxy-сервер"
  • Введите ip адрес вашего proxy-сервера и укажите порт, который вы указывали в параметре http_port при настройке squid


Настройка прокси-сервера ACL (список контроля доступа) описывается в конце секции TAG: ACL

Параметры досупа - src Откройте конфигурационный файл сервера

sudo nano /ect/squid/squid.conf

Добавьте новую acl запись

acl name src ip

где: name - имя пользователя или группы пользователей для которых будет устанавливаться правила доступа. ip - ip-адреса компьютеров для которых будет устанавливаться правила доступа.

После описания пользователей необходима разрешить или запретить доступ к прокси-серверу.

Добавьте разрешение доступа к интернет ресурсам по протоколу HTTP.

http_access allow name http_access deny all

Сохраним файл и перезапустим сервис squid

sudo /etc/init.d/squid restart

Проверьте работоспособность сервера.

Параметры доступа - dst Запретите пользователь доступ к ресурсам,расположенном в сети 168.250.0.0/16.

Добавьте новую acl запись

acl NET168 dst 168.250.0.0/16

Добавьте запрет доступа к ресурсам в под сети по 168.250.0.0/16 протоколу HTTP.

http_access deny name NET168 http_access deny all


Сохраним файл и перезапустим сервис squid

sudo /etc/init.d/squid restart

Параметры доступа - dstdomain Разрешите пользователям посещать сайты находящиеся в нижегородском кольце.

acl SitesWarez dstdomain .nnov.ru http_access deny name SitesWarez

Параметры доступа - srcdomains Запретите доступ к доменам com, net, org.

Добавьте новую acl запись

Acl SitesRegexComNetOrg dstdom_regex \.com$ \.net$ \.org$

Добавьте запрет доступа к ресурсам находящимся в доменах com, net, ogr по протоколу HTTP.

http_access deny name SitesRegexComNetOrg

Сохраним файл и перезапустим сервис squid

Ограничение доступа по контенту Запретите доступ к файлам с расширением avi, начинающихся на слово sex:

acl NoAviFromSex url_regex -i sex.*\.avi$ http_access deny name NoAViFomSex

Запретите доступ к музыкальным файлам:

acl media urlpath_regex -i \.mp3$ \.asf$ \.wma$ http_access deny name media


Блокировка рекламных банеров


Ограничение доступа по портам Запретите всем использование программы Mirc через прокси сервер:

Acl Mirc port 6667-6669 7770-7776 http_access deny all Mirc

Запретите пользователям использование протокола FTP через прокси сервер:

acl ftpproto proto ftp http_access deny name ftpproto

Ограничения методов GET и POST

Запретите пользователю просмотр его страничке на сайте vkontakte.ru, но при этом разрешить прогуливаться по сайту без запретов

acl SiteVkontakteRu dstdomain .vkontakte.ru acl methodpost method POST http_access deny name methodpost SiteVkontakteRu


Ограничение скорости


Ограничения по времени Запретите пользователю доступ в сеть Интернет с 10 до 15 часов каждый день:

acl Time time 10:00-15:00 http_access deny name Time


Разрешить пользователю пользоваться программой ICQ с 13 до 14 часов:

acl TimeICQ time 13:00-14:00 http_access allow name TimeICQ ICQ http_access deny name ICQ