Active Directoryを使用してLinuxユーザーを認証する方法


10

Active Directoryを使用してLinux(Debian)ボックスでユーザーを認証するためのベストプラクティスは何ですか?

私がそれを機能させる方法は、ADユーザーをグループに追加することです。たとえば、linux管理者またはlinux webserverとし、グループメンバーシップに基づいて、特定のサーバーへのアクセスを許可するかどうかを指定します。理想的には、標準的な方法で維持されるのはrootアカウントのみです。

これを行う私の目標は次のとおりです。

  • 1か所でパスワードの変更を許可するには
  • 特定のユーザーに、AD資格情報を使用してLinuxサーバーへのアクセスを自動的に許可するには
  • すべてのユーザー情報を1つのデータベースにまとめる

私が避けたいことは次のとおりです。

  • Active Directory管理者が管理するのが難しい/直観に反するもの
  • 何らかの理由でADサーバーに到達できない場合にユーザーをロックアウトする(つまり、何らかの方法で資格情報をキャッシュする必要がある)
  • 次回サーバーをアップグレードするときに壊れる、複雑すぎる、または標準的でないもの。

回答:



4

あなたが探しているソフトウェアは、同様にオープンと呼ばれています。

彼らのページから:

  • コマンドラインまたはGUIから、Windows以外のシステムを1つの手順でActive Directoryドメインに参加させる
  • WindowsとWindows以外の両方で、単一のユーザー名とパスワードでユーザーを認証します
  • Windows以外のユーザーとWindowsユーザーに同じパスワードポリシーを適用する
  • 一方向および双方向のフォレスト間信頼で複数のフォレストをサポート
  • ドメインコントローラーがダウンした場合に備えて資格情報をキャッシュします
  • SSHおよびPuttyにシングルサインオンを提供します
  • Kerberos、NTLM、およびSPNEGOをサポートする次世代認証エンジン
  • Active Directoryへのスキーマの変更は不要

ここでは一部のマシンで使用していますが、問題なく動作するようです。

http://www.likewise.com/products/likewise_open/


Like Openにはdebianリポジトリがありますか?これは、セキュリティパッチを管理する上で重要です。
ブレント

1
Ubuntuパッケージがあります:パッケージ:likewise-open状態:インストールされていませんバージョン:4.1.2982-0ubuntu1優先度:オプションセクション:netメンテナー:Ubuntu Core Developers <ubuntu-devel-discuss@lists.ubuntu.com>
jay_dubya

私が言うことができることから、これは独自のソリューションであり、LDAP + Kerberosを使用して上記のすべてのもの(sans gui)を実行できます。Windowsドメインを使用している場合、そのほとんどが自動構成されます。
TheFiddlerWins

4

ほとんどのディストリビューションで外部ソフトウェアを使用する理由はありません。

Debian / Ubuntuの場合、libnss-ldapおよびlibpam-krb5を使用してそれを行うことができます。それを100%にするためのいくつかのトリックがあります。これは、Linuxユーザー用に「unixHomeDirectory」が入力されていること、LinuxボックスがWindowsシステムと共通のNTPを使用していること(Kerberosで必要)、およびプレーンテキストのNSSルックアップ(パスワードではなくグループメンバーシップ情報など)で問題がないことを前提としています。 TLSを使用しますが、設定が複雑になります)。TLSを使用するように設定されていない限り、PAMでpam_ldapをパスワードまたは認証ソースとして使用しないでください。

/etc/ldap.conf

# LDAP Configuration for libnss-ldap and libpam-ldap.
# Permit host to continue boot process with out contacting LDAP server
bind_policy soft
# Define LDAP servers to use for queries, these must be Global Catalog servers
uri ldap://ldap.site.company.local
# Define root search location for queries
base dc=company,dc=local
#debug 1
# LDAP version, almost always going to be v3, it is quite mature
ldap_version 3
# Username used to proxy authentication. You can have this in a separate file owned by root for security OR use TLS/SSL (see man page)
# Do NOT use LDAP for authentication if you are using plain text binds, use Kerberos instead (and LDAP for authorization only). See libpam-krb5.
binddn cn=ldap-auth-svc,ou=ldap,ou=services,dc=site,dc=company,dc=local
# Password for proxy acct
bindpw SooperSekeretPazzwerd
#  TCP port to perform queries on, 3268 is a Global Catalog port which will reply for all users in *.company.local
port 3268
# Search range scope (sub = all)
scope sub
# Tell the client to close TCP connctions after 30 seconds, Windows will do this on the server side anyways, this will prevent errors from showing up in the logs.
 idle_timelimit 30
