SSH-туннель домой без необходимости оставлять включённым домашний ПК
Disclaimer
Этот пост появился здесь по нескольким причинам:
1) Меня попросил сам Boomburum
2) Есть предположение, что на хабре всё-таки есть люди, имеющие прямое отношение к IT, но при этом имеющие весьма отдалённое представление о пользе SSH и её извлечении из обычного домашнего роутера, и которым, надеюсь, будет весьма интересно и полезно об этом узнать.
Бла-бла-бла, а топик-то о чём?
Итак, я обещал рассказать «как поднять ssh-туннель домой без необходимости оставлять включённым домашний ПК» и, как правильно догадался peter23 речь пойдёт про ssh-сервер на роутере.
Сначала о том, кому и зачем это может понадобиться и каковы начальные условия.
Предположим Вы находитесь в сети, которая подключена к интернет с ограничениями, доставляющими вам неудобства. Или напротив — Вы подключились к публичной точке доступа и у Вас обострение паранойи есть основания для беспокойства. В общем, Вы находитесь в ситуации, когда очень хотелось бы больше свободы/контроля в сети, но увы. И, кажется, можно было бы залогиниться на домашний компьютер через какой-нибудь сервис вроде logmein или teamviewer, но этот самый домашний компьютер представляет из себя ноутбук, забытый на диване без подзарядки, а личного сервера у вас нет.
Но зато у Вас дома всегда включён маршрутизатор и, пока вас нет, он просто тратит электроэнергию.
Есть несколько вариантов выхода из ситуации. Ниже описан лишь один из них.
1) Определяемся с роутером
Хорошо ли вы знаете свой маршрутизатор?
Присмотритесь, может быть в заявленных функциях уже есть поддержка SSH или даже TOR. Если нет, то проверьте, можно ли её туда добавить. Для великого множества домашних и SOHO маршрутизаторов существует масса альтернативных прошивок, таких как, например, DD-WRT. Я не отрицаю достоинств прочих альтернативных прошивок, но для примера возьму эту.
У вас «народный» D-Link DIR-xxx, ASUS WL-xxxGx/RT-Nxx, Netgear, TP-Link, TRENDnet, «гиковский» Linksys WRT-xxx, Ubiquiti или что-то вроде того? Вам повезло!
Идём в базу совместимых роутеров на официальном сайте прошивки и вводим название и модель своего маршрутизатора в строку поиска. Если всё хорошо, то на всякий случай обратимся ещё к коллективному разуму для уточнения подробностей о поддержке Вашей модели. Уразумев тонкости вопроса прошиваем роутер по инструкции на сайте. Не забудьте про 30/30/30.
Если всё прошло успешно, то настраиваем постоянное подключение к интернет и переходим к следующему пункту.
2) Путь домой
Следующим шагом необходимо понять как прийти из интернета домой.
По какому адресу обратиться к роутеру?
Необходимое условие — Ваш провайдер предоставляет Вам внешний IP адрес.
Хорошо, если этот адрес статический, тогда просто запомним его на будущее. Если же адрес динамический, то проще всего использовать сервис вроде DynDNS из числа поддерживаемых прошивкой маршрутизатора.
Это проще простого: регистрируетесь на сайте, в меню роутера Setup->DDNS выбираете в выпадающем списке этот сайт, вводите «логин-пароль-хост-остальное по вкусу», нажимаете кнопку «Apply Settings» и забываете об этом. Теперь Вам надо помнить только хост (кстати, даже если IP у вас статический, можете так сделать простой для запоминания адресок, а то вдруг провайдер поменяется или случится переезд).
В итоге мы имеем на руках «адрес своего дома» в интернет в виде IP или доменного имени. Ура!
3) Знакомимся с возможностями SSHd на роутере.
http://www.dd-wrt.com/wiki/index.php/SSH
Весьма гибкий инструмент, не правда ли?
Попробуем же с его помощью пустить весь Ваш трафик от браузера и других программ через домашний роутер. Т.е. поднять ssh-туннель от Вас до домашнего роутера, таким образом, чтобы вход в него на Вашей стороне выглядел как локальный SOCKS-прокси а на выходе роутер весь трафик разруливал в соответствии с назначением, давая нам возможность скрытно безнаказанно и безопасно выйти в свободный интернет (да-да, это очень «толстая» формулировка, несомненно) и заодно пользоваться домашними сетевыми ресурсами, если таковые имеют место быть. Короче — почувствовать себя как дома.
Далее я предполагаю, что Вы будете использовать Windows, т.к. в жизни не встречал пользователя другой ОС, который бы не знал что делать с SSH.
Ну, хорошо, надкусановоды, ещё, но им уже объясняли, и вообще.
Хорошо бы не забыть, что удалённый SSH-доступ в DD-WRT необходимо включить в разделе Administration->Management.
Я люблю задавать для SSH порт 443, т.к. этот порт почти всегда открыт наружу в корпоративных сетях и скромный шифрованый трафик на него обычно не вызывает подозрений. Внутри сети я тоже поставил 443, чтобы не путаться, а заодно отключил вход по паролю и телнет.
Любителям прекрасного советую настроить Port-Knocking и запаролить приватный ключ, если не лень каждый раз стучать по портам и клаве.
6) И чё с этим делать?
Вариантов масса. Можно например использовать такой туннель как локальный прокси для браузера. Как-то так или этак:
Или для доступа по RDP или SSH на другие сервера, или просто IM клиент или Skype в интернет выпустить.
И даже если ваше приложение не понимает SOCKS-прокси, достаточно просто запустить
polipo socksParentProxy=localhost:5150
и будет Вам HTTP прокси на порту 8123. В общем, всё в Ваших руках.
UPD:
Мой ответ из личной переписки по следам топика для тех несчастных, у кого только 80 порт и никаких CONNECT.
daniel.haxx.se/docs/sshproxy.html
www.nocrew.org/software/httptunnel.html
Ну и сразу для новичков-пингвиноводов-убунтолюбов — corkscrew или proxytunnel
А для их более красноглазых друзей бонус от ValdikSS
Кстати, на хабре уже писали что, роутер Вам и торренты качать может и много чего ещё. Да и домашний комьютер можно включить удалённо так или иначе (или, пробросив порт, вот так).
SSH, Telnet и командная строка
From DD-WRT Wiki
Contents
[edit] Telnet
[edit] SSH
[edit] Обзор
SSH, или Secure Shell, является зашифрованным протоколом и связанной программой, предназначенной для замены telnet. Его также можно использовать для создания безопасных туннелей, что-то вроде виртуальных частных сетей VPN, и для использования в качестве сетевой файловой системы (SSHFS). По умолчанию SSH работает на порту 22.
SSH работает так же, как telnet с комбинацией имени пользователя и пароля, или на основе открытого и закрытого ключей. Чтобы последние работали, серверу предоставляется короткий открытый ключ, а сервер отдает клиенту свой открытый ключ. Клиент шифрует информацию, отправляемую на сервер, используя открытый ключ сервера, а сервер шифрует информацию, отправляемую клиенту, используя открытый ключ от клиента. Закрытые ключи никуда не отправляются и используются для расшифровки полученной информации, зашифрованной с помощью соответствующего открытого ключа.
Подключение к DD-WRT может выполняться с использованием имени пользователя и пароля или только от клиентов, чьи открытые ключи были введены вручную через веб-интерфейс. Несколько ключей можно ввести, разместив каждый в отдельной строке. Если вы хотите использовать имя пользователя и пароль для входа в систему с использованием SSH, используйте имя «root» с паролем, который установлен для веб-интерфейса.
На самом деле можно вручную установить (через telnet или SSH) переменную NVRAM sshd_authorized_keys командой:
Также можно вручную отредактировать файл /tmp/root/.ssh/authorized_keys и добавить в него ключи (хотя они исчезнут при перезагрузке, если у вас нет автоматически запускающегося сценария командной строки, изменяющего файл).
[edit] Настройка
[edit] Подключение с использованием открытого ключа
Аутентификация с открытым ключом является одним из самых безопасных методов входа в SSH. Он функционирует подобно HTTPS, поскольку все передачи зашифрованы ключом, который будут иметь только клиент и сервер. Еще один плюс в том, что если вы используете этот метод вместо аутентификации по паролю, никто не сможет взломать маршрутизатор, пытаясь угадать пароль!
Чтобы включить его, сначала нужно сгенерировать пару открытого и закрытого ключей на компьютере. Это можно сделать с помощью утилиты «Puttygen», если вы используете в качестве программы-клиента Putty или WinSCP. Скопируйте открытый ключ из области public key в буфер обмена и сохраните закрытый ключ где-нибудь на компьютере. Нет необходимости сохранять открытый ключ. Если вы его забудете, всегда можно открыть файл закрытого ключа в программе Puttygen, которая покажет открытый ключ, а не генерировать новую пару ключей. Пользователи операционных систем, отличных от Windows, могут использовать утилиту ssh-keygen(1):
Рекомендуется не защищать свою пару ключей паролем, поскольку это облегчит вам задачу, хотя и менее безопасно.
ПРИМЕЧАНИЕ. Формат открытого ключа при вставке должен быть: «ssh-rsa», пробел, ключ, пробел, комментарий. Например (обратите внимание, что в конце не должно быть перевода строки):
Не забудьте ввести ключ как целую строку символов (без пробелов, табуляции и т.п.).
[edit] Подключение с использованием имени пользователя и пароля
Если вы не хотите создавать SSH-ключи, можно использовать вход в систему с использованием имени пользователя и пароля. Однако учтите, что этот метод гораздо менее безопасен (пароли могут быть менее 8 символов)!
После этого вы можете войти в систему, используя имя пользователя «root» с паролем, который установлен для веб-интерфейса.
[edit] Автоматический вход (для сценариев оболочки)
SSH-клиент Dropbear позволяет указывать пароль через переменную окружения. Это полезно, когда нужно чтобы DD-WRT выполнял автоматическое подключение к другому устройству по SSH.
[edit] Советы по безопасности
[edit] SSH-клиент
Обеспечивает безопасную альтернативу стандартному Telnet.
Настройте клиент для использования закрытого ключа, который вы сохранили ранее.
В большинство дистрибутивов Linux по умолчанию включены программы-клиенты для Telnet и SSH.
[edit] Переадресация SSH-порта
[edit] Переадресация локального порта
Пример из реального мира:
Предположим, что вы хотите управлять настройками маршрутизатора из любой точки Интернета. Хотите использовать веб-интерфейс, но не хотите включать управление через удаленный HTTP (небезопасно) или HTTPS (ресурсоемко). Как этого достичь?
Именно здесь нужна переадресация порта SSH. Эта функция позволяет безопасно подключаться к веб-интерфейсу маршрутизатора, даже если интерфейс настроен так, что он доступен только для компьютеров в локальной сети маршрутизатора.
Во-первых, в разделе Administration → Management необходимо включить параметр ‘Remote SSH Management’, если хотите подключиться к маршрутизатору из глобальной сети WAN.
Переадресация локального порта может быть установлена из интерфейса командной строки следующей командой:


