SOCKS5 Proxy

Як швидко налаштувати проксі-сервер на SOCKS5 через SSH?

Те, що я пропоную — є певною альтернативою 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, виконати ті чи інші операції від імені віддаленого сервера, проксувати через нього трафік за межами міжмережевого екрану.
ЧИТАЙТЕ ТАКОЖ:  Аналізатори дискового простору в Linux

SOCKS5 vs VPN

Однак, 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.

How configure SOCKS5 in SSH Putty

Як тільки ви успішно авторизуєтеся на 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.

ЧИТАЙТЕ ТАКОЖ:  Розгортання, налаштування і оптимізація OpenLiteSpeed на VPS

Mozilla Firefox SOCKS5 configuration

Готово. Тепер спробуйте відкрити будь-яку веб-сторінку у браузері. Якщо з’єднання з proxy-сервером працює — сторінка відкриється. Якщо ні — ви побачите помилку інтернет-з’єднання.

Подібним чином через проксі можна налаштувати не тільки інтернет-браузер, а й будь-який додаток, наприклад месенджери – WhatsApp чи Telegram (треба зайти в мережеві налаштування і обрати proxy).

Таким чином, не маючи VPN, але маючи VPS-сервери, ви зможете спокійно входити в інтернет, залишаючи свою IP-адресу та хост-систему приватними. Підійдуть будь-які VPS-сервери, навіть вже з попередньо налаштованим начинням та працюючими операційними системами на борту. SSH-туннелінг ніяк не впливає на конфігурацію сервера, адже використовує лише SSH-з’єднання. Як тільки ви відключаєтесь від SSH— проксі перестає працювати. Ви просто можете знову повернутись до стандартних налаштувань браузера чи іншого додатку, вимкнувши в ньому режим проксі.

Автор: © Konrad Ravenstone, KR. Laboratories Research

Konrad Ravenstone// про автора

Кібермольфар, хакер, лінуксоїд, дослідник безпеки в KR. Labs Research

Сподобалася стаття? Поділитися в соцмережах:
KR. Labs Research
Рекомендоване:
Ключова перевага локального VPN на VirtualBox - це ізоляція і…