Работа SSH
на альтернативном порту больше не считается безопасностью. Это лишь добавляет немного неясности и добавляет сложности вашим пользователям. Это добавляет ноль препятствий для людей, которые хотят сломать вашу сеть, которые используют автоматические сканеры портов и не заботятся о том, на каком порту он работает.
Если вы хотите повысить безопасность в системе, которая разрешает удаленный входящий в систему SSH через Интернет, управляйте своими пользователями в соответствии sshd_config
с указанным @Anthon, а затем также реализуйте защиту непосредственно в PAM.
Создайте две группы lusers
и rusers
. Добавьте удаленных мобильных пользователей в rusers
группу. Используйте модуль PAM pam_succeed_if.so, чтобы разрешить доступ этим пользователям. Добавьте строки в ваш pam config для 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 на одном порту, что упрощает ваше собственное управление.
edit 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
, он сможет войти с удаленного компьютера.Вы можете добавить что-то вроде этого в свой
/etc/ssh/sshd_config
:Выше предполагается, что разрешенные удаленные пользователи имеют имена
mobileuser1
иmobileuser2
, и что ваша доверенная сеть 10.0.0.0 с маской подсети 255.0.0.0.Это позволяет двум мобильным пользователям входить в систему из любого места, а все - в доверенную сеть. Любому пользователю, который не соответствует ни одному из этих шаблонов (например,
foo
вход пользователя с удаленного компьютера), будет отказано в доступе.источник
Вы можете сделать это, запустив два демона ssh и два
sshd_config
файла. Скопируйте существующий (например, из/etc/ssh/sshd_config
/etc/ssh/sshd_alt_config
и в альтернативной конфигурации конфигурации) (соman
страницы дляsshd_config
:порт
AllowUsers
Вы, вероятно, хотите иметь альтернативный журнал ssh в другом файле и, например, следовать тому, что записано в этот файл, чтобы заметить ошибочные попытки входа в систему.
источник