У цій статті я розповім як встановити та налаштувати кешуючий проксі-сервер SQUID в зв'язці з HAVP (HTTP Anti Virus Proxy). В результаті ми отримаємо деяку економію на трафіку, швидкодія (в разі якщо сторінка вже знаходиться в кеші проксі-сервера) і перевірку завантаження контенту антивірусним модулем clamav. Зрозуміло це кілька бюджетний варіант і рішення підійде для домашнього використання і в дрібних організаціях, де немає можливості придбати комерційне і більш функціональне рішення. Хоча укупі з IDC Snort і грамотно налаштованим фаєрволом, я думаю 90-95% «зарази» відобразити на шлюзі цілком реально. Отже, приступимо.
Налаштування HAVP.
Переходимо на вкладку Services-Antivirus і потрапляємо в меню настройки HTTP Anti Virus Proxy.
enable включення або відключення проксі.
Proxy mode в нашому випадку потрібно встановити в parent for squid (батьківський для squid)
Proxy interfaces виставляємо в LAN.
Proxy port я вибрав 8080.
Block file if error scanning відзначаємо цей параметр, щоб блокувати файли, які антивірусний модуль не зміг просканувати.
Enable RAM disk включення даного параметра призведе до використання оперативної пам'яті як сховища для тимчасових файлів havp. при достатньому обсязі вільної RAM можна досягти деякого швидкодії в скануванні. Відповідно прі не достатньому обсязі вільної пам'яті, включення даного параметра не рекомендується.
Scan max file size визначає максимальний розмір файлу, який havp буде сканувати, перш ніж віддасть користувачеві. Тут можна залишити параметр за замовчуванням (5000K). Розмір файлу має сенс збільшити якщо апаратні ресурси шлюзу дозволяють, а користувачі часто качають файли більшого обсягу. Хоча особисто моя думка, збільшувати цей параметр не доцільно.
Scan images цей параметр відповідає за сканування фото на сторінках, відповідно включення даного параметра підвищує безпеку, але знижує процес сканування. Цей параметр краще включити.
Syslog, log включає логування подій, включаємо ці параметри якщо ви будете відслідковувати логи havp. взагалі, я думаю зайве не буде, хоча б бути в курсі як працює зв'язка.
Для застосування налаштувань тиснемо SAVE.
Files Scanner:
Сканування файлу або каталогу, вказуємо шлях і тиснемо Start scan. Як об'єкт сканування можна задати три директорії за замовчуванням.
Settings:
AV base Update за допомогою списку вибираємо часовий проміжок поновлення баз антивірусного модуля.
Regional AV database update mirror дзеркало оновлень вибираємо - russian.
Syslog, Log включення ведення логів.
Для застосування налаштувань тиснемо SAVE, потім оновлюємо бази антивірусного модуля - UPDATE_AV.
Налаштування SQUID.
Переходимо на вкладку Services-Proxy server і потрапляємо в меню настройки General Settings.
General Settings:
Proxy intarface інтерфейс на якому «слухає» проксі, в нашому випадку це LAN.
Allow users on interface включаємо цей параметр для дозволу доступу до проксі користувачам входять в одну підмережу з інтерфейсом зазначеним в параметрі Proxy intarface.
Transparent Proxy цей параметр включає прозорий режим проксі, в цьому режимі не потрібно перебудовувати ПО на боці клієнта. У pf створюється правило перенаправлення запитів користувачів на «слухає» порт проксі.
Enabled logging включаємо ведення журналу.
Suppress Squid Version включаємо цей параметр, щоб відключити висновок версії squid в заголовках http і html сторінок помилок.
Custom options додаткові опції в яких ми повинні повідомити squid використовувати в якості parent (батьківського) проксі - havp. Якщо ви «слідували за моїми кроків», то у вас повинно бути в цьому полі наступне:
Якщо це поле порожнє, то тиснемо SAVE, знову переходимо Services-Antivirus. у вкладці HTTP Proxy ще раз зберігаємо налаштування, натиснувши SAVE і повертаємося до налаштувань squid. Тепер поле Custom options має бути заповнено, зберігаємо, натиснувши SAVE.
Upstream proxy:
Тут настроюється перенаправлення на вищестоящий проксі. Ми залишаємо цей пункт без змін.
Hard disk cache size розмір дискового кешу. Цей параметр може варіюватися в залежності від кількості користувачів проксі-сервера. Для будинку достатнім буде параметр 100-500 Мб. для невеликої організації 1Гб. і вище.
Hard disk cache system система зберігання даних в кеші, можна залишити за замовчуванням.
Memory cache size цей параметр задає розмір оперативної пам'яті, яку squid буде використовувати під час транзиту об'єктів. Цей параметр не повинен перевищувати 50% від загальної фізичної оперативної пам'яті. Мінімальне значення 1Мб. Тут все залежить від розміру фізичної пам 'яті, якщо пам'яті достатньо, збільшуємо значення за замовчуванням.
Minimum object size об'єкти яких не перевищує зазначений не потраплятимуть в кеш. Значення за замовчуванням 0 справедливо практично завжди.
Maximum object size об'єкти більше зазначеного значення в кілобайтах не потраплятимуть в кеш. Чим менше це значення, чим більше пропускна здатність. Я вважаю, є сенс виставити це значення в 500кб. Для кешування сторінок і графіки буде достатньо. Якщо крім сторінок в кеші повинні зберігатися різні файли, то цей параметр можна завищити аж до декількох гігабайт, не забувши при цьому збільшити розмір самого кеша в параметрі Hard disk cache size.
Level 1 subdirectories рівень вкладеності підкаталогів в одному каталозі дискового кешу. Чим більше ця вкладеність, тим довше стартує проксі, але тим швидше процес кешування. Я виставив значення в 256.
Memory replacement policy політика видалення об'єкта з пам'яті, коли це необхідно. Ми залишаємо значення за замовчуванням.
Cache replacement policy політика визначає які об'єкти залишаються в кеші, а які видаляються, щоб звільнити простір під нові.
Інші параметри, теж можна залишити за замовчуванням.
Тиснемо SAVE і зберігаємо налаштування.
Maximum download size розмір максимально припустимого файлу для скачки (в кілобайтах).
Maximum upload size розмір максимально припустимого файлу для закачування на віддалений сервер (в кілобайтах).
Overall bandwidth throtting обмеження смуги пропускання (кб / с) скачки для користувачів.
Per-host throtting обмеження смуги пропускання для кожного хоста.
Throttle only specific extensions опція включає обмеження завантаження файлів на основі їх типу. Відключення цієї опції призведе не можливості фільтрації файлів за типом засобами squid.
Throttle binary files включення цієї опції блокує завантаження бінарних файлів, стосовно стисненим архівів і виконуваних файлів.
Throttle CD images включення цієї опції блокує завантаження файлів образів CD.
Throttle multimedia files включення цієї опції блокує завантаження файлів мультимедіа (музики і фільмів).
Throttle over extensions через кому вказати розширення, які squid повинен блокувати.
Finish transfer if less than x kb remaining завершити передачу якщо до повного завантаження файлу залишилося менше X кб. Значення 0 перериває передачу негайно.
Abort transfer if more x kb remaining перервати передачу, якщо до кінця завантаження файлу залишилося більше x кб. Значення 0 перериває передачу негайно.
Finish transfer if more x kb finished завершити завантаження файлу якщо завантажено понад X%.
Для застосування налаштувань тиснемо SAVE.
Ця частина налаштувань відповідає за метод аутентифікації клієнтів проксі сервера. Важливо відзначити що дана установка не доступна, коли проксі налаштований як transparent proxy.
Можливі варіанти: local, LDAP, RADIUS, NT domain. Вибираємо потрібну, прописуємо реквізити обраного сервера аутентифікації. Тут, до речі, можна скористатися, налаштованим нами раніше RADIUS сервером в статті «Установка і настройка FreeRadius Server в pfSense». Я не налаштовував метод аутентифікації, тому, що в моєму випадку доступ до проксі дозволено всім користувачам локальної мережі.
Для застосування налаштувань тиснемо SAVE.
У цій частині можна явно прописати користувачів, доступ яких до проксі дозволено. Для цього в попередньому меню Auth settings. метод аутентифікації повинен бути обраний local.
Як завжди, для застосування налаштувань тиснемо SAVE.
З настройками покінчено, тепер час перевірити працездатність нашого проксі-сервера. Спочатку переконаємося, що всі наші настройки задовольняють працездатності серверів. Переходимо Status - Services і перевіряємо статус squid і havp. у обох він повинен бути відзначений як Running.
Пробуємо завантажити тестові віруси з таблиці Download area using the standard protocol http.
В результаті ми одержимо наступне:
У системних логах має бути наступне:
Це означає, що схема працює, а наша мета виконана.
На цьому статтю можна вважати завершеною, до нових зустрічей на сторінках блогу bruteforcer.ru.
Почитайте також схожі, не менш цікаві статті:
Як усунути лаги на ...
Сервіс VirusTotal - функціонал API
Безпека WordPress за допомогою ...
Реалізація proxy для Twitter на ...
Втрата даних на комп'ютері, як ...
Програма для FTP доступу - ...