Метод для пользователей, чтобы изменить пароль Samba

10

У меня есть сервер Samba для примерно 5 пользователей (security = user), и я хочу, чтобы эти пользователи могли менять свои пароли без моего участия, поэтому у меня есть следующая идея. Это безопасно? Есть ли лучший (как в более простом) подходе. Раньше для этого у нас был спецназ, но не более.


На сервере: создать пользователя с ограниченными правами (/ bin / rbash + PATH в один каталог)

$ sudo adduser --shell /bin/rbash pwchange

$ cat /etc/passwd
  pwchange:x:1001:1001:pwchange,,,:/home/pwchange:/bin/rbash

$ sudo vi /home/pwchange/.bashrc
  Add:
  export PATH=/usr/local/pwchange

$ sudo ln -s /usr/bin/smbpasswd /usr/local/pwchange/smbpasswd

Эта идея заключается в том, что пользователь pwchange может запустить только команду sambpasswd. Учетные записи Unix для пользователей Samba не имеют паролей (т.е. вход через эти учетные записи запрещен). Пользователи samba смогут использовать эту ограниченную учетную запись только для самостоятельного изменения пароля Samba ... не исследовать сервер!


Клиент: Изменить пароль Samba через Терминал или Замазку (Windows)

user1@A3700:~$ ssh pwchange@192.168.1.14

pwchange@V220:~$ smbpasswd -U user1
Old SMB password:
New SMB password:
Retype new SMB password:
Password changed for user user1
brucehohl
источник
Но я думал, smbpasswdчто пользователи и администраторы должны были менять свои пароли ... Это то, что вы хотите?
Джордж Удосен
В этом случае учетные записи пользователей Unix не имеют паролей, поэтому user1 не может войти в систему как user1@192.168.1.14. Сервер Samba был настроен как «security = user», а ограничения файла были установлены в smb.conf. Пользователям не разрешалось входить в Unix, так как базовые разрешения для файлов Unix были более разрешительными, чем комбинация разрешений для файлов Samba и Unix (расширенные ACL Unix не использовались.)
brucehohl
В моем колледже у нас был портал самообслуживания, пользователи которого могли авторизоваться с использованием проверки идентификатора и смс, а в фоновом режиме мы выполнили команду smbpasswd
Rabin

Ответы:

1

Предоставление им всем доступа к одной и той же фиктивной учетной записи не кажется разумным. Даже если вы заблокируете его, чтобы иметь доступ ни к чему, НО smbpasswdони могут изменить пароли друг друга. И всегда есть возможность злонамеренной атаки на повышение привилегий.

По сути, это звучит так, как будто вы хотите, чтобы они могли запускать ТОЛЬКО smbpasswdкоманду из своей учетной записи, но при этом иметь эквивалентную nologinучетную запись.

Это может быть достигнуто с помощью опции «ForceCommand» в вашем sshd_config.

Попробуй это:

  1. Предоставьте каждому пользователю с учетной записью Samba одну и ту же группу. Для нашего примера скажем "sambaOnly":

    #From Root
    groupadd sambaOnly
    usermod -a -G sambaOnly Joe
    
  2. Далее мы хотим изменить наш файл sshd_config, чтобы иметь следующее:

    #From Root
    cat << EOF >> /etc/ssh/sshd_config
    Match Group sambaOnly
        ForceCommand smbpasswd
    EOF
    

Presto. Из моего понимания (и краткого тестирования) это означает, что когда они входят в систему через SSH, они автоматически smbpasswdзапускают команду и получают соответствующий запрос. У них никогда не будет возможности получить доступ к оболочке. После завершения команды они автоматически отключаются, снова не имея возможности получить доступ к оболочке.

Я не уверен на 100%, что это удаляет весь доступ к машине удаленно. Например, если вы используете другой SSH-сервер на том же компьютере, на котором ForceCommandих нет, то они могут войти через него в зависимости от конфигурации управления доступом.

Кроме того, если у них есть возможность физического доступа к терминалу, они могут войти в систему.

Тем не менее, я думаю, что для большинства ситуаций это довольно сильный контроль доступа.

Geraden
источник