Як налаштувати і використовувати порт SSH? Покрокова інструкція

Як налаштувати і використовувати порт SSH? Покрокова інструкція

Secure Shell, або скорочено SSH, є однією з найбільш передових технологій захисту даних при передачі. Використання такого режиму на тому ж маршрутизаторі дозволяє забезпечити не тільки конфіденційність переданої інформації, але і прискорити обмін пакетами. Правда, далеко не всі знають, як відкрити порт SSH і навіщо все це потрібно. В даному випадку доведеться дати конструктивне пояснення.

Порт 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, PuTTY\KiTTY, 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 блокується файрволом.

З іншого боку, перекинути порти можна і на самому маршрутизаторі, використовуючи для цього налаштування його інтерфейсу зі створенням правил виключення. На більшості моделей вхід здійснюється через введення адрес, що починаються з 192.168 з додаванням 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 можна і не змінювати. Тут особливих проблем при створенні з 'єднання і його подальшому використанні, загалом-то, не передбачається (якщо, звичайно, не буде використовуватися ручне налаштування конфігурації на основі сервера і клієнта). Звичайне створення правила виключення на роутері дозволяє виправити всі проблеми або уникнути їх появи.

Пабліш Чарт