Андроид ssh проброс портов

Содержание
  1. Андроид ssh проброс портов
  2. Доступ на samba шару через ssh туннель
  3. Настраиваем роутер
  4. Настройка телефона
  5. Запускаем SSH сервер на Android устройстве с использованием Termux
  6. Подключение к серверу с помощью PuTTY.
  7. Андроид ssh проброс портов
  8. SSH-туннели: практические примеры использования и важные функции
  9. Как устроены SSH-туннели
  10. Создание, условия применения и польза для сисадминов
  11. Как создать SSH-туннель и настроить его параметры
  12. Создание SSH-ключа в Linux (Ubuntu)/MacOS. Пошаговая инструкция:
  13. Инструкция для создания SSH-туннеля в Windows 10 выглядит аналогичным образом:
  14. SSH Proxy: как организовать доступ к любой системе (обращение к проксируемому серверу)
  15. Зачем нужны динамические SSH tunnels
  16. Команды и практическое применения функций SSH-туннелей
  17. Проброс (перенаправление) портов — Port Forwarding
  18. Автоматизация копирования публичного (открытого) ключа
  19. Обратный SSH-туннель (SSH reverse tunnel)
  20. Удаленное выполнение команд с помощью SSH
  21. Копирование, функция rsync-копирования (rsync через SSH)
  22. GUI-приложения: удаленный запуск через SSH
  23. Редактирование текстовых файлов
  24. Прыжки по хостам
  25. Фильтрация трафика с помощью iptables
  26. Реализация SSH tunnels в Windows
  27. Безопасны ли SSH-туннели

Андроид ssh проброс портов

Для функционирования программы необходимы права root пользователя.

Краткое описание:
Создание SSH-туннелей

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

Требуется Android: 2.1
Русский интерфейс: Нет
Лицензия: GPLv3

Скачать: версия: 1.5.6
sshtunnel 1.5.6.apk ( 1.1 МБ )

Сообщение отредактировал gim0 — 29.04.14, 06:34

Инструкции по разным вопросам

Q: Зачем это мне?
A: Мы все пользуемся интернет-ресурсами и постоянно передаём/получаем разного рода конфиденциальную информацию из интернета, но не каждый знает, что не всегда эта информация достаточно защищена от злоумышленников. Дело в том, что чаще всего пароли и прочая информация передаётся в незашифрованном виде. Во время подключения через мобильные сети (например 3G) есть серьёзный потенциальный риск того, что в данный момент злоумышленники перехватывают весь трафик, передающийся по воздуху. В случае же публичных или любых других незнакомых вам WiFi точек, администратор точки может получить доступ к любой незашифрованной информации, которая проходит через эту точку. С помощью данного приложения и SSH технологии, вы можете обезопасить себя от подобных угроз. Более того, с помощью этой технологии вы можете обойти любые фильтры трафика на любом уровне.

Q: В чём преимущество по отношению к VPN-туннелю?
A: В действительности, преимуществ нету, даже наоборот. Если у вас есть возможность использовать VPN, то советую использовать именно его в связи с его универсальностью и поддержкой многими программами по стандарту. Используйте SSH-туннели только если нету других вариантов.
Подробнее про Android и VPN можно узнать тут — Подключение к виртуальным частным сетям (VPN)

Q: Что если у меня нет возможности держать SSH-сервер?
A: В таком случае вы всегда можете арендовать сервер за отдельную плату у любого хостинга, предоставляющего такую возможность.

Q: Туннель создается, но на сайты не зайти. Что делать?
A: Есть вероятность что проблема с соединении с DNS. Попробуйте отключить опцию в приложении «Enable DNS Proxy».

