AD +ファイルサーバーとしてのSamba4

この記事では、Samba4をドメインコントローラーとして使用するための準備手順と、Samba4に基づく追加のファイルサーバーについて説明します。 最後に何が得られますか? samba4で構成された2台のサーバー。1台目はドメインコントローラーの役割で、2台目はユーザーファイルを持つメンバーサーバーの役割です。 私はこのバンドルの機能を約1ヶ月間達成しましたが、シムのために、最終的なレシピを共有しません、単に権利を持っていません...







少し背景:会社はLDAPバックエンドを備えたsamba3.6に基づくファイルサーバーを使用します。これには、アクセス権を持つすべてのユーザーとグループのリストが含まれます。 ディレクトリへのアクセス権はxattr_acl(拡張ファイル属性)を使用して設定され、アクセスグループを持つユーザーのリストはLDAPに保存されます。 実際、このインフラストラクチャからsamba4に移行する必要があります...



1)samba4用に2つのサーバーを準備しています。SUSELinux Enterprise 11 Service Pack 3(SLES11 SP3)ディストリビューションをエンタープライズ標準として使用しているため、それに基づいてすべてを展開します。 その後、ソースからsambaを収集できます。これはオプションです。sernetの既製のアセンブリを使用します。これは、ポータルに登録するだけで無料で入手できます-Portal Enterprise Samba



Sernetは、いくつかのディストリビューション(Debian、Ubuntu、RHEL、CentOS、SLES、openSUSE)用にsambaを構築します。

Samba4バージョン4.1.6を使用しました



2)私たちのDCとして機能する最初のサーバーに、sernet-samba-adをインストールします。 問題がある場合は、公式の指示-Samba AD DC HOWTOをご覧ください 。 DNSサーバーに将来のドメイン名を登録し、新しいサーバーを示すことを忘れないでください。



次に、samba-toolsを使用してドメインを作成します。



samba-tool domain provision --use-rfc2307 --interactive
      
      





システムは、たとえばドメイン名など、指定する必要があるいくつかのパラメーターを要求し、パスワードも要求します。 実際にはドメイン名のみを指定する必要があり、他のすべての質問にはデフォルトで回答を残すことができます。 管理者パスワードは、Windowsの標準パスワードポリシー、つまり、 少なくとも1つの小文字と1つの大きな文字、数字、および少なくとも8文字が必要です。



新しく構成されたsamba構成Kerberosをデフォルトの場所にコピーします。



 cp /var/lib/samba/private/krb5.conf /etc/krb5.conf
      
      





Kerberosが正しく機能していることを確認するには、krb5-clientをインストールし、認証が機能していることを確認します。



 kinit administrator@EXAMPLE.COM klist
      
      





すべてが問題ない場合、klistはチケットに関する情報を表示する必要があります。



ファイル/ etc / default / sernet-sambaを修正する必要があります

行SAMBA_START_MODE =を次の行に編集します。



 SAMBA_START_MODE="ad"
      
      





その後、Samba自体を実行できます



 /etc/init.d/sernet-samba-ad start
      
      





起動が成功した場合、ドメインコントローラーが既に展開されていると想定できます。



ファイル/etc/nsswitch.confを編集して、システムがドメインおよびグループのユーザーを表示し、通常はファイルへの権限を設定できるようにします。 これらの2行を次の形式にします。



 passwd: compat winbind group: compat winbind
      
      





システムを再起動し、機能するかどうかを確認します... getent passwdおよびgetent groupを使用します。 ドメインのグループとユーザーが表示されます。 このステップに関する詳細な公式指示を読むことができます-Samba4 / Winbind



ドメインへの管理のためにWindowsマシンに入ることは残っていますが、これで問題はないと思います。



3)ドメインに入力したWindowsマシンに、管理パックをインストールします。 ADのユーザー管理に機器を使用しています。







2番目のサーバーでのxattr_aclの将来の通常操作のために、各グループとユーザーにunix uid \ gidを割り当てる必要があります。







4)2番目のサーバーの準備を開始します。これは、メンバーサーバーとして機能し、ドメイン内のファイルサーバーになります。



sssdをインストールします。標準のSLES11リポジトリにはバージョン1.9.4があり、非常に適しています。 sssd-toolsもインストールします。 ドメインからUNIX属性を持つユーザーを取得するには、sssdが必要です。 構成の詳細については、公式の指示- ローカルユーザー管理と認証/ sssdをご覧ください。

Kerberosを介してADとの通信を構成します。



最初のサーバー(DC)で、Kerberosからキータブをエクスポートする必要があります。



 samba-tool domain exportkeytab /etc/krb5.sssd.keytab --principal=__DC$ chown root:root /etc/krb5.sssd.keytab chmod 600 /etc/krb5.sssd.keytab
      
      





セキュリティのために、追加の権利を切り捨てます。 同じ方法で、keytabファイルを2番目のサーバーにコピーします。



sssd.confの編集



 [sssd] services = nss, pam config_file_version = 2 domains = default [nss] [pam] [domain/default] ad_hostname = smbad.samba4.servdesk.ru ad_server = smbad.samba4.servdesk.ru ad_domain = samba4.servdesk.ru ldap_schema = rfc2307bis id_provider = ldap access_provider = simple # on large directories, you may want to disable enumeration for performance reasons enumerate = true auth_provider = krb5 chpass_provider = krb5 ldap_sasl_mech = gssapi ldap_sasl_authid = smbad$@SAMBA4.SERVDESK.RU krb5_realm = SAMBA4.SERVDESK.RU krb5_server = smbad.samba4.servdesk.ru krb5_kpasswd = smbad.samba4.servdesk.ru ldap_krb5_keytab = /etc/krb5.sssd.keytab ldap_krb5_init_creds = true ldap_referrals = false ldap_uri = ldap://smbad.samba4.servdesk.ru ldap_search_base = dc=samba4,dc=servdesk,dc=ru dyndns_update=false ldap_id_mapping=false ldap_user_object_class = user ldap_user_name = samAccountName ldap_user_uid_number = uidNumber ldap_user_gid_number = gidNumber ldap_user_home_directory = unixHomeDirectory ldap_user_shell = loginShell ldap_group_object_class = group ldap_group_name = cn ldap_group_member = member
      
      





自分でDCとドメインの名前を修正することを忘れないでください。 sssdを自動実行に入れ、サーバーを再起動します。

次に、キャッシュをリセットして、ユーザーとグループを確認できます。



 sss_cache -UG getent group ... Schema Admins:*:10110:Administrator Domain Users:*:10103: DnsAdmins:*:10117: servdesk:*:10102:test
      
      





リストには、WindowsのADスナップインで設定したuid \ gidを持つグループとユーザーが含まれている必要があります。



5)2番目のサーバーでsamba4を構成し、sernet-samba-nmbd、sernet-samba-smbd、sernet-samba-winbind、およびそれらのすべての依存関係をインストールします。 設定の詳細については、公式の指示-Samba /ドメインメンバーをご覧ください。



smb.confを作成すると、私のファイルは次のようになります。



 [global] workgroup = SAMBA4 security = ADS realm = SAMBA4.SERVDESK.RU # map untrusted to domain = Yes idmap config *:backend = tdb idmap config *:range = 70001-80000 # idmap config SAMBA4:default = yes idmap config SAMBA4:backend = ad idmap config SAMBA4:schema_mode = rfc2307 idmap config SAMBA4:range = 500-40000 # idmap_ldb:use rfc2307 = yes winbind nss info = rfc2307 winbind trusted domains only = no winbind use default domain = yes # winbind enum users = yes # winbind enum groups = yes #create mask = 0777 #directory mask = 0777 vfs objects = acl_xattr btrfs map acl inherit = Yes store dos attributes = Yes [data1] path = /data1/ read only = no
      
      





設定を自分で修正することを忘れないでください。ドメイン名を自分のものに変更する必要があります。



hostsファイルを修正します。メンバーサーバーの名前を直接指定する必要があります。そうしないと、ADでDNSゾーンが自動的に更新されません。



 127.0.0.1 localhost 127.0.0.1 samba3.samba4.servdesk.ru samba3
      
      





ドメインに入るための手順を実行します。



 net ads join -U administrator
      
      





管理者パスワードを入力する必要があります。



実際には、メンバーサーバーは既にドメインにあります。

Windowsからマシンを試してログインパスワードで接続し、いくつかのフォルダーを作成して権限を確認できます...

フォルダー123を作成し、権限を確認します。



 getfacl /data1/123 # file: data1/123 # owner: test # group: Domain\040Users user::rwx user:test:rwx group::rx group:servdesk:rwx group:Domain\040Users:rx mask::rwx other::rx default:user::rwx default:user:test:rwx default:group::rx default:group:servdesk:rwx default:group:Domain\040Users:rx default:mask::rwx default:other::rx
      
      





ご覧のとおり、すべての権限が正しく設定されています。



その後、新しいドメインへのユーザーの転送を開始し、希望に応じてフォルダーにアクセス許可を設定できます。

glusterfsとsamba4を組み合わせてフォールトトレラントファイルサーバーを作成することもできますが、それはまったく別の話です...



誰か質問があれば、喜んでお手伝いします。



All Articles