Squid - налаштовуємо url-фільтрацію за списками

Squid - налаштовуємо url-фільтрацію за списками
Перед багатьма системними адміністраторами постає питання обмеження доступу користувачів до тих чи інших ресурсів мережі інтернет. У більшості випадків в ресурсномісткої і складної контент фільтрації немає необхідності, цілком достатньо URL-списків. Реалізувати такий метод цілком можливо средсвами проксі-сервера squid не привертаючи стороннього ПО.

Ефективність даного методу слід розглядати з точки зору поставленої задачі, так якщо потрібно заблокувати для співробітників соцмережі і ряд розважальних ресурсів, на яких вони проводять найбільше часу, то фільтрація по URL-списками здатна повністю вирішити цю проблему. У той же час така фільтрація виявиться малоефективною, якщо потрібно обмежити доступ до будь-яких ресурсів певного змісту.

Надалі ми будемо мати на увазі, що читач має початковими навичками адміністрування Linux. Також нагадаємо, що всі наведені нижче команди слід виконувати від супрепользователя.

Перш за все створимо файл списку. Розташовуватися він може в будь-якому місці, але буде логічно розмістити його в конфигурационной директорії squid - / etc / squid (або / etc / squid3 якщо ви використовуєте squid3)

і приступимо до його заповнення. При вказівці URL слід використовувати RegExp синтаксис, ми не будемо детально зупинятися на цьому питанні, так як це виходить за рамки статті, докладніше з правилами RegExp можна ознайомитися тут. Для прикладу заблокуємо популярні соцмережі:

Зверніть увагу, точка в RegExp є службовим симоволом і тому повинна бути екранована символом \ (зворотний слеш).

У файлі конфігурації squid (/etc/squid/squid.conf) створимо acl список, в який включимо хости або користувачів, для яких буде проводитися фільтрація.

Потім підключимо наш список:

Ключ -i вказує на те, що список нечутливий до регістру.

Тепер перейдемо до секції правил і перед правилом

Ще раз звернемо вашу увагу, що всі правила в squid обробляються послідовно, до першого входження, тому якщо ми розмістимо більш загальне правило перед більш приватним, то воно працювати не буде. Те ж саме справедливо і для перекриваються правил - спрацює найперше.

Збережемо зміни і перезапустити squid:

Спробуємо відвідати сайт зі списку, якщо все зроблено правильно, то ви побачите повідомлення squid про заборону доступу до цього ресурсу.

Squid - налаштовуємо url-фільтрацію за списками
Надалі ви можете доповнювати списки, не забуваючи кожного разу після цього перезапускати squid.

Розглянемо трохи іншу ситуацію, потрібно фільтрувати інтернет для всіх, крім певної групи. В цьому випадку створимо acl для виключених користувачів:

і змінимо забороняє правило в такий спосіб:

Також ви можете використовувати кілька URL-списків і списків доступу, гнучко регулюючи доступ для різних груп користувачів.

Squid - налаштовуємо url-фільтрацію за списками
Як рядки можна використовувати не тільки доменне ім'я, але і його частина. Так якщо ми внесемо в список просту рядок

то це призведе до блокування всіх ресурсів, у яких дане поєднання входить в доменне ім'я, тобто і mail.ru і hotmail.com. Тому до складання списків, особливо що містять короткі прості поєднання, потрібно підходити обережно.

Розглянемо простий, але показовий приклад. Припустимо потрібно заблокувати відомий сайт auto.ru і його піддомени. Якщо ми, не довго думаючи, напишемо

Те разом з необхідним порталом будуть заблоковані всі сайти мають дане поєднання в імені, наприклад abc-auto.ru. Є над чим замислитися. Якщо з піддоменів все просто, достатньо написати

і додамо правило перед заборонним, в результаті повинно вийти:

Так як дозволяє правило розташоване раніше, то зазначені в "білому" аркуші ресурси будуть доступні, незважаючи на те, що будуть потрапляти під правила "чорного".

Squid - налаштовуємо url-фільтрацію за списками
Як бачимо, технологія URL-фільтрації за списками за допомогою squid дуже проста і дозволяє в найкоротші терміни обмежити доступ до небажаних ресурсів, нижче наведено набір використовуваних нами списків, якими ви можете скористатися.

Додаткові матеріали:

Схожі статті