Як налаштувати і використовувати порт SSH? Покрокова інструкція
Secure Shell, або скорочено SSH, є однією з самих передових технологій захисту даних при передачі. Використання такого режиму на тому ж маршрутизатор дозволяє забезпечити не тільки конфіденційність переданої інформації, але і прискорити обмін пакетами. Правда, далеко не всі знають, як відкрити порт SSH і навіщо все це потрібно. В даному випадку доведеться дати конструктивне пояснення.
Якраз відкриття SSH-порту на кожному маршрутизаторі або за допомогою відповідних налаштувань додаткового клієнта, взаємодіючого з SSH-сервером безпосередньо, дозволяє повною мірою використовувати всі можливості системи безпеки сучасних мереж. Мова тут про те, щоб використовувати порт, призначений за замовчуванням, або користувальницькі налаштування. Ці параметри в застосуванні можуть виглядати досить складно, однак без розуміння організації такого підключення тут не обійтися.
Так, наприклад, якщо в якості клієнта застосовується Jabber, для коректного з'єднання, шифрування та передачі даних повинен використовуватися порт 443 хоча в стандартному варіанті встановлюється порт 22. Щоб переналаштувати маршрутизатор з виділенням певної програми або процесу необхідних умов, доведеться виконати кидок портів SSH. Що це таке? Це є призначення певного доступу для окремо взятої програми, яка використовує підключення до Інтернету, поза залежно від того, які налаштування має поточний протокол обміну даними (IPv4 або IPv6).
Крім того, SSH-порт може бути задіяний і в тому випадку, коли у користувача виникає необхідність виконання віддалених сценаріїв X Windows, що у найпростішому випадку являє собою передачу інформації з однієї машини на іншу, як вже говорилося, з примусовим шифруванням даних. У таких ситуаціях самим необхідним стане використання алгоритмів на основі AES. Це є алгоритм симетричного шифрування, яке спочатку передбачено в технології SSH. І використовувати його не тільки можна, але і потрібно.
Основною перевагою відкриття SSH-порту, на відміну від telnet або rlogin, вважається застосування цифрового підпису RSA або DSA (використання пари у вигляді відкритого і заритого ключа). Крім того, в даній ситуації може використовувати так званий сеансовий ключ на основі алгоритму Діффі-Хеллмана, який передбачає застосування симетричного шифрування на виході, хоча і не виключає використання алгоритмів асиметричного шифрування в процесі передачі даних та їх прийому іншою машиною.
Порт 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, PuTTYKiTTY, 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 блокується файрволом. З іншого боку, перекинути порти можна й на самому маршрутизаторі, використовуючи для цього настроювання інтерфейсу з створенням правил виключення. На більшості моделей вхід здійснюється через введення адрес, що починаються з 192168 з додаванням 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 можна і не міняти. Тут особливих проблем при створенні з'єднання і його подальшому використанні, загалом-то, не передбачається (якщо, звичайно, не буде використовуватися ручне налаштування конфігурації на основі сервера і клієнта). Звичайне створення виключення правила на роутері дозволяє виправити всі проблеми або уникнути їх появи.Цікаво по темі
Як налаштувати прийом підключень через 8080 (порт): інструкція, схема та відгуки
Як працює порт 8080. Як налаштувати підключення через нього, як відбувається множинне з'єднання через проксі.
Що таке HTTPS порт, а також які способи його відкриття
У даній статті описується, що таке порти, для чого вони потрібні, а також як відкрити 443 HTTPS порт, необхідний для деяких додатків Windows.
Порт FTPS - що це таке?
Багато хто з нас є користувачами комп'ютера, а зокрема й Інтернету. Навіть зараз, читаючи цю статтю, ви користуєтеся послугами Інтернету, які
Безпечне підключення через PuTTY: як користуватися SSH
Особливу популярність програмі PuTTY принесла її доступність, простота і здатність виконувати підключення ...
Перевірка відкритого порту за допомогою командного рядка Windows і сторонніх програм
Чому важливо знати, які порти відкриті на комп'ютері? Навіщо пересічному користувачеві лізти в ці нетрі? ...