Как безопасно маршрутизировать веб-трафик без VPN с использованием туннеля SOCKS

Вступление

Иногда вы находитесь в сети, которая небезопасна или имеет слишком строгий брандмауэр, и вам нужно получить доступ к веб-сайту. Вы хотите удостовериться, что никто в середине не наблюдает за трафиком.

Одним из решений является VPN , но для многих VPN требуется специальное клиентское программное обеспечение на вашем компьютере, которое может не иметь прав на установку.

Если все, что вам нужно защитить, это ваш просмотр в Интернете, есть простая альтернатива: прокси-туннель SOCKS 5.

Прокси SOCKS в основном представляет собой SSH-туннель, в котором конкретные приложения направляют свой трафик по туннелю на сервер, а затем на сервер, прокси перенаправляет трафик на общий Интернет. В отличие от VPN, прокси-сервер SOCKS должен быть настроен в приложении на основе приложения на клиентской машине, но может быть настроен без каких-либо специализированных клиентских агентов.

До тех пор, пока у вас есть капель с SSH-доступом, вы можете использовать его в качестве конечной точки прокси-сервера SOCKS. В этом уроке мы будем использовать Ubuntu 14.04 Droplet в качестве прокси-сервера и веб-браузер Firefox в качестве клиентского приложения. К концу этого урока вы сможете безопасно просматривать веб-сайты через туннель.

Предпосылки

Как уже упоминалось выше, первое, что нужно, это сервер, на котором работает любой вкус Linux, например Ubuntu 14.04, с доступом SSH .

  • Разверните сервер (в этом примере используется Ubuntu 14.04)

Требуется немного больше настроек на вашем локальном компьютере. Для этого вам нужно загрузить один или два фрагмента программного обеспечения.

  • Веб-браузер Firefox (все)
  • PuTTY (пользователи Windows)

Firefox позволяет вам устанавливать прокси только для Firefox вместо установки общесистемного прокси.

PuTTY используется для настройки прокси-туннеля для пользователей Windows. Пользователи Mac OS X или Linux имеют инструменты для настройки предустановленного туннеля.

Шаг 1 (Mac OS X / Linux) — Настройка туннеля

На локальном компьютере создайте ключ SSH . Если у вас уже есть SSH-ключ, вы можете использовать его.

Хотя это хорошая практика, чтобы дать вашему SSH-ключу ключевую фразу, для этого урока мы фактически оставим фразу passphrase пустой, чтобы избежать проблем позже.

Когда вы настраиваете ключ, убедитесь, что вы добавили его к авторизованным ключам для пользователя sudo на сервере (в этом примере это пользователь sammy ).

Откройте программу терминала на своем компьютере. В Mac OS X это Terminal в приложениях> Утилиты.

Настройте туннель с помощью этой команды:

  • ssh -D 8123 -f -C -q -N sammy@example.com

Объяснение аргументов

  • -D: Сообщает SSH, что мы хотим туннель SOCKS по указанному номеру порта (вы можете выбрать число между 1025-65536)
  • -f: Формирует процесс на задний план
  • -C: Сжатие данных перед отправкой
  • -q: Использует тихий режим
  • -N: Сообщает SSH, что никакая команда не будет отправлена ​​после завершения туннеля

Обязательно замените своим собственным sudo пользователем и IP-адресом сервера или доменным именем.sammy@example.com

После того, как вы введете команду, вас сразу же вернут в командную строку без признаков успеха или неудачи; это нормально.

Убедитесь, что туннель работает с этой командой:

ps aux | grep ssh

Вы должны увидеть строку на выходе, например:

Выход
sammy    14345   0.0  0.0  2462228    452   ??  Ss    6:43AM   0:00.00 ssh -D 8123 -f -C -q -N sammy@example.com

Вы можете выйти из своего терминала, и туннель не будет работать. Это потому, что мы использовали -fаргумент, который помещал сессию SSH в фоновый режим.

Примечание. Если вы хотите завершить туннель, вам придется захватить PID psи использовать killкоманду, которую мы покажем вам, как это сделать позже.

Шаг 1 (Windows) — Настройка туннеля

Откройте PuTTY .

Если вы еще не установили его, загрузите PuTTY и сохраните его там, где хотите. PuTTY не требует прав администратора для установки; просто загрузите .exeи запустите его.

