Материал просмотрен 896 раз(а)

Продолжение статьи про установку и настройку Squid. Чтобы было понятно о чём идёт речь, советую перечитать предыдущий материал.

Сегодня мы рассмотрим, как блокировать определенные домены для пользователей. Ведь часто бывает ситуация, когда начальство просит прекратить доступ на развлекательные ресурсы, поедающие время пользователя: социальные сети, порносайты, сайты онлайн игр и т.д.

Так или иначе, эта политика позволяет сэкономить трафик и не позволит пользователям “расслабляться” как дома. А так, чтобы не блокировать IP адрес развлекательных сайтов на файрволле, а закрыть развлекуху только для определенных юзеров (разумеется, сюда не попадают админы и начальство) :).

Итак, приведём конфиг к следующему виду:

Изменим правила

Изменим правила

Что я сделал. Объявил 2 хоста (клиента), с адресами соответственно 192.168.0.2 и .3. Далее, объявил ACL со списком “нежелательных сайтов” BAD_SITE и директивой dstdomain .vk.com ….., то есть домен назначения.

И пошли правила:

  1. deny PC1 BAD_SITE — блокирует для PC1 нежелательные сайты;
  2. allow PC1 — разрешает трафик PC1
  3. allow PC2 — разрешает трафик PC2
  4. deny all — блокирует остальных

Так как правила будут проверяться в порядке их написания, то ситуация выглядит так. Пришел запрос на X ресурс для IP Y.

  • Если X – это развлекательный ресурс и Y – это IP адрес 192.168.0.2, то deny, доступа нет. сработало правило №1
  • Если X – это развлекательный ресурс и Y – это IP адрес 192.168.0.3, то allow, т.к. правило №1 не подходит, правило №2 не подходит, а правило № 3 подошло.
  • Если X – это не развлекательный ресурс и Y – это IP адрес 192.168.0.2, то allow, т.к. тут сработает правило № 2.
  • Если это ни то ни другое,(например IP адрес 192.168.0.4), то сработает 4-ое правило и будет deny. Удобно!

Таким образом у нас будет стоять запрет нежелательных сайтов только для PC1:

vk недоступен

vk недоступен

Меняем IP адрес на 192.168.0.3:

Меняем IP

Меняем IP

Теперь вконтактик стал доступным:

Доступ есть

Доступ есть

Для удобства, кстати, можно создать текстовый файл, например /etc/squid/bad_site.txt и перечислить домены в нём (построчно). А файл включить в конфиг вот так:

acl BAD_SITE dstdomain "/etc/squid/bad_site.txt"

И всё будет работать!

До новых встреч!