Компьютерра що ви знаєте про proxy

Про видах "повноважних представників" або що таке "SOCKSіфікація" додатків.

В інтернеті часто можна зустріти заяви, що проксі-сервер служить для прискорення завантаження за рахунок кешування вмісту сторінок, DNS і т.п. Насправді це тільки одне з корисних властивостей проксі-серверів, але не головне і властиве далеко не всім серверам.

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

Чи можлива така робота без проксі? Так, можлива - колись все так робили. Але така робота вимагає виконання певних додаткових умов і має свої мінуси в порівнянні з використанням проксі.

Які бувають види проксі?

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

Я перерахував основні, але не всі можливості HTTP-proxy. Але вже одних перерахованих досить щоб переконатися, що без HTTP-proxy в серйозній мережі не обійтися.

FTP-proxy буває двох основних видів залежно від протоколу роботи самого проксі. З ftp-серверами цей проксі, звичайно, завжди працює по протоколу FTP. А ось з клієнтськими програмами - браузерами і ftp-клієнтами (CuteFTP, FAR, і ін.) Проксі може працювати як по FTP, так і по HTTP. Другий спосіб зручніше для браузерів, тому що історично є для них «рідним». Браузер запитує ресурс у проксі, вказуючи протокол цільового сервера в URL - http або ftp. Залежно від цього проксі вибирає протокол роботи з цільовим сервером, а протокол роботи з браузером не змінюється - HTTP. Тому, як правило, функцію роботи з FTP-серверами також вставляють в HTTP-proxy. тобто HTTP-proxy. Опис вище, зазвичай з однаковим успіхом працює як з HTTP, так і з FTP-серверами. Але при «конвертації» протоколів FTP<->HTTP втрачається частина корисних функцій протоколу FTP. Тому спеціалізовані ftp-клієнти воліють і спеціальний проксі, який працює з обома сторонами по FTP. Такий проксі називається FTP-gate, щоб підкреслити відмінність від FTP-proxy в складі HTTP-proxy. Також цей проксі називається і в деяких ftp-клієнтів. Хоча зустрічаються і вносять ще більшу плутанину назви: наприклад, в програмі CuteFTP FTP-gate називають firewall, хоча firewall, в загальному випадку, - це взагалі не проксі, а, фактично, програма зворотного призначення - не для підключення до інтернету, а для ізоляції від нього. FTP-gate підтримують різні способи вказівки в FTP-протоколі цільового сервера, з яким FTP-клієнт хоче працювати, в налаштуванні FTP-клієнтів зазвичай пропонується вибір цього способу, наприклад як показано на малюнку нижче:


Малюнок 1.
Тут USER user @ site, OPEN site, і т.д. - спосіб вказівки сервера, з яким проводиться робота. Таке різноманіття пов'язано з тим, що немає загальноприйнятого стандарту на цей вид проксі, і застосовуються такі хитрі добавки до стандартних командам FTP-протоколу.

Socks-proxy. Про цей вид проксі буде вестися окрема розмова, тому що на даний момент це самий «прогресуючий» протокол. Тож почнемо…

Розроблено він Дейвом Кобласом (Dave Koblas) з компанії SGI. З початку існування протокол пережив кілька великих модифікацій, а на сьогоднішній день «в роботі» знаходяться дві версії протоколу: Socks4 і Socks5. Не дивлячись на те, що Socks5 більш «просунутий», зараз з однаковою мірою поширені сервера як з підтримкою старої, так і нової версії. Протокол є транслятор (щось на зразок проксі сервера), але на відміну від звичайних проксі Socks-клієнт «сидить» між прикладним і транспортним рівнем в мережевий моделі, а Socks-сервер перебувати на прикладному рівні. Це означає, що такий сервер не прив'язаний більше до протоколів високого рівня. Сам протокол розроблений для того, щоб програми, що працюють на основі tcp і udp, могли використовувати ресурси мережі, доступ до яких обмежений архітектурою або настройками (наприклад, доступ до ресурсів Інтернету з локальної мережі для додатків, у яких взагалі не передбачена робота з використанням проксі ).

Тепер можна розповісти, яким чином можливе застосування цієї технології для анонімності в Інтернет. Для початку скажу, що так як головною «робочою одиницею» в WWW є браузер, який використовує протокол HTTP (який, в свою чергу, працює на tcp), то нам байдуже, скільки разів Socks ми будемо використовувати.

Пам'ятайте проблему з використанням різних проксі серверів для різних протоколів (http, ftp, https і т.д.)? Так як всі ці протоколи (в браузері) працюють на основі tcp, то Socks-проксі без проблем бере їх усіх на себе, тобто більше не треба мучитися, прописуючи для кожного протоколу свій проксі-сервер, а тим більше - шукати їх. Досить одного Socks.

Технологія Socks легко підтримує вибудувана в ланцюг. Тут слід зазначити, що деякі http проксі-сервери теж можуть вибудовуватися в ланцюг, але в цьому випадку виникає багато проблем. По-перше, з 100% робочих проксі-серверів, анонімними будуть відсотків 10, з них, можливо, 1% буде підтримувати можливість перенаправляти запити, тобто вибудовуватися в ланцюг. По-друге, використання такої можливості http проксі браузером прямо не передбачена, але якщо все ж використовувати деякі методи для цього, то залишиться безліч дірок, головною з яких буде потенційна можливість передачі даних безпосередньо, минаючи проксі. Таким методом я не користувався і не збираюся, для цього є засіб краще - це Socks.

Що дає можливість вибудовування в ланцюг Socks-серверів? Думаю це очевидно, Socks-сервери можуть перебувати в різних частинах планети, передаючи інформацію один одному за вашим бажанням. Всі дані, які «ходять» між браузером і web-сервером, будуть передаватися через всі сервери, які ви збудували в ланцюг, можливо, не раз обійшовши земну кулю, поки не досягнуть мети. Ваша анонімність забезпечена.

Теорія закінчена, можна переходити до практики. Можливо, ви вже полізли в настройки браузера, і знайшли поле Socks - забудьте про нього, забудьте про налаштування браузера взагалі. Звичайно, можна і так, але можуть виникнути деякі обмеження: навіть сучасні браузери підтримують Socks тільки четвертої версії. Все робиться зовсім по-іншому.

УВАГА! В налаштуваннях браузера має бути відключено використання проксі-сервера (встановлено безпосереднє підключення до Інтернету).

Ланцюг з Socks

Щасти вам роботи ...

[1] - Пізніше я з'ясував, що запустити IE з-під SocksCap не так вже й складно: знайдіть в додаткових властивостях браузера опцію "Завантажувати вікна оглядача в окремому процесі» і деактивуйте її. У четвертого Експлоер вона називається по-іншому, щось на зразок «Переглядати в новому процесі». У п'ятому, крім того, треба деактивувати опцію «Автоматичне визначення налаштувань» (Подключеніе-> Налаштування мережі).
[Назад до тексту]

Схожі статті