Передові практики з OpenSSH

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

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

Безпека

Ось 6 найважливіших моментів, про які слід пам’ятати при налаштуванні SSH:

  1. Використовуйте надійний пароль.
  2. Змініть порт SSH за замовчуванням.
  3. Завжди використовуйте версію 2 протоколу SSH.
  4. Відключити root-доступ.
  5. Обмежте доступ користувачів.
  6. Використовуйте автентифікацію ключа.
  7. Інші варіанти

Надійний пароль

Хороший пароль – це той, який містить буквено-цифрові або спеціальні символи, пробіли, великі та малі літери... тощо. Тут в DesdeLinux Ми показали кілька методів створення хороших паролів. Можна відвідувати ця стаття y це інше.

Змініть порт за замовчуванням

Порт за замовчуванням для SSH - 22. Для його зміни нам потрібно лише відредагувати файл / etc / ssh / sshd_config. Ми шукаємо рядок, який говорить:

#Port 22

ми коментуємо це і міняємо 22 на інше число .. наприклад:

Port 7022

Щоб знати порти, які ми не використовуємо на нашому комп'ютері / сервері, ми можемо виконати їх у терміналі:

$ netstat -ntap

Тепер для доступу до нашого комп’ютера або сервера ми повинні зробити це за допомогою опції -p наступним чином:

$ ssh -p 7022 usuario@servidor

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

Щоб переконатися, що ми використовуємо версію 2 протоколу SSH, ми повинні відредагувати файл / etc / ssh / sshd_config і знайдіть рядок, який говорить:

# Протокол 2

Ми коментуємо це та перезапускаємо службу SSH.

Заборонити доступ як root

Щоб запобігти корінному користувачеві можливість віддаленого доступу через SSH, ми заглянемо у файл/ etc / ssh / sshd_config лінія:

#PermitRootLogin no

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

Обмежте доступ користувачів

Також не завадить дозволити доступ через SSH лише певним довіреним користувачам, тому ми повертаємось до файлу / etc / ssh / sshd_config і додаємо рядок:

AllowUsers elav usemoslinux kzkggaara

Де очевидно, що користувачі elav, usemoslinux та kzkggaara зможуть отримати доступ.

Використовуйте автентифікацію ключа

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

Перше, що потрібно, це створити пару ключів (відкритих та приватних):

ssh-keygen -t rsa -b 4096

Потім ми передаємо наш ключ на комп’ютер / сервер:

ssh-copy-id -i ~/.ssh/id_rsa.pub elav@200.8.200.7

Нарешті, ми повинні мати не коментований файл / etc / ssh / sshd_config лінія:

AuthorizedKeysFile .ssh/authorized_keys

Інші варіанти

Внесок Юкітеру

Ми можемо скоротити час очікування, за який користувач може успішно увійти в систему, до 30 секунд

LoginGraceTime 30

Щоб уникнути атак ssh через TCP Spoofing, залишаючи зашифрованим живим на стороні ssh активність максимум на 3 хвилини, ми можемо активувати ці 3 опції.

TCPKeepAlive no ClientAliveInterval 60 ClientAliveCountMax 3

Заборонити використання файлів "rhosts" або "shosts", які з міркувань безпеки закликають не використовувати.

IgnoreRhosts так IgnoreUserKnownHosts так RhostsAuthentication ні RhostsRSAAuthentication ні

Перевірте діючі дозволи користувача під час входу в систему.

StrictModes yes

Увімкнути поділ привілеїв.

UsePrivilegeSeparation yes

Висновки:

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

Фуенте: HowToForge


8 коментарі, залиште свій

Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.

  1.   Юкітеру - сказав він

    Чудовий пост @elav, і я додаю кілька цікавих речей:

    ВхідGraceTime 30

    Це дозволяє нам скоротити час очікування, за який користувач може успішно увійти в систему, до 30 секунд

    TCPKeepAlive немає
    ClientAliveInterval 60
    ClientAliveCountMax 3

    Ці три варіанти досить корисні для уникнення атак ssh за допомогою TCP Spoofing, залишаючи зашифрованим живим на стороні ssh активність максимум на 3 хвилини.

    Ігнорувати, так і так
    IgnoreUserKnownHosts так
    Аутентифікаційний номер
    Rhosts RSAАутентифікаційний номер

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

    Так

    Ця опція використовується для перевірки діючих дозволів користувача під час входу в систему.

    UsePrivilegeSeparation так

    Увімкнути поділ привілеїв.

    1.    елав - сказав він

      Ну, через деякий час я відредагую публікацію та додаю її до публікації 😀

  2.   Eugenio - сказав він

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

    1.    елав - сказав він

      # Стратегія, яка використовується для параметрів у типовому sshd_config, що постачається з
      # OpenSSH - це вказати параметри зі значенням за замовчуванням, де
      # можливо, але залиште їх прокоментованими. Не коментовані параметри замінюють
      # значення за замовчуванням.

      Так, але, наприклад, звідки ми знаємо, що використовуємо лише версію 2 протоколу? Тому що ми цілком можемо використовувати 1 і 2 одночасно. Як сказано в останньому рядку, наприклад, якщо не коментувати цей параметр, параметр за замовчуванням буде замінено. Якщо ми використовуємо версію 2 за замовчуванням, добре, якщо ні, тоді ми використовуємо її ТАК або ТАК 😀

      Дякую за коментар

  3.   Слі - сказав він

    Дуже хороша стаття, я знав кілька речей, але одна річ, яка мені ніколи не зрозуміла, - це використання ключів, насправді що це таке і які переваги це має, якщо я використовую ключі, чи можу я використовувати паролі ??? Якщо так, чому це підвищує безпеку, а якщо ні, як отримати доступ до нього з іншого ПК?

  4.   Адіан - сказав він

    З привітанням, я встановив debian 8.1, і я не можу підключитися зі свого ПК з Windows до debian за допомогою WINSCP, чи потрібно мені використовувати протокол 1? будь-яка допомога .. спасибі
    Адіан

  5.   Франксанабрія - сказав він

    Вас може зацікавити це відео про openssh https://m.youtube.com/watch?v=uyMb8uq6L54

  6.   Плитка - сказав він

    Я хочу спробувати тут деякі речі, кілька я вже пробував завдяки Arch Wiki, інші через лінощі чи відсутність знань. Я збережу його для запуску RPi