FreeIPAにLinuxマシンを参加させます.
時計合わせは大事.
[root@freeipa-client ~]# cat /etc/redhat-release
Rocky Linux release 9.6 (Blue Onyx)
[root@freeipa-client ~]# echo `hostname -i` `hostname -f` `hostname -s` >> /etc/hosts
[root@freeipa-client ~]# echo "server c.sybyl.local iburst" > /etc/chrony.conf
[root@freeipa-client ~]# systemctl enable chronyd --nowパッケージをインストールします. 使用するコマンドは「dnf install ipa-client」です
[root@freeipa-client ~]# dnf install ipa-client -yFreeIPAサーバに参加するには「ipa-client-install」を使用します. OS側のntp(chrony)が使えるので「--no-ntp」を有効にします
[root@freeipa-client ~]# ipa-client-install --no-ntp
This program will set up IPA client.
Version 4.12.2
Discovery was successful!
Client hostname: freeipa-client.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-09-27 19:27:06+00:00
Valid Until: 2045-09-27 19:27:06+00:00
Enrolled in IPA realm SYBYL.LOCAL
Created /etc/ipa/default.conf
Configured /etc/sssd/sssd.conf
Systemwide CA database updated.
Adding SSH public key from /etc/ssh/ssh_host_ecdsa_key.pub
Adding SSH public key from /etc/ssh/ssh_host_ed25519_key.pub
Adding SSH public key from /etc/ssh/ssh_host_rsa_key.pub
Could not update DNS SSHFP records.
SSSD enabled
Configured /etc/openldap/ldap.conf
Configured /etc/ssh/ssh_config
Configured /etc/ssh/sshd_config.d/04-ipa.conf
Configuring sybyl.local as NIS domain.
Configured /etc/krb5.conf for IPA realm SYBYL.LOCAL
Client configuration complete.
The ipa-client-install command was successful
[root@freeipa-client ~]#ipa-client-installの完成後には sssd が動いていて下記のようになっている
[root@freeipa-client ~]# authselect current
Profile ID: sssd
Enabled features:
- with-sudo
[root@freeipa-client ~]#っでこの段階で既にidとかは拾える 既に作ってればね
[root@freeipa-client ~]# id arcueid
uid=3001(arcueid) gid=2003(em) groups=2003(em)
[root@freeipa-client ~]# getent passwd arcueid
arcueid:*:3001:2003:Arcueid Brunestud:/home/arcueid:/bin/bash
[root@freeipa-client ~]#freeipa内でkrb5を使ったnfs mountをするにはクライアントに nfsサービスプリンシパル が必要.
なのでnfs-client向けのnfsサービスプリンシパルをfreeipaサーバにて作ります
まず管理者チケットを貰います
[root@freeipa ~]# kinit admin
Password for admin@SYBYL.LOCAL:
[root@freeipa ~]#freeipa-clientへのサービス記述子がnfsのサービスプリンシパルを作る
[root@freeipa ~]# ipa service-add nfs/freeipa-client.sybyl.local
----------------------------------------------------------
Added service "nfs/freeipa-client.sybyl.local@SYBYL.LOCAL"
----------------------------------------------------------
Principal name: nfs/freeipa-client.sybyl.local@SYBYL.LOCAL
Principal alias: nfs/freeipa-client.sybyl.local@SYBYL.LOCAL
Managed by: freeipa-client.sybyl.local
[root@freeipa ~]#
(確認)
[root@freeipa ~]# ipa service-find freeipa-client.sybyl.local
-----------------
1 service matched
-----------------
Principal name: nfs/freeipa-client.sybyl.local@SYBYL.LOCAL
Principal alias: nfs/freeipa-client.sybyl.local@SYBYL.LOCAL
Keytab: False
----------------------------
Number of entries returned 1
----------------------------
[root@freeipa ~]#既にFreeIPAに参加しているので 既に /etc/krb5.keytab は持っている. これを更新して作ったnfsサービスプリンシパルを追記させます
[root@freeipa-client ~]# klist -ke /etc/krb5.keytab
Keytab name: FILE:/etc/krb5.keytab
KVNO Principal
---- --------------------------------------------------------------------------
1 host/freeipa-client.sybyl.local@SYBYL.LOCAL (aes256-cts-hmac-sha384-192)
1 host/freeipa-client.sybyl.local@SYBYL.LOCAL (aes128-cts-hmac-sha256-128)
1 host/freeipa-client.sybyl.local@SYBYL.LOCAL (aes256-cts-hmac-sha1-96)
1 host/freeipa-client.sybyl.local@SYBYL.LOCAL (aes128-cts-hmac-sha1-96)
[root@freeipa-client ~]# kinit admin
[root@freeipa-client ~]# ipa-getkeytab -s freeipa.sybyl.local -p nfs/freeipa-client.sybyl.local -k /etc/krb5.keytab
Keytab successfully retrieved and stored in: /etc/krb5.keytab
[root@freeipa-client ~]# klist -ke /etc/krb5.keytab
Keytab name: FILE:/etc/krb5.keytab
KVNO Principal
---- --------------------------------------------------------------------------
1 host/freeipa-client.sybyl.local@SYBYL.LOCAL (aes256-cts-hmac-sha384-192)
1 host/freeipa-client.sybyl.local@SYBYL.LOCAL (aes128-cts-hmac-sha256-128)
1 host/freeipa-client.sybyl.local@SYBYL.LOCAL (aes256-cts-hmac-sha1-96)
1 host/freeipa-client.sybyl.local@SYBYL.LOCAL (aes128-cts-hmac-sha1-96)
1 nfs/freeipa-client.sybyl.local@SYBYL.LOCAL (aes256-cts-hmac-sha384-192)
1 nfs/freeipa-client.sybyl.local@SYBYL.LOCAL (aes128-cts-hmac-sha256-128)
1 nfs/freeipa-client.sybyl.local@SYBYL.LOCAL (aes256-cts-hmac-sha1-96)
1 nfs/freeipa-client.sybyl.local@SYBYL.LOCAL (aes128-cts-hmac-sha1-96)
[root@freeipa-client ~]#次に「ipa-client-automount」を実行する
[root@freeipa-client ~]# ipa-client-automount
Searching for IPA server...
IPA server: DNS discovery
Location: default
Continue to configure the system with these values? [no]: yes <--- IPAサーバの値とlocationの値が正しいなら[yes]
Configured /etc/idmapd.conf
Restarting sssd, waiting for it to become available.
Started autofs
[root@freeipa-client ~]#
(確認)
[root@freeipa-client ~]# ls -l /apps /home
[root@freeipa-client ~]# df -Th /home /apps
Filesystem Type Size Used Avail Use% Mounted on
freeipa-nfs:/home nfs4 32G 261M 32G 1% /home
freeipa-nfs:/apps nfs4 32G 261M 32G 1% /apps
[root@freeipa-client ~]#
[root@freeipa-client ~]# mount |grep -e apps -e home
auto.direct on /home type autofs (rw,relatime,fd=6,pgrp=35210,timeout=300,minproto=5,maxproto=5,direct,pipe_ino=73048)
freeipa-nfs:/home on /home type nfs4 (rw,relatime,vers=4.2,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=krb5,clientaddr=192.168.0.147,local_lock=none,addr=192.168.0.149)
auto.direct on /apps type autofs (rw,relatime,fd=6,pgrp=35210,timeout=300,minproto=5,maxproto=5,direct,pipe_ino=73048)
freeipa-nfs:/apps on /apps type nfs4 (rw,relatime,vers=4.2,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=krb5,clientaddr=192.168.0.147,local_lock=none,addr=192.168.0.149)
[root@freeipa-client ~]#
[root@freeipa-client ~]# setsebool -P use_nfs_home_dirs 1 <-- SELinux対応「sec=krb5」が入っているのでkerberosでnfsが行っているみたい.
「sec=krb5i」で繋ぎたければ「ipa automountkey-mod default auto.direct」で修正します
sec欄がkrb5iならチェックサム付き、krb5pならnfsトラフィックの暗号化が行えます
設定を変更するには一度「ipa-client-install --uninstall」を実行してから行う事. すぐさま再起動を要求されます.
ホームディレクトリを設けるなら「ipa-client-install」のオプションとして更に「--mkhomedir」を付けて設定を行います
ですがホームディレクトリ先をnfsで受けるなら、nfsサーバを作ってそこで「mkhomedir_helper」コマンドでホームディレクトリを作ったほうがいい.
「ipa-client-install」の「--mkhomedir」はローカルにホームディレクトリを作る際のお話かなと.
[root@freeipa-client ~]# ls -l /home
total 0
[root@freeipa-client ~]# su - arcueid
Creating home directory for arcueid.
[arcueid@freeipa-client ~]$ pwd
/home/arcueid
[arcueid@freeipa-client ~]$クライアントを設定するとおおもとのFreeIPAサーバにも設定されます.
[root@freeipa ~]# ipa host-show freeipa-client
Host name: freeipa-client.sybyl.local
Platform: x86_64
Operating system: 5.14.0-570.42.2.el9_6.x86_64
Principal name: host/freeipa-client.sybyl.local@SYBYL.LOCAL
Principal alias: host/freeipa-client.sybyl.local@SYBYL.LOCAL
SSH public key fingerprint: (略
Password: False
Keytab: True
Managed by: freeipa-client.sybyl.local
[root@freeipa ~]#freeipaで作成したアカウントでログインを試みると初期パスワードが問われます
その後すぐさま、パスワードの変更が求められ、パスワードが変更されるとログインに成功します。
もちろん次回以降は変更したパスワードでログインになるだけです.
[llya@c ~]$ ssh -l arcueid freeipa-client
Password: <--- 初期パスワードが問われます
Password expired. Change your password now.
Current Password:
New password:
Retype new password:
Last login: Sun Sep 28 08:47:12 2025
[illya@freeipa-client ~]$freeipaで作られたユーザのログイン、ログアウトにタイムラグが発生する時がある。
これは sec=krb5 を使った時のお話です。従来の sec=sys の時はタイムラグは発生しないですね。
いろいろ調査して試してみたけど、早くなったり遅くなったり再現性が皆無.
sec=krb5による利点は、mount先へのアクセスが認証によって担保される点. 従来のsec=sysでは勝手に作ったnfsクライアントでuidを真似されると他人の中身が見えてしまいます。
以外にnfsはセキュアではない.
ですが、ログインが遅いとかログアウトが遅いのは問題で、現状は従来型のsec=sysに頼るしかないみたい.
[root@freeipa ~]# ipa automountkey-mod default auto.direct --key="/home" --info="-rw freeipa-nfs:/home" --newinfo="-rw,sec=sys freeipa-nfs:/home"とsec=sysに変更して
freeipa-nfs にて sys でのmountを許可するように変更します
[root@freeipa-nfs ~]# vi /etc/exports
/nfs 192.168.0.0/255.255.255.0(rw,sync,fsid=0)
/nfs/home 192.168.0.0/255.255.255.0(rw,sync,nohide)
/nfs/apps 192.168.0.0/255.255.255.0(rw,sync,nohide)
[root@freeipa-nfs ~]# systemctl restart nfs-serverとして sec=sys によるautofsを利用します。
sec=sysでセキュアを保つには...802.1X認証HUBを設けてもアンマネージドHUBを入れたら意味ないし難しいですねぇ...
samba-adならkrb5通信にこのようなログイン・ログアウトが遅いとかの問題は見てないですねぇ..
今後も管理対象区分かな.