Як приховати трафік OpenVPN за допомогою тунелю SSH

тунель (2)
Таким чином, ви дотримувались нашого підручника щодо налаштування власного VPN-сервера за допомогою OpenVPN та Amazon EC2-сервера, і це було чудово. Тобто, поки раптом його не заблокували. Можливо, ви перезавантажили примірник і отримали нову IP-адресу. Він працює чудово знову протягом декількох днів, а потім блокується. Здається, ваш офіс, Інтернет-провайдер чи уряд активно блокують сервери OpenVPN. Так, що ти робиш?

Основні брандмауери блокують з’єднання на основі використовуваного порту та IP-адреси призначення, але більш розвинені брандмауери використовують глибоку перевірку пакетів (DPI) та / або стаціонарну перевірку пакетів (SPI) для розрізнення різних типів алгоритмів шифрування та протоколів VPN. Це означає, що вони можуть виявити трафік OpenVPN і позначити його, щоб адміністратор міг заблокувати сервер.

Існує три варіанти, щоб обійти це: проксі затухання, тунелювання SSL та тунелювання SSH. У цьому підручнику ми обговоримо останнє. SSH-тунелювання перетворює ваше вже зашифроване з’єднання в інший шар шифрування, щоб брандмауер не міг розрізняти. Кожен із цих методів повинен обійти брандмауэры DPI та SPI, створені корпораціями або урядами, що ведуть цензуру, як Китай.

OpenVPN через SSH має пару мінусів. По-перше, це продуктивність завдяки подвійному шифруванню. По-друге, відбиток пальців OpenVPN вже не можна виявити при тунелі через SSH, але деякі брандмауери також блокують трафік SSH. Це стосується служб типу Netflix, які зупиняють використання будь-якого типу зашифрованого проксі, OpenVPN, SSH тощо. У цьому випадку ми рекомендуємо замість цього встановити Obfsproxy, завдяки чому зашифрований трафік здається нормальним і незашифрованим. З цієї причини Obfsproxy набагато потужніший, але також складніший у налаштуванні та запуску.

На жаль, в даний час Obfsproxy у поєднанні з OpenVPN працює лише на робочому столі, наскільки нам відомо. SSH тунелювання можна використовувати на мобільному пристрої Android або iOS.

Цей підручник передбачає, що у вас уже створений функціонуючий сервер OpenVPN і ви можете підключитися до нього за допомогою програми OpenVPN GUI або OpenVPN Connect. Ви також повинні мати можливість SSH на своєму сервері, використовуючи термінал на Mac або PuTTy на ПК. Для демонстрації ми будемо використовувати PuTTy. Якщо у вас все не налаштовано, перегляньте наш попередній підручник.

Налаштування OpenVPN через SSH на ПК

У нашому останньому підручнику ми обговорили, як налаштувати простий проксі-сервер SSH, а потім розширити його, щоб створити повний VPN-сервер. Цей підхід поєднує в собі два, а це означає, що ви вже повинні мати все необхідне.

Відкрийте PuTTy та завантажте конфігурацію сервера VPN. На бічній панелі перейдіть до З’єднання > SSH > Тунелі. Переконайтеся, що D8080 включений до списку. Якщо ні, введіть 8080 у «Порт джерела» та поставте прапорець Авто та Динамічно. Потім натисніть Додати. Тепер у вас є проксі-сервер, що проходить через порт 8080. Ви можете зберегти це як окрему конфігурацію сеансу, якщо ви хочете повернутися на вкладку Сеанс дерева навігації.

openvpn ssh putty 8080

Клацніть Відкрити та увійдіть у свій сервер. Пам’ятайте, що в новій Amazon Linux AMI ім’я користувача “ec2-користувач”.

Перейдіть до файлу openvpn.conf і перевірте вміст за допомогою цих команд

cd / etc / openvpn
кішка openvpn.conf

Тут має відображатися вміст файлу конфігурації вашого сервера OpenVPN. Це повинно виглядати так:

порт 1194
proto tcp-сервер
dev tun1
ifconfig 10.4.0.1 10.4.0.2
сервер статусу-tcp.log
дієслово 3
секретний ovpn.key

Налаштування сервера openvpn ssh

Важливим є те, що другий рядок встановлений на TCP, а не UDP. Якщо вам потрібно змінити його, ви можете відредагувати цю команду:

sudo nano openvpn.conf

Потім натисніть CTRL + O (літера “o”, не нуль), щоб зберегти файл, потім CTRL + X, щоб вийти з редактора.

Конфігурація клієнта

На локальній машині перейдіть до файлів конфігурації вашого клієнта OpenVPN. Якщо ви використовували каталог встановлення за замовчуванням, це буде C: / Program Files / OpenVPN / config.

Створіть копію існуючого конфігураційного файла OpenVPN з останнього підручника або створіть новий. Знайдіть Блокнот або інший звичайний текстовий редактор і клацніть правою кнопкою миші, щоб запустити як адміністратор. Відкрийте або створіть новий конфігураційний файл, який повинен виглядати так:

