AlmaLinux9をドメイン参加させてファイルサーバーにする

環境

ここの手順で構築したドメインコントローラーで認証する。

・ AlmaLinuxのバージョン: 9.4
・ ホスト名: samba.ad.example.jp
・ IPアドレス: 192.168.1.13
・ realmdのバージョン: 0.17.1
・ sambaのバージョン: 4.19.4

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

# hostnamectl set-hostname samba.ad.example.jp

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

# dnf install realmd samba

参照するDNSをドメインコントローラーに変更する。

# nmcli connection modify [コネクションID] ipv4.dns [ドメインコントローラーのIPアドレス]
# nmcli connection up [コネクションID]

smb.confをバックアップする。

# mv /etc/samba/smb.conf /etc/samba/smb.conf.backup

ドメインコントローラーにjoinする。
※ドメインのメンバーとして機能するためのソフトウェアにsambaを指定
※ドメインユーザーの認証を処理するソフトウェアにwinbindを指定

# realm join --membership-software=samba --client-software=winbind AD.EXAMPLE.JP

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

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

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

[share]
path = /data/samba/share
create mask = 0660
directory mask = 0770
force user = root
writable = yes
valid users = @"example\domain users" "example\administrator"

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

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

SELinuxのラベル付けを行う。

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

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

# setsebool -P allow_smbd_anon_write true

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

# systemctl enable --now smb