Хостинг с SSH - почему это полезно? Аутентификация на основе открытых ключей и изменение порта. Порт SSH: что это и зачем нужно

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

Порт SSH: что это и зачем нужно?

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

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

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

Стандартный порт SSH

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


Так, например, если в качестве клиента применяется Jabber, для корректного соединения, шифрования и передачи данных должен использоваться порт 443, хотя в стандартном варианте устанавливается порт 22.


Чтобы перенастроить маршрутизатор с выделением для определенной программы или процесса необходимых условий, придется выполнить SSH. есть назначение определенного доступа для отдельно взятой программы, которая использует подключение к Интернету, вне зависимости от того, какие настройки имеет текущий протокол обмена данными (IPv4 или IPv6).

Техническое обоснование

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


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

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

История реализации

Сама технология появилась достаточно давно. Оставим пока в стороне вопрос того, как сделать проброс портов SSH, а остановимся на том, как все это работает.

Обычно все сводится к тому, чтобы использовать прокси на основе Socks или применить туннелирование VPN. В случае если какое-то программное приложение умеет работать с VPN, лучше предпочесть именно этот вариант. Дело в том, что практически все известные на сегодня программы, использующие интернет-траффик, с VPN работать могут, а настройка маршрутизации особого труда не составляет. Это, как и в случае с прокси-серверами, позволяет оставить внешний адрес терминала, с которого в данный момент производится выход в сеть, неузнанным. То есть в случае с прокси адрес меняется постоянно, а в варианте VPN остается неизменным с фиксацией определённого региона, отличного от того, где действует запрет доступа.

Сама же технология, когда открывается порт SSH, была разработана еще в 1995 году в Технологическом университете Финляндии (SSH-1). В 1996 году было добавлено усовершенствование в виде протокола SSH-2, который получил достаточно большое распространение на постсоветском пространстве, хотя для этого, равно как и в некоторых странах Западной Европы, иногда необходимо получение разрешения на использование такого туннеля, причем от государственных органов.

Основным преимуществом открытия SSH-порта, в отличие от telnet или rlogin, считается применение цифровой подписи RSA или DSA (использование пары в виде открытого и зарытого ключа). Кроме того, в данной ситуации может использовать так называемый сеансовый ключ на основе алгоритма Диффи-Хеллмана, который подразумевает применение симметричного шифрования на выходе, хотя и не исключает использование алгоритмов асимметричного шифрования в процессе передачи данных и их приема другой машиной.

Серверы и оболочки

В Windows или в Linux SSH-порт открыть не так уж и трудно. Вопрос только в том, какой именно инструментарий для этого будет использоваться.

В этом смысле нужно обратить внимание на вопрос передачи информации и аутентификации. Во-первых, сам протокол оказывается достаточно защищенным от так называемого снифинга, представляющего собой самую обычную «прослушку» траффика. SSH-1 оказался беззащитным перед атаками. Вмешательство в процесс передачи данных в виде схемы «человек посередине» имело свои результаты. Информацию можно было просто перехватить и расшифровать совершенно элементарно. Зато вторая версия (SSH-2) была застрахована от подобного рода вмешательства, называемого session hijacking, благодаря чему и получила наибольшее распространение.

Запреты системы безопасности

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

  • определение ключа к хосту на стадии передачи, когда используется «слепок» fingerprint;
  • поддержка Windows и UNIX-подобных систем;
  • подмена адресов IP и DNS (spoofing);
  • перехват открытых паролей при физическом доступе к каналу передачи данных.

Собственно, вся организация такой системы построена по принципу «клиент-сервер», то есть в первую очередь пользовательская машина посредством специальной программы или надстройки обращается к серверу, который и производит соответствующее перенаправление.

Туннелирование

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

Как правило, в Windows-системах это встроенный в программную оболочку драйвер Microsoft Teredo, представляющий собой некое виртуальное средство эмулирования протокола IPv6 в сетях с поддержкой только IPv4. по умолчанию находится в активном состоянии. В случае появления сбоев, с ним связанных, можно просто произвести перезапуск системы или выполнить команды отключения и рестарта в командной консоли. Для деактивации используются такие строки:

  • netsh;
  • interface teredo set state disabled;
  • interface isatap set state disabled.

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

SSH-сервер

Теперь посмотрим, какой порт SSH используется в качестве основного, отталкиваясь от схемы «клиент-сервер». Обычно по умолчанию применяется 22-й порт, но, как уже было указано выше, может использовать и 443-й. Вопрос только в предпочтении самого сервера.

Самыми распространенными SSH-серверами принято считать следующие:

  • для Windows: Tectia SSH Server, OpenSSH с Cygwin, MobaSSH, KpyM Telnet/SSH Server, WinSSHD, copssh, freeSSHd;
  • для FreeBSD: OpenSSH;
  • для Linux: Tectia SSH Server, ssh, openssh-server, lsh-server, dropbear.

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

SSH-клиент

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

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

  • Windows - SecureCRT, PuTTY\KiTTY, Axessh, ShellGuard, SSHWindows, ZOC, XShell, ProSSHD и т. д.;
  • Mac OS X: iTerm2, vSSH, NiftyTelnet SSH;
  • Linux и BSD: lsh-client, kdessh, openssh-client, Vinagre, putty.

Аутентификация на основе открытых ключей и изменение порта

Теперь несколько слов о том, как происходит верификация и настройка сервера. В самом простом случае необходимо использовать файл конфигурации (sshd_config). Однако можно обойтись и без этого, например, в случае использования программ вроде PuTTY. Изменить порт SSH со стандартного значения (22) на любое другое можно совершенно элементарно.


Главное - чтобы номер открываемого порта не превышал значение 65535 (выше портов просто не бывает в природе). К тому же следует обратить внимание на некоторые открытые по умолчанию порты, которые могут использоваться клиентами вроде MySQL или базами данных FTPD. Если указать для SSH их конфигурацию, понятное дело, те просто перестанут работать.

Стоит учесть, что тот же клиент Jabber должен быть запущен в одной среде с использованием SSH-сервера, например, на виртуальной машине. А самому серверу localhost необходимо будет присвоение значения 4430 (а не 443, как было указано выше). Такая конфигурация может использоваться в том случае, когда доступ к основному файлу jabber.example.com блокируется файрволом.


С другой стороны, перебросить порты можно и на самом маршрутизаторе, используя для этого настройки его интерфейса с созданием правил исключения. На большинстве моделей вход осуществляется через ввод адресов, начинающихся с 192.168 с добавлением 0.1 или 1.1, но на роутерах, совмещающих возможности ADSL-модемов вроде Mikrotik, конечный адрес предполагает использование 88.1.

В этом случае создается новое правило, после этого устанавливаются необходимые параметры, например, для установки внешнего подключения dst-nat, а также вручную прописываются порты не в разделе общих настроек, и в разделе предпочтений активных действий (Action). Ничего особо сложного здесь нет. Главное - указать необходимые значения настроек и установить правильный порт. По умолчанию можно использовать порт 22, но, если используется специализированный клиент (какой-то из вышеуказанных для разных систем), значение можно менять произвольно, но только так, чтобы этот параметр не превышал заявленное значение, выше которого номера портов просто отсутствуют.

При настройке подключения также стоит обратить внимание на параметры клиентской программы. Очень может быть, что в ее настройках придется указать минимальную длину ключа (512), хотя по умолчанию обычно установлено 768. Также желательно установить таймаут входа в систему на уровне 600 секунд и разрешение на удаленный доступ с использованием прав root. После применения таких настроек необходимо дать еще и разрешение на использование всех прав аутентификации, кроме тех, которые основаны на использовании.rhost (но это нужно лишь системным администраторам).

Кроме всего прочего, если имя пользователя, зарегистрированного в системе, не совпадает с вводимым в данный момент, нужно будет указать его явно, используя для этого команду user ssh master с вводом дополнительных параметров (для тех, кто понимает, о чем идет речь).