Откройте браузер и перейдите по адресу http://localhost:12345, и вы сможете войти в веб-интерфейс маршрутизатора, как если бы находились в локальной сети маршрутизатора. Это соединение безопасно!
Если вы используете PuTTY, процедура аналогична. Переадресация порта SSH настраивается в разделе SSH → Tunnels.
Примечание пользователя Brandonc: при использовании PuTTY из репозитория Ubuntu соединение завершается после входа в веб-интерфейс, выдавая ошибку: «SSH2_MSG_CHANNEL_FAILURE for nonexistent channel 257» (23:44, 2 августа 2012 г.).
Для получения дополнительной информации, связанной с настройкой туннеля, смотрите обсуждение на форуме.
[edit] Переадресация удаленного порта
Это полезно для туннелирования таких вещей, как удаленный рабочий стол (Remote Desktop, RDP) по зашифрованному туннелю SSH через Интернет. Например, вы хотите иметь доступ к вашему рабочему компьютеру из дома:
Домашний компьютер ↔ Маршрутизатор ↔ Интернет ↔ Брандмауэр ↔ Рабочий компьютер
На домашнем компьютере можно использовать RDP-клиент для подключения к порту 5555 на маршрутизаторе, и это создаст SSH-туннель, который подключит домашний компьютер к порту 3389 на рабочем компьютере.
[edit] Требования
[edit] Настройка
Настроить переадресацию удаленного порта относительно просто при использовании утилиты PuTTY для Windows. См. Connections → SSH → Tunnels. Убедитесь, что ваша конфигурация включает параметры, как показано выше. А именно:
[edit] SCP
Технология Secure Copy (SCP, с англ. «Защищенное копирование») позволяет безопасно копировать файлы с компьютера на маршрутизатор и обратно.
Настройте клиент для использования закрытого ключа, сохраненного ранее, или используйте вход по имени пользователя «root» и паролю от веб-интерфейса.
Помните: только разделы /tmp и /jffs доступны для записи!
[edit] Drop Bear
Если на компьютере есть сервер SSH (например, OpenSSH), вы можете получить файлы с компьютера с помощью команды scp. Её можно использовать в автоматически запускаемых сценариях.
[edit] Командная строка DD-WRT
[edit] Основной синтаксис
Командная оболочка Linux (Linux Command Shell, Ash) отличается от командной строки Windows и DOS.
Символ / (а не \) используется для разделения каталогов при указании как локальных, так и сетевых путей.
Для выполнения команды необходимо указать путь к этой команде. Это может быть либо полный путь, либо относительный (relative path).
[edit] Операторы относительного пути
Есть два оператора относительного пути.
[edit] Примеры
1) Если вы находитесь в каталоге /jffs/usr/bin и хотите запустить команду /jffs/usr/bin/noip, используйте:
2) Если вы находитесь в каталоге /jffs/usr/bin и хотите запустить команду /jffs/usr/kismet, используйте:
обратите внимание, что первый ../ приводит нас к /jffs/usr/. Второй ../ приводит к /jffs/. А затем можно добавить оставшуюся часть пути.
4) Хотя во всех других примерах показан минимально необходимый текст команды, с относительными путями также можно сотворить что-нибудь этакое. Чтобы запустить команду noip, как в примере 1, можно использовать:
Здесь мы проходим весь путь до корневого каталога /, затем переходим к /jffs/usr/bin, возвращаемся к /jffs/usr и, наконец, к /jffs/usr/bin.
Ссылки на текущий каталог /./ добавляются время от времени просто для того, чтобы вас запутать. Обратите внимание, что /./ всегда ссылается на текущий каталог.
[edit] Операторы конвеера и перенаправления
Pipe (конвеер) и Redirect (перенаправление) – это каналы взаимодействия между разными командами. Вывод одной команды (stdout) может быть передан на вход другой (stdin), как по конвееру, или перенаправлен в устройство или файл.
берет вывод команды и направляет его в устройство или файл.
Например, если вы не хотите видеть вывод команды, перенаправьте ее на устройство null:
Это особенно полезно для таких команд, как nvram show, которая выводит около 800-1200 строк одновременно. Команда nvram show | more будет отображать результаты по одной странице за раз.
[edit] Фоновые процессы
Можно запускать программы в фоновом режиме (немедленно возвращает вас в командную строку), заканчивая команду символом &. Например:
Убедитесь, что добавили пробел между командой и амперсандом, иначе получите ошибку File not found («Файл не найден»).
[edit] Примечание по командной строке веб-интерфейса
Встроенный интерфейс командной строки веб-интерфейса DD-WRT (страница Diagnostics.asp) допускает максимум около 200 символов в строке.
Например, если вы хотите установить значение текстового параметра NVRAM:
[edit] Основные команды
[edit] Продвинутые команды
Для следующих команд имеются отдельные страницы Wiki:
Router основы. SSH
Данный раздел посвящен настройке роутера из “коробки”.
Когда роутер загружается и не находит файла конфигурации (startup-config), он предлагает пройти процесс первичной настройки. Этот процесс рассматриваться не будет и при настройке нового роутера, мы будем пропускать этот процесс.
Общая информация
Packet Tracer version: 6.2.0
Рабочий файл: скачать
Тип: Теория и практика
Версия файла: 2.0
Уже получили: 93 пользователей
Получить достижение
Код активации можно получить выполнив практическое задание
Уже получили 96 пользователей
Начальные данные
В данной практической работе будет использоваться схема сети, которая представлена на рисунке ниже.

