Samba4.17.4をインストールして、Active Directoryを構築する(AlmaLinux9.1)

構築

0.前書き

私事ながら、先日LPIC300に合格しました。

Sambaに重きを置いた資格で、せっかくなのでSambaで遊びます。

 

今日は、お題の通りSamba4.17.4をソースコードからインストールします。

Samba4.10以上をソースからインストールしたことがある方ならわかるかと思いますが、Sambaソースのコンパイルはかなりの苦行です。

 

./configureやmake時に必要なプログラムやパッケージが多すぎるのが原因です。

逆に言うと最初から何が必要かわかっていれば、敵ではありません。

 

そこで、人柱になった気持ちで、心をへし折られながらもなんとか手順に落とし込んだので、少しでも力になれれば幸いです。

 

1.環境説明

 

①Active Direcroty Domain Controller(以降ADDC)

 

構築システム:Samba4.17.4(2023年1月現在最新)

ホスト名:sambaserver

OS:AlmaLinux release 9.1 (Lime Lynx)

IPアドレス:172.16.1.7

備考:DNSサーバも同居

 

※OSインストール済みで、最低限のネットワーク設定は完了しているものとします。

 

20240203追記

AlmaLinux9.3にSamba4.19.4(2024年2月現在最新)を入れて本手順にて問題なく設定できました。

 

②ドメイン環境

 

DNSドメイン名:home.miyamo83.com

 

2.構築手順

 

さくっといきます。赤字の設定値は環境に合わせて変更してください。

①下準備

ホスト名の設定です。

# nmcli general hostname sambaserver

 

次にhostsファイルの設定です。以下を追記します。

# vi /etc/hosts

172.16.1.7 sambaserver sambaserver.home.miyamo83.com

 

続いて時刻の設定です。

ADの認証システムに採用されているKerberos君は時間にルーズな奴が大嫌いです。

# vi /etc/chrony.conf

server ntp.nict.jp iburst

 

chrony.confの変更を反映します。

# systemctl restart chronyd

 

このコマンドで時刻同期を確認できます。

サーバ名の前に*がついていれば同期できています。

(?とかであれば文字化けしてるかも)

20240203追記

?は文字化けではありませんでした。

NTPサーバへの通信ができない、もしくは設定した際の初期ステータスです。このステータスであれば、少し時間をおいて再確認してみてください。

# chronyc sources

 

②パッケージやプログラムのインストール

前書きでも書いた通り、異常な数のパッケージが必要になります。

私は以下のサイトに書かれたパッケージをインストールし、

./configureやmake時にエラーになるたびに新しいパッケージをインストールし続けました。

 

Package Dependencies Required to Build Samba - SambaWiki

 

まず、epelのインストールとCRBレポジトリの有効化です。

# dnf -y install epel-release
# dnf config-manager --set-enabled crb

 

レポジトリの一覧を確認できます。

# dnf repolist

 

続いて、現行パッケージのアップデートです。

# dnf -y update

 

それでは、いよいよ必要なパッケージをすべてインストールしていきます。

もともと最新化されているものもありますが、影響ありません。

 

# dnf install -y docbook-style-xsl gcc gdb gnutls \
gnutls-devel-3.7.6-12.el9_0.x86_64 gpgme jansson \
keyutils-libs krb5-workstation libacl libaio \
libarchive libattr libblkid libtasn1 libtasn1-tools \
libxml2 libxslt openldap pam perl \
perl-ExtUtils-MakeMaker popt python3-cryptography \
python3-dns python3-gpg readline rpcgen systemd \
tar zlib python3-devel.x86_64 zlib-devel-1.2.11-34.el9.x86_64 \
lmdb-devel-0.9.29-3.el9.x86_64 flex-2.6.4-9.el9.x86_64 \
bison gpgme-devel-1.15.1-6.el9.x86_64 perl-Parse-Yapp-1.21-12.el9.noarch \
jansson-devel-2.14-1.el9.x86_64 libarchive-devel-3.5.3-3.el9.x86_64 \
libacl-devel-2.3.1-3.el9.x86_64 libattr-devel-2.5.1-3.el9.x86_64 \
cyrus-sasl-devel-2.1.27-20.el9.x86_64 openldap-devel-2.6.2-3.el9.x86_64 \
pam-devel-1.5.1-12.el9.x86_64 dbus-devel-1:1.12.20-6.el9.x86_64 \
python3-markdown-3.3.4-4.el9.noarch python3-markdown-include-0.6.0-11.el9.noarch \
perl-JSON-4.03-5.el9.noarch popt-devel-1.18-8.el9.x86_64

20240203追記

各パッケージのバージョンはその都度更新されるため、ライブラリにも残っていません。

なので、バージョンまで表記するのは悪手でした…。

バージョンを抜いた場合でも、ライブラリ内のパッケージ名で補完してくれるため、問題なくインストールできるかと思います。

dnf install -y docbook-style-xsl gcc gdb gnutls \
gnutls-devel gpgme jansson \
keyutils-libs krb5-workstation libacl libaio \
libarchive libattr libblkid libtasn1 libtasn1-tools \
libxml2 libxslt openldap pam perl \
perl-ExtUtils-MakeMaker popt python3-cryptography \
python3-dns python3-gpg readline rpcgen systemd \
tar zlib python3-devel zlib-devel \
lmdb-devel flex \
bison gpgme-devel perl-Parse-Yapp \
jansson-devel libarchive-devel \
libacl-devel libattr-devel \
cyrus-sasl-devel openldap-devel \
pam-devel dbus-devel \
python3-markdown python3-markdown-include \
perl-JSON popt-devel

③ソースコードのダウンロードとインストール

 

Sambaのソースコードを配置するディレクトリを作成し、移動します。

# mkdir /usr/local/src/samba ;cd /usr/local/src/samba

 

公式サイトより最新版のソースコードをダウンロードします。

# wget https://download.samba.org/pub/samba/samba-latest.tar.gz

 

tarファイルを展開し、移動します。展開前の圧縮フォルダの削除もやってやりましょう。

# tar zxvf samba-latest.tar.gz ;rm -f samba-latest.tar.gz ;cd samba-4.17.4

 

ではMakeファイルの作成をしていきます。

# ./configure

 

エラーなく終了すれば、コンパイルとインストールです。

必要に応じて「-j2」などを指定すればマルチプロセスで処理できます。

# make ;make install

 

ここまでエラーなしで来られた時、脳汁が出すぎて溺れそうになりました。

 

④ADDC構築下準備

 

インストールしたSambaはデフォルト設定で「/usr/local/samba/」に展開されます。

「/usr/local/samba/bin」と「/usr/local/samba/sbin」には当然パスは通っていないので、設定が必要です。PATH変数を以下のように書き換えます。

# vi /root/.bashrc

PATH="/usr/local/samba/bin:/usr/local/samba/sbin:$HOME/.local/bin:$HOME/bin:$PATH"

ちなみにCentOSだと~/.bash_profileなのですが、Almaで同じ設定をしても反映されませんでした。起動時のスクリプト読み込み順序が異なるのかもしれません。

20240203追記

本来「~/.bash_profile」はログインシェルの起動時に読み込まれますが、どうやらログインシェルを起動しないsudoのオプションで実行していたため、読み込まれていなかったようです。

おそらくsudo -sで行っていたため、rootのログインシェルではない、通常のシェルで起動していたようです。sudo -iではちゃんとパスが通っていました。

 

先ほどの変更内容を反映させ、再起動します。

# source ~/.bashrc
# systemctl reboot

 

起動したら、先ほど設定したパスにパスが通っているか確認するために以下のコマンドを打ちます。

# samba -V

以下のように返ってきました。

# Version 4.17.4

 

ADDCを構築する前に、ビルトインのsmb.confを削除します。

# rm -f /etc/samba/smb.conf

 

⑤ADDC構築

 

では構築します。

# samba-tool domain provision --use-rfc2307 --interactive

 

20240203追記

以下の設定部分が抜けていました。

基本デフォルト([]内の値)のままでよいので、パスワード設定以外はすべて空欄でOKです。

Realm [HOME.MIYAMO83.COM]:
Domain [HOME]:
Server Role (dc, member, standalone) [dc]:
DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]:
DNS forwarder IP address (write ‘none’ to disable forwarding) [172.16.0.254]:
Administrator password:
Retype password:

ERROR(<class ‘samba.provision.ProvisioningError’>): Provision failed – ProvisioningError: guess_names: Workgroup ‘HOME.MIYAMO83.COM’ in smb.conf must match chosen domain ‘HOME’! Please remove the /usr/local/samba/etc/smb.conf file and let provision generate it

このようなエラーが出た場合、素直に「/usr/local/samba/etc/smb.conf」を削除してください。

 

プロセスを立ち上げて、動いていることを確認します。

# samba
# ps -aux | grep samba

動いてるとこんな感じ

# root 1771 0.0 0.1 19552 12084 ? Ss 13:40 0:00 sshd: sambaserver [priv]
sambase+ 1774 0.0 0.1 19768 11096 ? Ss 13:41 0:00 /usr/lib/systemd/systemd --user
sambase+ 1775 0.0 0.0 107360 6224 ? S 13:41 0:00 (sd-pam)
sambase+ 1782 0.0 0.0 19432 7132 ? S 13:41 0:00 sshd: sambaserver@pts/0
sambase+ 1783 0.0 0.0 7008 5716 pts/0 Ss 13:41 0:00 -bash
root 1841 1.1 0.5 108732 40308 ? Ss 13:51 0:00 samba
root 1842 0.0 0.3 108736 24472 ? S 13:51 0:00 samba
root 1843 0.0 0.3 108736 27044 ? S 13:51 0:00 samba
root 1844 0.0 0.3 108736 24472 ? S 13:51 0:00 samba
root 1845 0.0 0.4 108736 33452 ? S 13:51 0:00 samba
root 1846 0.0 0.3 108740 24472 ? S 13:51 0:00 samba
root 1847 0.0 0.3 108736 24472 ? S 13:51 0:00 samba
root 1848 1.1 0.7 112156 55284 ? Ss 13:51 0:00 /usr/local/samba/sbin/smbd -D --option=server role check:inhibit=yes --foreground
root 1849 0.0 0.4 108736 31544 ? S 13:51 0:00 samba
root 1850 0.0 0.3 108736 24472 ? S 13:51 0:00 samba
root 1851 0.0 0.3 108740 24476 ? S 13:51 0:00 samba
root 1852 0.0 0.3 108736 26848 ? S 13:51 0:00 samba
root 1853 0.0 0.3 108736 24472 ? S 13:51 0:00 samba
root 1854 8.2 0.4 73028 33668 ? S 13:51 0:00 samba
root 1855 0.0 0.3 108740 24476 ? S 13:51 0:00 samba
root 1856 12.3 0.4 108736 33136 ? S 13:51 0:01 samba
root 1857 0.0 0.3 108736 24472 ? S 13:51 0:00 samba
root 1858 0.0 0.3 72608 25632 ? S 13:51 0:00 samba
root 1859 0.0 0.3 108740 24476 ? S 13:51 0:00 samba
root 1860 0.0 0.3 108736 30804 ? S 13:51 0:00 samba
root 1861 0.0 0.3 108736 24472 ? S 13:51 0:00 samba
root 1862 0.0 0.3 72608 25632 ? S 13:51 0:00 samba
root 1863 0.0 0.3 108740 24476 ? S 13:51 0:00 samba
root 1864 0.0 0.3 108736 27452 ? S 13:51 0:00 samba
root 1865 0.0 0.3 108736 24472 ? S 13:51 0:00 samba
root 1866 0.0 0.3 72608 25632 ? S 13:51 0:00 samba
root 1867 0.0 0.4 108736 31532 ? S 13:51 0:00 samba
root 1868 0.0 0.3 108736 24472 ? S 13:51 0:00 samba
root 1869 0.0 0.3 108740 24472 ? S 13:51 0:00 samba
root 1870 0.0 0.4 108740 33508 ? S 13:51 0:00 samba
root 1871 0.0 0.3 108740 24472 ? S 13:51 0:00 samba
root 1872 0.0 0.3 108736 27048 ? S 13:51 0:00 samba
root 1873 0.0 0.3 108736 24472 ? S 13:51 0:00 samba
root 1874 0.0 0.4 108740 33316 ? S 13:51 0:00 samba
root 1875 0.0 0.3 108740 24472 ? S 13:51 0:00 samba
root 1876 0.0 0.3 108736 30720 ? S 13:51 0:00 samba
root 1877 0.0 0.3 108736 24472 ? S 13:51 0:00 samba
root 1878 0.0 0.3 108740 24472 ? S 13:51 0:00 samba
root 1879 0.0 0.3 108736 30760 ? S 13:51 0:00 samba
root 1880 0.0 0.3 108736 24472 ? S 13:51 0:00 samba
root 1881 1.1 0.6 108676 53672 ? Ss 13:51 0:00 /usr/local/samba/sbin/winbindd -D --option=server role check:inhibit=yes --foreground
root 1882 0.0 0.4 108740 33252 ? S 13:51 0:00 samba
root 1883 0.0 0.3 108736 30916 ? S 13:51 0:00 samba
root 1884 0.0 0.3 108736 24472 ? S 13:51 0:00 samba
root 1885 0.0 0.3 108740 24472 ? S 13:51 0:00 samba
root 1886 0.0 0.4 109156 32528 ? S 13:51 0:00 samba
root 1887 0.0 0.4 108740 33572 ? S 13:51 0:00 samba
root 1894 0.0 0.4 110236 35584 ? S 13:51 0:00 /usr/local/samba/sbin/smbd -D --option=server role check:inhibit=yes --foreground
root 1895 0.0 0.4 110236 31484 ? S 13:51 0:00 /usr/local/samba/sbin/smbd -D --option=server role check:inhibit=yes --foreground
root 1896 0.0 0.4 108676 37192 ? S 13:51 0:00 /usr/local/samba/sbin/winbindd -D --option=server role check:inhibit=yes --foreground
root 1897 0.1 0.4 109624 38680 ? S 13:51 0:00 /usr/local/samba/sbin/winbindd -D --option=server role check:inhibit=yes --foreground
root 1898 0.0 0.3 108740 24496 ? S 13:51 0:00 samba
root 1899 0.0 0.3 107484 30796 ? S 13:51 0:00 samba
root 1900 0.0 0.3 108740 24496 ? S 13:51 0:00 samba
root 1901 0.0 0.3 107484 30796 ? S 13:51 0:00 samba
root 1902 0.0 0.3 108740 24496 ? S 13:51 0:00 samba
root 1903 0.0 0.3 107484 30808 ? S 13:51 0:00 samba
root 1904 0.0 0.3 108740 24496 ? S 13:51 0:00 samba
root 1905 0.0 0.3 107484 30808 ? S 13:51 0:00 samba
root 1907 0.0 0.0 4592 2244 pts/0 S+ 13:51 0:00 grep --color=auto samba

 

ADDCとして機能しているか確認します。

デフォルトで「SYSVOL」「NETLOGON」「IPC$」があればよいです。

# smbclient -L localhost -U%
# Sharename Type Comment
--------- ---- -------
sysvol Disk
netlogon Disk
IPC$ IPC IPC Service (Samba 4.17.4)
SMB1 disabled -- no workgroup available

 

ユーザも確認します。

# samba-tool user list

デフォルトで「Guest」「Administrator」「krbtgt」があればよいです。

Guest
Administrator
krbtgt

 

DNSの設定を変えます。

# vi /etc/resolv.conf

search home.miyamo83.com
nameserver 127.0.0.1

 

20240203追記

以下、もともとの値です。

# cat /etc/resolv.conf

# Generated by NetworkManager
search home.miyamo83.com
nameserver 172.16.0.254

見ていただいたらわかりますが、NetworkManagerによって作成されたコンフィグなので、手書きしてもNetworkManagerを変えなければ、ロールバックされます。

なのでNetworkManagerを変更するように修正しました。

# nmcli connection modify ens18 ipv4.dns "127.0.0.1 172.16.0.254"

 

※ens18はサーバによって異なるので、「ip a」などで確かめてください。

※searchがない場合は以下も追加してください。

# nmcli connection modify ens18 ipv4.dns-search home.miyamo83.com

 

設定反映と設定内容の確認です。

# systemctl restart NetworkManager
# cat /etc/resolv.conf

search home.miyamo83.com
nameserver 127.0.0.1
nameserver 172.16.0.254

 

※もし、sambaサービスが有効の際に外部のドメインの名前解決ができない場合は、dnsのフォワーディングが行われないような動きになっている可能性があるため、以下を追記します。

# vi /usr/local/samba/etc/smb.conf

[global]

dns forwarder = 172.16.0.254

※我が家でのDNSサーバの宛先なので、環境に合わせて変更するか雑に8.8.8.8でも設定しておいてください。

 

 

20240203追記

以下の設定部分が抜けていました。

# vi /etc/krb5.conf

[libdefaults]
default_realm = HOME.MIYAMO83.COM
dns_lookup_kdc = true

[domain_realm]
.home.miyamo83.com = HOME.MIYAMO83.COM
home.miyamo83.com = HOME.MIYAMO83.COM

[libdefaults]の二つはケルベロス認証時に必須になると思われます。

[domain_realm]はレルムのマッピング用途なので、上記のみの場合不要な気もしますが以下のサイトに従って記載しています。

あまり詳しく調べられていませんがドメインコントローラーを冗長している場合[realms]へ記載が必要かもしれません。

参考サイト:https://web.mit.edu/kerberos/krb5-1.12/doc/admin/conf_files/krb5_conf.html

 

 

最後に、Kerberosに必要なTGTの取得テストを行います。

# kinit administrator@HOME.MIYAMO83.COM

以下が成功時の応答です。

Warning: Your password will expire in 41 days on 2023年03月04日 13時47分16秒

[root@sambaserver sambaserver]# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: administrator@HOME.MIYAMO83.COM

Valid starting Expires Service principal
2023-01-21T15:10:15 2023-01-22T01:10:15 krbtgt/HOME.MIYAMO83.COM@HOME.MIYAMO83.COM
renew until 2023-01-22T15:10:09

 

⑥ADDCの自動起動設定

 

ソースコードからインストールしたプログラムはSystemdのサービス登録を手動で行わなくてはなりません。

# vi /etc/systemd/system/samba.service

以下記載内容です。

[Unit]
Description= Samba 4 Active Directory
After=syslog.target
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/samba/var/run/samba.pid
ExecStart=/usr/local/samba/sbin/samba
[Install]
WantedBy=multi-user.target

 

20240203追記

少し修正しました。理由はもう少し下に書いています。

[Unit]
Description= Samba 4 Active Directory
Wants=network-online.target
After=syslog.target network.target network-online.target
[Service]
Type=forking
PIDFile=/usr/local/samba/var/run/samba.pid
ExecStart=/usr/local/samba/sbin/samba
[Install]
WantedBy=multi-user.target

 

設定の反映です。

# systemctl daemon-reload

 

それでは自動起動のコマンドと確認のコマンドを打ちます。

# systemctl enable samba.service ;systemctl is-enabled samba.service

enableと返れば成功です。やったね。

 

⑦firewalldの許可設定

 

所謂穴あけです。

 

# firewall-cmd --add-port=53/tcp --permanent;firewall-cmd --add-port=53/udp --permanent; \
firewall-cmd --add-port=88/tcp --permanent;firewall-cmd --add-port=88/udp --permanent; \
firewall-cmd --add-port=135/tcp --permanent;firewall-cmd --add-port=137-138/udp --permanent; \
firewall-cmd --add-port=139/tcp --permanent;firewall-cmd --add-port=389/tcp --permanent; \
firewall-cmd --add-port=389/udp --permanent;firewall-cmd --add-port=445/tcp --permanent; \
firewall-cmd --add-port=464/tcp --permanent;firewall-cmd --add-port=464/udp --permanent; \
firewall-cmd --add-port=636/tcp --permanent;firewall-cmd --add-port=1024-5000/tcp --permanent;\
firewall-cmd --add-port=3268-3269/tcp --permanent;firewall-cmd --add-port=49152-65535/tcp --permanent

20240203追記

bash上で改行後に続けてコマンドを打つ場合はバックスラッシュを用いますが、全文コピペすると改行が入らないため、バックスラッシュが余計でした…修正しています。

# firewall-cmd --add-port=53/tcp --permanent;firewall-cmd --add-port=53/udp --permanent;
firewall-cmd --add-port=88/tcp --permanent;firewall-cmd --add-port=88/udp --permanent;
firewall-cmd --add-port=135/tcp --permanent;firewall-cmd --add-port=137-138/udp --permanent;
firewall-cmd --add-port=139/tcp --permanent;firewall-cmd --add-port=389/tcp --permanent;
firewall-cmd --add-port=389/udp --permanent;firewall-cmd --add-port=445/tcp --permanent;
firewall-cmd --add-port=464/tcp --permanent;firewall-cmd --add-port=464/udp --permanent;
firewall-cmd --add-port=636/tcp --permanent;firewall-cmd --add-port=1024-5000/tcp --permanent;
firewall-cmd --add-port=49152-65535/tcp --permanent

 

firewalldは「–permanent」オプションを付けて永続化させますが、

その場合、即時反映されませんので、反映コマンドを打ちます。

# systemctl restart firewalld.service

 

設定内容を確認して、作業完了です。

# firewall-cmd --list-all

 

 

20240203追記

最初にブログを書いたときにはなかった不具合が起きました。(気づかなかっただけかも…)

 

※上記ではsambaserverという名前で構築していましたがadserverに変更しています。

sambaserver=adserverで読み替えてください。

 

サーバを起動した後、sambaサービスが自動起動する際にすべてのプロセスが立ち上がっていないようです。

 

2月 02 01:41:29 adserver smbd[1048]: Copyright Andrew Tridgell and the Samba Team 1992-2023
2月 02 01:41:29 adserver samba[815]: [2024/02/02 01:41:29.740663, 0] ../../source4/samba/process_prefork.c:630(prefork_child_pipe_handler)
2月 02 01:41:29 adserver samba[815]: prefork_child_pipe_handler: Parent 815, Child 1049 exited with status 0
2月 02 01:41:29 adserver samba[815]: [2024/02/02 01:41:29.741429, 0] ../../source4/samba/process_prefork.c:630(prefork_child_pipe_handler)
2月 02 01:41:29 adserver samba[815]: prefork_child_pipe_handler: Parent 815, Child 1057 exited with status 0
2月 02 01:41:29 adserver samba[815]: [2024/02/02 01:41:29.749910, 0] ../../source4/samba/process_prefork.c:630(prefork_child_pipe_handler)
2月 02 01:41:29 adserver samba[815]: prefork_child_pipe_handler: Parent 815, Child 1055 exited with status 0
2月 02 01:41:29 adserver winbindd[1068]: [2024/02/02 01:41:29.761319, 0] ../../source3/winbindd/winbindd.c:1441(main)
2月 02 01:41:29 adserver winbindd[1068]: winbindd version 4.19.4 started.
2月 02 01:41:29 adserver winbindd[1068]: Copyright Andrew Tridgell and the Samba Team 1992-2023

 

この状態でPCからドメイン参加を要請しても弾かれます。

ちなみにWindows 11 proでのエラー内容は以下。

—————————————————————————————————

注意: この情報はネットワーク管理者向けのものです。ネットワーク管理者でない場合は、ネットワーク管理者に連絡してこの情報を伝えてください。この情報はファイル C:\WINDOWS\debug\dcdiag.txt に記録されています。

ドメイン “home.miyamo83.com” のドメイン コントローラーを検索するために使用される DNS の Service Location (SRV) リソース レコードは正常に照会されました:

クエリは _ldap._tcp.dc._msdcs.home.miyamo83.com の SRV レコードに対するものでした

クエリによって、次のドメイン コントローラーが識別されました:
adserver.home.miyamo83.com

しかし、どのドメイン コントローラーにもアクセスできませんでした。

このエラーの一般的な原因として次のものがあります:

– ドメイン コントローラーの名前を IP アドレスにマップするための Host (A) または (AAAA) レコードが不足しているか、正しくないアドレスを含んでいます。

– DNS に登録されているドメイン コントローラーがネットワークに接続されていないか、実行されていません。

—————————————————————————————————

sambaを再起動すると普通に立ち上がり、自動起動を無効にしてサーバの再起動後に手動でサービスの立ち上げを行っても正常に起動します。

 

そこで、sambaのログを見ているとどうやら子プロセスを立ち上げようとした際に、ネットワークが立ち上がり切っていないためにエラーが起きているように見えます。

# tail /usr/local/samba/var/log.samba

[2024/02/04 01:02:14.679342, 0] ../../source4/lib/socket/interface.c:335(load_interface_list)
WARNING: no network interfaces found
[2024/02/04 01:02:14.682439, 0] ../../source4/lib/socket/interface.c:335(load_interface_list)
WARNING: no network interfaces found
[2024/02/04 01:02:14.684800, 0] ../../source4/lib/socket/interface.c:335(load_interface_list)
WARNING: no network interfaces found
[2024/02/04 01:02:14.704833, 0] ../../source4/samba/process_prefork.c:630(prefork_child_pipe_handler)
prefork_child_pipe_handler: Parent 821, Child 1050 exited with status 0
[2024/02/04 01:02:14.705656, 0] ../../source4/samba/process_prefork.c:630(prefork_child_pipe_handler)
prefork_child_pipe_handler: Parent 821, Child 1058 exited with status 0
[2024/02/04 01:02:14.706221, 0] ../../source4/samba/process_prefork.c:630(prefork_child_pipe_handler)
prefork_child_pipe_handler: Parent 821, Child 1056 exited with status 0
[2024/02/04 01:16:58.743188, 0] ../../source4/samba/server.c:633(binary_smbd_main)
samba version 4.19.4 started.
Copyright Andrew Tridgell and the Samba Team 1992-2023

 

そこで、sambaをdnfでインストールした場合のsmb.serviceを見てみると

# cat /usr/lib/systemd/system/smb.service ※別のサーバです。

[Unit]
Description=Samba SMB Daemon
Documentation=man:smbd(8) man:samba(7) man:smb.conf(5)
Wants=network-online.target
After=network.target network-online.target nmb.service winbind.service

[Service]
Type=notify
PIDFile=/run/smbd.pid
LimitNOFILE=16384
EnvironmentFile=-/etc/sysconfig/samba
ExecStart=/usr/sbin/smbd –foreground –no-process-group $SMBDOPTIONS
ExecReload=/bin/kill -HUP $MAINPID
LimitCORE=infinity
Environment=KRB5CCNAME=FILE:/run/samba/krb5cc_samba

[Install]
WantedBy=multi-user.target

 

 

network-online.targetの起動まで待機しているようです。

詳しくわかりませんが、network.targetだけはNGでnetwork-online.targetを待つ必要があるかもと思い、以下のように書き換えました。

 

# vi /etc/systemd/system/samba.service

[Unit]
Description= Samba 4 Active Directory
Wants=network-online.target
After=syslog.target
After=network.target network-online.target
[Service]
Type=forking
PIDFile=/usr/local/samba/var/run/samba.pid
ExecStart=/usr/local/samba/sbin/samba
[Install]
WantedBy=multi-user.target

 

再起動後、無事にプロセスがすべて立ち上がり、PCからのドメイン参加に成功しました。

 

3.後書き

これで使用期限付きの評価版Windows Serverとはお別れできますね!

最後までこき使ってあげましょう。

 

ところで、最近はトーマスのチューイングキャンディにハマっています。

トーマスのストックが切れたら、体がブルブル震えてくるようになりましたが僕は元気です。

 

20240203追記

トーマスのチューイングキャンディが製造中止になりました。体の震えが止まりません。

 

4.参考サイト

CentOSとSamba4.10系でWindowsと同等のActive Directoryを作成
前回の記事でSamba4.9系でのActive Directory構築手順を紹介しました。そのSambaですが、2019年4月現在、Sambaの最新バージョンが4.9系から4.10系にバージョンアップ
Samba 4.8.5 から 4.9.1 にアップデートしてみた | KUSONEKOの見る世界
Samba 4.9へのアップデートで必要になったパッケージを記載しています。

コメント

  1. むな より:

    こちらのサイトでADDCの勉強になりました。
    ところで、/etc/krb5.confに関しての記載がなかったので少し迷いましたが、無事にADDCの構築ができました。
    ありがとうございます。

    • みやも より:

      コメントありがとうございます。

      返信に時間が経ってしまい申し訳ございません。

      ご認識の通り/etc/krb5.confの設定が抜けておりましたので、追記させていただきました。
      ご迷惑をおかけし申し訳ございません。

      稚拙な文章ですが、少しでもお役に立てられたのならば光栄です。

タイトルとURLをコピーしました