- Как настроить туннель SSH SOCKS для приватного просмотра
- Подготовка
- Настроить SSH-туннель
- Linux и macOS
- Windows
- Настройка вашего браузера для использования прокси
- Fire Fox
- Гугл Хром
- Выводы
- Как настроить SSH-туннелирование (перенаправление портов)
- Перенаправление локального порта
- Перенаправление удаленного порта
- Динамическая переадресация портов
- Настроить SSH-туннелирование в Windows
- Выводы
Как настроить туннель SSH SOCKS для приватного просмотра
Бывают случаи, когда вы хотите работать в Интернете в частном порядке, получить доступ к контенту с географическими ограничениями или обойти любые промежуточные брандмауэры, которые может применяться в вашей сети.
Один из вариантов — использовать VPN, но это требует установки клиентского программного обеспечения на вашем компьютере и настройки собственного VPN-сервера или подписки на VPN-сервис.
Более простой альтернативой является маршрутизация трафика локальной сети с помощью зашифрованного прокси-туннеля SOCKS. Таким образом, все ваши приложения, использующие прокси-сервер, будут подключаться к серверу SSH, и сервер будет перенаправлять весь трафик в его фактическое место назначения. Ваш интернет-провайдер (интернет-провайдер) и другие третьи стороны не смогут проверять ваш трафик и блокировать ваш доступ к веб-сайтам.
Это руководство проведет вас через процесс создания зашифрованного туннеля SSH и настройки веб-браузеров Firefox и Google Chrome для использования прокси-сервера SOCKS.
Подготовка
- Сервер, работающий под управлением любой разновидности Linux, с доступом SSH для маршрутизации вашего трафика через него.
- Веб-браузер.
- Клиент SSH.
Настроить SSH-туннель
Мы создадим SSH-туннель, который будет безопасно перенаправлять трафик с вашего локального компьютера через порт 9090 на SSH-сервер через порт 22 . Вы можете использовать любой порт с номером больше 1024 , только root может открывать порты на привилегированных портах.
Linux и macOS
Если вы используете Linux, macOS или любую другую операционную систему на основе Unix на своем локальном компьютере, вы можете легко запустить туннель SSH с помощью следующей команды ssh :
Используются следующие параметры:
- -N — Указывает SSH не выполнять удаленную команду.
- -D 9090 — открывает туннель SOCKS на указанном номере порта.
- [USER]@[SERVER_IP] — ваш удаленный пользователь SSH и IP-адрес сервера.
- Чтобы запустить команду в фоновом режиме, используйте параметр -f .
- Если ваш SSH-сервер прослушивает порт, отличный от 22 (по умолчанию), используйте параметр -p [PORT_NUMBER] .
После запуска команды вам будет предложено ввести пароль пользователя. После его ввода вы войдете на свой сервер и туннель SSH будет установлен.
Вы можете настроить аутентификацию на основе ключа SSH и подключаться к серверу без ввода пароля.
Windows
Пользователи Windows могут создать SSH-туннель с помощью SSH-клиента PuTTY. Вы можете скачать PuTTY здесь .
Запустите Putty и введите IP-адрес вашего сервера в поле Host name (or IP address) .
В меню « Connection разверните SSH и выберите « Tunnels . Введите порт 9090 в поле Source Port и установите переключатель Dynamic .
Нажмите кнопку « Add , как показано на изображении ниже.
Вернитесь на страницу Session чтобы сохранить настройки, чтобы не вводить их каждый раз. Введите имя сеанса в поле « Saved Session и нажмите кнопку « Save .
Выберите сохраненный сеанс и войдите на удаленный сервер, нажав кнопку « Open .
Появится новое окно с запросом вашего имени пользователя и пароля. После того, как вы введете свое имя пользователя и пароль, вы войдете в систему на своем сервере, и будет запущен туннель SSH.
Настройка аутентификации с открытым ключом позволит вам подключаться к вашему серверу без ввода пароля.
Настройка вашего браузера для использования прокси
Теперь, когда вы открыли туннель SSH SOCKS, последний шаг — настроить предпочтительный браузер для его использования.
Fire Fox
Приведенные ниже шаги одинаковы для Windows, macOS и Linux.
В верхнем правом углу щелкните значок гамбургера ☰ чтобы открыть меню Firefox:
Щелкните ссылку ⚙ Preferences .
Прокрутите вниз до раздела « Network Settings » и нажмите кнопку « Settings. .
Откроется новое окно.
- Установите переключатель « Manual proxy configuration ».
- Введите 127.0.0.1 в поле SOCKS Host и 9090 в поле Port .
- Установите флажок Proxy DNS when using SOCKS v5 .
- Нажмите кнопку OK , чтобы сохранить настройки.
На этом этапе ваш Firefox настроен, и вы можете просматривать Интернет через туннель SSH. Чтобы проверить, вы можете открыть google.com , ввести «какой у меня IP», и вы должны увидеть IP-адрес своего сервера.
Чтобы вернуться к настройкам по умолчанию, перейдите в « Network Settings , выберите переключатель « Use system proxy settings » и сохраните настройки.
Есть также несколько плагинов, которые могут помочь вам настроить параметры прокси-сервера Firefox, например, FoxyProxy .
Гугл Хром
Google Chrome использует системные настройки прокси по умолчанию. Вместо изменения настроек прокси-сервера операционной системы вы можете использовать надстройку, например SwitchyOmega, или запустить браузер Chrome из командной строки.
Чтобы запустить Chrome с использованием нового профиля и вашего SSH-туннеля, используйте следующую команду:
Linux:
macOS:
Windows:
Если профиль не существует, он будет создан автоматически. Таким образом, вы можете запускать несколько экземпляров Chrome одновременно.
Чтобы убедиться, что туннель SSH работает правильно, откройте google.com и введите «what is my ip». IP-адрес, отображаемый в вашем браузере, должен быть IP-адресом вашего сервера.
Выводы
Вы узнали, как настроить туннель SSH SOCKS 5 и настроить свой браузер для частного и анонимного доступа в Интернет. Для простоты использования вы можете определить туннель SSH в файле конфигурации SSH или создать псевдоним Bash , который настроит туннель SSH и запустит браузер.
Если вы столкнулись с проблемой или хотите оставить отзыв, оставьте комментарий ниже.
Источник
Как настроить SSH-туннелирование (перенаправление портов)
SSH-туннелирование или перенаправление портов SSH — это метод создания зашифрованного SSH-соединения между клиентом и сервером, через которое могут ретранслироваться порты служб.
Перенаправление SSH полезно для передачи сетевых данных служб, использующих незашифрованный протокол, например VNC или FTP , доступа к контенту с географическим ограничением или обхода промежуточных межсетевых экранов. По сути, вы можете перенаправить любой TCP-порт и туннелировать трафик через безопасное соединение SSH.
Существует три типа переадресации портов SSH:
- Перенаправление локального порта. — Перенаправляет соединение с клиентского хоста на хост-сервер SSH, а затем на порт хоста назначения.
- Перенаправление удаленного порта. — Перенаправляет порт с хоста сервера на хост клиента, а затем на порт хоста назначения.
- Динамическая переадресация портов. — Создает прокси-сервер SOCKS, который обеспечивает связь через ряд портов.
В этой статье объясняется, как настроить локальные, удаленные и динамически зашифрованные туннели SSH.
Перенаправление локального порта
Перенаправление локального порта позволяет вам перенаправить порт на локальном (ssh-клиент) компьютере на порт на удаленном (ssh-сервере), который затем перенаправляется на порт на конечном компьютере.
В этом типе пересылки клиент SSH прослушивает данный порт и туннелирует любое соединение с этим портом на указанный порт на удаленном сервере SSH, который затем подключается к порту на конечном компьютере. Конечный компьютер может быть удаленным SSH-сервером или любым другим компьютером.
Перенаправление локальных портов в основном используется для подключения к удаленной службе во внутренней сети, такой как база данных или сервер VNC.
В Linux, macOS и других системах Unix, чтобы создать переадресацию локального порта, передайте параметр -L клиенту ssh :
Используются следующие параметры:
- [LOCAL_IP:]LOCAL_PORT — IP-адрес и номер порта локального компьютера. Если LOCAL_IP опущен, клиент ssh привязывается к локальному хосту.
- DESTINATION:DESTINATION_PORT — IP или имя хоста и порт конечного компьютера.
- [USER@]SERVER_IP — удаленный пользователь SSH и IP-адрес сервера.
В качестве LOCAL_PORT можно использовать любой порт с номером больше 1024 . Порты с номерами меньше 1024 являются привилегированными и могут использоваться только пользователем root. Если ваш SSH-сервер прослушивает порт, отличный от 22 (по умолчанию), используйте параметр -p [PORT_NUMBER] .
Имя хоста назначения должно разрешаться с сервера SSH.
Допустим, у вас есть сервер базы данных MySQL, работающий на машине db001.host во внутренней (частной) сети, на порте 3306, который доступен с машины pub001.host , и вы хотите подключиться к базе данных с помощью клиента MySQL на локальном компьютере. сервер. Для этого вы можете перенаправить соединение, используя следующую команду:
После запуска команды вам будет предложено ввести пароль удаленного пользователя SSH. После входа вы войдете на удаленный сервер, и туннель SSH будет установлен. Также рекомендуется настроить аутентификацию на основе ключей SSH и подключаться к серверу без ввода пароля.
Теперь, если вы db001.host:3306 базы данных на pub001.host компьютере pub001.host 127.0.0.1:3336 , соединение будет перенаправлено на db001.host:3306 MySQL db001.host:3306 через компьютер pub001.host который действует как промежуточный сервер.
Вы можете перенаправить несколько портов в несколько пунктов назначения с помощью одной команды ssh. Например, у вас есть другой сервер базы данных MySQL, работающий на компьютере db002.host , и вы хотите подключиться к обоим серверам со своего локального клиента, вы должны запустить:
Чтобы подключиться ко второму серверу, вы должны использовать 127.0.0.1:3337 .
Когда целевой хост совпадает с SSH-сервером, вместо указания IP-адреса или имени хоста назначения вы можете использовать localhost .
Допустим, вам нужно подключиться к удаленному компьютеру через VNC, который работает на том же сервере и недоступен извне. Вы бы использовали следующую команду:
Параметр -f указывает команде ssh работать в фоновом режиме, а -N не выполнять удаленную команду. Мы используем localhost потому что VNC и SSH-сервер работают на одном хосте.
Если у вас возникли проблемы с настройкой туннелирования, проверьте конфигурацию удаленного SSH-сервера и убедитесь, что для параметра AllowTcpForwarding не задано значение no . По умолчанию пересылка разрешена.
Перенаправление удаленного порта
Перенаправление удаленного порта противоположно перенаправлению локального порта. Это позволяет вам перенаправить порт на удаленном (ssh-сервере) компьютере на порт на локальном (ssh-клиент) компьютере, который затем перенаправляется на порт на конечном компьютере.
В этом типе пересылки сервер SSH прослушивает данный порт и туннелирует любое соединение с этим портом на указанный порт на локальном клиенте SSH, который затем подключается к порту на конечном компьютере. Конечный компьютер может быть локальным или любым другим.
В Linux, macOS и других системах Unix для создания удаленного перенаправления портов передайте параметр -R клиенту ssh :
Используются следующие параметры:
- [REMOTE:]REMOTE_PORT — IP-адрес и номер порта на удаленном SSH-сервере. Пустой REMOTE означает, что удаленный SSH-сервер будет связываться со всеми интерфейсами.
- DESTINATION:DESTINATION_PORT — IP или имя хоста и порт конечного компьютера.
- [USER@]SERVER_IP — удаленный пользователь SSH и IP-адрес сервера.
Удаленная переадресация портов в основном используется для предоставления доступа к внутренней службе кому-либо извне.
Допустим, вы разрабатываете веб-приложение на своем локальном компьютере и хотите показать его предварительный просмотр своему коллеге-разработчику. У вас нет общедоступного IP-адреса, поэтому другой разработчик не может получить доступ к приложению через Интернет.
Если у вас есть доступ к удаленному серверу SSH, вы можете настроить переадресацию удаленного порта следующим образом:
Приведенная выше команда заставит ssh-сервер прослушивать порт 8080 и туннелировать весь трафик с этого порта на ваш локальный компьютер через порт 3000 .
Теперь ваш коллега-разработчик может ввести the_ssh_server_ip:8080 в своем браузере и просмотреть ваше замечательное приложение.
Если у вас возникли проблемы с настройкой перенаправления удаленного порта, убедитесь, что для параметра GatewayPorts установлено значение « yes в конфигурации удаленного сервера SSH.
Динамическая переадресация портов
Динамическая переадресация портов позволяет создать сокет на локальном (ssh-клиентском) компьютере, который действует как прокси-сервер SOCKS. Когда клиент подключается к этому порту, соединение перенаправляется на удаленный компьютер (сервер ssh), который затем перенаправляется на динамический порт на конечном компьютере.
Таким образом, все приложения, использующие прокси-сервер SOCKS, будут подключаться к серверу SSH, и сервер будет перенаправлять весь трафик в его фактическое место назначения.
В Linux, macOS и других системах Unix для создания динамической переадресации портов (SOCKS) передайте параметр -D клиенту ssh :
Используются следующие параметры:
- [LOCAL_IP:]LOCAL_PORT — IP-адрес и номер порта локального компьютера. Если LOCAL_IP опущен, клиент ssh привязывается к localhost.
- [USER@]SERVER_IP — удаленный пользователь SSH и IP-адрес сервера.
Типичным примером динамической переадресации портов является туннелирование трафика веб-браузера через SSH-сервер.
Следующая команда создаст туннель SOCKS на порту 9090 :
После того, как туннелирование установлено, вы можете настроить свое приложение для его использования. В этой статье объясняется, как настроить Firefox и браузер Google Chrome для использования прокси-сервера SOCKS.
Перенаправление портов должно быть настроено отдельно для каждого приложения, которое вы хотите туннелировать трафик через него.
Настроить SSH-туннелирование в Windows
Пользователи Windows могут создавать туннели SSH с помощью клиента PuTTY SSH. Вы можете скачать PuTTY здесь .
Запустите Putty и введите IP-адрес SSH-сервера в поле Host name (or IP address) .
В меню « Connection разверните SSH и выберите « Tunnels . Установите переключатель Local для настройки локального, Remote для удаленного и Dynamic для динамической переадресации портов.
- При настройке локальной переадресации введите локальный порт пересылки в поле « Source Port а в поле « Destination введите хост и IP-адрес назначения, например localhost:5901 .
- Для перенаправления удаленного порта введите порт перенаправления удаленного SSH-сервера в поле Source Port а в поле Destination введите целевой хост и IP-адрес, например localhost:3000 .
- При настройке динамической пересылки введите только локальный порт SOCKS в поле Source Port .
Нажмите кнопку « Add , как показано на изображении ниже.
Вернитесь на страницу Session чтобы сохранить настройки, чтобы не вводить их каждый раз. Введите имя сеанса в поле « Saved Session и нажмите кнопку « Save .
Выберите сохраненный сеанс и войдите на удаленный сервер, нажав кнопку « Open .
Появится новое окно с запросом вашего имени пользователя и пароля. После того, как вы введете свое имя пользователя и пароль, вы войдете на свой сервер, и будет запущен туннель SSH.
Настройка аутентификации с открытым ключом позволяет вам подключаться к вашему серверу без ввода пароля.
Выводы
Мы показали вам, как настроить туннели SSH и пересылать трафик через безопасное соединение SSH. Для простоты использования вы можете определить туннель SSH в файле конфигурации SSH или создать псевдоним Bash, который будет настраивать туннель SSH.
Если вы столкнулись с проблемой или хотите оставить отзыв, оставьте комментарий ниже.
Источник