Squid является прокси-сервером кеширования. Если вы системный администратор Linux, вы можете использовать squid для контроля доступа в Интернет в вашей рабочей среде.
Это руководство для начинающих даст толчок тому, как настроить squid на Linux для ограничения доступа в Интернет в сети.
Вы должны установить следующие три связанных с squid пакета в вашей системе.
В 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, как показано ниже.
# 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
Таким образом вы можете запретить пользователям просматривать определенные веб-сайты, когда они подключены к вашей сети через прокси-сервер.
Создайте файл с именем 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.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
Вместо того, чтобы ограничивать определенные сайты, вы также можете предоставить доступ только к определенной сети и заблокировать все остальное. В приведенном ниже примере разрешен доступ только к внутренней сети 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
Вы также можете использовать регулярные выражения для разрешения или запрета веб-сайтов.
Сначала создайте файлы заблокированных_сайтов со списком ключевых слов.
# 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-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-2020Aug28 images index.html
Продолжая использовать данный сайт вы принимаете политику конфиденциальности и cookies