web-dev-qa-db-ja.com

ユーザーがSambaパスワードを変更する方法

約5人のユーザー(セキュリティ=ユーザー)のSambaサーバーがあり、これらのユーザーが自分の関与なしにパスワードを変更する方法が欲しいので、次のようにします。これは安全ですか? (より単純な)より良いアプローチはありますか?以前はSWATがありましたが、それ以上はありませんでした。


サーバー上:制限付きユーザーを作成(/ bin/rbash +単一ディレクトリへのパス)

$ 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コマンドのみであるということです。 SambaユーザーのUNIXアカウントにはパスワードがありません(つまり、これらのアカウントを介したログオンは許可されていません)。 sambaユーザーは、セルフサービスのSambaパスワード変更にこの制限付きアカウントしか使用できません...サーバーを探索する必要はありません!


クライアント:ターミナルまたはPuTTYを介してSambaパスワードを変更(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
10
brucehohl

すべてのユーザーに同じダミーアカウントへのアクセス権を与えることは、賢く聞こえません。何にもアクセスできないようにロックしても、smbpasswdは互いのパスワードを変更する可能性があります。そして、悪意のある権限昇格攻撃の可能性は常にあります。

基本的には、smbpasswdアカウントと同等のものを保持しながら、自分のユーザーアカウントからのみnologinコマンドを実行できるようにすることです。

これは、sshd_configの「ForceCommand」オプションを使用して実現できます。

これを試して:

  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
    

プレスト。私の理解(および簡単なテスト)から、これはSSH経由でログインすると自動的にsmbpasswdコマンドが実行され、それに応じてプロンプトが表示されることを意味します。彼らはシェルにアクセスする機会を得ることは決してありません。コマンドが完了すると、自動的に切断され、再びシェルにアクセスする機会がありません。

これにより、リモートからマシンへのすべてのアクセスが削除されるかどうかは100%わかりません。たとえば、同じマシンで別のSSHサーバーを実行していて、それらをForceCommandしていない場合、アクセス制御構成に応じて、それらを介してログインできます。

また、端末に物理的にアクセスする機会があれば、ログインできます。

ただし、ほとんどの場合、これはかなり強力なアクセス制御だと思います。

1
Geraden