
これはフォーラムでの私の最初の質問ですので、私の問題に関する重要な情報を見逃していたとしても怒らないでください。
私はDebian 8を使用しており、SSSDを使用してActive Directoryドメイン(Windows Server 2012)に参加しました。このチュートリアル。
すべて正常に動作し、AD アカウントでログインできます。さらに、このサーバーに接続できるユーザーを集めるために Active Directory グループを作成しました。
次のコマンドでこのグループを許可します:
realm permit -g [email protected]
これまでのところ、すべて正常であり、Active Directory アカウントを使用して Linux サーバーに初めて接続すると、 が/home/domain/user
作成されます。
ただし、1 人のユーザーのサーバーへの接続権限を取り消したい場合 (そのため、グループからアカウントを削除します)、そのフォルダーは/home/domain/user
サーバー上に残り、さらに、ルート アカウント (または sudo 権限を持つアカウント) は、権限がなくなったユーザーに接続できます (警告メッセージが表示されますAccess Denied (ignored)
)。
最後に、許可しないようにする唯一の方法su <deleted user>
は、AD アカウントを削除することです (ただし、権限を取り消すたびに AD アカウントを削除することはできません)。
私の意見では、これはひどいセキュリティ問題です。AD アカウントの権限を取り消すと、Linux サーバー上のユーザー (およびそのフォルダー) を確実に削除することは可能ですか?
AD と SSSD 間の認証に関する情報を共有していただけますか?
以下の設定ファイルを参照してください:
の内容/etc/nsswitch.conf
:
passwd: compat sss
group: compat sss
shadow: compat sss
gshadow: files
hosts: files dns
networks: files
protocols: db files
services: db files sss
ethers: db files
rpc: db files
netgroup: nis sss
sudoers: files sss
の内容/etc/sssd/sssd.conf
:
[sssd]
domains = mydomain.com
config_file_version = 2
services = nss, pam
[domain/mydomain.com]
ad_domain = mydomain.com
krb5_realm = MYREALM.COM
realmd_tags = manages-system joined-with-samba
cache_credentials = True
id_provider = ad
krb5_store_password_if_offline = True
default_shell = /bin/bash
ldap_id_mapping = True
use_fully_qualified_names = True
fallback_homedir = /home/%d/%u
access_provider = simple
simple_allow_groups = MyGroupAllowed
SSSD を使用する前に、Winbind を使用しようとしましたが、同じ問題が発生しました。
ご回答有難うございます。
答え1
私の意見では、これはひどいセキュリティ問題です。
sudo
では、ユーザーが Linux サーバー上のアカウントに接続できるという事実はセキュリティ上の問題だとお考えですか?sudo
最初に操作を実行したユーザーを含め、ユーザーがそのアカウントで行ったすべての操作は、それに応じてログに記録されますsudo
。
実行できることは、デーモンに LDAP をポーリングさせてアカウントを同期させることです。デーモンがボックスに接続できる限り、すべての Linux ボックスに存在する必要はありません。
編集: 前進するためのもう 1 つの方法は、Kerberos キャッシュが削除されていることを確認することです。kdestroy
in を使用します/etc/bash.bash_logout
。この方法では、ユーザーが実行できる唯一の「害」はローカルであり、root はローカルで何でも実行できるため、いずれにしてもその害は発生します。
注: これは Windows と非常によく似ており、ローカル管理者は簡単にローカル システムになることができ、ローカル システムは現在ログインしているユーザーになりすますことを含め、ボックス上ですべてを実行できます。また、kdestroy
ログアウト時に使用すると、Windows の動作がエミュレートされます。
これが、あなたの質問が私にとって驚きだった理由です。さらに悪いことに、実際には、Windows で特定の監査ルールを設定しない限り、ローカル システムがユーザーを偽装したり、「現在このローカル システム セッションを制御して、次のように操作しているjdoe
」ユーザーを確認したりすることはできません。