Проксі-сервер
Проксі-сервер (від англ. proxy — «представник, уповноважений») — сервер (комп'ютерна система або програма) в комп'ютерних мережах, що дозволяє клієнтам виконувати непрямі (через посередництво проксі-сервера) запити до мережевих сервісів. Спочатку клієнт з'єднується з проксі-сервером і запитує який-небудь ресурс (наприклад, e-mail), розташований на іншому сервері. Потім проксі-сервер або підключається до вказаного сервера та отримує ресурс у нього, або повертає ресурс з власного кешу (у випадках, якщо проксі має свій кеш).
Найчастіше проксі-сервери застосовуються для:
- Забезпечення доступу з комп'ютерів локальної мережі в інтернет.
- Кешування даних: якщо часто відбуваються звернення до одних і тих же зовнішніх ресурсів, то можна тримати їх копію на проксі-сервері та видавати за запитом, знижуючи тим самим навантаження на канал у зовнішню мережу і прискорюючи отримання клієнтом шуканої інформації .
- Стиснення даних: проксі-сервер завантажує інформацію з інтернету і передає інформацію кінцевому користувачеві в стислому вигляді. Такі проксі-сервери використовуються в основному з метою економії зовнішнього трафіка.
- Захист локальної мережі від зовнішнього доступу: наприклад, можна налаштувати проксі-сервер так, що локальні комп'ютери будуть звертатися до зовнішніх ресурсів тільки через нього, а зовнішні комп'ютери не зможуть звертатися до локальних взагалі (вони "бачать "тільки проксі-сервер) (див. також NAT).
- Обмеження доступу з локальної мережі до зовнішньої: наприклад, можна заборонити доступ до певних вебсайтів, обмежити використання інтернету якимось локальним користувачам, встановлювати квоти на трафік або смугу пропускання, фільтрувати рекламу і віруси.
- Анонімізації доступу до різних ресурсів. Проксі-сервер може приховувати відомості про джерело запиту або користувача. У такому разі цільовий сервер бачить лише інформацію про проксі-сервер, наприклад, IP-адресу, але не має можливості визначити дійсне джерело запиту. Існують також проксі-сервери спотворюючі, які передають цільовим серверам неправдиву інформацію про справжнього користувача.
Проксі-сервер, до якого може отримати доступ будь-який користувач мережі інтернет, називається відкритим.
Прозорий проксі — схема зв'язку, при якій трафік, або його частина, перенаправляється на проксі-сервер неявно (засобами маршрутизатора). При цьому клієнт може використовувати всі переваги проксі-сервера без додаткових налаштувань, але з іншого боку, не має вибору.
Зворотний проксі — проксі-сервер, який на відміну від прямого, ретранслює запити клієнтів із зовнішньої мережі на один або декілька серверів, логічно розташованих у внутрішній мережі. Часто використовується для балансування мережевого навантаження між декількома вебсерверами і підвищення їх безпеки, граючи при цьому роль міжмережевого екрану на прикладному рівні.
Клієнтський комп'ютер має налаштування (конкретної програми або операційної системи), відповідно до якої всі мережеві з'єднання по деякому протоколу здійснюються не на ІР-адресу сервера (ресурсу), що виділяється з DNS-імені ресурсу, або безпосередньо заданий, а на ip-адресу (і інший порт) проксі-сервера.
За необхідності звернення до будь-якого ресурсу за цим протоколом, клієнтський комп'ютер відкриває мережеве з'єднання з проксі-сервером (на потрібному порті) і здійснює звичайний запит так, якби він звертався безпосередньо до ресурсу.
Розпізнавши дані запиту, перевіривши його коректність і дозвіл для клієнтського комп'ютера, проксі-сервер, не розриваючи з'єднання, сам відкриває нове мережеве з'єднання безпосередньо з ресурсом і робить той же самий запит. Отримавши дані (або повідомлення про помилку), проксі-сервер передає їх клієнтському комп'ютеру.
З цього випливають два основні обмеження звичайного проксі-сервера:
- Проксі-сервер повинен бути повнофункціональним сервером і клієнтом для кожного підтримуваного протоколу.
- Проксі-сервер може обслуговувати тільки ті мережеві протоколи, у запиті яких передається ім'я або ip-адреса ресурсу (не належить до прозорих проксі — вони отримують ip-адресу безпосередньо з перехопленого з'єднання).
В часи становлення Інтернету проксі-сервери були найпопулярнішим способом виходу в Інтернет з локальних мереж. Цьому сприяли такі обставини:
- Основний протокол, що використовувався — http, який легко проксіюється;
- Підтримка проксі більшістю браузерів і/або операційних систем;
- Контроль доступу та облік трафіку по користувачам;
- Проксі-сервер — це звичайна програма (а не системна), яка може працювати з мінімальними правами на будь-якій ОС з підтримкою мережі (стека TCP / IP);
- Відсутність доступу в Інтернет по інших протоколах часто було більше перевагою, ніж недоліком.
У зв'язку зі зростанням ролі інших мережевих протоколів, переходом до тарифікації послуг інтернету по швидкості доступу, а також появою дешевих апаратних маршрутизаторів з функцією NAT, використання звичайних проксі-серверів для виходу користувачів у Інтернет застосовується вкрай рідко.
Однак великого поширення набули прозорі проксі-сервери (протоколу http та деяких інших), в тому числі й ті, що входять до складу багатьох апаратних маршрутизаторів для доступу до інтернету, з метою збору статистики та контролю доступу до сайтів. Інші порти (протоколи) при цьому проходять через NAT.
- 3proxy (BSD, багатоплатформовий)
- CoolProxy (proprietary, Windows)
- HandyCache (shareware, Windows) безкоштовний для домашнього використання
- Kerio Control (proprietary, Windows, Linux)
- Microsoft Forefront Threat Management Gateway (proprietary, Windows)
- Nginx (вебсервер, що має режим роботи як reverse proxy і часто для цього використовується)
- Squid (GPL, багатоплатформовий)
- Traffic Inspector (proprietary, Windows)
- UserGate (proprietary, Windows)
- Інтернет Контроль Сервер (shareware, FreeBSD)
- TOR (shareware, багатоплатформовий)
- Редиректор
- ALG - англ. Application-level gateway
- Вебпроксі
- CProxy
- Замісник (шаблон проєктування) - англ. Proxy pattern
- Proxy software and scripts, каталог посилань Open Directory Project
- Free web-based proxy services, каталог посилань Open Directory Project
- Free http proxy servers, каталог посилань Open Directory Project
- How to choose proxy server by Dr. Florian Berg
- Proxy test online