DD-WRT — это свободная продвинутая прошивка для многих беспроводных маршрутизаторов (роутеров). См. Википедию и Официальный сайт. С некоторых пор настройка и запуск SSH-сервера осуществим очень быстро и легко с помощью панели управления.
Преимущество SSH-сервера, работающего на роутере, в том, что роутер, как правило, работает круглосуточно. Таким образом можно в любое время и в любом месте использовать SSH-туннель, без необходимости оставлять включенным ваш ПК или аренды отдельных серверов. Предположим, что на вашем роутере установлена прошивка DD-WRT. Обратите внимание, что все нижеуказанные действия осуществляются только когда вы в данный момент подключены к интернету через ваш роутер.

  1. Заходим в панель управления. Обычно она находится по адресу http://192.168.1.1/, вводим логин и пароль.
  2. Первым делом нужно активировать SSHd сервис. Заходим во вкладку Services.
  3. Находим блок «Secure Shell» и включаем его. Появятся следующие опции:

  4. Включаем опцию «Password Login»
  5. В самом низу страницы жмём «Save»
  6. Далее нам нужно позволить удалённое подключение к SSH. Переходим во вкладку «Administration».
  7. Находим блок «Remote Access» и включаем опцию «SSH Management» и «Allow Any Remote IP»:

  8. Порт по стандарту 22, если нет необходимости то оставляем как есть.
  9. В самом низу страницы нажимаем «Apply Settings».
  10. Ждём перезагрузки роутера.

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

  • IP-адрес: Можно узнать зайдя на сайт WhatIsMyIP.
  • Порт: 22 — по стандарту если он не был изменён.
  • Логин: тот же логин, который вы использовали для входа в панель управления (по стандарту обычно root).
  • Пароль: тот же пароль, который вы использовали для входа в панель управления.

Полезные ссылки:

  • SSH-туннель домой без необходимости оставлять включённым домашний ПК

Хотелось бы добавить:

  • Инструкция по установке и настройке SSH-сервера в GNU/Linux
  • Инструкция по установке и настройке SSH-сервера в Windows
  • Инструкция по созданию и использованию OpenSSH ключей

Сообщение отредактировал gim0 — 22.05.16, 12:28

Оно (было) с рекламой? Натравил на него LBE Security сразу как поставил, рекламы ни разу не видел.

Заметил, что с ним инет гораздо отзывчивее работает. Может, какое-то сжатие в туннеле присутствует?

Нет, никогда там нету и небыло реклам. Важно отметить что это свободное программное обеспечение :yes2:

Источник

Доступ на samba шару через ssh туннель

Доброго времени суток, Хабр.

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

Итак, для начала разберемся с тем что использовалось.

Первое — это роутер на dd-wrt.
И второе — смартфон на андроиде с ssh и samba клиентами. Я использовал ConnectBot и AndSMB.

Настраиваем роутер

Настройка ssh сервера

В разделе «Services — Services» включаем поддержку ssh. Выключаем «Password login» (позже мы добавим публичный ключ в «Authorized keys»). Выставляем порт по желанию. Нажимаем «Apply settings».

Настройка samba

Идем в раздел «Services — USB» и там включаем «Core USB Support», «USB Storage Support», «Automatic Drive Mount», и выставляем «Disk mount point» — /mnt. Нажимаем «Apply settings».

Идем в раздел «Services — NAS». Включаем поддержку samba. Добавляем шару. Нажимаем «Apply settings». Добавляем пользователя, прописываем произвольный логин, пароль и разрешаем использовать шару. Нажимаем «Apply settings».

Настройка телефона

Настройка ConnectBot

Идем в «Меню — Управление открытыми ключами». Нажимаем «Меню — Генерировать». Пишем псевдоним, выбираем тип ключа, размер в битах, по желанию пароль и отмечаем «Загружать ключ при старте».

Отдаем шум. Ждем генерации. Долгим тапом нажимаем на название и выбираем «Копировать публичный ключ». Этот публичный ключ нужно вставить на роутере, в раздел «Autorized keys».

Возвращаемся в главное меню. Внизу выбираем тип подключения «ssh», и пишем root@example.com, где root — имя пользователя, а example.com — имя хоста к которому коннектимся. Нажимаем соединиться.

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

И внизу подправляем имя пользователя, хост и порт если необходимо.

Возвращаемся в главное меню и долгим тапом нажимаем на этом соединении, выбираем «Редактировать перенаправление портов». Нажимаем «Меню — Добавить», записываем псевдоним, например, «Samba», «Тип переадресации» — локальный. «С порта» — здесь записываем произвольный порт, больший 1024 и запоминаем его. «На порт» — example.com:445

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

Выбираем «Добавить». Адрес сервера — localhost, имя и пароль — те которые были сохранены на роутере в разделе «Services — NAS».

