Налаштування SSH в Debian

Anonim

Налаштування SSH в Debian

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

Налаштовуємо SSH в Debian

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

Установка SSH-server і SSH-client

За замовчуванням SSH входить в стандартний набір утиліт операційної системи Debian, однак через будь-яких особливостей потрібні файли можуть втратити свою актуальність або просто відсутні, наприклад, коли користувач вручну справив деінсталяцію. Якщо ви потребуєте в попередній установці SSH-server і SSH-client, виконайте наступну інструкцію:

  1. Відкрийте меню «Пуск» і запустіть звідти «Термінал». Зробити це можна і через стандартну комбінацію клавіш Ctrl + Alt + T.
  2. Перехід до терміналу для подальшої установки SSH в Debian

  3. Тут вас цікавить команда sudo apt install openssh-server, що відповідає за установку серверної частини. Введіть її та натисніть на Enter для активації.
  4. Введення команди в терміналі для установки сервера SSH в Debian

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

  7. Ви будете повідомлені про те, що пакети додані або оновлені. Якщо SSH-server вже інстальований в Debian, з'явиться повідомлення про наявність зазначеного пакета.
  8. Повідомлення про завершення інсталяції сервера SSH в Debian

  9. Далі потрібно додати в систему і клієнтську частину, що стосується і того комп'ютера, до якого в майбутньому буде здійснюватися підключення. Для цього використовується схожа команда sudo apt-get install openssh-client.
  10. Команда для установки клієнтської частини SSH в Debian

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

Управління сервером і перевірка його роботи

Коротенько давайте зупинимося на тому, як здійснюється управління встановленим сервером і перевірка його роботи. Це необхідно зробити ще до того, як переходити до налаштування, щоб переконатися в коректності функціонування доданих компонентів.

  1. Використовуйте команду sudo systemctl enable sshd, щоб додати сервер в автозавантаження, якщо це не сталося автоматично. У разі потреби скасування запуску разом з операційною системою використовуйте systemctl disable sshd. Тоді для ручного запуску знадобиться вказувати systemctl start sshd.
  2. Команда для додавання сервісу SSH в Debian для автозавантаження

  3. Всі подібні дії абсолютно завжди повинні бути виконані від імені суперкористувача, тому потрібно вводити його пароль.
  4. Введення пароля при додаванні сервісу SSH в Debian для автозавантаження

  5. Задіюйте команду ssh localhost для перевірки сервера на працездатність. Замініть localhost на адресу локального комп'ютера.
  6. Команда для підключення до локальної мережі через SSH в Debian

  7. При першому підключенні ви будете повідомлені про те, що джерело не є перевіреним. Це відбувається, оскільки ми ще не виставили настройки безпеки. Зараз просто підтвердіть продовження підключення, ввівши yes.
  8. Підтвердження підключення до локальної мережі через SSH в Debian

Додавання пари ключів RSA

Підключення від сервера до клієнта і навпаки через SSH здійснюється шляхом введення пароля, однак можна і навіть рекомендується створити пару ключів, яка буде розроблена через алгоритми RSA. Цей тип шифрування дозволить створити оптимальну захист, яку буде складно обійти зловмисникові при спробі злому. На додаток пари ключів буде потрібно всього кілька хвилин, а виглядає це процес так:

  1. Відкрийте «Термінал» і введіть там ssh-keygen.
  2. Запуск команди для генерації двох пар ключів при налаштуванні SSH в Debian

  3. Ви можете самостійно вибрати місце, куди потрібно зберегти шлях до ключа. Якщо немає бажання його міняти, просто натисніть на кнопку Enter.
  4. Введення розташування для зберігання двох пар ключів SSH в Debian

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

  7. При введенні ключової фрази доведеться вказати її ще раз, щоб підтвердити.
  8. Підтвердження введення ключової фрази для настройки SSH в Debian

  9. З'явиться повідомлення про створення публічного ключа. Як бачите, йому було присвоєно набір випадкових символів, а також склалося зображення по рандомних алгоритмам.
  10. Успішне створення двох пар ключів при налаштуванні SSH в Debian

Завдяки тільки що виробленим дією створився секретний і відкритий ключ. Вони і будуть задіяні для з'єднання між пристроями. Зараз доведеться скопіювати відкритий ключ на сервер, а зробити це можна різними методами.

Копіювання відкритого ключа на сервер

В Debian існує три варіанти, за допомогою яких можна скопіювати відкритий ключ на сервер. Ми пропонуємо відразу ознайомитися з усіма ними, щоб в майбутньому вибрати оптимальний. Це актуально в тих ситуаціях, коли один з методів не підходить або не задовольняє потреби користувача.

Спосіб 1: Команда ssh-copy-id

Почнемо з найпростішого варіанту, який передбачає використання команди ssh-copy-id. За замовчуванням ця утиліта вже вбудована в ОС, тому в попередньої інсталяції не потребує. Синтаксис її теж максимально простий, а від вас буде потрібно виконати такі дії:

  1. В консолі введіть команду ssh-copy-id username @ remote_host і активуйте її. Замініть username @ remote_host на адресу цільового комп'ютера, щоб відправка пройшла успішно.
  2. Стандартна команда для копіювання публічного ключа в SSH в Debian

  3. При першій спробі з'єднання ви побачите повідомлення "The authenticity of host '203.0.113.1 (203.0.113.1)' can not be established. ECDSA key fingerprint is fd: fd: d4: f9: 77: fe: 73: 84: e1: 55: 00: ad: d6: 6d: 22: fe. Are you sure you want to continue connecting (yes / no)? yes ". Виберіть позитивну відповідь, щоб продовжити підключення.
  4. Підтвердження першого підключення до сервера SSH в Debian при копіюванні ключів

  5. Після цього утиліта самостійно займеться пошуком і копіюванням ключа. У підсумку, якщо все пройшло успішно, на екрані з'явиться повідомлення «/ usr / bin / ssh-copy-id: INFO: attempting to log in with the new key (s), to filter out any that are already installed / usr / bin / ssh-copy-id: INFO: 1 key (s) remain to be installed - if you are prompted now it is to install the new keys [email protected]'s password: «. Це означає, що можна вводити пароль і переходити до безпосереднього управління віддаленим робочим столом.
  6. Інформація про успішне копіюванні ключа SSH в Debian стандартним способом

Додатково уточнимо, що після першої успішної авторизації в консолі з'явиться повідомлення наступного характеру:

Number of key (s) added: 1

Now try logging into the machine, with: "ssh '[email protected]'"

and check to make sure that only the key (s) you wanted were added.

У ньому йдеться про те, що ключ був успішно доданий на віддалений комп'ютер і тепер не виникне ніяких проблем при спробах підключення.

Спосіб 2: Експорт ключа через SSH

Як ви знаєте, експорт публічного ключа дозволить підключатися до вказаного серверу без попереднього введення пароля. Зараз, поки ключ ще не знаходиться на цільовому комп'ютері, підключитися через SSH можна шляхом введення пароля, щоб потім вручну перенести необхідний файл. Для цього в консолі вам доведеться вписати команду cat ~ / .ssh / id_rsa.pub | ssh username @ remote_host "mkdir -p ~ / .ssh && touch ~ / .ssh / authorized_keys && chmod -R go = ~ / .ssh && cat >> ~ / .ssh / authorized_keys".

Копіювання ключів SSH в Debian через стандартну команду

На екрані має з'явитися повідомлення

The authenticity of host '203.0.113.1 (203.0.113.1)' can not be established.

ECDSA key fingerprint is fd: fd: d4: f9: 77: fe: 73: 84: e1: 55: 00: ad: d6: 6d: 22: fe.

Are you sure you want to continue connecting (yes / no) ?.

Підтвердіть його, щоб продовжити з'єднання. Публічний ключ буде автоматично скопійований в кінець конфігураційного файлу «authorized_keys». На цьому процедуру експорту можна вважати закінченою.

Спосіб 3: Ручне копіювання ключа

Цей метод підійде тим користувачам, у кого немає можливості створити віддалене підключення до цільового комп'ютера, однак є фізичний доступ до нього. В такому випадку ключ доведеться переносити самостійно. Для початку визначте відомості про нього на серверному ПК через cat ~ / .ssh / id_rsa.pub.

Визначення номера ключа для подальшого ручного копіювання SSH в Debian

