Запуск 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, вони зможуть увійти з віддаленого входу.