Идем на вкладку дополнительно и пишем порт, который мы выбрали ранее в программе ConnectBot.

Далее возвращаемся на «Основные» и нажимаем сохранить. Пишем название, например, «samba over ssh».

Источник

Запускаем SSH сервер на Android устройстве с использованием Termux

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

С этим мне решил помочь Termux.

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

Итак, приступим.

Нам понадобится сам эмулятор терминала Linux — Termux. Это отличное мобильное приложение, которое подходит не только для сервера, но и для других целей.

Изначально нужно установить OpenSSH пакет.

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

В директории .ssh создалось два файла — id_rsa и id_rsa.pub . Копируем содержимое файла id_rsa.pub в файл authorized_keys .

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

Если вам надо посмотреть включен сервер или выключен.

Подключение к серверу с помощью PuTTY.

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

Далее, копируем ключ в память.

После этого, копируем файл на машину.

Теперь нам понадобится PuTTYgen.
Запускаем программу и загружаем файл, нажимая на кнопку Load. После этого сохраняем приватный ключ (save private key) в формате *.ppk.

Отлично, теперь у нас есть ключ. Осталось только подключиться.

Скачаем сам PuTTY.
Запускаем его. В поле IP адреса вводим локальный адрес нашего Android устройства. Чтобы посмотреть локальный адрес, нужно зайти в Termux и ввести команду.

В разделе wlan0 будет написан локальный IP адрес.

В поле порта вводим стандартный порт для ssh сервера — 8022. Далее, переходим в SSH → Auth и нажимаем кнопку Browse.

Находим тот файл, который сохранили в формате *.ppk, и нажимаем Open. После запуска нажимаем Enter.

Все, мы подключились.

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

Источник

Андроид ssh проброс портов

Краткое описание:
Терминал клиент для Android, включая SSH, локальный Shell, Mosh и поддержка Telnet

