Налаштування squid для початківців. Як налаштувати на squid проксі-сервер

Squid - поширене в середовищі програмістів, системних адміністраторів і ентузіастів комп`ютерних мереж рішення для створення ефективного проксі-сервера та управління ім. Програма особливо приваблива тим, що вона кроссплатформенная. Тобто встановлювати і запускати її можна як в Linux та інших ОС, відповідних архітектурі Unix, так і в Windows. Можливості даного інструменту - найвидатніші. Яким чином їх можна задіяти? Чи є особливості в налаштуванні програми в залежності від конкретної ОС?

Загальні відомості про Squid

Що таке Squid? Під цією назвою відомий особливо продуктивний проксі-сервер, використовуваний найчастіше з веб-клієнтами. З його допомогою можна організовувати одночасний доступ до Інтернету для декількох користувачів. Інша примітна властивість Squid полягає в тому, що він може кешувати різні запити. Це дозволяє прискорювати отримання файлів, так як повторно скачувати їх з Інтернету не потрібно. Проксі-сервер Squid також може регулювати швидкість інтернет-каналу при співвіднесенні її з фактичним навантаженням.

Налаштування Squid

Squid адаптований для використання на Unix-платформах. Однак є версії Squid для Windows і багатьох інших популярних ОС. Дана програма, так само як і багато операційні системи, засновані на концепції Unix, безкоштовна. Вона підтримує протоколи HTTP, FTP, SSL, дозволяє настроювати гнучкий контроль над доступом до файлів. Squid також записує в кеш DNS-запити. При цьому можна налаштувати і прозорий Squid-проксі, тобто роботу сервера у форматі, коли користувач не знає, що звертається до Мережі через нього, а не напряму. Таким чином, Squid - це потужний інструмент у руках системного адміністратора або постачальника комунікаційних послуг.

Практична корисність Squid

У яких випадках Squid може бути найбільш корисним? Наприклад, це може бути задача, при якій необхідно здійснити ефективну інтеграцію декількох комп`ютерів в мережу і забезпечити для них доступ в Інтернет. Доцільність використання проксі-сервера в даному випадку полягає в тому, що запити між ним і браузером конкретного ПК здійснюються швидше, ніж у випадку взаємодії користувача з Інтернетом безпосередньо. Також при використанні Squid кеш в самому браузері можна відключити зовсім. Подібна функція дуже затребувана в середовищі користувачів.

Склад Squid

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

Установка програми

Установка Squid зазвичай ніяких складнощів не викликає. Дуже легко ставиться програма на Linux: достатньо ввести команду $ sudo apt-get install squid.

Налаштування проксі Squid

Що стосується Squid для Windows, тут все дещо складніше. Справа в тому, що дана програма не має виконуваних файлів - основних елементів додатків для ОС від Microsoft.

Однак установка Squid на Windows - завдання, яке вирішується цілком оперативно. Необхідно знайти на сайті squid-cache.org або релевантних йому ресурсах дистрибутив, що містить файли типу .bat, які в чомусь близькі традиційним для Windows виконуваним. Після цього слід скопіювати їх в окрему папку на диску. Потім необхідно запустити Squid в якості системної служби. Після цього програму можна використовувати як проксі через браузер ПК. Можна сказати, що на цьому установка Squid завершена.

У дистрибутиві проксі-сервера практично завжди міститься конфігураційний файл типу .conf. Він є головним інструментом налаштування доступу до Інтернету з комп`ютера користувача та інших пристроїв, об`єднаних в локальну мережу при залученні Squid.

Нюанси налаштування

Які нюанси може включати в себе настройка Squid? Windows - це операційна система, в якій робота з проксі-сервером буде здійснюватися за допомогою редагування конфігураційних файлів.

Налаштування Squid Ubuntu

У випадку з Linux можна задіяти командний рядок для деяких процедур. Але в цілому в даній операційній системі, так само як і в тому випадку, якщо ОС, в якій ведеться настройка Squid, - Windows, найчастіше задіюється файл squid.conf. У ньому прописуються певні вирази («команди»), відповідно до яких сервер виконує управління підключеннями до мережі.

