Протокол SSH (Secure Shell) — что это такое, какие нужны настройки для работы
Ни для кого не секрет, что в наше время очень важным, является обеспечение максимальной безопасности данных, особенно если они касаются личной жизни или коммерческой деятельности. Ведь сегодня уже сформировалась целая индустрия по перехвату информации, взлому аккаунтов и т.п.
Поэтому, если вам нужно передать на сервер особо важные файлы, или воспользоваться удаленным доступом к операционной системе, то вполне логичным будет позаботиться о безопасности передачи данных. Сегодня, одним из наиболее распространенных способов защиты своих данных, является использование сетевого протокола SSH (Secure Shell).
Необходимость использования таких средств защиты обусловлена двумя факторами:
- В большинстве случаев, в сети интернет, данные передаются в открытом виде, и соответственно любой желающий сможет без особого труда перехватить их. Особо стоит отметить, что в этом случае могут перехватить и ваши пароли;
- Авторизация, при помощи паролей или IP-адресов, также весьма уязвима.
Давайте же разберемся, что же такое SSH, а также, как работает этот протокол?
Table of content
Что такое SSH?
Начать стоит с того, что в середине 70-х годов двадцатого века, был создан алгоритм шифрования RSA, который используют для создания «публичных ключей». В основе работы этого алгоритма лежит использование двух криптоключей – один из них используется для расшифровки, а второй для шифрования.
«Публичным», называют ключ, который используется для шифрования данных, поскольку его распространять среди третьих лиц. «Секретным», называется ключ, который используется для расшифровки, поскольку полноценный доступ к данным может получить только его обладатель.
Сетевой протокол SSH, расшифровывается как Secure Shell, или если говорить на русском языке – «безопасная оболочка». Безопасность передачи данных обеспечивается при помощи шифрования трафика с его возможной компрессией. Кроме того, этот сетевой протокол часто используется для создания защищенных каналов, позволяющих безопасно передавать данные через небезопасную среду (в частности интернет).
Также он, неплохо себя показывает с переадресациями портов или удаленных клиентов. Благодаря этому, данный сетевой протокол на сегодняшний день представляет из себя проверенный стандартный протокол и активно используется для административной работы с серверами в удаленном режиме.
Доступ по протоколу SSH, можно получить с помощью одного из трех типов аутентификации:
- Аутентификация при помощи пары ключей. В этой ситуации генерируется пара из закрытого (на ПК, с которого производится подключение), и открытого (на устройстве, к которому подключаются) ключей. Система автоматически проверяет наличие ключей без передачи этих файлов;
- Стандартная аутентификация с помощью пароля. В этом случае в каждом подключении создается свой ключ для шифрования трафика, по аналогии с https;
- Аутентификация с помощью IP-адреса. Используется достаточно редко, поскольку это наименее безопасный из трех вариантов.
Важным моментом, является то, что с его помощью, можно передавать множество других сетевых протоколов.
На сегодняшний день, существует два варианта сетевого протокола SSH:
- OpenSSH – версия с открытым исходным кодом, которую можно использовать бесплатно, для коммерческих и некоммерческих проектов. Реализация OpenSSH есть на всех операционных системах на Unix;
- Коммерческий вариант, который разрабатывается SSH Communications Security. Эту версию тоже можно использовать бесплатно, но только для некоммерческих проектов.
Разумеется, наибольшей популярностью пользуется именно бесплатная версия. Но ради справедливости, нужно сказать, что многим программистам она нравится именно из-за открытого исходного кода, поскольку это позволяет модифицировать её для своих потребностей.
Основными задачами, для которых применяется SSH-клиент, помимо подключения к серверу, являются:
- Работа с архивами, файлами и папками;
- Просмотр и редактирование данных;
- Изучение рабочих процессов;
- Использование баз данных.
Особо стоит отметить то, что благодаря возможности сжатия данных, при передаче через протокол SSH, он позволяет быстро обрабатывать файлы больших размеров, например видео.
Какие есть версии протокола SSH?
Первая версия, которая получила название SSH-1, была создана в далеком 1995-м году, автором является Тату Уленен. Основной задачей этой версии, было обеспечение более высокого уровня конфиденциальности, в сравнении с протоколами rsh, telnet и rlogin, которые использовались в то время.
Главным преимуществом первой версии, перед своими конкурентами, была устойчивость к прослушиванию трафика (снифинг), однако данный протокол все еще был уязвим для атак, принцип которых базируется на том, что злоумышленник становится посредником между двумя сторонами обмена данными, и может ретранслировать их или изменять.
Именно поэтому в 1996-м, был разработан протокол SSH-2, который и используется в наше время. Данная версия предусматривает использование специальной авторизации при подключении к серверу, что не дает возможности третьим лицам подключиться к потоку данных.
На сегодняшний день под термином SSH, воспринимается исключительно вторая версия.
Как использовать протокол SSH?
Что бы это сделать, нам понадобятся соответствующие клиент и сервер. На сегодня, существует большое количество оболочек, клиентов и серверов для разных ОС.
Какие есть SSH серверы?
Для системы распространения ПО BSD, используется стандартный OpenSSH. Также есть множество различных решений для серверов на Linux или Windows.
Клиенты и оболочки для SSH
На сегодняшний день, есть множество оболочек и клиентов SSH-протокола, для следующих систем:
- GNU\Linux;
- Windows, NT, Mobile;
- BSD;
- Mac OS;
- J2ME;
- Java;
- iPhone;
- Android;
- MeeGo 1.2 Harmattan;
- MAEMO 5;
- Symbian OS;
- Blackberry.
Одним из самых распространенных SSH-клиентов, который в частности рекомендуют многие специалисты, является FileZilla.
Что такое SSH-туннель?
Под данным термином подразумевается шифрование данных идущих по конкретному каналу (туннелю). Все данные шифруются на одном конце соединения, и дешифруются на другом. Благодаря этому, даже если они будут перехвачены третьими лицами, то злоумышленники не смогут ими воспользоваться.
Создание такого «туннеля», может проводиться по нескольким сценариям:
- VPN-туннель. Данный способ можно использовать для любых приложений;
- Специальные программы, что работают через SSH;
- Socks-прокси;
- При необходимости работать с определенным сервером, то есть вариант настройки соединения на нужный TCP-порт.
Советы по настройке протокола SSH и дальнейшему применению
В ситуации, при которой вы работаете через SSH, и хотите существенно повысить безопасность соединения, рекомендуем выполнить следующие действия:
- Запретить отключение входа по паролю или подключения с пустым паролем;
- Запретить удаленный root-доступ;
- Ограничить список IP, для которых, будет разрешен доступ;
- Выбрать нестандартные системные логины и порт.
Также стоит регулярно просматривать сообщения об ошибках аутентификации. Это позволит выявить с каких IP регулярно пытаются ломать ваш сервер, и соответственно запретить для них доступ к SSH.
Еще одним важным моментом, который позволит существенно увеличить безопасность соединения, является использование длинных ключей для SSH2. Считается, что длинный ключ содержит более 2048 бит. Вообще, надежной, система шифрования считается если длинна ключа равна 1024 бит, или более.
Дополнительно, улучшить защиту вашего соединения, поможет использование ловушек, которые имитируют SSH-сервис, технология Port knocking, система обнаружения вторжений в канал (IDS).
Выводы
На сегодняшний день, использование сетевого протокола SSH, является одним из самых эффективных способов защиты канала передачи данных. Его главным преимуществом, является использование открытого и закрытого ключа при соединении клиента с сервером, что позволяет свести до минимума вероятность того, что к вашему каналу подключится кто-то третий.
Наиболее распространенным вариантом, сегодня является OpenSSH, благодаря возможности бесплатного использования и открытому коду, что позволяет оптимизировать все под свои нужды.
На сегодняшний день, использование сетевого протокола SSH, отлично поддерживается многими ОС, как для клиента, так и для сервера.
Очень важным моментом можно назвать то, что клиент и сервер для протокола SSH, требуют специальной настройки, которая далеко не всегда по силам человеку, не обладающему определенными знаниями. Именно поэтому многие хостинги предлагают своим клиентам услуги по созданию и настройке защищенного соединения.