proto tcp-клієнт
віддалений локальний господар 1194
порт 1194
dev tun1
секретний ovpn.key
перенаправлення-шлюз def1
ifconfig 10.4.0.2 10.4.0.1
шкарпетки-проксі-повтори
шкарпетки-проксі 127.0.0.1 8080

Зверніть увагу, що друга “віддалена” лінія використовує localhost замість IP-сервера OpenVPN, а також дві лінії на кінці, які налаштовують OpenVPN на використання проксі-сервера SOCKS. Все інше так само, як і раніше.

Збережіть новий конфігураційний файл у конфігураційній папці вашого каталогу OpenVPN.

Налаштування програм

Останній крок – налаштувати ваші програми для використання проксі-сервера через порт 8080. Це схоже на те, що ми робили з базовим проксі-сервером SSH з останнього підручника. У багатьох додатках буде встановлено проксі-сервер у налаштуваннях, а деякі можуть навіть автоматично виявити його. Якщо вам потрібно налаштувати його вручну, потрібні три відомості:

  • Хост: 127.0.0.1
  • Порт: 8080
  • Тип проксі-сервера: SOCKS5 (або SOCKS v5)

Ось інструкції для Firefox та Chrome:

У Firefox:

  • Перейдіть до Інструменти > Параметри > Розширений > Мережа > З’єднання > Налаштування > Налаштування проксі-сервера вручну
  • Встановіть SOCKS Host як 127.0.0.1, а порт – 8080 (або будь-який інший параметр тунельного порту на PuTTy).
  • Клацніть OK, щоб зберегти

