Як захистити сервер SSH

Як захистити сервер SSH

Захист з’єднань SSH допомагає захистити систему та дані Linux. Системним адміністраторам і домашнім користувачам також необхідно захищати комп’ютери, які підключені до Інтернету. Ось 10 простих способів, які допоможуть вам захистити ваш сервер SSH .

Деякі основи безпеки SSH

SSH означає Secure Shell. Протокол SSH або програмне забезпечення дозволяє системним адміністраторам і користувачам створювати безпечні з’єднання з віддаленими комп’ютерами за допомогою цього протоколу.

Протокол SSH — це зашифрований протокол, розроблений для забезпечення безпечного з’єднання через незахищену мережу, таку як Інтернет. SSH в Linux побудовано на портативній версії проекту OpenSSH. Він реалізований у класичній клієнт-серверній моделі з сервером SSH, який приймає підключення від клієнтів SSH. Клієнт використовується для підключення до сервера та надання сеансу віддаленим користувачам. Сервер приймає з'єднання та починає сеанс.

У конфігурації за замовчуванням сервер SSH «прослуховуватиме» вхідні з’єднання за протоколом керування передачею (TCP), порт 22. Оскільки це стандартизований і популярний порт, він є мішенню для загроз і зловмисних ботів.

Зловмисники запускають ботів, які сканують діапазони IP-адрес у пошуках відкритих портів. Потім він перевіряє ці порти на наявність вразливостей, які можна використовувати. Думати про те, що я в безпеці, є багато більших і кращих цілей, ніж я, для поганих хлопців, абсолютно неправильно. Ці боти не обирають свої цілі за будь-якими критеріями, вони просто шукають спосіб проникнути в систему.

Ви станете жертвою, якщо не захистите свою систему.

Тертя безпеки

Точка протидії безпеки – це будь-яка ситуація, коли виконання основного завдання запобігає або відкладається через вимоги безпеки.

Проблеми безпеки викликають дискомфорт (на будь-якому рівні) у користувачів та інших, коли ви застосовуєте заходи безпеки. Люди, які новачки не знайомляться з комп’ютерними системами, можуть хвилюватися, чи їм справді доведеться вводити пароль кожного разу, коли вони входять до мейнфрейму. Для них це також форма тертя безпеки.

Запровадження заходів безпеки часто включатиме певну форму тертя для деяких людей. Власники бізнесу повинні платити за ці заходи. Користувачам комп’ютерів, можливо, доведеться змінити звички або запам’ятати іншу інформацію автентифікації, додавши кроки для успішного підключення. Системним адміністраторам доведеться виконувати додаткову роботу щодо впровадження та підтримки нових заходів безпеки.

Підтягнути та заблокувати операційну систему Linux або Unix можна швидко. Заходи безпеки тут — це набір простих для виконання кроків, які покращать безпеку комп’ютера без необхідності сторонніх програм і глибокого втручання брандмауера .

Використовуйте протокол SSH версії 2

У 2006 році протокол SSH було оновлено з версії 1 до версії 2. Це значне оновлення. Є багато змін і вдосконалень, особливо в шифруванні та безпеці, а версія 2 не сумісна з версією 1. Щоб запобігти з’єднанням із клієнтами версії 1, ви можете вказати комп’ютерам приймати з’єднання лише з версії 2.

Для цього відредагуйте файл /etc/ssh/sshd_config за допомогою такої команди:

sudo gedit /etc/ssh/sshd_config

Як захистити сервер SSH

Додайте такий рядок:

Protocol 2

Як захистити сервер SSH

Збережіть файл, а потім перезапустіть процес демона SSH за допомогою такої команди:

sudo systemctl restart sshd

Як захистити сервер SSH

Перевірте нове налаштування в дії, переключившись на іншу машину та спробувавши підключитися до тестової машини через SSH. Ми використаємо параметр -1 (протокол 1), щоб змусити команду ssh використовувати протокол версії 1.

ssh -1 [email protected]

Як захистити сервер SSH

Запит на підключення відхилено. Переконайтеся, що ви все ще можете підключитися до протоколу 2. Ми будемо використовувати -2 (протокол 2) для перевірки.

ssh -2 [email protected]

Як захистити сервер SSH

Той факт, що сервер SSH запитує пароль, є позитивною ознакою того, що з’єднання встановлено і ви взаємодієте з сервером. Сучасні клієнти SSH за замовчуванням використовують протокол 2, нам не потрібно вказувати протокол 2, якщо клієнт оновлений.

ssh [email protected]

Як захистити сервер SSH

Підключ��ння прийнято.

Уникайте воріт 22

Порт 22 є стандартним портом для підключень SSH. Якщо використовується інший порт, це додає вашій системі певну безпеку (STO). Безпека через двозначність ніколи не повинна розглядатися як справжній захід безпеки. Фактично, деякі розумніші атакуючі боти перевіряють усі відкриті порти та вирішують, яку службу вони виконують, замість того, щоб покладатися на простий список пошуку портів і припускати, що вони надають послугу. Але використання нестандартного порту може допомогти зменшити поганий трафік на порту 22.

