Запуск SSH
на альтернативному порту вже не вважається безпекою. Це лише додає трохи неясності та додаткового кроку складності для ваших користувачів. Це додає нульових перешкод для людей, які хочуть зламати вашу мережу, хто використовує автоматизовані сканери портів і не байдуже, який порт працює.
Якщо ви хочете підвищити безпеку в системі, яка дозволяє віддаленому sshd_config
вхідному SSH на базі Інтернету, керуйте своїми користувачами як зазначено в @Anthon, а також впроваджуйте безпеку безпосередньо в PAM.
Створіть дві групи lusers
та rusers
. Додайте користувачів до віддалених мобільних користувачів rusers
. Використовуйте PAM модуль pam_succeed_if.so, щоб дозволити доступ до цих користувачів. Додайте рядки до своєї конфігурації пам’яті для ssh:
account sufficient pam_succeed_if.so user ingroup lusers
account sufficient pam_succeed_if.so user ingroup rusers
Деякі модулі pam_succeed_if.so можуть вимагати використання трохи іншого синтаксису, наприклад group = lusers
.
Тоді ви не лише sshd
обмежуєте користувачів, які можуть підключитися, але у випадку помилки sshd
ви все ще маєте захист, який пропонує обмеження на основі PAM.
Ще одним кроком для віддалених користувачів є змусити використовувати ssh_keys з парольними фразами. Так, місцеві користувачі можуть увійти за допомогою ключів або паролів, але віддалені користувачі повинні мати ключ, і якщо ви створите для них ключі, ви можете переконатися, що в ключі є приєднані паролі фрази. Таким чином, обмежуючи доступ до місць, у яких фактично є ключ SSH та парольна фраза. А також обмеження потенційних векторів атаки, якщо пароль користувача дотримується.
В sshd_config
:
змінити 2 налаштування:
ChallengeResponseAuthentication yes
і
PasswordAuthentication yes
до:
ChallengeResponseAuthentication no
і
PasswordAuthentication no
Отже, за замовчуванням тепер дозволяється лише автентифікація ключа. Тоді для місцевих користувачів ви можете скористатися match
налаштуваннями конфігурації, щоб змінити типовий для місцевих користувачів. Припустимо, що ваша локальна приватна мережа - 192.168.1.0/24, додайте до sshd_config
:
Match Address 192.168.1.0/24
PasswordAuthentication yes
Тепер місцеві користувачі можуть з'єднуватися з паролями чи ключами, а віддалені користувачі змушені будуть використовувати ключі. Вам належить створити ключі з фразовими фразами.
В якості додаткової переваги вам потрібно керувати лише одним sshd_config
, і вам потрібно запустити ssh лише на одному порту, що полегшує ваше власне управління.
редагувати 2017-01-21 - Обмеження використання authorized_keys
файлів.
Якщо ви хочете переконатися, що користувачі не можуть просто генерувати ключ ssh та використовувати його з authorized_keys
файлом для входу, ви можете контролювати, встановивши певне місце для sshd, шукати авторизовані ключі.
У /etc/ssh/sshd_config
зміні:
AuthorizedKeysFile %h/ssh/authorized_keys
до чогось типу:
AuthorizedKeysFile /etc/.ssh/authorized_keys/%u
Вказуючи на керований каталог, що користувачі не мають дозволу писати, що означає, що вони не можуть генерувати власний ключ і використовувати його, щоб обходити правила, які ви ввели.
lusers
групи, але не є,rusers
створить ключ і оновить їх~/.ssh/authorized_keys
, вони зможуть увійти з віддаленого входу.