#author("2025-09-29T17:14:12+00:00","default:sysosa","sysosa") #author("2025-09-29T17:15:18+00:00","default:sysosa","sysosa") FreeIPAでアカウント管理を敷いたシステムにて smb共有 を提供してみる FreeIPA自体はsamba-adのようにディレクトリ管理ができて smb共有 のアクセス管理も含めることが可能です. FreeIPA参加済 計算ノード へのパスワード認証、smb共有先へのパスワード認証が一元管理され1つのパスワードで行えます. ただ、、smb共有へのアクセスを可能にするには、windows/macOSらクライアントをわざわざ FreeIPA の傘下に入る必要がある. &size(10){認証がkerberosチケットで行われるので}; &size(10){windows/macOSからのsshログインにFreeIPA参加は不要です. SSOで行いたいのなら必要}; クライアントのFreeIPA参加が面倒なら 計算ノードへの認証はFreeIPAのパスワードで行い、smb共有にはスタンドアローンのsambaのパスワードで行う事も可能です &size(10){パスワードの二重管理になりますが}; &ref(2025y05m20d_194616848.png,nolink,noborder); ここではsmb共有を提供するマシン(freeipa-smb)にsshはFreeIPAのパスワード、smb共有にはsambaのパスワードを使用するノードを作ります ***ドメイン外のwindows/macOSがFreeIPA傘下のsambaにアクセスできない理由 [#w4bb46f8] 参照先 [[https://lists.fedorahosted.org/archives/list/freeipa-users@lists.fedorahosted.org/thread/EXOPGUXMGXQMIKYLEBYEHV57W7SEPCZ2/>+https://lists.fedorahosted.org/archives/list/freeipa-users@lists.fedorahosted.org/thread/EXOPGUXMGXQMIKYLEBYEHV57W7SEPCZ2/]] ドメインに参加していないwindows/macOSは smb共有 へは NTLM(NTLMv2)方式で認証を行うようになる。だが、FreeIPA傘下のsambaは受け入れた要求をFreeIPAに渡すが、NTML認証はFreeIPAでは受け付けていないので無理。 そんな感じでしょうか そうなるとsshログイン/smb共有も同じパスワードでおこなうとなると samba-ad 一択かなぁ. ***freeIPAへの参加 [#b36f8fd6] sshはFreeIPAサーバが提供する認証を使うので、freeipa-smbは[[FreeIPA/client]]のように freeipa に参加させる #code(nonumber){{ [root@freeipa-smb ~]# cat /etc/redhat-release Rocky Linux release 9.5 (Blue Onyx) [root@freeipa-smb ~]# hostname -s freeipa-smb [root@freeipa-smb ~]# hostname -f freeipa-smb.sybyl.local [root@freeipa-smb ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 [root@freeipa-smb ~]# echo "server c.sybyl.local" > /etc/chrony.conf [root@freeipa-smb ~]# systemctl restart chronyd [root@freeipa-smb ~]# dnf install ipa-client -y [root@freeipa-smb ~]# ipa-client-install --no-ntp This program will set up IPA client. Version 4.12.2 Discovery was successful! Client hostname: freeipa-smb.sybyl.local Realm: SYBYL.LOCAL DNS Domain: sybyl.local IPA Server: freeipa.sybyl.local BaseDN: dc=sybyl,dc=local Continue to configure the system with these values? [no]: yes <-- この構成で続けるので「yes」 Skipping chrony configuration User authorized to enroll computers: admin <--- freeipaとつないでチケットをもらうのですが、そのアカウントを指定 Password for admin@SYBYL.LOCAL: <--- 「admin@SYBYL.LOCAL」のチケットをもらうためにパスワードを入力 Successfully retrieved CA cert Subject: CN=Certificate Authority,O=SYBYL.LOCAL Issuer: CN=Certificate Authority,O=SYBYL.LOCAL Valid From: 2025-05-13 18:35:30+00:00 Valid Until: 2045-05-13 18:35:30+00:00 : Client configuration complete. The ipa-client-install command was successful [root@freeipa-smb ~]# }} ***/homeと/dataを共有へ [#zd1b943a] #code(nonumber){{ [root@freeipa-smb ~]# parted /dev/sdb GNU Parted 3.5 Using /dev/sdb Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) mklabel gpt (parted) mkpart primary 0% 100% (parted) quit Information: You may need to update /etc/fstab. [root@freeipa-smb ~]# [root@freeipa-smb ~]# parted /dev/sdc : [root@freeipa-smb ~]# [root@freeipa-smb ~]# mkfs.xfs -L home /dev/sdb1 [root@freeipa-smb ~]# mkfs.xfs -L data /dev/sdc1 [root@freeipa-smb ~]# mkdir /data [root@freeipa-smb ~]# echo "LABEL=home /home xfs defaults 0 0" >> /etc/fstab [root@freeipa-smb ~]# echo "LABEL=data /data xfs defaults 0 0" >> /etc/fstab [root@freeipa-smb ~]# systemctl daemon-reload [root@freeipa-smb ~]# mount -a }} ユーザフォルダ作成 #code(nonumber){{ [root@freeipa-smb ~]# mkhomedir_helper arcueid 0022 /etc/skel [root@freeipa-smb ~]# mkdir /data/em [root@freeipa-smb ~]# setfacl -m group:em:rwx /data/em [root@freeipa-smb ~]# setfacl -dm group:em:rwx /data/em }} SELinux対応 #code(nonumber){{ [root@freeipa-smb ~]# setsebool -P use_nfs_home_dirs 1 [root@freeipa-smb ~]# restorecon -R /home [root@freeipa-smb ~]# setsebool -P samba_export_all_ro=1 samba_export_all_rw=1 [root@freeipa-smb ~]# semanage fcontext -a -t samba_share_t "/data/(.*)?" [root@freeipa-smb ~]# restorecon -R -v /data }} ***smb設定 [#jcc0af98] #code(nonumber){{ [root@freeipa-smb ~]# dnf install samba [root@freeipa-smb ~]# vi /etc/samba/smb.conf [global] workgroup = SAMBA security = user passdb backend = tdbsam [homes] comment = Home Directories valid users = %S, %D%w%S browseable = No read only = No inherit acls = Yes [data] path = /data browseable = Yes read only = No inherit acls = Yes [root@freeipa-smb ~]# systemctl start smb [root@freeipa-smb ~]# firewall-cmd --add-service=samba --permanent [root@freeipa-smb ~]# firewall-cmd --reload }} smbアカウントの作成 #code(nonumber){{ [root@freeipa-smb ~]# smbpasswd -a arcueid }} ***smbアクセス [#u12654ff] ホスト名でははアクセス拒否された。でもFQDNならアクセスできた。ipアドレスでもアクセスできた。 ***sshアクセス [#n00c4677] 他のマシンから「ssh -l arcueid freeipa-smb」でアクセスできました。