Щоб налаштувати нестандартний порт, відредагуйте файл конфігурації SSH, як зазначено вище.

Як захистити сервер SSH

Видаліть # на початку рядка порту та замініть 22 номером на свій вибір. Збережіть файл конфігурації та перезапустіть демон SSH.

На іншому комп’ютері ми використаємо команду ssh для підключення до сервера. Типова команда ssh використовує порт 22:

ssh [email protected]

Як захистити сервер SSH

З'єднання відхилено. Спробуйте ще раз і вкажіть порт 470 за допомогою параметра –p (порт):

ssh -p 479 [email protected]

Як захистити сервер SSH

Підключення підтверджено.

Підключіть фільтр за допомогою TCP Wrappers

TCP Wrappers — це простий для розуміння список контролю доступу. Це дозволяє забороняти та дозволяти підключення на основі характеристик запиту на підключення, таких як IP-адреса або ім’я хоста. TCP Wrappers слід використовувати з належним чином налаштованим брандмауером, а не замість нього.

TCP Wrappers попередньо встановлено на машинах Ubuntu 18.04 LTS . Його потрібно встановити на Manjaro 18.10 і Fedora 30.

Щоб встановити на Fedora, скористайтеся такою командою:

sudo yum install tcp_wrappers

Як захистити сервер SSH

Щоб встановити на Manjaro, скористайтеся цією командою:

sudo pacman -Syu tcp-wrappers

Як захистити сервер SSH

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

sudo gedit /etc/hosts.deny

Як захистити сервер SSH

Наведена вище команда відкриє редактор gedit із відмовою завантаження файлу.

Як захистити сервер SSH

Потрібно додати рядок:

ALL : ALL

І збережіть файл. Цей рядок блокуватиме будь-який несанкціонований доступ. Тепер нам потрібно надати дозволи для підключень, які ви хочете прийняти. Для цього вам потрібно відредагувати файл дозволів:

sudo gedit /etc/hosts.allow

Як захистити сервер SSH

Наведена вище команда відкриє редактор gedit із файлом, який можна завантажити.

Як захистити сервер SSH

Ми додали назву демона SSH, SSHD та IP-адресу комп’ютера, який дозволяє встановити з’єднання. Збережіть файл і перевірте, чи діють обмеження та дозволи.

Спочатку ви спробуєте підключитися з комп’ютера, якого немає у файлі hosts.allow:

Як захистити сервер SSH

З'єднання відхилено. Ми спробуємо підключитися з машини з IP-адресою 192.168.4.23:

Як захистити сервер SSH

Підключення прийнято.

Наведений тут приклад дозволяє підключитися лише одній машині. Обгортки TCP є досить гнучкими, вони підтримують імена хостів, символи узагальнення та маски підмережі для прийняття з’єднань із діапазонів IP-адрес.

Відхиляти запити на підключення без пароля

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

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

Вам потрібно відредагувати файл конфігурації SSH.

Як захистити сервер SSH

Прокрутіть файл униз, доки не побачите рядок #PermitEmptyPasswords no . Видаліть # на початку рядка та збережіть файл. Перезапустіть демон SSH.

Використовуйте ключі SSH замість паролів

Ключі SSH забезпечують безпечний спосіб входу на сервер SSH. Паролі можна зламати, вгадати або застосувати грубим методом . Ключі SSH не вразливі до таких типів атак.

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

Ключі SSH дозволяють створювати з’єднання без пароля, що є більш безпечним, ніж з’єднання з використанням автентифікації за паролем.

Під час надсилання запиту на підключення віддалений комп’ютер використовує копію відкритого ключа для створення зашифрованого повідомлення, яке надсилається назад на комп’ютер. Оскільки він зашифрований відкритим ключем, комп’ютер може розшифрувати його за допомогою закритого ключа.

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

Тут підключення до сервера за адресою 192.168.4.11 здійснюється користувачем за допомогою ключа SSH. Зауважте, що їм не буде запропоновано ввести пароль.

ssh [email protected]

Як захистити сервер SSH

Повністю вимкнути автентифікацію паролем

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

Як захистити сервер SSH

Прокрутіть файл униз, доки не побачите рядок, який починається з #PasswordAuthentication yes . Видаліть # на початку рядка, змініть так на ні та збережіть файл. Перезапустіть демон SSH.

Вимкнути переадресацію X11

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

Як захистити сервер SSH

Прокрутіть файл вниз, доки не побачите рядок #X11Forwarding no , видаліть # на початку рядка та збережіть файл. Перезапустіть демон SSH.

Установіть значення тайм-ауту простою

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

Тому вам слід встановити ліміт часу очікування. Підключення SSH буде розірвано, якщо не буде активності протягом ліміту часу. Знову потрібно відредагувати файл конфігурації SSH.

Як захистити сервер SSH

Прокрутіть файл вниз, доки не побачите рядок, який починається з #ClientAliveInterval 0 . Видаліть # на початку рядка, змініть число 0 на потрібне значення. Зазвичай люди встановлюють його на 300 секунд, тобто 5 хвилин. Збережіть файл і перезапустіть демон SSH.

