Налаштування SSH у Debian за допомогою OpenSSH

Але повернемося до SSH. Що таке SSH і чим же він такий гарний? SSH – це мережевий протокол для TCP-з'єднань, який дозволяє дистанційно керувати операційною системою. SSH – це абревіатура від Secure SHell, що переводиться як безпечна оболонка. Вся інформація, що передається по цьому протоколу, стискається і надійно шифрується, а також проводиться перевірка модифікації пакетів. Зловмисники можуть прослуховувати мережу, перехоплювати та змінювати пакети, але вони цим нічого не досягнуть. Крім адміністрування через SSH можна передавати інші мережеві протоколи, створюючи захищені тунелі.

Раніше для віддаленого адміністрування комп'ютерів на базі Linux використовували протоколи RLOGIN, TELNET та RSH. Але паролі та дані в цих протоколах не шифрувалися, пакети могли бути перехоплені та модифіковані, а зловмисник міг підмінити IP клієнта та, використавши перехоплені дані, пройти автентифікацію. Природно, що в незахищених мережах працювати за цими протоколами небезпечно і в 1995 році було розроблено першу версію протоколу SSH (SSH-1). Вже наступного року було розроблено другу, більш захищену версію протоколу SSH (SSH-2). Перша та друга версії протоколів несумісні між собою. У своїй роботі ми будемо використовувати протокол SSH тільки другої версії і все, що буде описано нижче, передбачає використання SSH-2.

Існує кілька реалізацій програмного забезпечення для SSH. Ми встановимо один з його різновидів — OpenSSH. OpenSSH розшифровується як Open BSD Secure SHell і був розроблений для BSD систем.

У пакет OpenSSH входить кілька програм: scp (Secure CoPy), ssh (Secure SHell) та sftp (Secure File Transfer Protocol). Перша з них потрібна для захищеного копіювання файлів з одного комп'ютерана другий, друга надає захищений доступ до оболонки. В основному, саме вона використовується для віддаленого адміністрування, дозволяючи працювати з іншим комп'ютером так, ніби ви фізично працюєте за цим комп'ютером. Третя програма з пакету OpenSSH потрібна для захищеної передачі файлів протоколом FTP.

Програма ssh використовує технологію клієнт/сервер. Перевіримо, чи встановлені в системі якісь пакети openssh:

$ aptitude search ^openssh

На виході отримуємо:

iA openssh-blacklist

iA openssh-blacklist-extra

i openssh-client

p openssh-server

Як бачимо, клієнтська частина програми встановлена ​​та на додаток до неї для задоволення залежностей автоматично встановлені пакети openssh-blacklist та openssh-blacklist-extra. Встановлюємо серверну частину, звичайно з правами суперкористувача:

# aptitude install openssh-server

Під час установки будуть згенеровані ключі та перезапущено відповідний демон – sshd. Можна було б встановити openssh в інтерактивному режимі одним завданням (див. Aptitude інтерактивний режим), але у цьому немає сенсу, оскільки метапакет і так містить лише один пакет openssh-server.

Перевіряємо, чи запущено sshd:

# ps ax grep sshd

Якщо бачимо приблизно такі рядки, то все гаразд:

910? Ss 0:00 /usr/sbin/sshd

1190 tty1 S+ 0:00 grep sshd

Стан сервера ssh можна перевірити в такий спосіб:

# /etc/init.d/ssh status

Якщо сервер працює та запущено, то бачимо таке повідомлення:

sshd is running

Управління сервером здійснюється також у командному рядку:

У фігурних дужках перелічені командикерування, які розділені вертикальними лініями. Вертикальні лінії цього запису рівнозначні слову АБО, т. е. може бути виконана лише якась одна команда. Наприклад, виведено статус сервера, як показано на прикладі вище.

Перш ніж підключитися до нашого сервера, поговоримо про автентифікацію (перевірку автентичності) у SSH. При підключенні SSH використовуються три види аутентифікації: аутентифікація по паролю, аутентифікація за ключом хоста і аутентифікація за відкритим ключем. Ми не будемо розглядати аутентифікацію за паролем у чистому вигляді як небезпечну. Розглянемо різницю між автентифікацією за ключом хоста та автентифікацією за відкритим ключем. При першому підключенні з використанням аутентифікації ключа хоста відкритий ключ хоста (сервера) копіюється на комп'ютер-клієнт у профіль користувача, що ініціював віддалене підключення, в файл /.ssh/known_hosts. При наступних підключеннях копія відкритого ключа на клієнті порівнюється з відкритим ключем на сервері і далі слідує запит пароля для користувача. При використанні аутентифікації за відкритим ключем, пара ключів генерується не на хості (сервері), а на клієнті і його повністю ідентифікує. Відкритий ключ шифрується та копіюється на сервер. При підключенні відбувається порівняння копії відкритого ключа та оригіналу і якщо ключі збіглися, відбувається вхід на віддалений комп'ютер.

Пам'ятайте, що у нас ви можете не тільки купити готовий сайт або замовити його розробку, але й підібрати відповідний тариф підтримки сайту, замовити просування сайту в пошукових системах, а також зареєструвати домен в одній із двохсот доменних зон та вибрати недорогий тариф хостингу! Айтішник РУ