У меня есть экземпляр AWS Amazon Linux EC2, работающий с sftp / ftp-сервером (vsftp).
В целях безопасности я хочу защитить систему с помощью передового решения для экземпляров AWS. Моя цель - разрешить одной группе с некоторыми пользователями доступ по ssh (включая ключ аутентификации) и запретить всем другим пользователям доступ по ssh. Другой группе должен быть разрешен доступ к sftp и ftp.
Я видел, что PAM активирован в sshd_config по умолчанию AMI.
Допустим, у вас есть 2 группы в /etc/passwd
:
ssh_users
ftp_users
Разрешить только ssh_users
для входа через SSH добавьте эту строку в /etc/ssh/sshd_config
:
AllowGroups ssh_users
Из man sshd_config
: AllowGroups - если указано, вход разрешен только для пользователей, чья основная группа или список дополнительных групп соответствует одному из шаблонов.
Разрешить вход по FTP только для членов ftp_users
группа, которую вы можете использовать, например pam_listfile
(видеть man pam_listfile
подробнее).
Сначала напишите название группы, например, /etc/pam.d/vsftpd-groups.conf
~ # echo ftp_users > /etc/pam.d/vsftpd-groups.conf
Затем добавьте pam_listfile
на ваш /etc/pam.d/vsftpd
файл:
auth required pam_env.so
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 500 quiet
>> auth required pam_listfile.so item=group sense=allow file=/etc/pam.d/group-access.conf onerr=fail
auth required pam_deny.so
account required pam_unix.so broken_shadow
account sufficient pam_localuser.so
account sufficient pam_succeed_if.so uid < 500 quiet
>> account required pam_listfile.so item=group sense=allow file=/etc/pam.d/group-access.conf onerr=fail
account required pam_permit.so
Вы также должны посмотреть на экземпляр EC2 Группа безопасности и разрешать доступ только с известных IP-адресов пользователей SSH или FTP, если это возможно.
Это должно сработать.