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

  1. Вступление Иногда вы находитесь в сети, которая небезопасна или имеет чрезмерно ограничительный брандмауэр,...
  2. Шаг 1 (Mac OS X / Linux) - Настройка туннеля
  3. Шаг 1 (Windows) - Настройка туннеля
  4. Шаг 2 - Настройка Firefox для использования туннеля
  5. Шаг 3 (Mac OS X / Linux) - закрытие туннеля
  6. Шаг 3 (Windows) - Закрытие туннеля
  7. Шаг 4 (Mac OS X / Linux) - Создание ярлыков для повторного использования
  8. Кликабельный скрипт BASH
  9. Псевдоним командной строки
  10. Шаг 5 (необязательно) - Устранение неполадок
  11. Заключение

Вступление

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

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

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

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

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

Предпосылки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Выход

Сэмми 14345 0,0 0,0 2462228 452 ?? Сс 6:43 AM 0: 00.00 ssh -D 8123 -f -C -q -N [email protected]

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

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

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

открыто PuTTY ,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Выход

Сэмми 14345 0,0 0,0 2462228 452 ?? Сс 6:43 AM 0: 00.00 ssh -D 8123 -f -C -q -N [email protected]

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

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

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

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

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

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

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

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

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

Примечание: оба эти ярлыка требуют аутентификации 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, создайте новый файл:

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

socks5.sh

#! / bin / bash ssh -D 8123 -f -C -q -N [email protected] /Applications/Firefox.app/Contents/MacOS/firefox &

  • Замените 8123 на желаемый номер порта (он должен совпадать с тем, что вы указали в Firefox)
  • Замените [email protected] вашим пользователем 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, чтобы выполнить эту работу за вас.

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

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

  • ~ / .Bashrc
  • ~ / .Bash_aliases
  • ~ / .Bash_profile
  • ~ / .Profile

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

.bashrc

псевдоним socks5 = 'ssh -D 8123 -f -C -q -N [email protected] && /Applications/Firefox.app/Contents/MacOS/firefox &'

  • Замените 8123 на желаемый номер порта (он должен совпадать с тем, что вы указали в Firefox)
  • Замените [email protected] вашим пользователем SSH и именем хоста или IP
  • Замените /Applications/Firefox.app/Contents/MacOS/firefox на путь к бинарному файлу Firefox.

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

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

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

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

Шаг 5 (необязательно) - Устранение неполадок

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

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

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

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

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

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

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

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

Отредактируйте настройки SSH сервера:

  • sudo nano / etc / ssh / sshd_config

Ищите линию Порт 22.

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

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

sshd_config

, , , Порт 22 Порт 443. , ,

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

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

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

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

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

Заключение

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

Комментарии запрещены.