- Андроид ssh проброс портов
- Доступ на samba шару через ssh туннель
- Настраиваем роутер
- Настройка телефона
- Запускаем SSH сервер на Android устройстве с использованием Termux
- Подключение к серверу с помощью PuTTY.
- Андроид ssh проброс портов
- SSH-туннели: практические примеры использования и важные функции
- Как устроены SSH-туннели
- Создание, условия применения и польза для сисадминов
- Как создать SSH-туннель и настроить его параметры
- Создание SSH-ключа в Linux (Ubuntu)/MacOS. Пошаговая инструкция:
- Инструкция для создания SSH-туннеля в Windows 10 выглядит аналогичным образом:
- SSH Proxy: как организовать доступ к любой системе (обращение к проксируемому серверу)
- Зачем нужны динамические SSH tunnels
- Команды и практическое применения функций SSH-туннелей
- Проброс (перенаправление) портов — Port Forwarding
- Автоматизация копирования публичного (открытого) ключа
- Обратный SSH-туннель (SSH reverse tunnel)
- Удаленное выполнение команд с помощью SSH
- Копирование, функция rsync-копирования (rsync через SSH)
- GUI-приложения: удаленный запуск через SSH
- Редактирование текстовых файлов
- Прыжки по хостам
- Фильтрация трафика с помощью iptables
- Реализация SSH tunnels в Windows
- Безопасны ли SSH-туннели
Андроид ssh проброс портов
Для функционирования программы необходимы права root пользователя.
Краткое описание:
Создание SSH-туннелей
Описание:
SSH предоставляет безопасное шифрованное соединение с сервером, которое используется приложением для создания SSH-туннелей. Идея SSH-туннелей в том, что бы безопасно передавать трафик в незащищённой среде (например, мобильные сети или публичные WiFi точки) на доверенный сервер, а с него уже на необходимый интернет-ресурс.
Требуется Android: 2.1
Русский интерфейс: Нет
Лицензия: GPLv3
Скачать: версия: 1.5.6sshtunnel 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. Обратите внимание, что все нижеуказанные действия осуществляются только когда вы в данный момент подключены к интернету через ваш роутер.
- Заходим в панель управления. Обычно она находится по адресу http://192.168.1.1/, вводим логин и пароль.
- Первым делом нужно активировать SSHd сервис. Заходим во вкладку Services.
- Находим блок «Secure Shell» и включаем его. Появятся следующие опции:
- Включаем опцию «Password Login»
- В самом низу страницы жмём «Save»
- Далее нам нужно позволить удалённое подключение к SSH. Переходим во вкладку «Administration».
- Находим блок «Remote Access» и включаем опцию «SSH Management» и «Allow Any Remote IP»:
- Порт по стандарту 22, если нет необходимости то оставляем как есть.
- В самом низу страницы нажимаем «Apply Settings».
- Ждём перезагрузки роутера.
Готово! Теперь на вашем роутере работает 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-туннель.
Источник