Протокол 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, вимагають спеціальної настройки, яка далеко не завжди під силу людині, що не володіє певними знаннями. Саме тому багато хостинги пропонують своїм клієнтам послуги зі створення та налаштування захищеного з’єднання.