OpenLDAPサーバーにすべて接続されている特定のクライアントマシンへのアクセスをユーザーやグループに許可する方法を本当に知りたいと思います。ユーザーがクライアントマシン自体の真正面に座っているかどうか、またはSSHで接続されているかどうかに関係なく、これを実行したいと思います。最後に、可能であればクライアントではなく、OpenLDAPサーバーからこれをすべて管理できるようにしたいと思います。
ありがとう、アレックス
クライアント構成を変更せずにこれを行うことはできないと思います。ただし、クライアントコンピューターがすべてセットアップされると、LDAPサーバーからこれを管理できるようになります。
これを実現する1つの方法は次のとおりです。
これを含むaccess_ldap.conf
ファイルを作成し、それを/etc/security
に置きます。
+:root:ALL
-:ALL EXCEPT (the_group_that_has_access):ALL
access.conf
には/etc/security/
ファイルがありますが、通常は/etc/pam.d
の一部のシステムルールセットに含まれているため、システムデーモンが「」できることを確認する必要があるため、編集がより困難になります。したがって、システムユーザー向けのルールを作成せずに、1つのグループ以外のすべてのユーザーをロックアウトすることはできません。別のファイルを用意しておくと、それほど面倒ではありません。
グループ名を囲む括弧は、その名前が実際にはグループ名であることを示していることに注意してください(pam_access.so
は、ユーザーが見つからない場合にグループを検索します。このため、括弧は不要と呼ばれる場合がありますが、これは、グループを参照するための「適切な」方法です)。
また、最初の行は、どのような場合でもrootへのアクセスを許可します。このファイルにリストされていないユーザーは2行目でロックアウトされるため、他のユーザー/グループも追加することをお勧めします。
login
とssh
にこの新しい構成を優先させたいが、他のサービスは以前と同じように機能するはずです。これを実現するには、/etc/pam.d
のlogin
ファイルとsshd
ファイルを編集して次の行を含めます。
account required pam_access.so accessfile=/etc/security/access_ldap.conf
このように、指定されたグループのメンバーのみがsshまたはログインを介してコンピューターにアクセスできます。グループメンバーシップ、つまりコンピューターへのアクセスは、LDAPで管理できます。
これは、完全にフリーソフトウェアに基づいて、私自身のソリューションが設計されたユースケースのほとんどです。
主にシステム/サービスはサービスグループのメンバーであり、サービスグループへのログイン権を持つユーザーグループを定義します。
これは、OpenLDAP ACLで実装された少しの間接参照であり、ユーザーとグループ、特にログインに必要なユーザー属性への読み取りアクセスを許可します。よくある誤解を避けるために:アクセス権を変更するためにLDAPエントリを維持するだけです。 OpenLDAPACLは静的です。
正直なところ、LDAPクライアントで構成する必要があることが1つあります。それは、バインドDNとパスワード、またはTLSクライアント証明書のいずれかのシステム資格情報です。
概念を理解し、アクセス制御要件に一致するようにデータをモデル化するには、しばらく時間がかかります。そして、それがアクセス制御に関するあなたのすべての望みを満たさないことはかなり確実です。
PS:自動書き込みが可能かどうかを知りたいので、netgroupsに基づくホストアクセス制御を使用して大規模なセットアップを行っている人の話を聞きたいです。 netgroupマップをÆ-DIRのaeSrvGroupに変換するための移行ツール。
FreeIPA も同様の目標を持っており、いわゆるHBACポリシーなどを実装してそれを実現しています。私の理解では、完全な機能セットを利用するには、IPAバックエンドで sssd を使用する必要があります。 sssdはポリシー施行ポイントです。
申し訳ありませんが、私は彼らのオンラインドキュメントに精通していないため、 FreeIPAドキュメントの概要 以外に適切なドキュメントリンクが手元にありません。