Обход брандмауэров с помощью SSH

Benzema

Публикатор
Команда форума
Регистрация
27.01.18
Сообщения
374
Реакции
149
Баллы
560
FTC
129¢
1663892546714

SSH - это безопасный протокол, который можно использовать для туннелирования через брандмауэры. Используя SSH, мы можем подключиться к удаленному серверу и туннелировать наш трафик через SSH-соединение. Брандмауэры предназначены для защиты сетей от несанкционированного доступа, но брандмауэр также может блокировать законный трафик, если он неправильно настроен. Это может быть проблемой, когда нам нужно разрешить доступ к определенному приложению или службе. Один из способов обойти эту проблему - обойти брандмауэр с помощью ssh.

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

Шаг для выполнения туннелирования SSH:​

Чтобы обойти брандмауэр с помощью SSH-туннелирования, нам нужно будет настроить SSH-сервер на машине, которая находится за пределами брандмауэра. Затем нам нужно будет подключиться к этому серверу с помощью SSH-клиента и перенаправить трафик с клиентской машины на серверную. Например, предположим, что мы хотим обойти брандмауэр, который блокирует весь трафик на порт 80. Мы могли бы настроить SSH-сервер на компьютере с открытым портом 80, а затем подключиться к этому серверу с помощью SSH-клиента. Как только мы подключимся, мы сможем перенаправить трафик с локального компьютера на порт 80 на серверной машине. Это позволило бы нам обойти брандмауэр и получить доступ к веб-сайтам, которые обычно заблокированы.

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

Шаг 1. Установите программное обеспечение SSH-сервера на компьютер.
  • В Windows 11:Перейдите в Настройки> Приложения> Дополнительные функции и нажмите "Просмотреть функции"
  • Найдите функцию “OpenSSH server”, выберите ее> установите флажок, нажмите "Далее", а затем нажмите "Установить".
  • В Windows 10:Перейдите в Настройки> Приложения> Приложения и функции> Дополнительные функции и нажмите Добавить функцию
  • Найдите функцию “OpenSSH server”, разверните функцию> установите флажок и выберите Установка.
gfinstallingopensshserver.png

Шаг 2. Настройте SSH-сервер на прослушивание порта 80 и разрешите трафик на порт 80 через брандмауэр.

В Windows:
  • Перейдите в Панель управления> Система и безопасность> Брандмауэр защитника Windows 1> Дополнительные настройки> Входящие правила и добавьте новое правило для порта 80.
  • Или выполните следующую команду PowerShell от имени администратора
New-NetFirewallRule -Name sshd -DisplayName
'OpenSSH SSH Server' -Enabled True -Direction
Inbound -Protocol TCP -Action Allow -LocalPort
80 -Program "C:\Windows\System32\OpenSSH\sshd.exe"

gfgconfiguringopensshserverusingwindowspowershell.jpg


Шаг 3. Запустите SSH-сервер
  • В Windows: перейдите в Панель управления> Система и безопасность> Администрирование и откройте службы. Найдите службу сервера OpenSSH SSH и нажмите кнопку Запустить службу.
  • Как только SSH-сервер будет запущен и доступен удаленно, следующим шагом будет загрузка SSH-клиента на целевой компьютер.

Шаг для подключения SSH-сервера и пересылки трафика:

Шаг 1. Установите программное обеспечение SSH-клиента на целевой компьютер: клиент OpenSSH по умолчанию включен в дистрибутивы Ubuntu Linux. Для платформы Windows доступно несколько бесплатных SSH-клиентов. Лучший из них - Putty, который доступен онлайн на их сайте.

Шаг 2. Подключитесь к серверу SSH и перенаправьте трафик с целевой машины на порт 80 на серверной машине. После запуска Putty заполните следующие сведения о конфигурации :

В поле “Имя хоста” введите
общедоступный IP-адрес SSH-сервера
Перейдите к соединению> SSH> Туннели
Добавьте новый перенаправленный порт:
Исходный порт = целевой порт для обратного туннелирования
Назначение = 127.0.0.1: [Целевой порт]
Направление = Удаленное
Нажмите Добавить
Нажмите Открыть, чтобы начать сеанс SSH

gfgputtyconfiguration.jpg


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

Выполните переадресацию портов SSH:​

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

Для этого мы сначала подключились бы к удаленному серверу по SSH. Затем мы использовали бы следующую команду для пересылки трафика с локального компьютера (порт 8080) на удаленный сервер (порт 80):

ssh -L 8080: localhost: 80 [email protected]

Теперь мы можем получить доступ к веб-сайту, перейдя по http://localhost:8080 в веб-браузере. Трафик будет туннелироваться через SSH-соединение, а удаленный сервер будет действовать как прокси.

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

Для этого мы сначала подключились бы к удаленному серверу по SSH. Затем мы использовали бы следующую команду для пересылки трафика с удаленного сервера (порт 3306) на локальный компьютер (порт 3306):

ssh -R 3306: localhost:3306 [email protected]

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

Выполните SSH SOCKS прокси:​

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

Шаг 1. На локальном компьютере откройте терминал и выполните следующую команду:

имя пользователя ssh -D 9999 -f -C -q [email protected]

Шаг 2. Это установит прокси-сервер SOCKS на порт 9999 локальной машины.

Шаг 3. Чтобы использовать прокси-сервер, настройте браузер или другое приложение на использование прокси-сервера SOCKS на localhost: 9999.

Шаг 4: Просмотр веб-страниц весь трафик будет туннелироваться через SSH-соединение.
 
Сверху Снизу