Назад | Перейти на главную страницу

AWS Amazon AMI - ограничение доступа по SFTP / SSH

У меня есть экземпляр AWS Amazon Linux EC2, работающий с sftp / ftp-сервером (vsftp).

В целях безопасности я хочу защитить систему с помощью передового решения для экземпляров AWS. Моя цель - разрешить одной группе с некоторыми пользователями доступ по ssh (включая ключ аутентификации) и запретить всем другим пользователям доступ по ssh. Другой группе должен быть разрешен доступ к sftp и ftp.

Я видел, что PAM активирован в sshd_config по умолчанию AMI.

Допустим, у вас есть 2 группы в /etc/passwd:

  1. ssh_users
  2. ftp_users

Разрешить только ssh_users для входа через SSH добавьте эту строку в /etc/ssh/sshd_config:

AllowGroups ssh_users

Из man sshd_config: AllowGroups - если указано, вход разрешен только для пользователей, чья основная группа или список дополнительных групп соответствует одному из шаблонов.


Разрешить вход по FTP только для членов ftp_users группа, которую вы можете использовать, например pam_listfile (видеть man pam_listfile подробнее).

  1. Сначала напишите название группы, например, /etc/pam.d/vsftpd-groups.conf

    ~ # echo ftp_users > /etc/pam.d/vsftpd-groups.conf
    
  2. Затем добавьте 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, если это возможно.

Это должно сработать.