33%

Black Friday Sale Off on everything

and 40% off for dedicated bulgaria servers

Используйте код:

BLACK33
BG40
Активировать тут
30.10.2024

Туннели SSH: Конфигурация и практические примеры использования

Безопасное SSH-туннелирование на VPS AlexHost: исчерпывающее руководство по переадресации портов и безопасному доступу

В современном взаимосвязанном цифровом мире безопасный удаленный доступ необходим разработчикам, системным администраторам и ИТ-специалистам, управляющим серверами и приложениями. Secure Shell (SSH) является основным протоколом для шифрованной связи, но возможности туннелирования выводят его на новый уровень. Туннелирование SSH позволяет безопасно пересылать трафик между сетями, обходить брандмауэры и получать доступ к ограниченным службам – и все это при сохранении шифрования и конфиденциальности. Если вам нужно получить доступ к заблокированной базе данных, открыть локальное приложение для тестирования или безопасно просматривать веб-страницы через публичный Wi-Fi, туннели SSH – это универсальный инструмент для реальных сценариев.

Что такое SSH-туннель?

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

  1. Локальная переадресация портов
  2. Удаленная переадресация портов
  3. Динамическая переадресация портов

Каждый из этих способов имеет свои особенности, и ниже мы подробно рассмотрим каждый из них

1. Локальная переадресация портов

Локальная переадресация портов – это наиболее часто используемая форма SSH-туннелирования. Она позволяет перенаправлять трафик с локального порта на вашей машине на удаленную службу через SSH-соединение

Принцип работы локальной переадресации портов

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

Пример использования: Доступ к удаленной базе данных

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

Команда для локальной переадресации портов
ssh -L 5432:localhost:5432 user@remote-server

В данном примере

  • -L 5432:localhost:5432: Задается локальная переадресация портов. Первый 5432 – это порт на вашей локальной машине, localhost:5432 относится к удаленной базе данных.
  • user@remote-server: Подключается к удаленному SSH-серверу.

Теперь вы можете получить доступ к удаленной базе данных с вашей локальной машины, подключившись к localhost:5432

2. Переадресация удаленных портов

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

Как работает удаленная переадресация портов

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

Пример использования: открытие локального веб-приложения для удаленного сервера

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

Команда для удаленной переадресации портов
ssh -R 8080:localhost:3000 user@remote-server

В этом примере

  • -R 8080:localhost:3000: Задает удаленную переадресацию портов. Порт 8080 удаленной машины будет перенаправлен на localhost:3000 на вашей локальной машине, где запущено веб-приложение.
  • user@remote-server: Подключается к удаленному SSH-серверу.

Теперь любой человек на удаленном сервере может получить доступ к вашему веб-приложению через http://remote-server:8080

3. Динамическая переадресация портов

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

Принцип работы динамической переадресации портов

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

Пример использования: обход сетевых ограничений

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

Команда для динамической переадресации портов
ssh -D 8080 user@remote-server

В этом примере

  • -D 8080: Указывает динамическую переадресацию портов. Ваша локальная машина будет действовать как SOCKS-прокси на порту 8080.
  • user@remote-server: Подключается к удаленному SSH-серверу.

Когда туннель активирован, вы можете настроить браузер или любое приложение на использование localhost:8080 в качестве SOCKS-прокси, что позволит вам безопасно направлять весь трафик через удаленный сервер

Настройка SSH-туннелей с помощью файла конфигурации

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

Пример файла конфигурации SSH

Добавьте следующую конфигурацию в ~/.ssh/config

Host remote-db HostName remote-server User user LocalForward 5432 localhost:5432

Теперь вы можете настроить локальный порт для переадресации к удаленной базе данных, используя только

ssh remote-db

Практические примеры туннелирования SSH

1. Защита веб-трафика с помощью SOCKS-прокси

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

###ATP_NOTR_5_CODE_TAG_NOTR_ATP##

Затем настройте браузер на использование localhost:9090 в качестве SOCKS-прокси

2. Доступ к удаленной внутренней службе

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

ssh -L 8080:internal-service:80 user@remote-server

Это позволит вам получить доступ к внутренней службе по адресу http://localhost:8080

3. Раскрытие локального сервера разработки

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

ssh -R 4000:localhost:3000 user@remote-server

Теперь коллеги на удаленном сервере смогут получить доступ к вашему локальному приложению по адресу http://remote-server:4000

Заключение: Освойте SSH-туннелирование для безопасного доступа на VPS AlexHost

SSH-туннелирование обеспечивает безопасную пересылку трафика для удаленного доступа или просмотра веб-страниц. На VPS от AlexHost используйте NVMe для создания туннелей с низкой задержкой, корневой доступ для настройки и защиту от DDoS для безопасности. Начните туннелирование уже сегодня!

33%

Black Friday Sale Off on everything

and 40% off for dedicated bulgaria servers

Используйте код:

BLACK33
BG40
Активировать тут