Описание:
Особенности:
— Полноцветная терминал / клиент SSH
— Всплывающая клавиатура с необходимыми символами
— Быстрое изменения размера шрифта с помощью клавиш регулировки громкости
— Поддержка внешней клавиатуры
— Жесты для Irssi, WeeChat, tmux и экрана
— Сообщество сторонних плагинов
— Официальная поддержка Mosh (http://mosh.mit.edu)
— Поддержка Telnet
— Поддержка локального терминала Android
— URLы, при нажатии, открываюся в браузере
— Copy & Paste в сессиях
— Поддержка UTF-8
— Организация подключений по группам
— Возможность поддерживать несколько работающих сеансов SSH в фоновом режиме
— Поддержка IPv6
— Поддержка пароля и приватного OpenSSH ключа
— Генератор ключей RSA (поддерживается шифрование)
— Поддержка двухфакторной аутентификации (например: Google Authenticator)
— Работает из коробки с Ubuntu, RedHat, CentOS, Mint, Gentoo и с другими разновидностями Linux
— Сжатие Zlib для улучшения SSH сессий

Pro Особенности (опционально, покупка в приложении):
— Порт форвардинг.
— Интеграция с Amazon AWS / EC2.
— Синхронизация между несколькими устройствами
— Автоматизированная AES-256 шифрование резервных копий всех ваших подключений и настроек.
— Красивый виджет для быстрого доступа к часто используемым соединениям.
— Цветовые темы терминала.
— Автоматическа блокировка, для защиты JuiceSSH после определенного периода бездействия

Требуется Android: 8.0 и выше
Русский интерфейс: Нет

версия: 2.1.3 Mod JuiceSSH — SSH клиент (Пост Alex0047 #62928696)
версия: 2.0.9 JuiceSSH — SSH клиент (Пост мaгнaт #43840482)
версия: 2.0.1 JuiceSSH 2.0.1 97.apk ( 9.45 МБ )

версия: 2.0.0 //4pda.to/forum/d…m.sonelli.juicessh.apk
версия: 1.5.5 JuiceSSH 1.5.5 91.apk ( 8.3 МБ )

Источник

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

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

Любые важные данные следует передавать по защищенным каналам информации. Но это не всегда легко реализовать, особенно когда пользователю нужно совершить срочные операции на удаленном сервере, а подключиться к интернету можно только через публичный незащищенный Wi-Fi. В таком случае используют SSH-туннелирование, устанавливающее защищенный канал связи между локальным рабочим узлом и удаленным сервером. С помощью него можно не только передавать или редактировать файлы дистанционно, но и запускать GUI-приложения, делать бэкап, передавать пароли и даже организовывать потоковое вещание.

Как устроены SSH-туннели

Создание, условия применения и польза для сисадминов

Ситуация, когда требуется срочный доступ к домашнему компьютеру или внутренней корпоративной сети, знакома каждому. К сожалению, качество и безопасность общественных сетей часто оставляют желать лучшего. Важную информацию по таким сетям лучше не передавать. Кроме того, для организации доступа часто требуется внешнее ПО (Team Viewer и другие). Для системного администрирования существует способ использования публичных сетей и при этом создания безопасного подключения к необходимым узлам без использования того же VPN. Речь о SSH-туннелировании.

SSH (от англ. Secure Shell — «безопасная оболочка») — сетевой протокол, который используется для удаленного управления ОС и проксировании TCP-соединений. Выполняет шифрование всего трафика (сюда же относятся пароли и другие важные для корпоративной безопасности данные). SSH-серверы работают с большинством сетевых операционных систем, представленных на рынке.

Подключиться по этому протоколу можно практически к любому серверу. Для организации безопасного соединения можно использовать так называемые SSH-туннели. Но с точки зрения терминологии — это не те туннели, о которых обычно идет речь, когда говорят о системном администрировании. Само наименование, SSH tunnel, сформировалось среди сисадминов для простоты обозначения технологии — SSH Port Forwarding (проброса портов). В ней реализовано сразу несколько возможностей сетевого протокола SSH, а именно — передача TCP-пакетов и трансляция IP-заголовка во время передачи информации при условии существования заранее заданного правила.

Главное отличие SSH tunnels от их аналогов с VPN — передача информации не происходит в любом направлении. Такой канал связи имеет одну точку входа и работает исключительно с TCP-пакетами. Создание SSH-туннелей скорее напоминает проброс портов поверх протокола, нежели туннелирование в чистом виде.

Как создать SSH-туннель и настроить его параметры

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

Создание ключа и установление соединения с удаленным сервером занимает несколько минут.

Создание SSH-ключа в Linux (Ubuntu)/MacOS. Пошаговая инструкция:

1. Для создания ключа требуется ввести следующую команду:

2. После введения команды на экране управляющей консоли появится диалог:

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

4. Разумеется, пункт № 3 можно пропустить, нажав Enter. То же самое следует сделать, отвечая на следующий вопрос.

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

6. На следующем этапе в терминале необходимо ввести команду, которая покажет открытый ключ:

7. Публичный ключ необходимо ввести в панели управления. Внимательно проверяйте корректность введения ключа.

8. Остается последний этап. Для создания SSH-туннеля к удаленному серверу достаточно выполнить одну команду:

Параметр HOST ― публичный IP-адрес сервера.

Добавим, что введение дополнительных паролей не требуется. А при использовании сервера Selectel можно использовать свой скрипт (bash) для быстрой настройки.

Для удобства пользователей ОС Windows 10 можно создать SSH-туннель в эмуляторе под Windows (MinGW64).

Инструкция для создания SSH-туннеля в Windows 10 выглядит аналогичным образом:

1. Для генерации пары ключей используется команда:

2. Желательно защитить приватный ключ паролем (или нажать Enter, если он не нужен):

3. Ключи сгенерированы:

4. Открытый ключ хранится в файле

/.ssh/id_rsa.pub. Приватный ключ находится в файле id_rsa и должен храниться в секрете:

5. Чтобы посмотреть содержимое публичного ключа, используется команда:

6. Этот ключ (всю строку, начинающуюся с ssh-rsa) необходимо вставить в панели управления Selectel, в поле Операционная система / SSH-ключ выбранного сервера. При установке ОС он будет скопирован в файл .ssh/authorized_keys. При смене ключа в панели управления Selectel текущий образ ОС будет пересоздан, а данные на сервере — утеряны.

7. Для подключения к серверу по SSH используется команда:

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

/.ssh/known_hosts на локальной машине:

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

10. После ввода пароля и нажатия Enter устанавливается зашифрованное соединение с сервером:

Подробнее о создании SSH-туннелей можно прочитать в Базе знаний.

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

Параметры канала связи устанавливает инициатор подключения. На втором конце канала связи всегда расположен целевой сервер. Так, клиентом может оказаться VPS-сервер, а точкой выхода — компьютер сисадмина.Точка входа может быть создана с любой стороны туннеля: именно через нее принимаются подключения. Обратная сторона туннеля — точка выхода — способна лишь на маршрутизацию пакетов информации с учетом установленных правил. Отдельная опция — соединение с удаленной машиной, на которой запущен модуль Docker (SSH Docker). Подробнее об этом мы расскажем в следующих публикациях.

Аналогичным образом проходит процесс установки соединения с определенным сервером. В качестве примера возьмем целевой сервер с адресом 192.168.0.105. При этом для пользователя доступен только маршрутизатор (192.168.0.1). В качестве точки входа прописывается 127.0.0.1:3389. Кроме того, задается правило трансляции, определяющее узел, принимающий данные на выходе из SSH-туннеля. В нашем случае в качестве правила указывается 192.168.0.105:3389. Проследите, чтобы указанный адрес действительно существовал, иначе вам не удастся подключиться к целевому серверу.

После того, как вы зададите исходные данные, появится TCP-сокет, который создает служба SSH. Этот локальный сокет следит за тем, когда начнутся подключения на порт 3389. Точкой назначения прописывается localhost (127.0.0.1). Отметим, что RDP-клиент не владеет информацией о настоящем назначении получателя пакета. Клиент только открывает динамический порт, чтобы отправить пакет данных, у которого задан адрес назначения (точка входа) и источника (127.0.0.1:61256).

Пакет с информацией следует от входной точки SSH tunnel на его противоположный конец. Адрес трансляции поменяется. Теперь там значится 192.168.0.105:3389. На следующем этапе SSH-сервер просто поставит свой адрес вместо адреса источника. Вся информация, которая передается внутри канала, будет отправлена поверх протокола. А RDP-клиент оперирует исключительно локальным сокетом. Важно, что вся информация внутри туннеля защищена — она шифруется. Но соединение между SSH- и RDP-серверами остается обычным. Разумеется, этот фактор стоит учитывать, если пользователь работает с небезопасными протоколами.

SSH Proxy: как организовать доступ к любой системе (обращение к проксируемому серверу)

С помощью SSH-туннеля можно воспользоваться домашней (или корпоративной) сетью, даже используя ненадежный бесплатный Wi-Fi. Для этого пользователю потребуется запустить SSH-прокси, а затем по аналогичному принципу создать туннель в целевую сеть (например, можно подключиться к домашней сети).

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

Это не единственный способ практического применения SSH-туннелирования. Один из самых популярных кейсов — SSH Proxy — открывает доступ к желаемой системе, если она доступна для удаленного сервера. При этом для туннелирования через прокси-сервер потребуется ввести всего одну команду:

Команда выше показывает, что пользователь запускает SOCKS-прокси. Портом для работы назначается 8888. Кроме того, необходимо проверить, активен ли этот TCP-порт (используется режим прослушивания). Служба работает исключительно на localhost (127.0.0.1). Если немного видоизменить команду, то можно прослушивать все интерфейсы (в том числе ethernet или Wi-Fi). Это позволяет приложениям подключаться к прокси-серверу через SSH-прокси:

Чтобы браузер работал корректно, необходимы настройки. Например, чтобы запустить Chrome с активированным SOCKS-прокси, потребуется команда:

Она создает SOCKS-прокси, а также инициирует туннелирование DNS-запросов. Утилита tcpdump проверяет, видны DNS-запросы или нет.

Кроме браузеров, многие современные приложения работают с SOCKS-прокси: достаточно изменить их параметры, чтобы активировать прокси-сервер. Отдельно применяются инструменты, которые помогают приложениям использовать эту важную функцию — к примеру, proxychains позволяет запустить через SOCKS-прокси Microsoft RDP.

Зачем нужны динамические SSH tunnels

Динамический SSH tunnel отличается от рассмотренных выше типов соединений. Он открывает локальный TCP-сокет для его использования в качестве SOCKS4/SOCKS5 прокси. Обычно его применяют, когда требуется VPN, а его развертывание невозможно. Такой тип SSH-туннеля также отвечает необходимым требованиям безопасности.

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

SOCKS-прокси работает через порт 1080.

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

Команды и практическое применения функций SSH-туннелей

Рассмотрим несколько практических примеров применения SSH-туннелирования.

Проброс (перенаправление) портов — Port Forwarding

Чтобы осуществить проброс портов, потребуется создание SSH tunnel. Для этого в локальной системе открывается порт, а для создания канала связи пользователь должен выбрать порт на другом конце туннеля:

Команда устанавливает прослушку на порт 9999. Порт 80 используется для проброса. Для Port Forwarding также используются прокси-серверы или TCP-службы.

Автоматизация копирования публичного (открытого) ключа

Традиционно пользователю приходится копировать открытые ключи вручную. SSH-протокол существенно ускоряет этот процесс:

Эта команда выполняет копирование публичного ключа по умолчанию или из директории

/.ssh/authorized_keys (она находится на удаленном сервере).

Обратный SSH-туннель (SSH reverse tunnel)

Очевидно, что SSH tunnel можно создать и в обратном направлении. Достаточно подключить прослушивающий порт к другому локальному порту:

Данный туннель работает следующий образом: от порта 1999 к remoteserver, а уже после этого обращается к порту 902 на локальном клиенте.

Удаленное выполнение команд с помощью SSH

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

После скачивания лога grep можно запустить на удаленной стороне.

Копирование, функция rsync-копирования (rsync через SSH)

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

Для регулярных бэкапов важной информации используется rsync:

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

GUI-приложения: удаленный запуск через SSH

SSH-туннель поддерживает функцию, позволяющую запускать GUI-приложения удаленно:

Отметим: несмотря на то, что GUI выполняется на удаленном сервере, окно отображается на локальном рабочем столе. В примере для работы запущена консоль виртуальной машины VMware Workstation. Но для успешной реализации команды требуются пакеты X11 и YES для X11Forwarding в файле sshd_config.

Редактирование текстовых файлов

Метод редактирования файлов одной командой предусматривает создание файла в /tmp, а затем копирование в заданную директорию:

Прыжки по хостам

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

Параметр -J использует переадресацию для установления сеанса с каждым следующим хостом в цепочке. При этом рабочий сеанс полностью зашифрован — от localhost и до host4.

Фильтрация трафика с помощью iptables

Утилита iptables позволяет устанавливать правила для блокировки или разрешения прохождения трафика: INPUT, FORWARD и OUTPUT. В случае если пользователь не задал никаких правил, этот межсетевой экран будет выполнять заданную по умолчанию фильтрацию. Для установления связи с целевым сервером утилита сравнит IP-адрес инициатора подключения с тем списком, что есть в правилах INPUT, а затем либо даст доступ к серверу, либо запретит его.

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

Реализация SSH tunnels в Windows

Возможности туннелирования доступны и для тех, кто использует Windows 10: под эту ОС существует ряд SSH-клиентов. Один из самых применяемых — PuTTY. Запуск сервера под Windows — более сложная задача, которая требует от пользователя специализированной квалификации.

PuTTY настраивается достаточно просто: для этого во вкладке Connection открываем SSH Tunnels, где необходимо прописать базовые настройки соединения — Source port (точка входа), Destination (назначение); радиопереключатели Local — Remote — Dynamic определяют тип будущего канала связи. Адрес целевого узла указывается в другом разделе — Session.

Открытия дополнительных портов или развертывания VPN не требуется.

Безопасны ли SSH-туннели

Как мы уже отмечали, одна из их задач — создание безопасного соединения с удаленной машиной. Однако не стоит забывать о «побочных эффектах» таких туннелей. Кроме соединения с удаленным сервером, пользователь получает консоль, которая открывается на сервере.

Если пользователь забудет о своем подключении, то может выполнить те команды, которые изначально были предназначены к выполнению на локальном узле. Чтобы избежать подобной ошибки (особенно если пользователь имеет права суперпользователя), при запуске канала связи следует указывать параметр -N:

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

Источник

Читайте также:  Платформа android usb кабель подключен отключен a51
Оцените статью