Те, що я пропоную — є певною альтернативою VPN-з’єднанню. У цій статті я розкажу як налаштувати Proxy-сервер SOCKS5, для чого він потрібен і які переваги та недоліки дає, а також, як виходити в інтернет через проксі, використовуючи звичайний браузер.
Що таке SOCKS?
SOCKS (від англ. Socket Secure) – це мережевий TCP/IP протокол сеансового рівня, який працює по клієнт-серверній моделі й дозволяє маршрутизувати та тунелювати будь-який тип трафіка через віддалений сервер. Таким чином відбувається проксі-з’єднання, на яке не впливають міжмережеві екрани та файєрволи. При цьому використовується IP-адреса віддаленого сервера, що дозволяє обходити цензуру. Протокол був розроблений американським системним адміністратором Девідом Кобласом у 1992 році. Існує у вигляді модифікацій: SOCKS4 та SOCKS5.
Дані передані по SOCKS5 жодним чином не змінюються, не кешуються і не фільтруються. На відміну від HTTP-серверів, SOCKS не додає своїх заголовків, кожен пакет передається в ідентичному незмінному вигляді. SOCKS виконує виключно ТРАНСПОРТНУ ФУНКЦІЮ. Такий підхід може гарантувати певну анонімність хост-машини. Тому що віддалений сервер через SOCKS не отримує жодної додаткової інформації.
Протокол є універсальним – підтримує аутентифікацію (login/password), TCP/UDP порти, IPv4/IPv6 адреси. Відповідає стандартам RFC 1928, RFC 1929. По замовчуванню, приймає клієнтське з’єднання на порту – 1080.
Існує чимало реалізацій проксі-з’єднання через SOCKS5, наприклад OpenSSH або DANTE. TOR і Shadowsocks теж працюють на SOCKS.
Через SOCKS можна пропускати будь-які додатки, що працюють на TCP/IP: браузери, месенджери, торенти, FTP/SMTP тощо.
Чим SOCKS відрізняється від VPN?
Допитливий читач може запитати: “А у чому прикол”? Яка відмінність між VPN-сервером і проксі? Чи трафік шифрується?
- VPN — це приватна інтернет-мережа, яка не просто дозволяє виходити в інтернет через свій VPN-сервер, а охоплює повністю усі мережеві інтерфейси та інтернет-з’єднання, використовуючи при цьому криптографічні алгоритми, в залежності від VPN-протоколу.
- SOCKS Proxy — це тип інтернет-з’єднання, який просто проксує трафік як є через віддалений сервер без використання криптографічних протоколів (не враховуючи TLS/SSL). Тобто, якщо ви відкрили сайт по HTTP – трафік не шифрується! У цьому й полягає основна відмінність від VPN. SOCKS часто стає в пригоді там, де потрібно просто швидко увійти в інтернет приховавши свій IP, виконати ті чи інші операції від імені віддаленого сервера, проксувати через нього трафік за межами міжмережевого екрану.
Однак, SOCKS з легкістю можна поєднувати в парі з VPN (SOCKS over VPN)! А з допомогою SSH – можна реалізувати зашифрований туннелінг передачі трафіку. Власне, нижче детально розберемо цей варіант.
Налаштовуємо SSH-туннелінг по протоколу SOCKS5
SSH-туннелінг – це технологія, яка застосовує захищений Secure Shell Protocol (SSH) для з’єднання з віддаленим серверером, налагоджує тунель і через нього пропускає інтернет-трафік по протоколу SOCKS5. Дані шифруються криптографічними алгоритмами (наприклад, AES) лише для передачі, на ділянці від клієнта до сервера.
Це означає, що після того, як дані залишають SSH-тунель – вони втрачають шифрування, якщо не використовуються TLS/SSL та VPN.Є чимало програмних рішень, котрі дозволяють вдосконалити SOCKS5-з’єднання через SSH, наприклад STUNNEL або RSP.
Крок 1. Налаштування SOCKS5 в PuTTY
Перейти у налаштування свого SSH-клієнта, через який ви підключаєтеся до VPS. Наприклад, PuTTY:
- На головному вікні програми вписати у полі Host Name публічну IP-адресу свого VPS-сервера.
- Зліва в меню перейти в розділ Connection й у полі Seconds between keepalives вписати 100 (затримка, аби не розривалось з’єднання)
- Перейти в розділ Connections -> SSH -> Tunnels і в полі Source Port вписати 3128, відмітивши галочками пункти Dynamic та Auto (прокидування SSH на локальний порт, себто туннелінг)
- Повернутись до пункту Session, в полі Saved Sessions ввести назву з’єднання та зберегти Save. Далі — просто підключитись, натиснувши кнопку Open.
Як тільки ви успішно авторизуєтеся на VPS-сервері, переходимо до наступного кроку.
Примітка: PuTTY був вибраний для прикладу. Замість нього можна використати будь-який інший SSH-клієнт, наприклад Asbru. Можна також скористатися вбудованою підтримкою SSH в Linux через команду:
ssh -i ~/.ssh/privkey -N -D 127.0.0.1:1080 -p 2222 username@XX.XX.XX.XX
Крок 2. Налаштування SOCKS5 в браузері Mozilla Firefox
Вводимо в адресному рядку браузера about:preferences, знаходимо Network Settings і переходимо в них. Тут необхідно обрати режим Manual proxy configuration та вписати в поле SOCKS5 Host — localhost на порту 3128 (порт, який ви задали в налаштуваннях SSH-з’єднання). Нижче також можна увімкнути опції “Proxy DNS when using SOCKS5” та “DNS over HTTPS”, обравши в списку, наприклад, CloudFlare.
Готово. Тепер спробуйте відкрити будь-яку веб-сторінку у браузері. Якщо з’єднання з proxy-сервером працює — сторінка відкриється. Якщо ні — ви побачите помилку інтернет-з’єднання.
Подібним чином через проксі можна налаштувати не тільки інтернет-браузер, а й будь-який додаток, наприклад месенджери – WhatsApp чи Telegram (треба зайти в мережеві налаштування і обрати proxy).
Таким чином, не маючи VPN, але маючи VPS-сервери, ви зможете спокійно входити в інтернет, залишаючи свою IP-адресу та хост-систему приватними. Підійдуть будь-які VPS-сервери, навіть вже з попередньо налаштованим начинням та працюючими операційними системами на борту. SSH-туннелінг ніяк не впливає на конфігурацію сервера, адже використовує лише SSH-з’єднання. Як тільки ви відключаєтесь від SSH— проксі перестає працювати. Ви просто можете знову повернутись до стандартних налаштувань браузера чи іншого додатку, вимкнувши в ньому режим проксі.
Автор: © Konrad Ravenstone, KR. Laboratories Research





