При работе в Интернете пользователю и IT-специалисту предстоит иметь дело с разнообразными протоколами. Они фактически невидимы, но отвечают за разнообразные манипуляции в сети и безопасность. Современный Интернет работает при помощи двух моделей – OSI и TCP/IP. Последний поддерживает протокол SSH на 22 порту.
Далее предстоит познакомиться с этим элементом поближе. Необходимо разобраться, что соответствующий порт собой представляет, для каких целей он используется, какими преимуществами и недостатками обладает. Также вниманию будут представлены настройки SSH в Windows и Linux, самые распространенные и полезные его команды.
Информация, приведенная ниже, будет полезна каждому IT-специалисту, особенно тем, кто занят обеспечением Интернет-безопасности. Обычным пользователям эти сведения пригодятся для общего развития и лучшего понимания принципов работы сетевых протоколов.
Определение
SSH (Secure Shell или «безопасная оболочка») – это сетевой протокол прикладного уровня, который позволяет осуществлять удаленное управление операционной системой, а также туннелирование TCP-соединений. Напоминает Telnet и rlogin. В отличие от схожих протоков осуществляет шифровку всего трафика, включая передаваемые пароли.
SSH поддерживает несколько алгоритмов шифрования для обеспечения хорошего уровня безопасности. Для большинства сетевых операционных систем доступны SSH-клиенты и SSH-серверы.
SSH – это сетевой протокол связи. Он отвечает за обеспечение безопасного метода взаимодействия устройств и обмена данными через незащищенные сети. Использует для аутентификации и шифрования соединений криптографию.
SHH дает возможность авторизованным в системе пользователям передавать файлы и выполнять разнообразные команды, сохраняя целостность и конфиденциальность информации. Протокол работает по клиент-серверной модели. Он инициирует соединение, а после успешной аутентификации SSH-сервер предоставляет пользователю (клиенту) возможность выполнять команды и осуществлять передачу данных.
Краткая история развития
Раньше в Интернете активно использовались протоколы Telnet и FTP. Они были ориентированы на подключение и передавали данные в виде обычного текста. Такой формат делал информацию уязвимой для «сниффинга» – метода перехвата и чтения данных.
Развитие SSH началось в 1995 году, после атаки со сниффингом паролей в Хельсинкском технологическом университете. Один из его студентов, Тату Юленен, смог быстро обнаружить уязвимости в Интернет-коммуникациях.
Он разработал SSH, зашифрованный протокол, который предназначался для защиты обмена данными. Его проект гарантировал, что пароли и конфиденциальная информация не будут передаваться в открытой форме. Это нововведение в рамках одного университета в конечном итоге получило широкое распространение. Теперь SSH широко используется в Интернете.
Преимущества и недостатки
SSH протокол имеет как сильные, так и слабые стороны. К его преимуществам, особенно по сравнению с FTP, относят:
- Шифрование. SSH осуществляет шифрование всех данных, которые отправляются по сети. Это значит, что информация вроде пользовательских имен, паролей и так далее находится в полной безопасности.
- Аутентификацию. SSH использует пары ключей открытого и закрытого типа для аутентификации. Такой подход обеспечивает дополнительный уровень безопасности по сравнению с FTP-протоколом.
- Целостность информации. SSH-протокол гарантирует, что отправленная или полученная информация окажется неизменной во время передачи. Он поддерживает инструменты защиты от несанкционированного доступа и повреждений.
- Переадресацию портов. SSH позволяет работать с безопасной переадресацией и туннелированием других протоколов.
- Простоту использования. Современные SFTP-клиенты предусматривают дружественный и простой интерфейс. За счет данной особенности переход с программного обеспечения, ориентированного на FTP, будет максимально комфортным.
У SSH имеется всего один недостаток – это отсутствие средств защиты от злоумышленников, получивших root-права. Этот недочет пытаются устранить за счет ограничения использования root-режима без острой необходимости.
Принцип работы
Рассматриваемая технология работает в несколько этапов:
- Установка TCP-соединения. TCP – это протокол управления передачей данных. С помощью него удаленный сервер и пользователь смогут обмениваться информацией.
- Открытие защищенного канала. В зависимости от настроек соединения клиент и сервер (стороны) обмениваются данными о способах шифрования и сжатия данных.
- Аутентификация. Она осуществляется при помощи открытого ключа. У клиента и сервера имеются как открытые (публичные), так закрытые (частные) ключи. Публичные ключи доступны всем, частные – только их владельцам. Любой может зашифровать сообщение при помощи открытого ключа, но расшифровку получить удастся только при помощи закрытого. Клиент посылает имя пользователя и свой публичный ключ. Сервер имеет список пользователей, которым разрешено к нему подключаться. Серверная часть модели будет проверять полученный ключ с его помощью. Если клиент в списке, сервер сгенерирует случайное число, зашифрует клиента публичным ключом и отправит его устройству. Клиент расшифрует число, а затем отправит его обратно. Если все верно, аутентификация проходит успешно.
После этих этапов устройство пользователя сможет передавать команды, а также получать и отправлять файлы.
По умолчанию SSH использует port 22 для работы. Но есть и другие порты, с которыми взаимодействует «защищенная оболочка».
Общие порты
SSH использует в своей работе разнообразные порты. Каждый из них предусматривает определенные особенности. Вот общие порты для работы с рассматриваемым протоколом:
- Port 22. Это порт по умолчанию. Он используется Secure Shell изначально для зашифрованных сетевых служб вроде удаленного входа в систему и выполнения различных команд. SSH обеспечивает безопасный канал по незащищенной сети в клиент-серверной модели. Он часто используется системными администраторами для безопасного доступа к удаленным серверам и дальнейшего управления ими.
- Порт 2222. SSH использует не только порт 22 для своей работы. Port 2222 иногда встречается в качестве его альтернативы. Он обеспечивает смягчение атак на SSH-серверы, нацеленные на порты по умолчанию.
- Порт 8022. Еще один нестандартный порт. Он встречается реже, но применяется для тех же целей, что и порт 2222 – обеспечение лучшего уровня безопасности.
- Порт 222. Используется некоторыми программами для безопасной связи между клиентскими и серверными сторонами.
- Порт 2200. Нестандартный порт, который встречается при подключении к удаленному рабочему столу. В качестве примеров можно привести Virtual Network Computing и Windows Remote Desktop.
На каком порту работает SSH, понятно. Стандартный порт повышает риски взлома сервера. Он является открытым, поэтому злоумышленникам останется подобрать логин и пароль к серверной части модели. Добиться результата проблематично, но вероятность его получения все равно есть. Представленные выше порты, за исключением port-22, используются для ограничения доступа злоумышленников к серверу.
Настройка и подключение
Теперь, когда общее представление о «защищенной оболочке» уже есть, можно приступить к ее настройке и подключению. Далее будут предложены инструкции не только для Windows, но и для Linux/macOS.
Windows
В Windows настроить SSH и подключить к сайту можно, если руководствоваться следующей инструкцией:
- Загрузить и установить SSH-клиент. В Windows нужно использовать командную строку Cmder или выделенный SSH-клиент для установления SSH-соединения с веб-страницей. Далее будет использоваться PuTTY. Загрузить приложение можно с его официального сайта.
- Подключиться к серверу при помощи SSH. Для этого нужно открыть PuTTY, ввести имя хоста и указать номер порта. Нужно указать хост и IP-адрес сервера. Соответствующие данные зависят от провайдера. После этого требуется кликнуть по кнопке «Открыть» – на экране появится командная строка. В ней будет предложено указать пользовательское имя и пароль. Если они не работают, самое время проверить панель управления хостингом на наличие раздела «Доступ по SSH».
- Наладить взаимодействие с сервером при помощи командной строки. Командная строка дает возможность выполнять разнообразные действия: перемещать документы, удалять папки, создавать новые каталоги, менять разрешения пользователей. Чтобы увидеть, какие файлы и каталоги есть на сервере, используется команда ls, а для получения доступа к определенной папке – cd имя_папки. За возврат в предыдущий каталог отвечает cd.
По мере освоения работы с командной строкой и SSH, можно изучать новые, более сложные команды и функции.
Linux и macOS
На Linux и macOS допустимо использование системной командной строки для установки SSH-соединения с веб-страницей. В терминальной оболочке нужно всего лишь указать следующее:
ssh exampleuser@serverip
В предложенной записи exampleuser заменяется на пользовательское имя, а serverip – на общий или выделенный IP-адрес.
Общие команды SSH
Чтобы лучше разобраться с SSH-протоколом и работой с ним, необходимо ознакомиться с наиболее распространенными SSH-командами. Ниже – таблица, которая поможет выполнять операции в Linux.
Команда | Краткая характеристика |
cd | Изменение каталога на необходимый пользователю |
ls | Перечисление содержимого выбранной папки |
rm | Удаление файла/каталога |
mkdir | Создание нового каталога или папки |
cat | Демонстрация содержимого документа |
touch | Создание нового файла |
pwd | Показ полного пути к документу |
wget | Скачивание файла из Интернета |
mv | Перемещение элемента |
cp | Копирование файла/папки |
vi | Вызов текстового редактора, позволяющего вносить изменения в пользовательские документы |
nano | |
grep | Поиск определенной фразы в файле |
find | Поиск |
clear | Очистка экрана терминала |
tar | Создание и распаковка сжатых архивов на сервере |
du | Просмотр размера файлов/папок в заданном каталоге |
history | Отображение последних 50 команд, используемых клиентом |
chmod/chown | Смена прав доступа к документам |
sudo | Выдача root-прав |
su | Смена пользователя |
scp | Безопасная передача файлов между локальными и/или удаленными хостами |
dd | Копирование необработанной информации из одного источника в другой |
man | Вывод пользовательского руководства для любой терминальной команды |
curl | Обеспечение передачи данных и подключения из удаленного места |
Это стандартный набор команд, которые должен знать каждый, кто работает с настройкой и управлением SSH.
SSH функционирует на стандартном порту 22. Он обладает несколькими уровнями: транспортным, аутентификации пользователей, уровнем подключения. Первый отвечает за обеспечение безопасной связи между клиентом и сервером, а также контролирует шифрование данных. Второй – занимается проверкой личностей пользователей и серверов. Третий – обрабатывает создание, обслуживание и завершение сеансов. Лучше работать с сетью и настраивать ее помогут дистанционные компьютерные курсы.
P. S. Интересуют компьютерные сети, сетевые технологии, протоколы передачи данных? Обратите внимание на следующие курсы в Otus: