せいさくちゅう

FreeIPAドメイン参加のnfsサーバに samba 機能を付与してsmb共有を行ってみた.
ドメインに参加してないwindowsPC/macからアクセス可能みたい
*本来は同じストレージボリュームをnfsとsmbで共有させないのがいいみたい. ファイルロックとかの問題があるそうな. どちらか一方のファイル共有機能にするのが望ましいみたい

2022y04m29d_175211362.png

FreeIPA server側

FreeIPAの構築後を想定してます
まずはFreeIPAサーバ側に「adtrust」モジュールを追加する

[root@freeipa ~]# dnf install ipa-server-trust-ad

これで「ipa-server-trust-ad」パッケージがインストールされます. 同時にsamba, samba-winbind, sssd-winbind-idmapらも一緒にインストールされる
設定に使用するコマンドは「ipa-adtrust-install」で、これは「Prepare an IPA server to be able to establish trust relationships with AD domains」なそうな

既にFreeIPAにてFreeIPAサーバを作っているので hostname や /etc/hosts は正しいかと思うけど確認します

[root@freeipa ~]# cat /etc/hostname
freeipa.sybyl.local
 
[root@freeipa ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.0.146 freeipa.sybyl.local freeipa
[root@freeipa ~]#

その上で「ipa-adtrust-install」を実行します

[root@freeipa ~]# ipa-adtrust-install
 
The log file for this installation can be found in /var/log/ipaserver-adtrust-install.log
==============================================================================
This program will setup components needed to establish trust to AD domains for
the IPA Server.
 
This includes:
  * Configure Samba
  * Add trust related objects to IPA LDAP server
 
To accept the default shown in brackets, press the Enter key.
 
Configuring cross-realm trusts for IPA server requires password for user 'admin'.
This user is a regular system account used for IPA server administration.
 
admin password:                         <-- FreeIPAサーバ時に作ったadminのパスワードを入力
 
WARNING: The smb.conf already exists. Running ipa-adtrust-install will break your existing samba configuration.
 
 
Do you wish to continue? [no]: yes     <-- 既に /etc/samba/smb.conf があるので上書きして構わないときかれた[yes]
Do you want to enable support for trusted domains in Schema Compatibility plugin?
This will allow clients older than SSSD 1.9 and non-Linux clients to work with trusted users.
 
Enable trusted domains support in slapi-nis? [no]:    <-- nisのypservっぽい働きをさせたいならyes. 使わないので[no]
 
 
WARNING: 1 existing users or groups do not have a SID identifier assigned.
Installer can run a task to have ipa-sidgen Directory Server plugin generate
the SID identifier for all these users. Please note, in case of a high
number of users and groups, the operation might lead to high replication
traffic and performance degradation. Refer to ipa-adtrust-install(1) man page
for details.
 
Do you want to run the ipa-sidgen task? [no]: yes      <--- 既にユーザアカウントがあれば問われます. [yes]
 
The following operations may take some minutes to complete.
Please wait until the prompt is returned.
 
Configuring CIFS
 
(略
 
Done configuring CIFS.
DNS management was not enabled at install time.
Add the following service records to your DNS server for DNS zone sybyl.local:
_ldap._tcp.Default-First-Site-Name._sites.dc._msdcs.sybyl.local. 86400 IN SRV 0 100 389 freeipa.sybyl.local.
_ldap._tcp.dc._msdcs.sybyl.local. 86400 IN SRV 0 100 389 freeipa.sybyl.local.
_kerberos._tcp.Default-First-Site-Name._sites.dc._msdcs.sybyl.local. 86400 IN SRV 0 100 88 freeipa.sybyl.local.
_kerberos._udp.Default-First-Site-Name._sites.dc._msdcs.sybyl.local. 86400 IN SRV 0 100 88 freeipa.sybyl.local.
_kerberos._tcp.dc._msdcs.sybyl.local. 86400 IN SRV 0 100 88 freeipa.sybyl.local.
_kerberos._udp.dc._msdcs.sybyl.local. 86400 IN SRV 0 100 88 freeipa.sybyl.local.
 
=============================================================================
Setup complete
 
You must make sure these network ports are open:
        TCP Ports:
          * 135: epmap
          * 138: netbios-dgm
          * 139: netbios-ssn
          * 445: microsoft-ds
          * 1024..1300: epmap listener range
          * 3268: msft-gc
        UDP Ports:
          * 138: netbios-dgm
          * 139: netbios-ssn
          * 389: (C)LDAP
          * 445: microsoft-ds
 
See the ipa-adtrust-install(1) man page for more details
 
=============================================================================
 
[root@freeipa ~]#

「ipa-adtrust-install」の実行の最後で

が求められています.
ここではDNSはdnsmasqで運営しているので、フォーマットを変更して「/etc/dnsmasq.conf」に追記します
そしてfirewall対応を行います

dnsmasqの修正

要求されたSRVレコードをdnsmasq向けにフォーマット変換します.
簡単には「_Service._Proto.Name TTL Class SRV Priority Weight Port Target」の内容は dnsmasq では
「srv-host=_Service._Proto.Name,Target,Port,Priority,Weight」と変換します. っでその変換は下記のようになりまして、これを「/etc/dnsmasq.conf」に追記してdnsmasqを再起動します

srv-host=_ldap._tcp.Default-First-Site-Name._sites.dc._msdcs.sybyl.local,freeipa.sybyl.local,389,0,100
srv-host=_ldap._tcp.dc._msdcs.sybyl.local,freeipa.sybyl.local,389,0,100
srv-host=_kerberos._tcp.Default-First-Site-Name._sites.dc._msdcs.sybyl.local,freeipa.sybyl.local,88,0,100
srv-host=_kerberos._udp.Default-First-Site-Name._sites.dc._msdcs.sybyl.local,freeipa.sybyl.local,88,0,100
srv-host=_kerberos._tcp.dc._msdcs.sybyl.local,freeipa.sybyl.local,88,0,100
srv-host=_kerberos._udp.dc._msdcs.sybyl.local,freeipa.sybyl.local,88,0,100

firewallの修正

何を開けるか指定されましたが、こちらは「/usr/lib/firewalld/services/freeipa-trust.xml」が該当します。
ただ全てではなく、一部「* 1024..1300: epmap listener range」の部分は別途手動で開けます.

[root@freeipa ~]# firewall-cmd --add-service=freeipa-trust --permanent
[root@freeipa ~]# firewall-cmd --add-port=1024-1300/tcp --permanent
[root@freeipa ~]# firewall-cmd --reload
[root@freeipa ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens192
  sources:
  services: cockpit dhcpv6-client freeipa-4 freeipa-trust ssh
  ports: 1024-1300/tcp
  protocols:
  forward: no
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:
[root@freeipa ~]#

sambaサーバ側

次にsambaサーバ側の調理.
既にFreeIPAドメインのnfsサーバとして作っているのでFreeIPA/clientでの「ipa-client-install」は実施済み.

さらに「ipa-client-samba」パッケージをインストールします.

[root@freeipa-nfs ~]# dnf install ipa-client-samba           <-- samba, samba-winbind, samba-winbind-modules, sssd-winbind-idmap もインストールされる

次に「ipa-client-samba」を実行します

[root@freeipa-nfs ~]# ipa-client-samba --server=freeipa.sybyl.local
IPA server: freeipa.sybyl.local
Chosen IPA master: freeipa.sybyl.local
SMB principal to be created: cifs/freeipa-nfs.sybyl.local@SYBYL.LOCAL
NetBIOS name to be used: FREEIPA-NFS
Discovered domains to use:
 
 Domain name: sybyl.local
NetBIOS name: SYBYL
         SID: S-1-5-21-2296221687-3594954941-118212876
    ID range: 653400000 - 653599999
 
Continue to configure the system with these values? [no]: yes    <-- 設定内容を確認してyes
Samba domain member is configured. Please check configuration at /etc/samba/smb.conf and start smb and winbind services
 
[root@freeipa-nfs ~]#

これでFreeIPAサーバ側では、サービス記述子が「cifs」なサービスプリンシパルが用意されます.

[root@freeipa ~]# ipa service-find | grep "Principal name: cifs"
  Principal name: cifs/freeipa-nfs.sybyl.local@SYBYL.LOCAL
  Principal name: cifs/freeipa.sybyl.local@SYBYL.LOCAL
 
[root@freeipa ~]#

またsamba-adで使われるような keytab も作ってくれるようで

[root@freeipa-nfs ~]# klist -ke /etc/samba/samba.keytab
Keytab name: FILE:/etc/samba/samba.keytab
KVNO Principal
---- --------------------------------------------------------------------------
   1 cifs/freeipa-nfs.sybyl.local@SYBYL.LOCAL (aes128-cts-hmac-sha1-96)
   1 cifs/freeipa-nfs.sybyl.local@SYBYL.LOCAL (aes256-cts-hmac-sha1-96)
   1 cifs/freeipa-nfs.sybyl.local@SYBYL.LOCAL (DEPRECATED:arcfour-hmac)
[root@freeipa-nfs ~]#

と準備してくれます。

sambaサーバ側のsmb設定ファイル「/etc/samba/smb.conf」は書き換えられて下記のようになります

[root@freeipa-nfs ~]# cat /etc/samba/smb.conf
 
[global]
    # Limit number of forked processes to avoid SMBLoris attack
    max smbd processes = 1000
    # Use dedicated Samba keytab. The key there must be synchronized
    # with Samba tdb databases or nothing will work
    dedicated keytab file = FILE:/etc/samba/samba.keytab
    kerberos method = dedicated keytab
    # Set up logging per machine and Samba process
    log file = /var/log/samba/log.%m
    log level = 1
    # We force 'member server' role to allow winbind automatically
    # discover what is supported by the domain controller side
    server role = member server
    realm = SYBYL.LOCAL
    netbios name = FREEIPA-NFS
    workgroup = SYBYL
    # Local writable range for IDs not coming from IPA or trusted domains
    idmap config * : range = 0 - 0
    idmap config * : backend = tdb
 
 
    idmap config SYBYL : range = 1738400000 - 1738599999
    idmap config SYBYL : backend = sss
 
 
# Default homes share
[homes]
    read only = no
[root@freeipa-nfs ~]#

これで各自のユーザフォルダは共有されますが、共通のフォルダも用意してみます。
「/etc/samba/smb.conf」の末尾に下記を加えて

[data]
        path = /data
        writable = yes
        browsable=yes
        write list = @em

最後に各種関連設定を施して完了です

[root@freeipa-nfs ~]# setsebool -P samba_enable_home_dirs on                  <-- SELinux向け. nfs-clientでは「setsebool -P use_nfs_home_dirs on」を実行した
[root@freeipa-nfs ~]# semanage fcontext -a -t samba_share_t "/data/(.*)?"
[root@freeipa-nfs ~]# restorecon -R -v /data
 
[root@freeipa-nfs ~]# firewall-cmd --add-service=samba --permanent
[root@freeipa-nfs ~]# firewall-cmd --reload
 
[root@freeipa-nfs ~]# systemctl enable smb.service winbind --now
 
 

めも

FreeIPAはsssdで認証系を回してberberosが大事. なのでsmbにアクセスしようにもドメインに参加とか求められるみたい?
っでwinbindを合わせて従来の認証系も行けるようにしたって感じかな.

参照先 https://weblog.hirohiro716.com/?p=1983

最新の60件
2024-04-19 2024-04-18 2024-04-17 2024-04-16 2024-04-15 2024-04-11 2024-04-06 2024-04-05 2024-03-30 2024-03-29 2024-03-19 2024-03-17 2024-03-15 2024-03-06 2024-03-05 2024-03-03 2024-02-23 2024-02-22 2024-02-21 2024-02-20 2024-02-19 2024-02-18 2024-02-17 2024-02-13 2024-02-12 2024-02-09 2024-02-04 2024-02-03 2024-01-31 2024-01-30 2024-01-29 2024-01-28 2024-01-22 2024-01-16 2024-01-13 2024-01-09 2024-01-08 2024-01-07 2024-01-03 2023-12-22 2023-12-17

edit


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2023-01-05 (木) 07:28:54