Встановіть обмеження на кількість введення пароля

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

Як захистити сервер SSH

Прокрутіть файл вниз, доки не побачите рядок, який починається з #MaxAuthTries 0 . Видалення # на початку рядка змінює число на потрібне значення. Ви можете встановити значення 3. Збережіть файл під час внесення змін і перезапустіть демон SSH.

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

Як захистити сервер SSH

Зауважте, що число MaxAuthTries перевищує кількість спроб, дозволених користувачеві. Після двох невдалих спроб ви від’єднуєтеся, що означає, що MaxAuthTries має значення 3.

Вимкнути вхід root

Радимо не входити в систему як root, просто використовувати як звичайний користувач у Linux і використовувати sudo для виконання дій, які вимагають прав root. Ви також не повинні дозволяти root входити на сервер SSH. Тільки звичайні користувачі можуть підключатися. Якщо їм потрібно виконати завдання адміністративного рівня, вони також можуть використовувати sudo. Якщо ви повинні дозволити користувачеві root увійти, ви можете змусити його використовувати ключ SSH.

Відредагуйте файл конфігурації, щоб вимкнути вхід root.

Як захистити сервер SSH

Прокрутіть файл вниз, доки не побачите рядок, який починається з #PermitRootLogin prohibit-password , видаліть # на початку рядка.

  • Якщо ви хочете запобігти входу root, замініть prohibit-password на no.
  • Якщо ви дозволяєте root входити, але примусово використовуєте ключ SSH, залиште заборонений пароль без змін.

Збережіть зміни та перезапустіть демон SSH.

Останній крок

Звичайно, якщо вам не потрібен SSH, запущений на вашому комп’ютері, вимкніть його за допомогою такої команди:

sudo systemctl stop sshd
sudo systemctl disable sshd

Бажаю успіхів!


Часті запитання про паролі за умовчанням

Часті запитання про паролі за умовчанням

У сьогоднішній статті Quantrimang узагальнить деякі поширені запитання про паролі за умовчанням, щоб допомогти читачам відповісти на запитання, пов’язані з цією проблемою.

Навіщо використовувати CyberGhost VPN?

Навіщо використовувати CyberGhost VPN?

Що вам потрібно, так це VPN, який спрощує різні параметри, а CyberGhost VPN є однією з найкращих VPN, коли мова йде про простоту.

3 головних виклики багатохмарної безпеки та як побудувати стратегію

3 головних виклики багатохмарної безпеки та як побудувати стратегію

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

Встановіть динамічні екрани та анімовані шпалери на Windows

Встановіть динамічні екрани та анімовані шпалери на Windows

В операційній системі Windows Vista від Microsoft DreamScene дозволяв налаштовувати динамічний фон для комп’ютерів, але через вісім років він все ще не доступний у Windows 10. Чому протягом багатьох років цей звичай став поверненням до минулого, і що ми можемо зробити, щоб це змінити?

Як підключити мережу між 2 ноутбуками за допомогою мережевого кабелю

Як підключити мережу між 2 ноутбуками за допомогою мережевого кабелю

Якщо ми хочемо підключити два ноутбуки до мережі, ми можемо використати мережевий кабель, а потім змінити IP-адреси двох комп’ютерів, і все.

Як виправити У вас немає дозволу на збереження в цьому місці в Windows

Як виправити У вас немає дозволу на збереження в цьому місці в Windows

Коли Windows відображає помилку «У вас немає дозволу на збереження в цьому місці», це не дозволить вам зберегти файли в потрібні папки.

Топ найкращих безкоштовних і платних програм Syslog Server для Windows

Топ найкращих безкоштовних і платних програм Syslog Server для Windows

Сервер Syslog є важливою частиною арсеналу ІТ-адміністратора, особливо коли мова йде про централізоване керування журналами подій.

Що таке помилка 524 Стався тайм-аут і як виправити помилку

Що таке помилка 524 Стався тайм-аут і як виправити помилку

Помилка 524: Виник тайм-аут – це специфічний для Cloudflare код статусу HTTP, який вказує на те, що з’єднання із сервером закрито через тайм-аут.

Що таке помилка 0x80070570? Як виправити цю помилку?

Що таке помилка 0x80070570? Як виправити цю помилку?

Код помилки 0x80070570 є поширеним повідомленням про помилку на комп’ютерах, ноутбуках і планшетах під керуванням операційної системи Windows 10. Однак він також з’являється на комп’ютерах під керуванням Windows 8.1, Windows 8, Windows 7 або раніших версій.

Інструкції щодо виправлення помилки синього екрана PAGE FAULT IN NONPAGED AREA або STOP 0x00000050

Інструкції щодо виправлення помилки синього екрана PAGE FAULT IN NONPAGED AREA або STOP 0x00000050

Помилка «синій екран смерті» BSOD PAGE_FAULT_IN_NONPAGED_AREA або STOP 0x00000050 — це помилка, яка часто виникає після встановлення драйвера апаратного пристрою або після встановлення чи оновлення нового програмного забезпечення. У деяких випадках причиною помилки є пошкоджений розділ NTFS.