Пара параметрів моделі squid. Інші матеріали в категорії Налаштування сервера Linux

Тепер буде обмеження швидкості закачування для різних груп людей. Ну що, готові? :) Поїхали…

Початок. Створюємо ACL

Створюємо групи ACL:
acl mp3_deny src "/etc/squid/lists/mp3_deny_users"
acl super_users src "/etc/squid/lists/super_users"
acl deny_all src "/etc/squid/lists/deny_all_users"

Ось ми і створили списки, а точніше три групи користувачів, адреси яких містяться у файлах. Так як айпі були присвоєні до мене, і не сходяться за дозволом, що їм качати, а що ні, буде проше виписати їх IP у файл ніж створювати діапозони, але для вас все що завгодно:)
acl mego_super_user src 192.168.0.0-256 # =) тільки акуратно з цим діапозоном
Приклад вмісту файлу зі списком
nano "/etc/squid/lists/mp3_deny_users"
192.168.0.213
192.168.0.75
192.168.0.52
195.168.0.254

Тепер настав час створити список заборонених дозволів:
acl mobile urlpath_regex -i (\.thm|\.sis|\.swf|\.jad|\.jar|\.3gp|\.mp4)((\#|\&|\?|\s)(1 )|$)
acl multimedia urlpath_regex -i (\.swf | \.mpe|\.dat|\.mpg|\.wma|\.midi|\.aiff|\.au|\.qt|\.ram|\.rm|\.iso|\.raw|\. mov)((\#|\&|\?|\s)(1)|$)
acl archive urlpath_regex -i (\.tar.gz|\.gz|\.tar|\.zip|\.rar|\.cab|\.arj|\.lzh|\.ace|\.7-zip| \.gzip|\.uue|\.bz2|\.iso)((\#|\&|\?|\s)(1)|$)
acl soft urlpath_regex -i (\.exe|\.msi|\.rpm)((\#|\&|\?|\s)(1)|$)
acl mp3 urlpath_regex -i (\.wav|\.mp3|\.mp4)((\#|\&|\?|\s)(1)|$)

Ось і все, найбільший інтерес представляє шосте відро:
кожен з нього качає все на швидкості в 10, якщо під мережі швидкість перевищує, то починається різання канал,
Якщо з інших підмереж теж гойдають, і їх більше двох, то й тоді швидкість починає різатися.
Якщо ви робите на фряхе, то при складанні сквіда обов'язково зберіть з опцією --enable-delay-pools!
P.S. дуже намагався все якомога зрозуміліше розжувати. Якщо я вам допоміг розібратися, то я не дарма писав цей топік. Я буду дуже радий. Якщо щось не зрозуміло, запитуйте, обов'язково відповім.
P.S.S. написати все це сні допоміг дефолтний конфіг сквіда, якщо ви почнете його читати, то зможете дізнатися туєву купу нового!
P.S.S.S Шановний KorP на жаль зараз немає часу на домен, так що поки що є в голові те й пишу
UPD.
reply_body_max_size 1000 allow all файл більше 1 кілобайта не качає


У цій частині я розповім вам про те, які основні параметри необхідно змінювати, хоч і не обов'язкові, адже розробники самого Сквида виставили досить добре левову частку значень. Отже, почнемо по порядку...
Так як я часто працюю через ssh з'єднанняІноді на деяких серверах буває огидна швидкість, у зв'язку з цією проблемою рекомендую писати все на самому початку конфігу, що дає йому досить добре читаний вигляд, і не потрібно пошуком шукати всі значення. Хоча, хочу зауважити, що всі другорядні параметри (крім списків доступів ACL та парочки інших) не задаються в конфізі за промовчанням. Насправді прописаний дефолтний параметр, і він має коментар. Тож нам не доведеться шукати кожен параметр. АЛЕ!!! Якщо ви вже правили, то не потрібно починати писати все в самому верху, необхідно знайти розкоментовані значення і змінювати їх. Поїхали.

Перше, що я раджу змітити, хоча б на час тестування це параметр shutdown_lifetimeпо дефолту він має значення 30 секунд, що дуже довго. Наведу приклад, іноді буває таке, що ти щось накосячив, і немає у всього офісу зник, ти швидко змінив свою помилку, але сам сквід після того як ти йому послав SIGTERM або SIGHUP (перезавантажуєш) чекає час, який стоїть у цьому параметрі , протягом якого нові з'єднання не встановлюватимуться, а старі повинні закінчити закачування. Я зазвичай ставлю:
shutdown_lifetime 5
Доступними параметрами будуть параметри, що описують кеш cache_dir, maximum_object_size
Отже, якщо у нас стоїть нормальний шлюз, які проксірує інет, і в організації вистачає комп'ютерів >30, то потрібно ставити мінімум 2 гіга, хоча два в принципі і досить більшості. У параметра cache_dirбагато параметрів, я не хочу на них зупинятися, бо все це добре описано в манах. Я привидю лише, що вважаю найбільш раціональним, стандартні 256 Мб ні куди не годяться:)
cache_dir ufs /var/squid/cache 2048 16 256
після цього необхідно перестворити каталоги командою Squid-z, що зітре весь наш попереджень кеш.

maximum_object_sizeкаже сквіду чи варто записувати файли розміром більше певного.
maximum_object_size 10024, мені здається, що цього цілком вистачить, потім деякі можна буде вивужувати з кеша. Іноді корисно, якщо у вас працівники качають свіжу версію, наприклад Adobe Flash Player.

visible_hostname "% Ім'я хоста%"

SQUID - це програма, яка отримує HTTP/FTP-запити клієнтів і звертається до них до ресурсів Інтернет. Застосування проксі-сервера (squid) дає можливість використовувати фіктивні IP-адреси у внутрішній мережі (Masquerading – маскарадинг), збільшує швидкість обробки запиту при повторному зверненні (кешування), а також забезпечує додаткову безпеку.

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

SQUID – це щось більше, ніж просто проксі-сервер. Це своєрідний стандарт кешування інформації у мережі Інтернет. Через повсюдну поширеність SQUID, у книзі я приділив його конфігуруванню велику увагу.

Проксі-сервер Squid утворюється кількома програмами, серед яких: сама програма сервера squid, і навіть програма dnsserver - програма обробки DNS-запросов. Коли запускається програма squid, вона спочатку запускає задану кількість процесів dnsserver, кожен із яких працює самостійно і може здійснювати лише одне пошук у системі DNS. Завдяки цьому зменшується загальний час очікування відповіді DNS.

15.2. Установка SQUID

SQUID може бути встановлений з вихідних текстів або у вигляді пакета RPM. Встановлення RPM-пакету SQUID дуже проста - для цього потрібно ввести команду

rpm -ih squid-2.3.STABLE2-3mdk.i586.rpm

Я використовую версію squid 2.3. Новіша версія доступна у вигляді вихідних кодів. Вихідники можна отримати на адресу ftp://ftp.squid.org. Щоб розпакувати вихідні коди, виконайте такі команди:

gunzip squid-2.3.STABLE2-3-src.tar.gz
tar xvf squid-2.3.STABLE2-3-src.tar.gz

Тепер перейдемо безпосередньо до встановлення:

./configure --prefix=/usr/local/squid

SQUID буде встановлений у каталог, заданий ключем prefix – /usr/local/squid. Крім prefix, можна користуватися ключами, представленими в табл. 15.1.

Ключі сценарію configure Таблиця 15.1

15.3. Налаштування SQUID

Сервер SQUID використовує файл конфігурації squid.conf, який зазвичай розміщується в каталозі /etc/squid (або /usr/local/squid/etc – більш ранні версії). Відкрийте його в будь-якому текстовому редакторінаприклад, joe/usr/local/squid/etc/squid.conf. Далі виконайте таку послідовність дій:

1. Вкажіть проксі провайдера:

У цьому випадку proxy .isp.ru стає нашим «сусідом» (neighbour, peer).

2. Встановіть об'єм пам'яті, доступний squid, та каталог для кешу:

cache_dir /usr/local/squid/cache 1024 16 256

де: 65536 - обсяг оперативної пам'ятіу байтах, який можна використовувати під кеш;

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

3. Вкажіть хости, яким дозволено доступ до проксі-сервера:

acl allowed hosts src 192.168.1.0/255.255.255.0
acl localhost src 127.0.0.1/255.255.255.255

4. Вкажіть дозволені порти SSL:

http_access deny CONNECT !SSL_ports

і забороніть доступ всім, крім тих, кому можна:

http_access allow allowed_hosts

6. Пропишіть користувачів, яким дозволено користуватися squid (у прикладі це den, admin, developer):

acl allowed_users user den admin developer
http_access allow allowed_users

Теги maxium_object_size і maxium_object встановлюють обмеження на розмір об'єктів, що передаються.

Нижче наведено приклад заборони доступу до будь-якого URL, який відповідає шаблону games та дозволу доступу до всіх інших:

15.4. Запуск SQUID

Тепер, коли ви виконали базове налаштування SQUID, його потрібно запустити: /usr/local/squid/bin/squid -z

Параметр –z необхідний створення (обнулення) каталогу, що містить кеш. Зазвичай цей параметр потрібний лише під час першого запуску. Деякі інші корисні параметри SQUID представлені у табл. 15.2.

Параметри SQUID Таблиця 15.2

Параметр Опис
-а порт Задає порт для вхідних HTTP-запитів
-d Включає режим виведення налагоджувальної інформації стандартний потік помилок (на stderr)
-f файл Задає файл конфігурації
-h Видає довідкову інформацію
-k reconfigure Надсилає сигнал HUP
-k shutdown Завершення роботи проксі-сервера
-k kill Завершення без закриття журналів
-u порт Задає порт для вхідних IСР-запитів
-s Включає журналування за допомогою syslog
-v Видає інформацію про версію SQUID
-D Не робити DNS-тест під час запуску
-N Не ставати демоном (фоновим процесом)
-Y Швидше відновлення після збоїв

15.5. Формат файлу squid.conf

У файлі squid.conf задаються різні параметри конфігурації проксі-сервера. Давайте розглянемо їх по порядку.

15.5.1. Параметри мережі

Порт для запитів клієнтів (див. рис. 15.1):

Рис. 15.1. Параметри проксі-сервера


Якщо "сусідів" (peer) немає, то встановіть icp_port 0

Порт для спілкування з сусідами – ICP – через TCP. При використанні цього параметра потрібно встановити ключ --enable-htcp під час встановлення htcp_port 4827.

Наступний параметр вказує, на яку адресу потрібно приймати вхідні пакети, якщо хост має кілька інтерфейсів. У версії 2.3 цього параметра немає:

При надсиланні інформації вказана адреса буде використана як вихідна:

Те саме, але для ICP:

(аналогічно для ICP)

Те саме, але для IСР (при прийомі):

За промовчанням цей режим увімкнено, але якщо проксі-сервер знаходиться за бастіоном (firewall), то параметр passive_ftp потрібно вимкнути:

15.5.2. Параметри сусідів

Опис сусідів провадиться рядками наступного формату:

cache_peer hostname type proxy-port icp-port options

де: hostname – ім'я сусіда;

type – тип сусіда: parent – ​​старший, sibling – одного рівня;

proxy-port – порт проксі-сервера;

icp-port – порт ICP;

options – параметри.

При цьому кожен сусід прописується окремим рядком.

Parent - за відсутності запиту в локальному кеші він перенаправляється до parent; той, якщо запиту не виявиться у його кеші, пересилає його далі і т.д. Повертає готову відповідь підлеглому. Якщо squid отримує TCP_DENIED від parent, то звернення до ресурсу йтиме безпосередньо.

Sibling - за відсутності запиту локальному кеші, запит перенаправляється в sibling; за відсутності запиту у ньому, повертає повідомлення про це, жодних додаткових дій не робиться.

15.5.3. Керування кешем

При досягненні цього рівня заповнення кешу (у відсотковому співвідношенні) починається прискорений видалення старих об'єктів.

Процес видалення припиняється при досягненні цього рівня.

Максимальний розміркешованого об'єкта.

Файли меншого розміру не зберігаються.

15.5.4. Протоколювання

Нижче наведено режими протоколювання SQUID із зазначенням відповідних журналів. Якщо журнал не потрібний, установіть none замість імені файлу.

cache_access_log /usr/local/squid/logs/access.log

Протоколюється кожен запит до SQUID. Журнал називається /usr/local/squid/logs/access.log.

cache_log /usr/local/squid/logs/cache.log

Протоколуються запуски процесів. Журнал називається /usr/local/squid/logs/cache.log.

cache_store_log /usr/local/squid/logs/store.log

Протоколюються записи об'єктів у кеш. Журнал називається /usr/local/squid/logs/store.log.

15.5.5. Параметри зовнішніх програм

Зазначений тут email буде використовуватись замість пароля при анонімному доступі до ftp-серверів.

dns_nameservers список IP-адрес

Значення цього параметра використовується замість списку DNS-серверів, який визначено у файлі /etc/resolv.conf; за замовчуванням – none.

cache_dns_program /usr/local/squid/bin/dnsserver

Цей параметрзадає програму дозволу IP-адрес в імена ( сервер DNS).

Дозволяє здійснювати аутентифікацію клієнтів, які роблять запити. При цьому необхідно визначити ACL proxy_auth.

authenticate_program /usr/local/squid/bin/ncsa_auth /usr/local/ squid/etc/passwd

Традиційна програма автентифікації. Визначено в../auth_modules/NCSA.

15.5.6. Списки ACL

ACL (Access Control Lists) – списки контролю доступу. Досить часто виникає потреба угруповання однотипних параметрів в єдине ціле їх подальшої обробки. Для ефективного вирішення цього завдання використовуються списки контролю доступу (ACL). Наприклад:

Цей запис означає, що створюється список SSL_ports типу port. Елементами списку є номери портів 443 та 563.

Додати новий елемент до вже існуючого списку (параметр add) можна так:

Видалити непотрібний елемент можна за допомогою параметра del: acl del SSL_ports 999

Перейменувати список дозволяє параметр ren (від rename):

acl ren SSL_ports Allowed_ports

Видалити всі списки разом із вмістом дозволяє параметр flush:

Стандарт ACL вимагає, щоб перед іменем списку обов'язково вказували символ $. Іншими словами, усі перелічені вище приклади за великим рахунком мають бути неправильними. Наприклад, для створення списку потрібно використовувати запис:

Однак більшість фільтрів, наприклад SQUID, нехтують цією вимогою, і ви можете вказувати імена списків без долара.

Отже, ACL – це визначення списку доступу. Має наступний формат:

acl ім'я тип рядок

де: тип – це тип об'єкта;

рядок – регулярне вираження.

Можна використати список:

acl ім'я тип ім'я_файлу

Перелік параметрів здійснюється за одним параметром у рядку. Типи, які можна використовувати при складанні списків ACL, наведені в табл. 15.3.

Типи ACL Таблиця 15.3

Тип Опис типу
Src ip-address/netmask Задає IP-адресу клієнтів
Src addr1-addr2/netmask Вказує діапазон адрес
Dst ip-address/netmask Задає URL хостів
Time Час, де день - це одна літера із SMTWHFA
Port Список портів
Port port1–port2 Діапазон портів
Proto Протокол - HTTP чи FTP
Method Метод - GET чи POST
Browser [-i] regexp Порівнюється заголовок User-Agent

[-i] – ігнорується регістр літер.

15.5.7. Параметри доступу

http_access allow|deny aclname

Дозволяє доступ до проксі через HTTP.

icp_access allow | deny aclname

Дозволяти доступ до проксі через ICP.

miss_access allow | deny aclname

Дозволити отримати відповідь MISS від вас.

cache_peer_access cache-host allow|deny aclname

Обмежити запити до цього сусіда – розширення для cache_peer_domain.

proxy_auth_realm Squid proxy-caching web server

Рядок тексту, який буде видано на екран клієнта при запиті імені/пароля доступу до кешу.

15.5.8. Параметри адміністрування

Цей параметр задає Поштова адреса, на який буде надіслано листа, якщо squid перестане функціонувати.

При запуску SQUID від імені root змінити UID на вказаний у параметрі cache_effective_user.

При запуску SQUID від імені root змінити GID на вказаний у параметрі cache_effective_group.

visible_hostname ім'я_хоста

Це ім'я буде згадуватись у повідомленнях про помилки.

Цей параметр визначає список синонімів для імені хоста.

15.6. Відмова від реклами. Банерний фільтр

Вам не хочеться витрачати зайвий час на завантаження рекламних банерів? Мені теж. На щастя, SQUID дозволяє досить просто вирішити цю проблему. Просто вставте наступні рядки у файл /usr/local /etc/squid/squid.conf:

acl good_url url_regex "/usr/local/etc/squid/acl/good_url"
acl bad_urlpath urlpath_regex "/usr/local/etc/squid/acl/bad_urlpath"
acl bad_url url_regex "/usr/local/etc/squid/acl/bad_url"
http_access deny bad_urlpath !good_url
http_access deny bad_url !good_url

Відповідно, потрібно буде створити три файли: good_url, bad_url_path та bad_url. У файл bad_url слід розмістити «погані» URL, наприклад:

^http://.*-ad.flycast.com/server/img/
^http://1000-stars-ru/cgi-bin/1000-cgi
^ http://1000.stars.ru/cgi-bin/1000.cgi

А файл bad_url_path - «поганий» шлях, наприклад:

Зазвичай такі імена мають банери.

Приклади файлів good_url, bad_url_path та bad_url можна взяти на моїй домашній сторінці - http://dkws.narod.ru

15.7. Поділ каналу

Допустимо, вам потрібно налаштувати проксі-сервер таким чином, щоб одна група комп'ютерів могла працювати з однією швидкістю, а інша з іншою. Це може знадобитися, наприклад, для розмежування користувачів, які використовують канал для роботи, та користувачів, які використовують ресурси каналу в домашніх цілях. Звісно, ​​першим пропускна спроможність каналу важливіше, ніж другим. За допомогою проксі-сервера SQUID можна розділити канал.

Для початку у файлі конфігурації вкажіть, скільки пулів, тобто груп користувачів, у вас буде:

Потім визначте класи пулів. Усього існує три класи:

1. Використовується одне обмеження пропускну здатністьканалу на всіх.

2. Одне загальне обмеження та 255 окремих для кожного вузла мережі класу С.

3. Для кожної підмережі класу буде використано власне обмеження і окреме обмеження для кожного вузла.

До файлу squid.conf додайте такі директиви:

delay_class 1 1 # визначає перший пул класу 1 для домашніх користувачів
delay_class 2 2 # визначає другий пул класу 2 для службовців

Тепер задайте вузли, які ставитимуться до пулам:

Потім вкажіть обмеження:

delay_parameters 1 14400/14400
delay_parameters 2 33600/33600 16800/33600

Як я вже зазначав вище, для пулу класу 1 використовується одне обмеження для всіх комп'ютерів, що входять до пула - 14400 байт. Перше число задає швидкість заповнення для всього пулу (байт/секунду). Друге – максимальне обмеження.

Для пула класу 2, відповідно, використовуються обмеження на всю підмережу та окремо кожного користувача. Якби в нас було визначено пул класу 3, то для нього обмеження виглядали приблизно так:

delay_parameters 3 128000/128000 64000/128000 12800/64000

Перші два числа задають відповідно швидкість заповнення та максимальне обмеження для всіх. Наступна пара чисел визначає швидкість заповнення для кожної підмережі та максимальне обмеження, а третя – швидкість заповнення та максимальне обмеження для індивідуального користувача.

15.8. Програми для обліку трафіку

Для моніторингу роботи SQUID та взагалі для обліку трафіку можна скористатися такими програмами:

sqmgrlog - http://www.ineparnet.com.br/orso/index.html

mrtg - http://www.switch.ch/misc/leinen/snmp/perl/

iptraf - http://dkws.narod.ru/linux/soft/iptraf-2.4.0.tar.gz

bandmin - http://www.bandmin.org

webalizer (аналіз роботи Apache) - http://www.mrunix.net/webalizer/

Разом з цими програмами поставляється документація, що досить читається, тому докладно на їх використанні я зупинятися не буду. Програма MRTG описана у п. 8.5.

15.9. Налаштування клієнтів

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

Internet Explorer 5

Меню Сервіс→Властивості браузера→вкладка З'єднання→Налаштування мережі. У вікні встановіть необхідні параметри, тобто ім'я проксі-сервера та його порт (див. рис. 15.2).

Рис. 15.2. Налаштування Internet Explorer


Netscape Communicator

Меню Edit→Preferences→Advanced→Proxies→Manual Proxy Configuration→View (див. мал. 15.3).

Рис. 15.3. Налаштування Netscape Communicator


Konqueror

Меню Установки→Установки→Проксі (див. мал. 15.4).

Рис. 15.4. Налаштування Konqueror

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

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

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

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

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

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

Склад Squid

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

Встановлення програми

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

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

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

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

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

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

У випадку з 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 у дуже широкому спектрі. Розглянемо приклади корисних у практиці управління локальними мережами.

Достатньо затребуваний елемент 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.

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

У ряді випадків може виникнути необхідність у тому, щоб при роботі вказано проксі-сервер провайдера. І тому існує команда 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 Для того, щоб знайти його, необхідно вибрати пункт меню System, потім Advanced, після Admin Access.

Після цього потрібно завантажити 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. Всі чотири компоненти мають величезне значення для вирішення завдань, які стоять перед системними адміністраторамиу аспекті оптимізації ресурсів локальної мережі.

Linux-сервер своїми руками Колісниченко Денис Миколайович

15.1. Що таке Squid?

15.1. Що таке Squid?

SQUID - це програма, яка отримує HTTP/FTP-запити клієнтів і звертається до них до ресурсів Інтернет. Застосування проксі-сервера (squid) дозволяє використовувати фіктивні IP-адреси у внутрішній мережі (Masquerading - маскарадинг), збільшує швидкість обробки запиту при повторному зверненні (кешування), а також забезпечує додаткову безпеку.

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

SQUID – це щось більше, ніж просто проксі-сервер. Це своєрідний стандарт кешування інформації у мережі Інтернет. Через повсюдну поширеність SQUID, у книзі я приділив його конфігуруванню велику увагу.

Проксі-сервер Squid утворюється кількома програмами, серед яких: сама програма сервера squid, і навіть програма dnsserver - програма обробки DNS-запросов. Коли запускається програма squid, вона спочатку запускає задану кількість процесів dnsserver, кожен із яких працює самостійно і може здійснювати лише одне пошук у системі DNS. Завдяки цьому зменшується загальний час очікування відповіді DNS.

З книги Linux-сервер своїми руками автора

15 Проксі-сервер SQUID 15.1. Що таке Squid? SQUID - це програма, яка отримує HTTP/FTP-запити клієнтів і звертається до них до ресурсів Інтернет. Застосування проксі-сервера (squid) дозволяє використовувати фіктивні IP-адреси у внутрішній мережі (Masquerading - маскарадинг),

З книги Linux: Повне керівництво автора Колісниченко Денис Миколайович

15.2. Установка SQUID SQUID може бути встановлена ​​з вихідних текстів або у вигляді RPM-пакета. Установка RPM-пакета SQUID дуже проста - для цього потрібно ввести команду rpm –ih squid-2.3.STABLE2-3mdk.i586.rpmЯ використовую версію squid 2.3. Новіша версія доступна у вигляді вихідних кодів. Вихідники можна

З книги Linux очима хакера автора Фльонов Михайло Євгенович

15.3. Налаштування SQUID Сервер SQUID використовує файл конфігурації squid.conf, який зазвичай знаходиться в каталозі /etc/squid (або /usr/local/squid/etc - більш ранні версії). Відкрийте його в будь-якому текстовому редакторі, наприклад joe/usr/local/squid/etc/squid.conf. Далі виконайте таку послідовність

З книги автора

15.4. Запуск SQUID Тепер, коли ви налаштували SQUID, його потрібно запустити: /usr/local/squid/bin/squid –zПараметр –z необхідний для створення (обнулення) каталогу, що містить кеш. Зазвичай цей параметр потрібний лише під час першого запуску. Деякі інші корисні параметри SQUID

З книги автора

15.5. Формат файлу squid.conf У файлі squid.conf задаються різні параметри конфігурації проксі-сервера. Давайте розглянемо їх все по

З книги автора

17.1.5. Налаштування Squid Встановіть пакет squid. Залишилося налаштувати та запустити його. Для цього потрібно відредагувати конфігураційний файл /etc/squid/squid.conf. Спочатку вкажіть адресу проксі провайдера: cach_peer proxy.your_isp.comВстановіть обсяг ОЗУ, який буде використовувати проксі-сервером: cache_memУ тому

З книги автора

Глава 18. Проксі-сервери SQUID та SOCKS 18.1. Що таке проксі-сервер? Проксі-сервер (сервер-посередник) – це програма, яка виконує HTTP/FTP-запити від імені клієнтів. Застосування проксі-сервера дає можливість використовувати фіктивні IP-адреси у внутрішній мережі (IP-маскарадинг),

З книги автора

18.2. Налаштування SQUID Я використовую версію squid 2.5. Пакет squid входить до складу сучасних дистрибутивів, а якщо його у вас чомусь немає, то завантажити можна з www.squid-cache.org. usr/local/squidSQUID буде встановлений у каталог,

З книги автора

18.3. Налаштування SQUID Сервер SQUID використовує файл конфігурації squid.conf, який зазвичай знаходиться в каталозі /etc/squid (або /usr/local/squid/etc - більш ранні версії). Докладніше на окремих налаштуваннях ми зупинимося трохи згодом. А зараз просто по кроках зробимо налаштування SQUID.

З книги автора

18.4. Запуск SQUID Перший раз squid потрібно запускати з ключем -z, щоб створити та очистити каталог кешу: # /usr/local/squid/bin/squid -zЩе кілька корисних ключів, з якими можна запускати squid, перераховані в таблиці 18.2.Ключі запуску squid Таблиця 18.2 Ключ Призначення -а порт Задає

З книги автора

18.5. Розширені налаштування SQUID. Конфігураційний файл squid.conf 18.5.1. Параметри мережі У файлі squid.conf можуть бути задані наступні параметримережі:? http_port – порт для запитів клієнтів. З цього порту проксі-сервер чекатиме та оброблятиме запити клієнтів. Значення за замовчуванням

З книги автора

18.8. Розділення каналу за допомогою SQUID Допустимо, вам потрібно налаштувати проксі-сервер таким чином, щоб одна група комп'ютерів працювала в Інтернеті з однією швидкістю, а інша з іншою. Це може знадобитися, наприклад, для розмежування користувачів, які

З книги автора

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

З книги автора

9.4. Права доступу до squid Це найболючіша тема для будь-якого адміністратора. Так, і в squid теж є права доступу, і вони також описуються в конфігураційному файлі/etc/squid/squid.conf. Але ми розглядаємо права окремо, тому що основний наголос робимо на безпеку. Саме тому

З книги автора

9.5. Зараз нам доведеться трохи поговорити про деякі питання безпеки сервісу squid і додаткові можливості, які можуть прискорити роботу в

З книги автора

12.5.4. Журнал проксі-сервера squid Основним журналом проксі-сервера squid є /var/log/squid/access.log. Це текстовий файл, В якому кожен рядок складається з наступних полів:? час початку з'єднання чи події;? тривалість сесії; IP-адреса клієнта;? результат обробки



Завантаження...
Top