Работа в Интернете тесно связана с разнообразными протоколами. Это такие элементы, которые имеют огромное значение, но фактически они незаметны для пользователя и даже для IT-специалиста. С помощью протоколов удается обеспечивать безопасность в сети, а также выполнять различные операции. Сейчас Интернет работает по двум распространенным моделям – TCP/IP и OSI. Они похожи между собой, но имеют некоторые различия.
В протоколах TCP/IP поддерживается SSH по 22 порту. Именно с этим компонентом предстоит познакомиться получше. Предстоит разобраться, что это за протокол такой, для чего и когда он используется, какими особенностями обладает. А еще нужно посмотреть настройку SSH в разных операционных системах. В качестве примеров будут взяты две наиболее популярные ОС – Windows и Linux.
Предложенные сведения рассчитаны на широкий круг читателей. Они помогут каждому, кто заинтересован в изучении принципов работы Интернета и его безопасности.
Что это такое
SSH (или Secure Shell) – безопасная оболочка. Так называется один из сетевых протоколов прикладного уровня. Он дает возможность удаленно управлять операционными системами и обеспечивать туннелирование TCP-соединений. По своим функциональным возможностям SSH схож с rlogin и Telnet. Отличает его от этих протоколов особенность шифрования – шифруется весь трафик, включая передаваемые пароли.
SSH используется для обеспечения безопасного информационного обмена между несколькими устройствами. При передаче данных информация по SSH будет шифроваться, поэтому рассматриваемый протокол идеально подходит для незащищенных сетей. Он гарантирует высокий уровень защиты. В качестве частных примеров его использования можно привести передачу документов на устройство и работу с удаленным оборудованием.
Преимущества и недостатки SSH
Теперь понятно, какой протокол использует SSH для обеспечения безопасности информационного обмена – TCP. Данная «технология» имеет как преимущества, так и недостатки.
К сильным сторонам Secure Shell можно отнести:
- Шифрование информации. С помощью SSH будут шифроваться все материалы, передаваемые по сети. Пользовательские логины и пароли окажутся под надежной защитой.
- Переадресацию портов. SSH предусматривает возможность работы с безопасной переадресацией и туннелирование.
- Простоту использования. Нынешние SFTP-клиенты поддерживают понятные пользователям и простые в плане эксплуатации интерфейсы.
- Целостность данных. С помощью рассматриваемого протокола удается гарантировать неизменность и целостность передаваемых сведений. Дополнительно тут поддерживаются инструменты для защиты материалов от несанкционированного доступа и повреждений.
- Возможность аутентификации. Это очень значимый момент. SSH пользуется парами ключей открытого и закрытого характеров. Они применяются именно при аутентификации. Соответствующая концепция позволяет обеспечить дополнительный уровень безопасности.
Существенных недостатков у рассматриваемой «технологии» нет. Единственный минус, который необходимо запомнить – это отсутствие средств защиты от хакеров и прочих злоумышленников, если те получили root-права. Данный недостаток все еще пытаются устранить. Для этого используются ограничения работы с root-режимом без острой необходимости. Пока что полностью избавиться от этого недочета не получилось.
Где применяется
Изучаемая «технология» широко распространена. Она чаще всего используется для:
- установки соединения и управления на удаленной машине;
- переноса проектов между серверами хостинг-провайдеров;
- управления работой почтовых служб – там SSH выступает в качестве средства обеспечения безопасности;
- подключений в сетевых многопользовательских играх и прочих подобных проектах;
- скрытой передачи файлов большого объема в пределах сети;
- удаленного администрирования локальных сетей.
Работа с рассматриваемым протоколом осуществляется при помощи клиента и сервера. Изначально серверная часть модели прослушивает определенный порт, потом проводится аутентификация. Если она осуществлена успешно, сервер предоставляет клиенту доступ. Команды, которые используются на SSH-клиенте, будут отправляться через защищенный канал связи на серверную часть модели. На сервере команды выполняются и отправляют клиенту результат обработки операций.
SSH-сервер
SSH-сервер должен быть установлен на управляемой операционной системе. Он применяется для приема входящих подключений от клиентских машин. Соединение проверяется несколькими способами:
- По IP-адресу клиента. Это не самый безопасный вариант. Проверка по IP имеет низкий уровень надежности ввиду риска подмены соответствующего адреса.
- По публичному ключу клиента и пользовательскому имени. Для этого нужно создать приватный и публичный (открытый и закрытый) ключи. Далее – зашифровать данные одним ключом. Расшифровать ее получится только через другой. Такой вариант более безопасный и стабильный.
- При помощи пароля клиента. Эта информация будет передаваться в зашифрованной форме. Данный вариант является одним из наиболее распространенных. Пароль вводится в специальную форму при каждом подключении. Такой прием обеспечивает неплохой уровень безопасности.
SSH-серверы могут быть как платными, так и бесплатными. Они ориентированы на самые разные операционные системы. Для Windows самыми популярными являются OpenSSH, WinSSHD, freeSSHd. Для Linux можно использовать lsh-server, dropbear или openssh-server, а в BSD – OpenSSH.
SSH-клиент
Изучая протокол SSH, нужно помнить, что для работы с ним одного сервера недостаточно. Требуется еще и клиент. Он используется для входа на удаленный сервер, а также для выполнения разнообразных команд.
При помощи SSH-клиента происходит управление удаленным компьютеров, включая:
- манипулирование файлами и директориями;
- контроль рабочих процессов;
- управление базами данных, архивами;
- просмотр и редактирование документов.
SSH-клиенты могут быть как десктопными (компьютерными), так и мобильными. Они, как и серверы, встречаются в коммерческой и свободной интерпретациях.
Для Linux и BSD рекомендуется обратить внимание на такие клиенты как putty, ssh, openssh-client, Vinagre. Для Windows лучше всего подойдут ShellGuard, PuTTY, SecureCRT, для Android – connectBot. У Linux и MacOS также есть встроенные SSH-клиенты. Для них не нужно проводить дополнительную инициализацию или настройку.
У Windows тоже есть встроенный SSH-клиент. Он базируется на OpenSSH. Встречается такой клиент не во всех сборках операционной системы, а только начиная с Windows 10 1809. На более ранние версии SSH-клиент придется инициализировать самостоятельно.
Принцип работы – этапы подключения
Какие компоненты необходимы для запуска сессии по протоколу SSH, понятно. Теперь необходимо разобраться в общих принципах работы рассматриваемой «технологии».
SSH-подключение состоит из нескольких этапов:
- Соединение по TCP. TCP выступает одним из базовых протоколов информационного обмена. Без него не получится установить ни одно безопасное соединение. За счет работы TCP становится возможным подключение пользователя к серверу не только на техническом, но и на сетевом уровне. При соединении по TCP клиент будет использовать соединение с защищенным TCP-портом. Обычно речь идет о порте 22.
- Настройка защищенного канала. На данном шаге сервер и клиент будут договариваться о том, как они будут взаимодействовать друг с другом. На этапе настройки защищенного канала проверяется факт совместимости клиента и сервера, происходит обмен идентификационной информацией, выбираются непосредственные алгоритмы дальнейшей работы. Далее клиент и сервер договариваются об основном сеансовом ключе – таком, который они будут использовать для всех операций в рамках установленной сессии. Как только подключение будет разорвано (сессия прекратится), ключ стирается.
- Аутентификация. Как только все настроено для безопасного удаленного управления, серверная сторона будет проверять ключ со стороны пользователя. У нее есть список, в котором прописаны допустимые для соединения ключи, а также какие для этого не подходят. Клиент будет отправлять свой ключ на сервер, серверная часть проверяет его достоверность. Если ключ совпадает с одним из имеющегося списка, аутентификация проходит успешно. Это позволяет пользователю получать по SSH протоколу доступ к серверу. После этого допустимо приступить к безопасному управлению.
Завершающий этап – это непосредственное подключение. Как только оно состоялось, пользователи могут обмениваться информацией.
Детализация установки соединения
Если представить себе не поэтапно, а детализировано принцип работы SSH, можно руководствоваться следующей инструкцией:
- Клиент формирует запрос (команду) и направляет ее на серверную часть клиент-серверной модели.
- Сервер сообщает клиентской стороне, какие методы аутентификации он поддерживает.
- Клиент проверяет указанные методы и предпринимает попытки аутентификации по своему адресу, а после – по публичному ключу.
- Если аутентификация не удалась, клиентская сторона посылает пароль. Он вводится пользователем с клавиатуры и шифруется при помощи асимметричного шифрования.
- Если аутентификация удалась, по ключам сервера и клиента создается ключ для симметричного шифрования.
- Устанавливается соединение. Теперь весь передаваемый трафик будет шифроваться.
Если более детализировано рассмотреть SSH protocol, нужно обязательно обратить внимание на так называемое туннелирование. Он обеспечивает дополнительный уровень безопасности соединения.
Туннелирование
SSH протокол гарантирует безопасность, но для обеспечения дополнительного его уровня необходимо использовать SSH-туннель. Это значит, что информация будет шифроваться на одном конце установленного соединения, а расшифровываются уже на другом.
Чтобы обеспечить защиту данных, предстоит запомнить несколько важных правил:
- Запретить удаленный root-доступ. Его ограничение тоже поможет обеспечить дополнительный уровень безопасности, но риски все равно будут.
- Выбрать нестандартный порт для сервера SSH. Нужно также запретить подключение без пароля или отключать вход по паролю.
- Использовать длинные SSH2 и RSA-ключи.
- Следить за аутентификацией. Если система выдает аутентификационную ошибку, нужно внимательно изучить ее. В соответствующем сообщении будет храниться полезная информация для IT-специалиста.
- Запретить доступ к серверу с опасных или потенциально опасных адресов.
- Установить на серверную часть клиент-серверной модели с SSH дополнительные системы обнаружения вторжений. Они называются IDS – Intrusion Detection System.
- Пользоваться «ловушками». Это специальное программное обеспечение для защиты сетевых подключений. В качестве примера можно привести Tarpit. Так называется порт-ловушка для замедления входящих соединений. Если сторонняя система подключается к порту, быстро завершить соединение будет невозможно. Ловушка начнет расходовать системные ресурсы и выжидать, когда соединение окажется прерванным по тайм-ауту или вручную.
SSH – это достаточно надежная «технология» управления, но она тоже имеет свои уязвимости. Нужно все время помнить о том, что никакая защита не может быть на все 100 % гарантированной. Лучшей концепцией ее обеспечения является внимательность и аккуратность со стороны пользователя.
Как настроить и подключить
Теперь можно выяснить, как именно настраивать и подключать SSH в разных операционных системах. Windows является наиболее распространенной операционной системой, устанавливаемой на компьютерах. Поэтому начать рассмотрение принципов настройки и подключения SSH нужно именно с нее.
Для реализации поставленных задач предстоит:
- Подобрать, скачать и установить SSH-клиент. В Windows допустимо использовать командную строку Cmder или выделенный клиент для установления SSL-соединения с веб-сайтом. Дальше предстоит иметь дело с PuTTY. Он успешно загружается с официального сайта проекта.
- Осуществить подключение к серверу через SSH протокол. Для этого в PuTTY нужно ввести имя хоста и набрать номер порта, а также указать хост и IP-адрес сервера. Эта информация переменчива. Она напрямую зависит от провайдера. Теперь нужно кликнуть по «Открыть». На экране выскочит командная строка. В ней потребуется указать логин и пароль пользователя. Если они не работают, нужно проверить панель управления хостингом на наличие раздел «Доступ по SSH».
- Использовать командную строку для отладки соединения между сервером и клиентом. С помощью этого инструмента можно выполнять разные операции: создавать папки и каталоги, менять разрешения пользователей, перемещать файлы и так далее. Команда ls поможет увидеть, какие документы есть на сервере. Получение доступа к определенной папке осуществляется при помощи команды cd название_папки. Вернуться к предыдущему каталогу поможет cd.
Это общая инструкция для Windows. По мере освоения принципов работы с командной строкой и Secure Shell можно будет изучать более сложные команды и выполнять длинные функции.
Linux и MacOS – как настроить SSH
В Linux и MacOS совсем необязательно пользоваться дополнительным программным обеспечением для работы с SSH. Данные операционные системы позволяют прямо из командной строки установить соединение с веб-страницей по рассматриваемому протоколу. Для этого нужно вызвать терминал. Чтобы установить соединение, предстоит воспользоваться командой: ssh имя_пользователя@общий_или_выделенный_IP.
Базовые команды SSH
Чтобы пользоваться SSH protocols, потребуется использовать разнообразные команды. Их спектр зависит от того, какие именно задачи ставит перед собой человек. Вот базовые команды, которые могут пригодиться при взаимодействии с Secure Shell:
Cd | Переход к нужному каталогу |
Ls | Вывод содержимого выбранной папки |
Rm | Удаление каталога или документа |
Touch | Создание нового файла |
Pwd | Демонстрация содержимого документа |
Mkdir | Создание нового каталога или папки |
Wget | Скачивание файла из Интернета |
Cp | Копирование |
Grep | Поиск той или иной фразы в файле |
Clear | Очистка терминала |
Tar | Создание и распаковка сжатых архивов |
History | Демонстрация последних 50 команд |
Du | Просмотр размера документов или папок в заданном каталоге |
Chown/chmod | Смена прав доступа |
Su | Смена пользователя |
Sudo | Выдача root-прав |
Dd | Копирование необработанной информации из источника в источник |
Man | Вывод руководства пользователя для любой терминальной команды |
Scp | Безопасная передача данных между локальными/удаленными хостами |
Все это является стандартным командным набором для работы с SSH в Linux. Он будет использоваться и в других операционных системах.
SSH работает на порту 22. Он предусматривает несколько уровней: транспортный, пользовательской аутентификации и уровень подключения. Первый непосредственно отвечает за безопасную связь в клиент-серверной модели и контролирует информационное шифрование. Второй – отвечает за проверку пользовательских личностей и серверов. А третий отвечает за обработку создания, обслуживания и завершения установленных ранее сеансов.
Научиться работать в Интернете, а также управлять клиентами и серверами, взаимодействовать с SSH и другими «технологиями» с нуля помогут дистанционные компьютерные курсы.
Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в Otus!