Выполните следующие шаги для настройки туннеля:

  1. В разделе « Сессия » добавьте имя хоста (или IP-адрес) вашего сервера, а порт SSH (обычно 22)Шпатлевки
  2. Слева перейдите к: Подключение> SSH> Туннели
  3. Введите любой номер порта источника между 1025-65536. В этом примере мы использовали порт 1337Соединение шпалы> SSH> Туннель
  4. Выберите динамический переключатель
  5. Нажмите Добавить кнопку
  6. Вернитесь на Сессию слева
  7. Добавить название для сохраненных сессий и нажмите Сохранить кнопку
  8. Теперь нажмите кнопку « Открыть» , чтобы сделать соединение
  9. Введите имя пользователя и пароль sudo для входа в систему

Теперь вы можете свести к минимуму окно PuTTY, но не закрывайте его. Ваше SSH-соединение должно быть открытым.

Совет. Вы можете сохранить свое имя пользователя sudo ( sammy ) и SSH для этого же сеанса, выполнив инструкции PuTTY SSH Key . Тогда вам не нужно будет вводить свое имя пользователя и пароль при каждом открытии соединения.

Шаг 2. Настройка Firefox для использования туннеля.

Теперь, когда у вас есть туннель SSH, пришло время настроить Firefox на использование этого туннеля. Помните, что для туннеля SOCKS 5 вы должны использовать локальное приложение, которое может воспользоваться туннелем; Firefox делает трюк.

Этот шаг одинаковый для Windows, Mac OS X и Linux.

Убедитесь, что у вас есть номер порта, который вы использовали в команде SSH, или в PuTTY, отмеченном для этого примера. Мы использовали 8123 в примере OS X / Linux и 1337 в примере Windows, или вы, возможно, использовали другой порт.

(Следующие шаги были выполнены с Firefox версии 39, но должны работать с другими версиями, хотя расположение вариантов может отличаться.)

  1. В правом верхнем углу нажмите значок гамбургера, чтобы открыть меню Firefox:Настройки Firefox
  2. Нажмите на Preferences или Options значок
  3. Перейдите в раздел « Дополнительно »
  4. Нажмите вкладку « Сеть »Расширенные настройки Firefox
  5. Нажмите кнопку « Настройки» под заголовком « Соединение» . Откроется новое окно
  6. Выберите переключатель для настройки прокси вручную:Настройки прокси Firefox
  7. Введите localhost для хоста SOCKS
  8. Введите тот же номер порта из вашего SSH-соединения; в изображении вы видите, что мы ввели 1337, чтобы соответствовать инструкциям Windows
  9. Нажмите кнопку « ОК» , чтобы сохранить и закрыть конфигурацию

Теперь откройте еще одну вкладку в Firefox и начните просмотр в Интернете! Вы должны быть настроены для безопасного просмотра вашего SSH-туннеля.

Необязательно: чтобы убедиться, что вы используете прокси-сервер, вернитесь к настройкам сетив Firefox. Попробуйте ввести другой номер порта. Нажмите « ОК», чтобы сохранить настройки. Теперь, если вы попытаетесь просмотреть веб-страницы, вы должны получить сообщение об ошибке Прокси-сервер отказывается от соединений . Это доказывает, что Firefox использует прокси-сервер, а не только соединение по умолчанию. Вернитесь к правильному номеру порта, и вы сможете снова просматривать его.

Возврат к обычному необеспеченному просмотру в Firefox:

Когда вам будет необходимо обеспечить конфиденциальность туннеля SSH, вернитесь к настройкам сетевого прокси ( Настройки> Дополнительно> Сеть> Настройки ) в Firefox.

Нажмите на переключатель для использования параметров системного прокси-сервера и нажмите « ОК» . Теперь Firefox будет просматривать ваши обычные настройки соединения, которые, вероятно, не обеспечены.

Если вы закончили использование туннеля, вам также придется прекратить туннель, который мы рассмотрим в следующем разделе.

Если вы планируете часто использовать туннель, вы можете оставить его открытым для последующего использования, но обратите внимание, что он может завершиться сам по себе, если он простаивает слишком долго или если ваш компьютер переходит в режим сна или отключается.

Шаг 3 (Mac OS X / Linux) — Закрытие туннеля

Закрытие туннеля остановит способность Firefox просматривать прокси-сервер.

Тоннель, который мы создали ранее на нашей локальной машине, был отправлен на задний план, поэтому закрытие окна терминала, которое вы использовали для открытия туннеля, не приведет к его завершению.

Чтобы завершить туннель, нам нужно идентифицировать идентификатор процесса (PID) с помощью psкоманды, а затем убить его с помощью killкоманды.

Давайте будем искать все активные sshпроцессы на нашей машине:

  • ps aux |grep ssh

Найдите строку, которая выглядит как команда, введенная ранее для создания туннеля. Вот несколько примеров:

Выход
sammy    14345   0.0  0.0  2462228    452   ??  Ss    6:43AM   0:00.00 ssh -D 8123 -f -C -q -N sammy@example.com

В начале строки в одном из первых двух столбцов находится 3-5-значное число. Это PID. Выше, образец PID 14345 подсвечивается.

Теперь, когда вы знаете, что такое PID, вы можете использовать killкоманду, чтобы вывести туннель. Используйте свой собственный PID, когда вы убиваете процесс.

  • sudo kill 14345

Теперь, если вы хотите автоматизировать процесс подключения, перейдите к шагу 4.

Шаг 3 (Windows) — Закрытие туннеля

Закрытие туннеля остановит способность Firefox просматривать прокси-сервер.

Закройте окно PuTTY, которое вы использовали для создания туннеля. Это оно!

В Windows нет простого способа автоматизации процесса подключения, но оба PuTTY и Firefox могут сохранить настройки, которые вы ранее вводили, поэтому просто откройте соединения снова, чтобы снова использовать туннель.

Шаг 4 (Mac OS X / Linux) — Создание ярлыков для повторного использования

Для систем OS X или Linux мы можем создать псевдоним или создать сценарий для быстрого создания туннеля для нас. Следующие два способа автоматизации туннельного процесса.

Примечание. Эти методы ярлыков требуют аутентификации на SSH-сервере без пароля / бездействия SSH!

Скрипт BASH

Если вы хотите, чтобы значок дважды щелкнул, и туннель только начинается, мы можем создать простой скрипт BASH для выполнения задания.

Мы создаем сценарий для настройки туннеля и запускаем Firefox, хотя вам все равно придется добавлять настройки прокси вручную в Firefox в первый раз.

В OS X двоичный код Firefox, который мы можем запустить из командной строки, находится внутри Firefox.app. Предполагая, что приложение находится в папке «Приложения», двоичный файл будет найден /Applications/Firefox.app/Contents/MacOS/firefox.

В системах Linux , если вы установили Firefox через репозиторий или он предварительно установлен, то его местоположение должно быть /usr/bin/firefox. Вы всегда можете использовать which firefoxкоманду, чтобы узнать, где она находится в вашей системе.

В приведенном ниже скрипте замените путь к Firefox тем, который подходит для вашей системы.

Используя текстовый редактор, например, nanoсоздайте новый файл:

  • nano ~/socks5.sh

Добавьте следующие строки:

socks5.sh
#!/bin/bash
ssh -D 8123 -f -C -q -N sammy@example.com
/Applications/Firefox.app/Contents/MacOS/firefox &
  • Замените 8123нужный номер порта (он должен соответствовать тому, что вы помещаете в Firefox)
  • Замените sammy@example.comпользователя SSH и имя хоста или IP-адрес
  • Замените /Applications/Firefox.app/Contents/MacOS/firefoxпуть к двоичному файлу Firefox

Сохраните сценарий. Для nano введите CONTROL + o, а затем, чтобы выйти, введите CONTROL + x.

Сделайте скрипт исполняемым, чтобы при двойном нажатии на него он выполнялся. В командной строке введите эту команду, чтобы добавить разрешения на выполнение, используя собственный путь к сценарию:

  • chmod +x /path/to/socks5.sh

На OS X вам, возможно, придется выполнить дополнительный шаг, чтобы сообщить Mac OS X, что .shфайл должен быть выполнен как программа и не должен быть открыт в редакторе.

Для этого щелкните правой кнопкой мыши socks5.shфайл и выберите « Получить информацию».

Найдите раздел Открыть с помощью: и если треугольник раскрытия не указывается вниз, нажмите на него, чтобы вы могли видеть раскрывающееся меню. Xcode может быть установлен как приложение по умолчанию.Получить данные

Измените его на Terminal.app . Если Terminal.app не указан, выберите « Другие» , а затем перейдите в « Приложения»> «Утилиты»> «Terminal.app» .

Чтобы открыть прокси-сервер SOCKS, просто дважды щелкните socks.shфайл.

(После выполнения сценария не будет запрашивать пароль, и поэтому он будет терпеть неудачу, если вы предварительно настроили свой SSH-ключ, чтобы потребовать кодовую фразу).

Сценарий откроет окно терминала, запустит соединение SSH и запустит Firefox. Не забудьте закрыть окно терминала. До тех пор, пока вы сохраните настройки прокси-сервера в Firefox, вы можете начать просмотр своего безопасного соединения.

Псевдоним командной строки

Если вы часто находите себя в командной строке и хотите открыть туннель, вы можете создать псевдоним BASH, чтобы выполнить эту работу за вас.

Самая сложная часть создания псевдонима — это выяснить, где сохранить команду alias.

Различные дистрибутивы Linux и выпуски OS X сохраняют псевдонимы в разных местах. Лучше всего искать один из следующих файлов и искать, aliasчтобы увидеть, где в настоящее время сохраняются другие псевдонимы. Возможности включают

  • ~/.bashrc
  • ~/.bash_aliases
  • ~/.bash_profile
  • ~/.profile

После того, как вы установили правильный файл, добавьте этот псевдоним ниже любого, что у вас уже есть, или только в конце файла.

.bashrc
alias socks5='ssh -D 8123 -f -C -q -N sammy@example.com && /Applications/Firefox.app/Contents/MacOS/firefox &'
  • Замените 8123нужный номер порта (он должен соответствовать тому, что вы помещаете в Firefox)
  • Замените sammy@example.comпользователя SSH и имя хоста или IP-адрес
  • Замените /Applications/Firefox.app/Contents/MacOS/firefoxпуть к двоичному файлу Firefox

Ваши псевдонимы загружаются только при запуске новой оболочки, поэтому закройте сеанс терминала и запустите новую.

Теперь, когда вы вводите:

  • socks5

Этот псевдоним настраивает ваш туннель, затем запускает Firefox для вас и возвращает вас в командную строку.

Убедитесь, что Firefox по-прежнему настроен на использование прокси. Теперь вы можете безопасно просматривать!

Шаг 5 (необязательно) — Поиск и устранение неисправностей: переход через брандмауэры

Если ваше соединение работает, вы можете идти и можете перестать читать.

Однако, если вы обнаружили, что вы не можете установить соединение SSH из-за ограничительного брандмауэра, то, скорее всего, блокируется порт 22, который требуется для создания туннеля.

Если вы можете контролировать настройки SSH прокси-сервера (с доступом суперпользователя к капельке DigitalOcean, вы сможете это сделать), вы можете настроить SSH для прослушивания на другом порту, отличном от 22.

Какой порт вы можете использовать, который не блокируется?

Помимо сомнительного плана сканирования портов с помощью инструмента, такого как ShieldsUP!(сомнительно, так как ваша локальная сеть может рассматривать это как атаку), лучше попробовать порты, которые обычно остаются открытыми.

Порты, которые часто открыты, включают 80 (общий веб-трафик) и 443 (веб-трафик SSL).

Если ваш SSH-сервер не обслуживает веб-контент, мы можем сообщить SSH использовать один из этих веб-портов для связи вместо стандартного порта 22. 443 — лучший выбор, так как ожидается, что он будет зашифрованный трафик на этом порту, и наши SSH-трафик будет зашифрован.

Из местоположения без межсетевого экрана, SSH, в Droplet DigitalOcean, который вы используете для прокси. (Или используйте встроенную консоль с панели управления, но вы можете не захотеть этого делать, если боитесь, что ваш веб-трафик просматривается.)

Измените настройки SSH сервера:

  • sudo nano /etc/ssh/sshd_config

Ищите линию Port 22.

Мы можем либо 22полностью заменить (что является хорошей технологией упрощения SSH), либо добавить второй порт для SSH для прослушивания.

Мы выберем, чтобы SSH прослушивал несколько портов, поэтому мы добавим новую строку под Port 22этим чтением Port 443. Вот пример:

sshd_config
. . .

Port 22
Port 443

. . .

Перезагрузите SSH, чтобы перезагрузить конфигурацию SSH, которую вы только что отредактировали.

В зависимости от вашего дистрибутива имя демона сервера SSH может отличаться, но это может быть sshили sshd. Если кто-то не работает, попробуйте другой.

  • sudo service ssh restart

Чтобы убедиться, что ваш новый SSH-порт работает, откройте новую оболочку (не закрывайте текущий, пока вы случайно не заперли себя) и SSH при использовании нового порта.

ssh sammy@example.com -p 443

Если вы успешно, вы можете выйти из обеих оболочек и открыть свой SSH-туннель, используя новый порт.

  • ssh -D 8123 -f -C -q -N sammy@example.com -p 443

Это оно! Настройки Firefox будут точно такими же, поскольку они не зависят от порта SSH, а только от порта туннеля ( 8123 выше).

Заключение

Откройте туннель SOCKS 5, чтобы просмотреть безопасный SSH-туннель, когда вам нужен легкий способ доступа к веб-сейфу от посторонних глаз.

Дверь межкомнатная стеклянная акма https://real-steklo.ru/ проект летней кухни с верандой проект веранды под ключ

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *