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

9

Eu tenho um servidor Samba para cerca de 5 usuários (segurança = usuário) e quero uma maneira para esses usuários alterarem suas senhas sem o meu envolvimento, então tenho a seguinte ideia. Isso é seguro? Existe uma abordagem melhor (como em mais simples). Nós costumávamos ter SWAT para isso, mas não mais.

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

$ 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

Esta ideia aqui é que somente o comando sambpasswd pode ser executado por   o usuário pwchange. As contas unix para os usuários do Samba fazem   não tem senhas (ou seja, faça o login 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
    
por brucehohl 21.02.2016 / 04:39

1 resposta

0

Dar a todos eles acesso à mesma conta fictícia não parece inteligente. Mesmo se você bloqueá-lo para ter acesso a nada, MAS smbpasswd eles ainda poderiam mudar as senhas do outro. E há sempre a possibilidade de um ataque de escalonamento de privilégios mal-intencionados.

Essencialmente, o que parece que você quer é permitir que eles executem APENAS o comando smbpasswd da própria conta de usuário enquanto ainda têm uma conta equivalente a nologin .

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

Tente isto:

  1. Conceda a cada usuário uma conta da conta do Samba para o mesmo grupo. Para 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 testes breves), isso significa que, quando eles fizerem login via SSH, terão automaticamente o comando smbpasswd executado 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.

Eu não estou 100% certo de que isso remove todo o acesso à máquina remotamente. Por exemplo, se você estiver executando um servidor SSH diferente na mesma máquina que não ForceCommand , eles poderão fazer o login por meio dele, dependendo de sua configuração de controle de acesso.

Além disso, se eles tiverem a oportunidade de acessar fisicamente um terminal, eles poderão fazer login.

No entanto, acho que na maioria das situações isso é um controle de acesso bastante strong.

    
por 28.11.2018 / 02:54

Tags