У Chrome Proxy Switchy

  • Сторінка налаштування повинна з’явитися, як тільки ви встановите розширення, або натисніть значок у верхньому правому куті Chrome і натисніть Опції.
  • Назвіть профіль, що вам подобається. У розділі “Ручна конфігурація” встановіть хост SOCKS на 127.0.0.1, а порт – на 8080 (або все, що ви встановите для тунельного порту в PuTTy. Залиште все інше порожнім.
  • Натисніть кнопку Зберегти, а потім знову натисніть на піктограму, щоб вибрати свій профіль проксі.

obfsproxy chrome proxy switchy

Тепер підключіться до свого сервера спочатку з PuTTy, використовуючи конфігурацію, описану вище, потім з VPN, використовуючи новий створений нами конфігураційний файл.

Зараз ви підключені до Інтернету через OpenVPN через SSH!

Мобільний

Ми пояснимо, як адаптувати тунель OpenVPN + SSH для Android, хоча iOS не повинен бути таким різним.

Перш ніж ми почнемо, є пара застережень. По-перше, цей метод працює лише для веб-перегляду. Це тому, що, на відміну від робочого столу, ви не можете просто відкривати порти на будь-якому пристрої Android або iOS. Це означає, що порти, якими користуються інші додатки, не будуть спрямовані через проксі-сервер SSH. Щоб подолати це, ви можете викорінити або перезавантажити свій пристрій і скористатися додатком, таким як ProxyDroid або програми Cydia Unix, щоб налаштувати проксі.

Це підручник на наступний день. Поки що, давайте піднімемо його та працює на Android Android із Firefox. Вам потрібно буде встановити такі додатки:

  • OpenVPN для Android (зверніть увагу: НЕ OpenVPN Connect, що більш вибагливий щодо аутентифікації)
  • ConnectBot або подібний додаток для SSH-терміналу (JuiceSSH – це добре, але коштує додатково для переадресації портів)
  • Файловий менеджер, такий як File Commander
  • Firefox або інший браузер, який дозволяє налаштувати проксі

Вам також знадобляться певні засоби для перенесення файлів з комп’ютера на телефон. USB-кабель добре. Я використовував папку синхронізації IBackup.

Знайдіть свій робочий файл ovpn.key та конфігураційний файл .ovpn, створений вище, на робочому столі та перемістіть їх на внутрішню пам’ять телефону або SD-карту. Також перемістіть файл ключа .pem, наданий вашим хостом сервера. Він, ймовірно, знаходиться там же, що і ваш .ppk файл, який ви використовуєте для автентифікації з PuTTy. Якщо ви втратили його, вам доведеться створити ще одну на інформаційній панелі Amazon EC2 або з того сервісу, який хостинг сервера ви використовуєте..

За бажанням ви можете захопити стандартний конфігураційний файл .ovpn, який ви використовуєте для підключення без SSH. Тоді ви можете використовувати VPN з усіма програмами, а не лише з браузером, і це корисно для усунення несправностей.

Налаштування ConnectBot

Запустіть ConnectBot на своєму телефоні. Клацніть три крапки у верхньому правому куті та перейдіть до Manage Pubkeys. Клацніть крапки ще раз на наступній сторінці та натисніть Імпортувати. Це має запустити встановлений файловий менеджер. Знайдіть файл .pem, який ви щойно перемістили на телефон, і виберіть його. Тепер він повинен з’явитися у списку відкритих ключів із червоним замком поруч. Торкніться його, щоб він став зеленим. Натисніть кнопку “Назад”, щоб повернутися на головну сторінку ConnectBot.

connectbot

У нижньому полі терміналу поруч із “ssh” введіть свої дані SSH. Це повинно виглядати так:

ec2-користувач @: 22

Замініть IP-адресу вашого сервера OpenVPN. Торкніться клавіші Enter для SSH на своєму сервері. Все це слід зберегти, щоб вам не доведеться знову вводити його, але, можливо, вам доведеться знову перемикати відкритий ключ.

Після успішного з’єднання знову натисніть на три крапки та відключіться. Ваш профіль повинен бути збережений на головному екрані ConnectBot. Тримайте його, щоб відкрити контекстне меню, і торкніться “Редагувати порт вперед”. На наступній сторінці торкніться трьох крапок і виберіть “Додати порт вперед”.

Назвіть це все, що завгодно. Встановіть тип “Динамічний” (SOCKS) та вихідний порт – 8080 (або все, що знаходиться в рядку шкарпетки-проксі вашого конфігураційного файлу OpenVPN). Торкніться “створити порт вперед”.

ConnectBot готовий до роботи, але ми поки що не підключимось. Спершу налаштуємо OpenVPN.

OpenVPN для налаштування Android

Запустіть OpenVPN для Android.

Клацніть на квадратній кнопці зі стрілкою вниз у верхньому правому куті, щоб імпортувати профіль. Перейдіть до конфігураційного файлу .ovpn та виберіть його. На наступній сторінці натисніть кнопку “Вибрати”.

openvpn для android

Цього разу перейдіть до файлу ovpn.key та виберіть його. Натисніть на жовту кнопку збереження в правому нижньому куті.

Ваш новий профіль тепер повинен з’явитися у списку на головному екрані програми.

Перш ніж з’єднатися, давайте ще раз перевіримо брандмауер нашого сервера. Увійдіть до AWS, виберіть “Екземпляри” та виділіть ваш сервер OpenVPN. У полі “Групи безпеки” натисніть на той, який використовується для цього примірника. Клацніть правою кнопкою миші та виберіть “Редагувати вхідні правила”.

Додайте спеціальні правила TCP для портів 22, 1194 та 8080, налаштовуючи, як це потрібно для вашої особистої конфігурації.

Тепер прийшов час підключитися. Спершу відкрийте ConnectBot. Торкніться створеного нами профілю для SSH на вашому сервері. Переконайтеся, що пасквіт увімкнено, інакше ви отримаєте помилку щодо пароля. Після успішного підключення перейдіть на додаток OpenVPN. Торкніться свого профілю там, щоб підключитися.

openvpn ssh успіх для Android

Наприкінці журналу OpenVPN, який спливе під час підключення, ви побачите повідомлення, яке говорить “ПІДКЛЮЧЕНО, УСПЕХ”.

Зауважте, що оскільки ми використовуємо ті самі .pem і .key файли, що і на нашому робочому столі, ви можете використовувати ці дані лише на одному пристрої. Переконайтеся, що ви не підключені спочатку на робочому столі. Якщо ви хочете підключитися одночасно на кількох пристроях, вам потрібно буде генерувати нові облікові дані (.key та .pem) для кожного.

Налаштуйте Firefox для використання проксі

Нарешті, нам потрібно налаштувати Firefox для використання проксі. Chrome і Safari на мобільних пристроях не мають опцій конфігурації проксі, тому ми рекомендуємо Firefox. Ви можете спробувати налаштувати проксі-сервер у налаштуваннях wi-fi, але тоді вам доведеться їх змінювати щоразу, коли потрібно підключитися без проксі-сервера.

Firefox проксі-конфігурація

У рядку URL-адрес Firefox введіть “about: config”. У рядку пошуку на цій сторінці введіть “network.proxy”. Це відобразить усі поля, якими ми займаємось. Введіть такі параметри у вказані поля:

  • network.proxy.socks: 127.0.0.1
  • network.proxy.socks_port: 8080 (або все, що ви встановили у своїх конфігураціях OpenVPN та ConnectBot)
  • network.proxy.type: 1

Це має спрямовувати трафік браузера Firefox через OpenVPN та SSH. Тепер ви можете переглядати Інтернет з мобільного пристрою через VPN, не боячись глибокої перевірки пакетів!

Якщо ви хочете підключитися через проксі-сервер SSH без OpenVPN, просто SSH на свій сервер за допомогою ConnectBot і не з’єднуйтесь з OpenVPN. І навпаки, ви можете імпортувати ваш основний конфігураційний файл, не-SSH .ovpn, у додаток OpenVPN та підключитися до цього проксі-сервера SSH.

“Тунель” від jo.sau, ліцензований за CC BY 2.0

Kim Martin
Kim Martin Administrator
Sorry! The Author has not filled his profile.
follow me