私は約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
答え1
それらすべてに同じ仮想アカウントへのアクセス権を与えることは賢明ではありません。何もアクセスできないようにロックしても、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
アクセス制御の構成に従ってそのサーバーを介してログインできます。
また、端末に物理的にアクセスできる場合はログインできます。
しかし、私はこれがほとんどの状況では非常に強力なアクセス制御だと思います。