Для преобразования ключа и самого метода шифрования может применяться команда ~/.ssh/id_dsa (или rsa). Для создания публичного ключа используется преобразование при помощи строки ~/.ssh/identity.pub (но это не обязательно). Но, как показывает практика, проще всего использовать команды вроде ssh-keygen. Тут суть вопроса сводится только к тому, чтобы добавить ключ к доступным инструментам авторизации (~/.ssh/authorized_keys).

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

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

Через FTP клиент это тоже не посмотреть, а мне это очень необходимо, так как место на хостинге быстро закончилось и мне нужно удалить весь мусор, чтобы не покупать дополнительные мегабайты и не платить лишнее. А ещё недавно мои сайты заразили и я и без ssh доступа это было бы невозможно.

Знал бы, что мой хостинг не поддерживает такой простой функции, сто раз подумал, перейти на него или нет. Но хостинг отзывы имел хорошие и я купил на нём место сразу на два года. Но так как у него есть ssh, то вопрос думаю решаемый. Итак, хостинг в SSH, как его можно использовать?

Что такое хостинг с ssh доступом?

Но сначала скажу о том, что такое SSH, так как возможно не все знают, что это за зверь. А если коротко, то согласно Википедии это:

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

С ssh можно работать прямо через терминал при помощи команд Linux. Подключиться к серверу очень легко, нужно набрать команду в таком формате:

Ssh имя_пользователя@адрес_сервера

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

Ну а пока я вам расскажу, как удобно можно подключиться по ssh через файловый менеджер Nautilus. Подключившись к нему по SSH вы будете работать с файлами, которые лежат на хостинге, как будто они лежат на вашем компьютере. Открываем Nautilus и нажимаем Ctrl + L, чтобы в адресной строке можно было написать путь к серверу ssh:

Sftp://[email protected]

Потом вас попросят ввести пароль и вы увидите в файловом менеджере все свои файлы. Вот такие преимущества есть у хостинга с ssh.


СОВЕТ ВЕБМАСТЕРУ: Умение зарабатывать в интернете - это только пол дела, вторая половина - это умение ВЫГОДНО обналичивать электронные деньги. Вот список офшорных банковских карт, на которые можно выводить средства и потом снимать с них хрустящие купюры:

1. Epayments - можно открыть счет в долларах, евро и рублях. Формально банка нет, юридический адрес в Лондоне, но можно получить реквизиты банка в Латвии.

2. AdvCash - Офшорный банк находится в Белизе, можно открыть счет в долларах, евро, фунтах и рублях.

3. OkPay - Офшорная компания зарегистрирована на Британских Виргинских островах, можно открыть счет в долларах, евро и рублях.

4. Payeer - Штаб квартира этой платежной системы находится в Грузии, тут так же можно открыть счет в долларах, евро и рублях.

5. Capitalist - Можно создать счета в долларах, евро и рублях. Низкие тарифы на вывод. Компания зарегистрирована в юрисдикции Британских Виргинских Островов.

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

(перевод) :

В компьютерных сетях ssh или " Secure Shell" является сетевым протоколом с позволяющим устанавливать связь между локальным и удаленным (remote) компьютерами. При этом применяется криптография с публичным ключом (public key), для аутентификации удаленного компьютера или, опционально, для позволения аутентифицировать пользователя с удаленного компьютера. ssh гарантирует конфиденциальность и целостность передачи данных между обоими компьютерами, используя кодирование и MACs (message authentication codes). Типичнная сфера применения ssh - вход в систему на удаленном (remote) компьютере и выполнение команд на нем, также поддерживается туннелирование и форвардинг любых портов TCP и X11. Файлы могут передаваться по включенным в ssh протоколам sftp или scp. В базовой установке сервер ssh использует порт TCP 22.

Немецкоязычную первичную информацию о ssh можно найти на страницах немецкоязычной Wikipedia .

Безопастность протокола ssh

Как правило, регистрация root через ssh должна быть запрещена. Вообще стоит избегать входа в систему как root, что позволит получить дополнительные гарантии безопасности. Так же, с целью ограничить возможность проведения атак типа brute force (перебор паролей по словарю, требующий значительного времени), стоит ограничить пользователей как в количестве попыток для входа в систему, так в продолжительности открытия окна регистрации (до 10 минут)

