Método para os usuários mudarem a senha do Samba

10

Eu tenho um servidor Samba para cerca de 5 usuários (segurança = usuário) e quero que esses usuários alterem suas senhas sem o meu envolvimento, para que eu tenha a seguinte idéia. Isso é seguro? Existe uma abordagem melhor (como em mais simples). Costumávamos ter SWAT para isso, mas não mais.


No servidor: crie usuário restrito (/ bin / rbash + PATH para o diretório único)

$ 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

Essa idéia aqui é que apenas o comando sambpasswd pode ser executado pelo usuário pwchange. As contas unix para os usuários do Samba não possuem senhas (ou seja, logon através dessas contas não é permitido). Os usuários do samba só poderiam usar essa conta restrita para alterações de senha do Samba de autoatendimento ... sem explorar o servidor!


Cliente: Altere a senha do Samba via Terminal ou Putty (Windows)

user1@A3700:~$ ssh [email protected]

pwchange@V220:~$ smbpasswd -U user1
Old SMB password:
New SMB password:
Retype new SMB password:
Password changed for user user1
brucehohl
fonte
Mas eu pensei que smbpasswdera para usuários e administradores alterarem suas senhas ... É isso que você quer?
George Udosen
Nesse caso, as contas Unix dos usuários não possuem senhas; portanto, o usuário1 não pode fazer logon como usuá[email protected]. O servidor Samba foi configurado como "security = user" e as restrições de arquivo foram definidas no smb.conf. Os utilizadores não foram autorizados um início de sessão Unix como os subjacentes permissões de arquivo Unix eram mais permissivo do que a combinação de Samba e Unix permissões de arquivo (Unix estendido ACLs não foram usadas.)
brucehohl
Na minha faculdade tivemos uma auto-serviço portal qual os usuários podem auth usando a verificação do ID e sms, e no fundo que emitiu o comando smbpasswd
Rabin

Respostas:

1

Dar a todos acesso à mesma conta fictícia não parece inteligente. Mesmo que você o bloqueie para ter acesso a nada, mas smbpasswdeles ainda poderão alterar as senhas um do outro. E sempre há a possibilidade de um ataque malicioso de escalonamento de privilégios.

Essencialmente, o que parece que você deseja é permitir que eles executem SOMENTE o smbpasswdcomando a partir de sua própria conta de usuário, mantendo um equivalente a uma nologinconta.

Isso pode ser conseguido com o uso da opção "ForceCommand" no seu sshd_config.

Tente o seguinte:

  1. Conceda a cada usuário com uma conta Samba no mesmo grupo. Para o nosso exemplo, digamos "sambaOnly":

    #From Root
    groupadd sambaOnly
    usermod -a -G sambaOnly Joe
    
  2. Em seguida, queremos alterar nosso arquivo sshd_config para ter o seguinte:

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

Presto. Pelo que entendi (e teste breve), isso significa que, quando eles fizerem login via SSH, o smbpasswdcomando será executado automaticamente e serão solicitados de acordo. Eles nunca terão a chance de ter acesso ao shell. Depois que o comando é concluído, eles são desconectados automaticamente, nunca mais tendo a chance de ter acesso ao shell.

Não tenho 100% de certeza de que isso remova todo o acesso à máquina remotamente. Por exemplo, se você estiver executando um servidor SSH diferente na mesma máquina que não ForceCommandos usa , eles poderão fazer login através disso, dependendo da sua configuração de controle de acesso.

Além disso, se eles tiverem a oportunidade de acesso físico a um terminal, poderão fazer login.

No entanto, acho que para a maioria das situações esse é um controle de acesso bastante forte.

Geraden
fonte