В консолі повинна відобразитися рядок ssh-rsa + ключ у вигляді набору символів == demo @ test. Тепер можна перейти до іншого комп'ютера, де слід створити нову директорію, ввівши mkdir -p ~ / .ssh. У ній же додається текстовий файл під назвою authorized_keys. Залишилося тільки вставити туди певний раніше ключ через echo + рядок публічного ключа >> ~ / .ssh / authorized_keys. Після цього аутентифікація буде доступна без попереднього введення паролів. Здійснюється це через команду ssh username @ remote_host, де username @ remote_host слід замінити на ім'я необхідного хоста.

Підключення до віддаленого комп'ютера для подальшого перенесення ключа SSH в Debian

Розглянуті щойно способи дозволили перенести публічний ключ на новий пристрій, щоб зробити можливим підключення без введення пароля, однак зараз форма на введення все ще відображається. Такий стан речей дозволяє зловмисникам отримати доступ до віддаленого робочого столу, просто перебравши паролі. Далі ми пропонуємо зайнятися забезпеченням безпеки, виконавши певні настройки.

Відключення аутентифікації по паролю

Як вже було сказано раніше, можливість аутентифікації по паролю може стати слабкою ланкою в безпеці віддаленого з'єднання, оскільки існують засоби переборовши таких ключів. Ми рекомендуємо відключити цю опцію, якщо ви зацікавлені в максимальному захисті свого сервера. Зробити це можна так:

  1. Відкрийте конфігураційний файл / etc / ssh / sshd_config через будь-який зручний текстовий редактор, це може бути, наприклад, gedit або nano.
  2. Запуск текстового редактора для настройки конфігураційного файлу SSH в Debian

  3. У списку, відшукайте рядок «PasswordAuthentication» і приберіть знак #, щоб зробити цю команду активною. Поміняйте значення yes на no, щоб відключити цікавить опцію.
  4. Знаходження рядки, що відповідає за аутентифікацію за паролем SSH в Debian

  5. По завершенні натисніть на Ctrl + O, щоб зберегти зміни.
  6. Збереження змін після настройки аутентифікації по паролю SSH в Debian

  7. Не міняйте назву файлу, а просто натисніть на Enter для застосування настройки.
  8. Підтвердження збереження конфігураційного файлу SSH в Debian

  9. Можна залишити текстовий редактор, натиснувши на Ctrl + X.
  10. Вихід з текстового редактора після настройки конфігураційного файлу SSH в Debian

  11. Всі зміни вступлять в силу тільки після перезавантаження служби SSH, тому зробіть це одразу ж через sudo systemctl restart ssh.
  12. Перезапуск SSH в Debian після внесення змін до конфігураційний файл

В результаті виконаних дій можливість аутентифікації по паролю буде відключена, а вхід стане доступний тільки через пару ключів RSA. Враховуйте це при творі подібної конфігурації.

Налаштування параметра брандмауера

На завершення сьогоднішнього матеріалу хочемо розповісти про налаштування брандмауера, який буде використаний для дозволів або заборон з'єднань. Ми пройдемося лише по основним пунктам, взявши за приклад Uncomplicated Firewall (UFW).

  1. Для початку давайте переглянемо список існуючих профілів. Введіть sudo ufw app list і натисніть на Enter.
  2. Перегляд списку відкритих підключень брандмауера для SSH в Debian

  3. Підтвердіть дію, вказавши пароль суперкористувача.
  4. Введення пароля при перегляді списку підключень брандмауера SSH в Debian

  5. У списку знайдіть SSH. Якщо цей рядок там присутній, значить, все функціонує коректно.
  6. Знаходження рядки SSH в Debian при вивченні правил брандмауера

  7. Дозвольте з'єднання через цю утиліту, написавши sudo ufw allow OpenSSH.
  8. Додавання SSH в Debian для брандмауера для дозволу підключень

  9. Увімкніть міжмережевий екран, щоб оновити правила. Робиться це через команду sudo ufw enable.
  10. Включення брандмауера після внесення змін SSH в Debian

  11. Ви в будь-який момент можете перевірити поточний стан брандмауера, ввівши sudo ufw status.
  12. Перегляд статусу брандмауера для відстеження SSH в Debian

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

Читати далі