Вышеуказанные меры возможно реализовать путем редактирования файла конфигурации (в любом, предпочитаемом Вами редакторе):

/etc/ssh/sshd_config

Ищем и изменяем рискованные установки.

Следующие установки должны быть изменены:

Порт <желаемый порт>: эта запись должна указывать на порт в маршрутизаторe, который свободно соединен к линии. Если Вы не знаете, что это такое, стоит еще раз обдумать применение ssh для Remote управления. Debian устанавливает порт 22 как стандарт. Однако целесообразно, использовать порт вне зоны стандартного сканирования, поэтому мы используем, например, порт 5874:

Port 5874

ListenAddress : Так как порт передается дальше роутеру, компьютер должен использовать статический IP адрес, если только не используется никакой локальный DNS сервер. Мы используем статический IP для примера:

ListenAddress 192.168.2.134

Хотя версия 2 протокола ssh установлена в Debian по умолчанию, но, конечно, стоит удостовериться в этом еще раз.

LoginGraceTime <временной промежуток процесса регистрации>: позволенный для регистрации промежуток времени составляет как стандарт абсурдные 600 секунд. Так как 10 минут явно избыточны, чтобы ввести имя пользователя и пароль, мы установим несколько более благоразумный промежуток времени:

LoginGraceTime 45

Теперь имеется 45 секунд для входа, и хакер не имеет 10 минут на каждую попытку взломать пароль.

PermitRootLogin : почему здесь Debian выдал разрешение на вход в систему как root, не объяснимо. Мы исправляем на "no":

PermitRootLogin no StrictModes yes

MaxAuthTries <количество позволенных попыток регистрации>: Вы не должны устанавливать больше чем 3 или 4:

MaxAuthTries 2

Следующие установки должны быть добавлены, так как они отсутствуют по умолчанию:

AllowUsers: имена пользователей, которым позволен доступ через ssh, разделенные символом пробела

AllowUsers : только зарегистрированные пользователи могут использовать доступ, и только с пользовательскими правами. С adduser можно добавить пользователя специально для использования ssh:

AllowUsers werauchimmer

PermitEmptyPasswords : дает Вашему пользователю прекрасный длинный пароль, который за миллионы лет нельзя было бы подобрать. Пользователь с доступом ssh должен быть единственным. Если он уже зарегистрирован, то может с su стать root:

PermitEmptyPasswords no

PasswordAuthentication : конечно, должено иметь значение "yes". В случае, когда не используют KeyLogin.

PasswordAuthentication yes [если никаких keys не используют]

В конце концов:

/etc/init.d/ssh restart

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

Программы X-Windows используемые через SSH

Сама программа исполняется на удаленном компьютере, графическая пользовательская оболочка (GUI) отображается на локальном компьютере.

Ввод данных:
* sidux
* IP локального компьютера: 192.168.1.10/24 (только выдача изображения X11 программы)
* IP локального компьютера: 192.168.1.2/24 (здесь выполняется X11 программa)

Конфигурация:

На удаленном компьютере дополняем файл /etc/hosts.allow следующими строками:

Ssh sshd: 192.168.1.0/24: ALLOW # e.g. позволяет (allow) всем адресам по локальной сети # (local area network, локальная сеть) доступ через ssh server

Откройте консоль и используйте следующую команду. (Это создаёт ssh соединение с X-Forwarding) :

Ssh -X 192.168.1.2 (вводят собственный пароль ssh, если запрашивается, или пароль к ключу ssh, если на Remote компьютер послан собственный публичный ключ и там добавились файлы authorized_keys для указанного пользователя)

Вызов программы X в терминале:, например "iceweasel":

Ssh -X 192.168.1.2 (вводят (по запросу) собственный пароль ssh или пароль к ключу ssh, если на Remote компьютер послан собственный публичный ключ и там добавились файлы authorized_keys для указанного пользователя) iceweasel oder oocalc oder oowriter oder kspread