# Expect queries for group membership to return DN for group members instead of usernames (lets you use MSAD group membership seamlessly)
nss_schema rfc2307bis
# Filters - User accounts must have a UID >= 2000 to be recognized in this configuration and must have a unixHomeDirectory defined.
nss_base_group dc=company,dc=local?sub?&(objectClass=group)(gidNumber=*)
nss_base_user dc=company,dc=local?sub?&(objectClass=user)(!(objectClass=localputer))(uidNumber>=2000)(unixHomeDirectory=*)
nss_base_shadow dc=company,dc=local?sub?&(objectClass=user)(!(objectClass=localputer))(uidNumber>=2000)(unixHomeDirectory=*)
# Object Class mappings.  You may want to have the posixAccount to map to "mail" and have users login with their email addresses, i.e.  "nss_map_objectclass posixAccount mail".
nss_map_objectclass posixAccount user
nss_map_objectclass shadowAccount user
nss_map_objectclass posixGroup group
# Attribute mappings.
nss_map_attribute uniqueMember member
nss_map_attribute uid sAMAccountName
nss_map_attribute homeDirectory unixHomeDirectory
nss_map_attribute shadowLastChange pwdLastSet
# Attribute in LDAP to query to match the username used by PAM for authentication
pam_login_attribute sAMAccountName
# Filter for objects which are allowed to login via PAM
pam_filter objectclass=User

LinuxボックスがADを認識しているDNSサーバーを使用している場合、/ etc / krb5.confを編集する必要はありません(適切なSRVレコードを持つ_msdcsゾーンは解決可能です)。

/etc/nsswitch.confには、ユーザー、グループ、シャドウ用の「ファイルLDAP」が必要です。

SSSDを使用するRed Hatの場合:

/etc/sssd/sssd.conf

[domain/AD]
id_provider = ldap
auth_provider = krb5
chpass_provider = krb5
access_provider = ldap

ldap_uri = ldap://ldap.company.local:3268/
ldap_search_base = dc=company,dc=com
ldap_default_bind_dn = cn=ldap-auth-svc,ou=ldap,ou=services,dc=site,dc=company,dc=local
ldap_default_authtok = SooperSekeretPazzwerd
ldap_schema = rfc2307bis
ldap_user_object_class = user
ldap_group_object_class = group
ldap_user_name = sAMAccountName
ldap_user_home_directory = unixHomeDirectory
enumerate = true
ldap_tls_reqcert = never
ldap_tls_cacertdir = /etc/openldap/cacerts

ldap_id_use_start_tls = False
cache_credentials = True
krb5_realm = SITE.COMPANY.COM
case_sensitive = false
[sssd]
services = nss, pam
config_file_version = 2

domains = AD
[nss]
filter_users = root,named,avahi,nscd

3

私はLike-Openを使用しましたが、バグが多く信頼性が低いことがわかりました。昨年、私はLinuxとMacの両方でCentrifyに切り替えましたが、それをあまり変更する必要がありませんでした。Centrifyのconfファイル構成は、外部ツールでの操作が必要なLike-Openのレジストリファイル構成よりもはるかに好みます。

http://www.centrify.com/express/free-active-directory-tools-for-linux-mac.asp


0

半径を評価する必要があります。pam-radiusを使用するようにLinuxボックスを構成し、MS radiusプラグインNPSをインストールします。ADと通信します。こちらのPDF eガイドで概要を確認できます:http ://www.wikidsystems.com/learn-more/two-factor-authentication-white-papers (登録なし)。二要素認証ビットは無視してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.