CentOS не предназначен для обновления между основными выпусками, и AWS предложит вам уничтожить экземпляр и запустить новый с помощью CentOS 7 AMI.
Использование access.conf
для предотвращения входа по ssh и только по ssh не работает. Однако это можно сделать, используя pam_access
с другим конфигурационным файлом.
Во-первых, PAM должен быть настроен для использования доступа pam _. Может быть не по умолчанию. Должна быть строка с account required pam_access.so
в конфигурации PAM sshd
, скорее всего, через файл конфигурации password-auth
, который, скорее всего, будет включен в конфигурацию sshd.
В Fedora можно использовать authselect
, чтобы разрешить конфигурации PAM использовать доступ pam _:
sudo authselect enable-feature with-pamaccess
В этот момент можно подумать, что доступ можно предотвратить с помощью строки в access.conf
, такой как:
-:username:sshd
Это не работает, чтобы предотвратить имя пользователя от доступа при использовании службы sshd
. Причина в этом бите из справочной страницы pam _access :
... or PAM service names in case of non-networked logins.
Поскольку ssh является сетевым логином (Поле PAM RHOST
определено ), имя службы не используется. Используются только имя удаленного хоста, IP-адрес, сетевая группа и т. д.
Эта справочная страница не совсем точна, так как имя службы PAM используется только в том случае, если логин не -сетевой и не -tty . Локальные логины, например. в приглашении входа в консоль, приветствии на рабочем столе или запущенном sudo будет использоваться связанный дисплей tty или X, а не имя службы.
По сути, имя службы используется только для фонового входа в систему, например, с помощью atd или crond. Таким образом, вы не можете заблокировать только ssh таким образом, поскольку в access.conf нет способа отфильтровать ssh по сравнению с чем-либо еще.
Можно ограничить все удаленные входы в систему, не только через ssh, но и во все другие сервисы, через:
+:username:LOCAL
-:username:ALL
Чтобы PAM применялся только к ssh, необходимо настроить использование другого файла access.conf для sshd. Добавьте такую строку в /etc/pam.d/sshd
, возможно, непосредственно перед строкой, содержащейaccount include password-auth
:
account required pam_access.so accessfile=/etc/security/access-sshd.conf
Теперь создайте /etc/security/access-sshd.conf
с элементами управления доступом, которые будут применяться только к входам в систему ssh. Примеры:
# Don't allow user 'username' access
-:username:ALL
# Only allow user 'trusted' access and no one else
-:ALL EXCEPT trusted:ALL
# Only allow user 'username' when they are coming from localhost
+:username:127.0.0.1 ::1
-:username:ALL
Обратите внимание, что использование localhost
вместо числового адреса IPv4 и IPv6 должно работать, но не для меня.