Розглянемо, таким чином, як здійснюється настройка Squid, докладніше. Насамперед необхідно дозволити користувачам мережі доступ до сервера. Для цього слід виставити у файлі squid.conf відповідні значення в http_port, а також у http_access. Також корисно буде створити список, призначений для контролю доступу, або ACL. Налаштування http_port мають для нас значення, оскільки наше завдання - підготувати Squid тільки для обслуговування конкретної групи комп`ютерів. У свою чергу, такий параметр, як http_access, важливий, оскільки за допомогою нього ми зможемо регулювати доступ до конкретних ресурсів Мережі, запитуваною з тих чи інших адрес (можливі й інші критерії - протоколи, порти і інші властивості, що містяться в ACL).

Яким чином виставити необхідні налаштування? Зробити це дуже просто.

Припустимо, ми створили комп`ютерну мережу з діапазоном адрес, які починаються з 192.168.0.1 і заканчивающимся 192.168.0.254. У цьому випадку в ACL-налаштуваннях слід виставити наступний параметр: src 192.168.0.0/24. Якщо нам потрібно налаштувати порт, то у файлі конфігурації треба зробити запис http_port 192.168.0.1 (тільки слід вказати правильний IP-адреса) і ввести номер порту.



Для того щоб обмежити доступ до створюваного за допомогою Squid проксі (не рахуючи комп`ютерів, що входять в локальну мережу), необхідно внести зміни в http_access. Це робиться просто - за допомогою виразів («команд» - домовимося називати їх так, хоча, строго кажучи, в тексті вони такими не є, але в рядку терміналу цілком відповідали б їм) allow LocalNet і deny all. Дуже важливо розташувати перший параметр вище другого, так як Squid розпізнає їх по черзі.

Робота з ACL: заборона доступу до сайтів

Власне, налаштування доступу можливі в Squid в дуже широкому спектрі. Розглянемо приклади корисних в практиці управління локальними мережами.

Squid для Windows

Досить затребуваний елемент src. З його допомогою можна зафіксувати IP-адреса комп`ютера, який здійснив запит до проксі-сервера. Поєднуючи елемент src з http_access можна, наприклад, дозволяти доступ до мережі конкретному користувачеві, але забороняти аналогічні дії для всіх інших. Це робиться дуже просто.

Пишемо ACL (назва групи користувачів) src (інтервал IP-адрес, що потрапляють під регулювання). Рядком нижче - ACL (назва конкретного комп`ютера) src (IP-адресу відповідного ПК). Після цього працюємо вже з http_access. Встановлюємо дозвіл на вхід в мережу для групи користувачів і окремого ПК за допомогою команд http_access allow. Рядком нижче фіксуємо, що доступ решті комп`ютерів в мережу закритий командою deny all.

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

За допомогою розглянутого елемента ми можемо, наприклад, обмежити доступ до тієї чи іншої підмережі. Для цього можна задіяти команду ACL (позначення мережі) dst (IP-адреса підмережі), рядком нижче - http_access deny (ім`я конкретного комп`ютера в мережі).

Ще один корисний елемент - dstdomain. Він дозволить нам зафіксувати домен, до якого бажає підключитися користувач. Задіюючи розглянутий елемент, ми можемо обмежити доступ того чи іншого користувача, наприклад, до зовнішніх ресурсів Інтернету. Для цього можна задіяти команду: ACL (група сайтів) dstdomain (адреси сайтів), рядком нижче - http_access deny (ім`я комп`ютера в мережі).



Проксі-сервер

Є й інші примітні елементи в структурі системи контролю доступу. У числі таких - SitesRegex. За допомогою даного виразу можна обмежити доступ користувачів на інтернет-домени, що містять певне слово, наприклад mail (якщо стоїть завдання заборонити співробітникам компанії звертатися на сторонні поштові сервери). Для цього можна задіяти команду ACL SitesRegexMail dstdom_regex mail, потім ACL SitesRegexComNet dstdom_regex .com $ (це означає, що доступ буде закритий для відповідного типу доменів). Рядком нижче - http_accesss deny із зазначенням комп`ютерів, з яких вихід на зовнішні поштові сервери небажаний.

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

Наприклад, за допомогою команди ACL NoSwfFromMail url_regex -i mail. * . Swf $ ми регулюємо можливість звернення до поштових сайтам, у структурі яких присутні Flash-ролики. Якщо немає необхідності включати в алгоритми доступу доменне ім`я сайту, то можна задіяти вираз urlpath_regex. Наприклад, у вигляді команди ACL media urlpath_regex -i .wma $ .mp3 $.

Заборона доступу до програм

Налаштування Squid дозволяє забороняти доступ користувачів до тих чи інших програм при залученні ресурсів проксі-сервера. Для цієї мети може використовуватися команда ACL (назва програми) port (інтервал портів), рядком нижче - http_access deny all (ім`я програми).

Задіяння стандартів і протоколів

Налаштування Squid також дозволяє системному адміністраторові задати переважний протокол використання інтернет-каналу. Наприклад, якщо є необхідність в тому, щоб людина з конкретного ПК виходив в мережу через протокол FTP, то можна задіяти наступну команду: ACL ftpproto proto ftp, рядком нижче - http_access deny (ім`я комп`ютера) ftpproto.

За допомогою елемента method ми можемо вказати те, яким способом повинен здійснюватися HTTP-запит. Всього їх 2 - GET і POST, але в ряді випадків переважний саме перший, а не другий, і навпаки. Наприклад, можлива ситуація, при якій конкретний співробітник не повинен переглядати пошту через mail.ru, проте його роботодавець не буде заперечувати, якщо людина захоче читати на вказаному сайті новини. Для цього системний адміністратор може задіяти наступну команду: ACL sitemailru dstdomain .mail.ru, рядком нижче - ACL methodpost method POST, далі - http_access deny (ім`я комп`ютера) methodpost sitemailru.

Такі нюанси, які включає в себе настройка Squid. Ubuntu використовується, Windows або інша сумісна з проксі-сервером ОС, - розглянуті нами особливості завдання потрібних параметрів в цілому характерні для будь програмної середовища функціонування Squid. Робота з даними ПО - неймовірно захоплюючий процес і одночасно нескладний чинності логічності та прозорості основних алгоритмів налаштування програми.

Відзначимо деякі ключові моменти, характерні для настройки Squid.

На що звернути увагу при налаштуванні?

Якщо є складнощі у виявленні файлу squid.conf, який є основним інструментом конфігурування сервера, то можна спробувати перевірити каталог etc / squid.

Squid проксі

Краще всього, якщо при роботі з файлом, про який йде мова, ви будете використовувати найпростіший текстовий редактор: не потрібно, щоб в рядки, що відповідають за налаштування проксі-сервера, потрапили які-небудь елементи форматування.

У ряді випадків може виникнути необхідність в тому, щоб при роботі вказано був проксі-сервер провайдера. Для цього існує команда cache_peer. Вписувати її потрібно так: cache_peer (адресу проксі-сервера провайдера).

У ряді випадків корисно фіксувати величину оперативної пам`яті, яку буде задіяти Squid. Це можна зробити за допомогою команди cache_mem. Також корисно вказати каталог, в якому зберігатимуться кешированниє дані, робиться це за допомогою виразу cache_dir. У першому випадку повністю команда буде виглядати як cache_mem (обсяг ОЗУ в байтах), у другому - як cache_dir (адреса каталогу, кількість мегабайтів дискового простору). Бажано розміщувати кеш на найбільш високопродуктивних дисках, якщо є вибір.

Може знадобитися вказівку комп`ютерів, які мають доступ до проксі-сервера. Це можна зробити за допомогою команд ACL allowed hosts src (інтервал IP-адрес комп`ютерів), а також ACL localhost src (локальний адреса).

Якщо в підключеннях задіюються порти типу SSL, то їх також можна зафіксувати за допомогою команди ACL ssl_ports port (вказівка порту). Одночасно можна заборонити використання методу CONNECT для інших портів, крім тих, що вказані в захищеному з`єднанні SSL. Це зробити допоможе вираз http_access deny CONNECT! SSL_Ports.

Squid і pfSense

У ряді випадків разом з розглянутим проксі-сервером використовується інтерфейс pfSense, застосовуваний у якості ефективного брандмауера. Яким чином організувати їх спільну роботу? Алгоритм розв`язання даної задачі не надто складний.

Для початку нам потрібно попрацювати в інтерфейсі pfSense. Squid, настройка якого вже здійснена нами, необхідно буде інсталювати допомогою SSH-команд. Це один з найбільш зручних і безпечних способів роботи з проксі-серверами. Для цього необхідно активізувати в інтерфейсі пункт Enable Secure Shell. Для того щоб знайти його, необхідно вибрати пункт меню System, потім - Advanced, після - Admin Access.

Установка Squid

Після цього потрібно завантажити PuTTY - зручний додаток для роботи з SSH. Далі, використовуючи консоль, необхідно інсталювати Squid. Це легко зробити за допомогою команди -pkg install squid. Після цього необхідно також встановити проксі через веб-інтерфейс pfSense. Squid (настройка його параметрів на даному етапі не виробляється) можна інсталювати, вибравши пункт меню System, потім Packages, після - Available Packages. У відповідному вікні повинен бути доступний пакет Squid Stable. Вибираємо його. Необхідно виставити наступні налаштування: Proxy Interface: LAN. Навпроти рядка Transparent Proxy можна поставити галочку. Вибираємо адреса для логу і відзначаємо російську мову як переважний. Натискаємо Save.

Інструмент оптимізації ресурсів

Налаштування Squid дозволяє системним адміністраторам ефективно розподіляти ресурси серверів. Тобто в даному випадку мова не йде про заборони доступу на який-небудь сайт, однак інтенсивність задіяння каналу тим чи іншим користувачем або їх групою може вимагати контролю. Розглянута програма дозволяє вирішити дану задачу декількома способами. По-перше, це задіяння механізмів кешування: за рахунок цього повторне завантаження файлів з Інтернету не буде потрібно, оскільки знизиться навантаження на трафік. По-друге, це обмеження доступу до мережі за часом. По-третє, це встановлення граничних значень для швидкості обміну даними в мережі щодо дій тих чи інших користувачів або конкретних типів файлів, що завантажуються. Розглянемо зазначені механізми докладніше.

Оптимізація мережевих ресурсів за допомогою кешування

У структурі мережевого трафіку присутня безліч типів файлів, задействуемих в незмінному вигляді. Тобто, одного разу закачавши їх на комп`ютер, користувач може не повторювати відповідну операцію. Програма Squid дозволяє здійснювати гнучке налаштування механізму розпізнавання подібних файлів сервером.

Досить корисна опція досліджуваного нами проксі-сервера - перевірка віку файлу, що знаходиться в кеші. Об`єкти, занадто довго що розташовуються у відповідній області пам`яті, слід оновлювати. Задіяння цієї опції можливо при використанні команди refresh_pattern. Так, повністю вираз може виглядати як refresh_pattern (мінімальна тривалість часу - у хвилинах, максимальна частка «свіжих» файлів - в%, максимальний період). Відповідно, якщо файл знаходиться в кеші довше встановлених критеріїв, то, можливо, буде потрібно завантаження його нової версії.

Оптимізація ресурсів за допомогою обмежень доступу за часом

Інший варіант, який можна задіяти завдяки можливостям Squid-Proxy, - це обмеження доступу користувачів до мережевих ресурсів за часом. Встановлюється воно за допомогою дуже простої команди: ACL (ім`я комп`ютера) time (день, година, хвилина). Доступ можна обмежувати для будь-якого дня тижня, підставивши замість «день» перший букву слова, відповідну його назві в англійському алфавіті. Наприклад, якщо це понеділок - то M, якщо вівторок, то T. Якщо в команді немає слова «день», то відповідну заборону буде встановлений на весь тиждень. Цікаво, що можна також регулювати розклад входження в мережу, здійснюваного користувачами за допомогою тих чи інших програм.

Оптимізація ресурсів за допомогою обмеження швидкості

Досить поширений варіант - оптимізація ресурсів за допомогою регулювання допустимої швидкості обміну даними в рамках комп`ютерної мережі. Досліджуваний нами проксі-сервер - зручний інструмент для вирішення даного завдання. Регулює швидкість обміну даними в мережі здійснюється за допомогою таких параметрів, як delay_class, delay_parameters, delay_access, а також за допомогою елемента delay_pools. Всі чотири компоненти мають величезне значення для вирішення завдань, які стоять перед системними адміністраторами в аспекті оптимізації ресурсів локальної мережі.




» » Налаштування squid для початківців. Як налаштувати на squid проксі-сервер