Все “манипуляции” с роутером можно осуществлять только при помощи PC0 (либо с других PC в сети).
В данной практической работе необходимо спланировать две подсети, в одной будет 15 сотрудников, а в другой 513. Адресация не должна выходить за рамки диапазона 10.18.0.0 – 10.18.4.255 (это просто “какой-то” диапазон ip адресов!).
Выполнение
Спланировать адресацию сети, на основе первоначальных данных
Здесь надо вспомнить раздел бесклассовой адресации, где были примеры нахождения номера сети, полагаясь на количество пользователей. Здесь этот процесс рассматриваться не будет.
Для 513 пользователей мы будем использовать подсеть 10.18.0.0/22, с диапазоном доступных адресов 10.18.0.1 – 10.18.3.254.
Для 15 пользователей мы будем использовать подсеть 10.18.4.0/27, с диапазоном доступных адресов 10.18.4.1 – 10.18.4.30.
Интерфейсы у роутера:
Указанные интерфейсы будут являться шлюзами по умолчанию (gateway).
Выполнить базовую настройку роутера
Что бы приступить к настройке R1, надо подключиться к нему консолью с PC0. Первое, что вы увидите:
У роутера из “коробки” (без файла конфигурации startup-config) все порты находятся в состоянии administratively down, т.е. выключены. Настроим порты роутера, указав ip адреса, обозначенные в первом пункте. (
предварительно переименуйте его в R1, это критерий достижения
Теперь распределим ip адреса по компьютерам в сети (в дальнейшем мы научимся использовать DHCP и распределение будет происходить динамически):


Изучить таблицу маршрутизации, arp-таблицу, рассмотреть основные show команды для изучения интерфейсов
В самом начале вывода этой команды, есть дополнение под названием Codes – список используемых символов и их описание. После слов Gateway of last resort is not set (что означает эта фраза, мы узнаем в одном из следующих разделов) идет таблица маршрутизации. Первой строчкой указана классовая сеть 10.0.0.0/8 и сообщается, что она разделена на подсети, которые мы можем видеть под ней. Символ C означает connected (эта информация есть в Codes) или подключенный напрямую (directly connected). Т.е. роутер знает о существовании двух подсетей, подключенных к нему напрямую – 10.18.0.0/22 к интерфейсу FastEthernet0/0 и 10.18.4.0/27 к интерфейсу FastEthernet0/1.
Раз роутер знает маршрут, то может пропускать пакеты между этими сетями. Еще раз убедитесь, что Gateway прописан на всех PC правильно и после этого можно проверять доступность PC4 c компьютера PC2, рисунок 1.3 (на рисунке, Request timed out, говорит о том, что на первый запрос PC2 не дождался ответа – Request timed out, это нормально, если вы повторите команду, потерь больше не будет).

Что полезного мы можем вынести из это таблицы? Во-первых соотношение ip адреса и MAC адреса. Во-вторых интерфейс на котором находится это устройство. В-третьих мы можем узнать когда впервые роутер узнал ARP-запись (Age (min) – возраст в минутах). По умолчанию, каждая ARP-запись находится 4 часа, а после удаляется.
ARP-таблица может пригодиться для поиска устройства в сети по ip адресу. В начале мы ищем соответствующую ip адресу ARP-запись, что бы найти MAC адрес, а после, при помощи таблицы коммутации (таблицы MAC адресов), ищем на каком порту какого коммутатора он находится.
Есть так же команды show ip interface (рассматриваться не будет) и show interfaces (либо show interface для просмотра информации по конкретному интерфейсу).
Здесь можно найти очень много полезной информации. Интерфейс в рабочем состоянии, имеет статус up (так же могут быть состояния down – физически выключен, провод не вставлен или administratively down – выключен программно, например, при помощи команды shutdown ). Так же MAC адрес интерфейса (Hardware address), ip адрес (Internet address), MTU (что такое MTU). Бывает очень полезно узнать когда последний раз принимались (Last input 00:00:08) или передавались (output 00:00:05) данные с этого интерфейса, а так же статистику скорости передачи, приема за пять минут (5 minute input/output rate 0 bits/sec, 0 packets/sec). Очень полезная информация об ошибках на интерфейсе. В строчке Input queue: 0/75/0 предпоследнее число отвечает за кол-пакетов, которые могут содержаться в буфере, а последнее число показывает сколько пакетов было отброшено при переполнении буфера. Строчка input errors показывает сколько всего было замечено пакетов с ошибками. Более подробную информацию вы можете найти тут.
Настройка ssh, telnet с использованием логина/пароля
Готово. Теперь у нас есть первый пользователь с максимальными правами. Прежде чем переходить к настройке ssh, настроим telnet авторизацию по логин/паролю (до этого была авторизация только по паролю).
Команда login local означает, что авторизовать (пользователя) надо из локальной базы пользователей. Раньше мы указывали команду privilege level 15 с помощью которой все пользователи подключенные по telnet получали максимальные права, но теперь мы научились выставлять права отдельные для каждого пользователя. Давайте подключимся к R1 c PC0, рисунок 1.4.

Теперь мы можем приступить к настройке Secure Shell (ssh).
Установили доменное имя ciscolearning.ru. После запуска процесса генерации, роутер предлагает выбрать размер ключа (чем больше ключ, тем безопасней, но тем больше тратиться процессорное время на шифрование/дешифрование), по умолчанию 512 бит, в нашем примере мы сгенерировали ключ на 1024 бита.

Ниже представлен “копипаст”, для быстрой настройки ssh.
Настройте SSH на своем маршрутизаторе для безопасного веб-доступа из любого места
Подключение к Интернету из точек доступа Wi-Fi, на работе или в любом другом месте вне дома подвергает ваши данные ненужному риску. Вы можете легко настроить маршрутизатор для поддержки безопасного туннеля и защиты трафика удаленного браузера — читайте дальше, чтобы узнать, как это сделать.
Что такое и зачем настраивать безопасный туннель?
Вам может быть любопытно, почему вы даже захотите установить безопасный туннель между вашими устройствами и домашним маршрутизатором, и какие преимущества вы получите от такого проекта. Давайте рассмотрим несколько различных сценариев, в которых вы используете Интернет, чтобы проиллюстрировать преимущества безопасного туннелирования.
Сценарий первый: вы находитесь в кафе, используя свой ноутбук, чтобы просматривать Интернет через их бесплатное соединение Wi-Fi. Данные покидают модем Wi-Fi, передаются по воздуху в незашифрованном виде на узел Wi-Fi в кафе, а затем передаются в большой интернет. Во время передачи с вашего компьютера в большой интернет ваши данные широко открыты. Любой, у кого есть Wi-Fi-устройство, может прослушать ваши данные. Это так больно легко, что мотивированный 12-летний подросток с ноутбуком и копией Firesheep может получить ваши учетные данные на все случаи жизни. Вы словно находитесь в комнате, где говорят только на английском и разговаривают по-китайски по-китайски. В тот момент, когда кто-то говорит на китайском (мандаринском) языке, входит (сниффер Wi-Fi), ваша псевдо-конфиденциальность разрушается.
Сценарий второй: вы находитесь в кафе, используя свой ноутбук, чтобы снова просматривать Интернет через их бесплатное соединение Wi-Fi. На этот раз вы установили зашифрованный туннель между вашим ноутбуком и домашним маршрутизатором, используя SSH. Ваш трафик направляется через этот туннель напрямую с вашего ноутбука на домашний маршрутизатор, который работает в качестве прокси-сервера. Этот конвейер недоступен для анализаторов Wi-Fi, которые не видят ничего, кроме искаженного потока зашифрованных данных. Независимо от того, насколько быстрым является создание, насколько небезопасно соединение Wi-Fi, ваши данные остаются в зашифрованном туннеле и покидают его только после того, как они достигли вашего домашнего интернет-соединения и вышли в большой интернет.
В первом сценарии вы занимаетесь серфингом широко; во втором сценарии вы можете войти в свой банк или на другие частные веб-сайты с той же уверенностью, что и со своего домашнего компьютера.
Хотя в нашем примере мы использовали Wi-Fi, вы можете использовать SSH-туннель для защиты жесткого соединения, например, запустить браузер в удаленной сети и пробить дыру в брандмауэре, чтобы работать в Интернете так же свободно, как при домашнем соединении.
Звучит хорошо, не так ли? Его невероятно легко настроить, поэтому нет времени, подобного настоящему, — вы можете настроить SSH-туннель в течение часа.
Что вам нужно
Существует много способов настроить SSH-туннель для обеспечения безопасности при просмотре веб-страниц. В этом уроке мы сконцентрируемся на настройке туннеля SSH самым простым способом с наименьшим количеством суеты для пользователя с домашним маршрутизатором и компьютерами на базе Windows. Чтобы следовать нашему уроку, вам понадобятся следующие вещи:
Генерация ключей для нашего зашифрованного туннеля
Хотя может показаться странным переходить к созданию ключей еще до того, как мы настроим SSH-сервер, если у нас есть готовые ключи, мы сможем настроить сервер за один проход.
Если вы планируете использовать несколько устройств с вашим SSH-сервером (например, ноутбук, нетбук и смартфон), вам необходимо сгенерировать пары ключей для каждого устройства. Создайте пароль и сохраните дополнительные пары ключей, которые вам нужны сейчас. Обязательно скопируйте и вставьте каждый новый открытый ключ во временный документ.
Настройка вашего роутера для SSH
И Tomato, и DD-WRT имеют встроенные SSH-серверы. Это потрясающе по двум причинам. Во-первых, когда вы вручную устанавливали SSH-сервер и настраивали его, вам было очень трудно подключиться к вашему маршрутизатору через telnet. Во-вторых, поскольку вы используете свой SSH-сервер на своем маршрутизаторе (который, вероятно, потребляет меньше энергии, чем лампочка), вам никогда не придется оставлять основной компьютер включенным только для облегченного SSH-сервера.
Настройка удаленного компьютера для доступа к вашему SSH-серверу
Здесь происходит волшебство. У вас есть пара ключей, у вас есть запущенный и работающий сервер, но ничего из этого не имеет значения, если вы не можете удаленно подключиться с поля и туннеля к маршрутизатору. Время разрушить нашу надежную сетевую книгу под управлением Windows 7 и приступить к работе.
Настройка вашего браузера для подключения к PuTTY
У нас есть один крошечный твик, чтобы применить, прежде чем мы все готово. Firefox по умолчанию не направляет DNS-запросы через прокси-сервер. Это означает, что ваш трафик всегда будет зашифрован, но кто-то, отслеживающий соединение, увидит все ваши запросы. Они бы знали, что вы были на Facebook.com или Gmail.com, но больше ничего не увидели бы. Если вы хотите направить свои DNS-запросы через SOCKS, вам нужно включить его.
Посмотрим, все ли работает так, как было запланировано? Чтобы проверить это, мы открыли два браузера: Chrome (слева) без туннеля и Firefox (справа), недавно настроенный для использования туннеля.
Слева мы видим IP-адрес узла Wi-Fi, к которому мы подключаемся, а справа, благодаря нашему SSH-туннелю, мы видим IP-адрес нашего удаленного маршрутизатора. Весь трафик Firefox направляется через сервер SSH. Успех!
Есть совет или хитрость для обеспечения безопасности удаленного трафика? Использовать SOCKS сервер / SSH с конкретным приложением и любить его? Нужна помощь в выяснении, как зашифровать ваш трафик? Давайте послушаем об этом в комментариях.
Этот пост появился здесь по нескольким причинам: 