Remote доступ с персонального компьютера в Windows при использовании ssh и X-Forwarding:

* Загружают и прожигают Cygwin XLiveCD
* Вставляют CD в дисковод и ждут автоматический старт (autorun)
* Далее (continue) нажимают до тех пор пока не откроется окно терминала.
* Вводят следующую команду:

Ssh -X [email protected]

Помните: xxx.xxx.xxx.xxx является IP Linux Remote компьютера или его URL (например dyndns.org аккаунта), и пользовательское имя является, конечно, пользовательским именем существующего пользовательского аккаунта на Remote компьютере. После успешного начала сеанса можно, например, запустить "kmail" для получения электронных сообщений.

Важно: hosts.allow должен содержать запись, которая также позволяет доступ компьютерам из других сетей. Если используется маршрутизатор или NAT-брандмауэр, то порт 22 должен быть переданным дальше (portforwarding) на Linux-PC.

SSH в konqueror

Konqueror включает поддержку ssh в виде протоколов using sftp:// and uses the ssh protocol.

1) Open a new Konqueror window

2) Enter into the address bar: sftp://[email protected]

При­мер 1: Во всплывающем окне будет запрошен пароль ssh, введите пароль и нажмите ОК:

Sftp://[email protected]

Пример 2: непосредственное соединение, без запроса пароля

Sftp://username:[email protected]

Применение в локальной сети

Sftp://[email protected] or 198.x.x.x.x (Примечание: введите пароль во всплывающем окне и нажимайте ОК)

SSH соединение таким образом оказывается установленным. В соответствующем окне Konqueror можно работать с файлами на сервере ssh также, как с локальными.

NOTE: If you have set the ssh port to to use another port, other than the default of 22, you need to specify the port that sftp/fish is to use:

Sftp://user@ip:port

"user@ip:port" is standard sytax for many programs like sftp, smb, fish

Использование SSHFS

SSHFS - это простой, быстрый и надежный метод использующий FUSE, для подсоединения удаленной файловой системы. Со стороны сервера необходим только работающий ssh-daemon.

Со стороны клиента сперва инсталлируется sshfs:

Apt-get update && apt-get install sshfs

Подсоединение удаленной файловой системы очень просто:

Sshfs username@remote_hostname:directory local_mount_point

Причем username подразумевает имя пользователя на удаленном Host.

Если не указывается никакой определенный каталог, будет открыт каталог Home удаленного пользователя. Пожалуйста, обратите внимание: двоеточие : является непременно нужным, даже если никакой каталог не указывается!

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

Отсоединение:

Fusermount -u local_mount_point

Sshfs#username@remote_hostname:directory local_mount_point fuse user,noauto 0 0

Это делает возможным каждому пользователю группы fuse подсоединить файловую система известной командой:

Mount /путь/к/mount/точка

Отсоединение можно произвести следующей командой:

Umount /путь/кmount/точка

А этой командой проверяется, - членство в группе fuse:

Cat /etc/group | grep fuse

Ответ должен был выглядеть, например, таким образом:

Fuse:x:117: <имя пользователя>

Если имя пользователей (username) не указано, используют,. как root, команду adduser:

Adduser <имя пользователя> fuse

Внимание: "id" будет только после повторного регистрирования в группе "fuse".

Теперь имя пользователя должно быть указано, и следующие команды становятся выполнимы:

Mount local_mount_point

Umount local_mount_point

TCPKeepAlive

Для поддержки ssh подключения используем опции:

  • ClientAliveInterval - время простоя в секундах, после которого служебный запрос. Поддерживается только протокол 2. По-умолчанию установлен в 0, т.е. не использовать служебные запросы
  • ClientAliveCountMax - количество проверок доступности клиента, которые могут оставаться без ответа. Если предел достигнут, sshd завершит сеанс:
ssh -o TCPKeepAlive=yes -o ServerAliveInterval=30 -o ServerAliveCountMax=10 $HOST

Обратный ssh туннель

Ssh server_user@server_ip -R port:host:hostport

или с поддержкой туннеля:

Ssh -o TCPKeepAlive=yes -o ServerAliveInterval=15 -o ServerAliveCountMax=10 server_user@server_ip -R port:host:hostport

например

Ssh [email protected] -R 192.168.0.1:8888:localhost:9999

Расшарит на удаленном сервере на ip 192.168.0.1 и порту 8888 локальный порт 9999 (машины с которой инициируем ssh подключение)

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

/etc/ssh/sshd_config

необходимо добавить строку

GatewayPorts yes

и перезапустить sshd

Sudo service ssh restart

Привилегированные порты (1-1024) могут быть использованы только для пользователя root.

Проверка работы туннеля

Скрипт для проверки туннеля:

#!/bin/bash NC="/bin/nc" #NC="netcat" HOST="192.168.0.1 " # host Из предыдущего примера PORT="8888 " # port Из предыдущего примера DT=`/bin/date` if (! $NC -w10 -z $HOST $PORT) ; then # проверяем текущий порт и если он закрыт, echo "tunnel (port) НЕ доступен $DT" >> /var/log/ssh_tunnel.log # ssh [email protected] - тоже из предыдущего примера /bin/ps waux | /bin/grep -v grep | /bin/grep "ssh [email protected] " \ | /usr/bin/awk "{system ("kill -9 "$2" && echo Процесс убит")}" >> /var/log/ssh_tunnel.log echo "" >> /var/log/ssh_tunnel.log fi

Запуск скрипта добавляем в cron

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

Secure Shell - так расшифровывается аббревиатура SSH. Благодаря использованию этой технологии достигается надежная авторизация и безопасная передача информации по открытым каналам связи. SSH успешно заменяет такие протоколы, как telnet, rlogin, rcp и rsh. Т.к. применение перечисленных технологий связано с некоторыми проблемами безопасности:

  1. Передача данных по сети осуществляется в открытом виде, поэтому любой пользователь компьютера, подключенного к этой сети, может перехватить эти данные. Проблема безопасности усугубляется еще и тем, что пароли также передаются в открытом (незашифрованном) виде.
  2. Также авторизация с использованием IP-адресов (rlogin) и паролей (telnet и FTP) весьма уязвима с точки зрения безопасности. SSH отлично справляется с перечисленными выше задачами. Даже учитывая то, что вход в другой компьютер осуществляется с помощью введения пароля. Этот пароль не может быть перехвачен, так как его передача осуществляется в зашифрованном виде.

Принцип работы SSH

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

Допустим Штирлицу необходимо передать в Центр важные данные, но старый шифр уже известен врагам. Что же предпринять в этой ситуации? Самым оптимальным вариантом может быть организация встречи для передачи Штирлицу нового шифра (то есть создать новый код). Однако если встреча невозможна, то остается только открытый канал связи, который могут прослушивать враги. Но и эту ситуацию можно решить.

В середине 1970-х годов учеными-математиками был разработан алгоритм RSA. Используя его, можно применять в криптографии «публичные ключи». Суть этого алгоритма состоит в том, что существует два криптоключа: один используется для зашифровки, а второй применяется для расшифровки. «Публичным ключом» называется код для зашифровки, так как он не является секретным и его можно свободно передавать. В отличии от ключей для зашифровки, ключи для расшифровки являются секретными, (ещё их называю приватными) и это значит, что расшифровать сообщение сможет только владелец этого ключа.

Действие алгоритма RSA основано на невозможности получения из публичного ключа приватного ключа, который необходим для расшифровки. Поэтому, если бы действие знаменитой киноленты «Семнадцать мгновений весны» происходило сейчас, Центру было бы достаточно отправить Штирлицу новый публичный ключ, а Мюллеру не удалось бы расшифровать их сообщения, сколько бы он не пытался.

Какой лучше выбрать SSH клиент?

Чтобы использовать Secure Shell-доступ достаточно скачать, а затем установить любой SSH-клиент. Специалисты советуют отдать предпочтение популярному и бесплатному клиенту Filezilla . Также существует WinSCP2 , так как это одна из наиболее эффективных программ, которая может работать по протоколу SSH2. Программа визуально похожа на достаточно известный FTP-клиент - CuteFTP , она имеет хороший графический интерфейс, а также предоставляет возможность сравнения контента каталогов. Третей в этом списке идет программа PuTTY (как настроить PuTTY), которая тоже имеет своих поклонников, на нашим экспертам понравилась меньше всего.

Для того чтобы осуществить настройку SSH-клиента, достаточно указать ваше доменное имя (или User ID), IP адрес, пароль и выбрать SHH-протокол. Другие настройки вы можете оставить по умолчанию. После того, как соединение будет установлено, сервер отправит запрос на введение пароля и имени пользователя. вам следует ввести данные, аналогичные тем, что вы используете для получения FTP-доступа (их обычно присылает хостинг-провайдер в первом письме, после создания аккаунта).

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

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

Первая версия протокола SSH была разработана аж в 1995 году. С тех пор были обнаружены некоторые слабые места и программа претерпела ряд существенных изменений. Таким образом, уже через год, в 1996 году, в свет вышла вторая версия SSH – 2. Она не совместима с первой версией и, говоря о SSH сегодня, всегда подразумевается SSH – 2. С тех пор SSH не изменила значительно стандарты своей работы и широко используется по сей день.

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

Возможности SSH

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

Необходимое ПО для работы с SSH

Для работы с SSH необходим SSH-сервер и SSH-клиент .

SSH-сервер принимает соединение от клиентских машин и производит аутентификацию. Аутентификация на SSH производится тремя способами:

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

Основными программными платформами, выступающими в роли SSH-сервера являются:

  • BSD: OpenSSH
  • Linux: dropbear, lsh-server, openssh-server, ssh
  • Windows: freeSSHd, copssh, WinSSHD, KpyM Telnet/SSH Server, MobaSSH, OpenSSH

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

  • Работа с файлами и директориями
  • Работа по просмотру или редактированию файлов
  • Отслеживание процессов работы
  • Работа с архивами
  • Работа с базами данных MySQL

SSH-клиенты и их программные оболочки:

  • GNU/Linux, BSD: kdessh, lsh-client, openssh-client, putty, ssh, Vinagre
  • MS Windows и Windows NT: PuTTY, SecureCRT, ShellGuard, Axessh, ZOC, SSHWindows, ProSSHD, XShell
  • MS Windows Mobile: PocketPuTTy, mToken, sshCE, PocketTTY, OpenSSH, PocketConsole
  • Mac OS: NiftyTelnet SSH
  • Java: MindTerm, AppGate Security Server
  • iPhone: i-SSH, ssh (в комплекте с Terminal)
  • Android: connectBot

Не смотря на то, что SSH-клиентов очень много, самыми популярными и часто используемыми являются PuTTY и SecureCRT. PuTTY является наиболее предпочтительным, потому что предоставляется на бесплатной основе.

Кому интересно, я для связи с сервером пользуюсь бесплатной программой WinSCP (свободный графический клиент протоколов SFTP и SCP) - PuTTY агент, которым очень удобно работать по протоколу SSH. Подчеркну, если вы не хотите, чтобы ваши сайты подхватили вирус или еще какую-нибудь заразу, лучше сразу начните использовать WinSCP вместо обычных FTP клиентов (FileZilla), так вы сможете быть уверены, что у вас не уведут пароли.

Безопасное использование SSH

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

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

  • Запретить возможность удалённого root-доступа.
  • Запретить подключение с пустым паролем или отключение входа по паролю.
  • Необходимо выбирать нестандартный порт для SSH-сервера.
  • Использовать длинные SSH2 RSA-ключи.
  • Необходимо строго ограничить количество IP-адресов, с которых разрешён доступ.
  • Запретить доступа с опасных адресов.
  • Регулярно отслеживать сообщения об ошибках аутентификации.
  • Установить системы обнаружения вторжений (IDS - Intrusion Detection System).
  • Использовать специальные ловушки, подделывающих SSH-сервис (honeypots).

Хостинг SSH

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

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

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

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

Американский хостинг, который поддерживает SSH.

Статьи по теме: