Как использовать Squid Proxy Cache Server для контроля доступа в Интернет

Мы предоставляем услуги удаленного администрирования серверов

Как использовать Squid Proxy Cache Server для контроля доступа в Интернет

Поделиться

Squid является прокси-сервером кеширования. Если вы системный администратор Linux, вы можете использовать squid для контроля доступа в Интернет в вашей рабочей среде.

Это руководство для начинающих даст толчок тому, как настроить squid на Linux для ограничения доступа в Интернет в сети.

Установить Squid

Вы должны установить следующие три связанных с squid пакета в вашей системе.

  • squid
  • squid-common
  • squid-langpack

В Debian и Ubuntu используйте aptitude для установки squid, как показано ниже. В CentOS используйте yum для установки пакета squid.

  $ sudo aptitude install squid

Проверьте конфигурацию и сценарии запуска

Помимо установки пакетов, связанных с squid, он также создает сценарии запуска /etc/squid/squid.conf и /etc/init.d/squid.

По умолчанию Squid работает на порту 3128. Вы можете проверить это из файла squid.conf. Вы также можете установить параметр visible_hostname в вашем squid.conf, который будет использоваться в error_log. Если вы не определили, squid получает значение имени хоста с помощью функции gethostname ().

# vim /etc/squid/squid.conf
visible_hostname ubuntuserver
httpd_port 3128

Примечание. Номер http-порта (3128), указанный в файле squid.conf, должен быть введен в разделе настроек прокси-сервера в браузере клиента. Если squid построен с использованием SSL, вы можете использовать опцию https_port внутри squid.conf для определения https squid.

 

 

Запустите Squid и просмотрите логи

Запустите прокси-сервер Squid, как показано ниже.

# service squid start
squid start/running, process 11743

Squid поддерживает три файла журнала (access.log, cache.log и store.log) в каталоге /var/log/squid.

В /var/log/squid/access.log вы можете посмотреть, кто и на каком сайте зашел в какой момент. Ниже приведен формат записи squid access.log.

time elapsed remotehost code/status bytes method URL rfc931     peerstatus/peerhost

Чтобы отключить регистрацию в squid, обновите squid.conf следующей информацией.

# to disable access.log
cache_access_log /dev/null

# to disable store.log
cache_store_log none

# to disable cache.log
cache_log /dev/null

Использование Squid 1: Ограничить доступ к определенным веб-сайтам

Таким образом вы можете запретить пользователям просматривать определенные веб-сайты, когда они подключены к вашей сети через прокси-сервер.

Создайте файл с именем limited_sites и перечислите все сайты, которые вы хотите ограничить доступ.

# vim /etc/squid/restricted_sites
www.yahoo.com
mail.yahoo.com

Измените файл squid.conf, добавив следующее.

# vim /etc/squid/squid.conf
acl RestrictedSites  dstdomain "/etc/squid/restricted_sites"
http_access deny RestrictedSites

Примечание: вы также можете настроить squid как прозрачный прокси-сервер, который мы обсудим в отдельной статье. Также обратитесь к нашей предыдущей статье о том, как заблокировать ip-адрес с помощью fail2ban и iptables.

Использование Squid 2: разрешить доступ к веб-сайтам только в течение определенного времени

Некоторые организации могут разрешить сотрудникам просматривать веб-страницы или загружать их из Интернета только в течение определенного периода времени.

Приведенная ниже конфигурация squid.conf разрешает доступ в Интернет для сотрудников только с 9:00 до 18:00 в будние дни.

# vim /etc/squid/squid.conf
acl official_hours time M T W H F 09:00-18:00
http_access deny all
http_access allow official_hours

Использование Squid 3: ограничение доступа к определенной сети

Вместо того, чтобы ограничивать определенные сайты, вы также можете предоставить доступ только к определенной сети и заблокировать все остальное. В приведенном ниже примере разрешен доступ только к внутренней сети 192.168.1. *.

# vim /etc/squid/squid.conf
acl branch_offices src 192.168.1.0/24
http_access deny all
http_access allow branch_offices

Использование Squid 4. Использование регулярных выражений для сопоставления URL-адресов.

Вы также можете использовать регулярные выражения для разрешения или запрета веб-сайтов.

Сначала создайте файлы заблокированных_сайтов со списком ключевых слов.

# cat /etc/squid/blocked_sites
soccer
movie
www.example.com

Измените файл squid.conf, чтобы блокировать любые сайты, в URL которых есть любое из этих ключевых слов.

# vim /etc/squid/squid.conf
acl blocked_sites url_regex -i "/etc/squid/blocked_sites"
http_access deny blocked_sites
http_access allow all

В приведенном выше примере опция -i используется для игнорирования регистра для сопоставления. Таким образом, при доступе к веб-сайтам squid будет пытаться сопоставить URL-адрес с любым шаблоном, упомянутым в приведенном выше файле block_sites, и запрещает доступ при его совпадении.

SARG — Генератор отчетов по анализу squid

Загрузите и установите SARG для генерации отчетов об использовании squid.

Используйте команду sarg-reports для генерации отчетов, как показано ниже.

# to generate the report for today
sarg-report today

# on daily basis
sarg-report daily

# on weekly basis
sarg-report weekly

# on monthly basis
sarg-report monthly

Примечание: добавьте sarg-report в crontab.

Сгенерированные sarg отчеты хранятся в /var/www/squid-reports. Это HTML-отчеты, которые вы можете просмотреть в браузере.

$ ls /var/www/squid-reports
Daily  index.html

$ ls /var/www/squid-reports/Daily
2019Aug28-2010Aug28  images  index.html
 2019-2020 © linuxadmins all rights reserved

Facebook Twitter Vkontakte