約5人のユーザー(セキュリティ=ユーザー)のSambaサーバーがあり、これらのユーザーが自分の関与なしにパスワードを変更する方法が欲しいので、次のようにします。これは安全ですか? (より単純な)より良いアプローチはありますか?以前はSWATがありましたが、それ以上はありませんでした。
$ 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パスワード変更にこの制限付きアカウントしか使用できません...サーバーを探索する必要はありません!
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
すべてのユーザーに同じダミーアカウントへのアクセス権を与えることは、賢く聞こえません。何にもアクセスできないようにロックしても、smbpasswd
は互いのパスワードを変更する可能性があります。そして、悪意のある権限昇格攻撃の可能性は常にあります。
基本的には、smbpasswd
アカウントと同等のものを保持しながら、自分のユーザーアカウントからのみnologin
コマンドを実行できるようにすることです。
これは、sshd_configの「ForceCommand」オプションを使用して実現できます。
これを試して:
Sambaアカウントのメンバーシップを持つ各ユーザーを同じグループに付与します。この例では、「sambaOnly」としましょう。
#From Root
groupadd sambaOnly
usermod -a -G sambaOnly Joe
次に、sshd_configファイルを次のように変更します。
#From Root
cat << EOF >> /etc/ssh/sshd_config
Match Group sambaOnly
ForceCommand smbpasswd
EOF
プレスト。私の理解(および簡単なテスト)から、これはSSH経由でログインすると自動的にsmbpasswd
コマンドが実行され、それに応じてプロンプトが表示されることを意味します。彼らはシェルにアクセスする機会を得ることは決してありません。コマンドが完了すると、自動的に切断され、再びシェルにアクセスする機会がありません。
これにより、リモートからマシンへのすべてのアクセスが削除されるかどうかは100%わかりません。たとえば、同じマシンで別のSSHサーバーを実行していて、それらをForceCommand
していない場合、アクセス制御構成に応じて、それらを介してログインできます。
また、端末に物理的にアクセスする機会があれば、ログインできます。
ただし、ほとんどの場合、これはかなり強力なアクセス制御だと思います。