AlmaLinux8でIPAユーザー認証できるsambaファイルサーバーの設定

環境

ここの手順で構築したIPAサーバーで認証する。

・ AlmaLinuxのバージョン: 8.5
・ ホスト名: samba.local.example.com
・ IPアドレス: 192.168.0.12
・ sambaのバージョン: 4.14.5
・ ipa-clientのバージョン: 4.9.6

IPAサーバーでの作業手順

IPAサーバーのIdMにWEBブラウザでアクセスして、ホスト「samba.local.example.com」をIPアドレス「192.168.0.12」で追加する。

IPAサーバーでsambaからの認証要求を処理するために必要なパッケージをインストールする。

# dnf install ipa-server-trust-ad

下記コマンドを実行してsambaを信頼設定する。

# ipa-adtrust-install

ファイアウォールに例外を登録する。

# firewall-cmd --permanent --add-service=freeipa-trust
# firewall-cmd --reload

IPAサーバーを再起動する。

# ipactl restart

※セカンダリIPAサーバーでもsambaからの認証要求を処理したい場合は同様の設定手順をセカンダリでも行う必要がある

Sambaサーバーでの作業手順

FQDNでホスト名を設定する。

# hostnamectl set-hostname samba.local.example.com

必要なパッケージをインストールする。

# dnf install ipa-client-samba

IPAクライアントとして設定する。

# ipa-client-install

共有ディレクトリを作成する。
※root以外がアクセスできないようにする

# mkdir -p /var/samba/share
# chmod 770 /var/samba/share

samba構成ユーティリティを実行して初期設定する。

# ipa-client-samba

初期設定されたsambaの設定ファイルを編集して最下行に追記する。
※「force user」にrootを指定してファイル操作をrootで実行させる

[share]
path = /var/samba/share
create mask = 0660
directory mask = 0770
force user = root
writable = yes
valid users = @testgroup

ファイアウォールに例外を登録する。

# firewall-cmd --permanent --add-service=samba
# firewall-cmd --reload

SELinuxのラベル付けを行う。

# semanage fcontext -a -t samba_share_t "/var/samba/share(/.*)?"
# restorecon -RF /var/samba/share/

SELinuxにsmbdによるパブリックディレクトリへの書き込みを有効にする。

# setsebool -P allow_smbd_anon_write true

サービスを有効にして起動する。

# systemctl enable --now smb
# systemctl enable --now winbind