[root@server1 ~]# systemctl stop slapd ← openldapを止めます。
[root@server1 ~]# systemctl disable slapd ← openldapの自動起動を無効にします。
[root@server1 ~]# systemctl stop sssd ← sssdを止めます。
[root@server1 ~]# systemctl disable sssd ← sssdの自動起動を無効にします。
[root@server1 ~]# rm /var/lib/sss/db/*.ldb ← sssdのキャッシュを削除します。
[root@server1 ~]# systemctl stop oddjobd ← oddjobdを止めます。
[root@server1 ~]# systemctl disable oddjobd ← oddjobdの自動起動を無効にします。
[root@server1 ~]# rpm -e samba ← 初期にインストールされているSambaをアンインストールします。
[root@server1 ~]# rpm -e samba-tool ← 初期にインストールされているsamba-toolをアンインストールします。
下記のソフトウェアをインストールします。
[root@server1 ~]# 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
[root@server1 ~]# dnf install -y \
docbook-style-xsl gcc gdb gnutls-devel gpgme-devel \
jansson-devel keyutils-libs-devel krb5-workstation \
libacl-devel libaio-devel libarchive-devel libattr-devel \
libblkid-devel libtasn1 libtasn1-tools libxml2-devel \
libxslt lmdb-devel openldap-devel pam-devel perl \
perl-ExtUtils-MakeMaker perl-Parse-Yapp popt-devel \
python3-cryptography python3-dns python3-gpg python3-devel \
readline-devel rpcgen systemd-devel tar zlib-devel \
cups-devel flex bison dbus-devel python3-markdown perl-JSON
※パッケージ版のSambaでは、ドメインコントローラの構築ができないという機能制限があります。
↓ 公式サイトより最新版のソースコードをダウンロードします。
[root@server1 ~]# wget https://download.samba.org/pub/samba/samba-latest.tar.gz
↓ tarファイルを展開し、展開前の圧縮フォルダを削除します。
[root@server1 ~]# tar zxvf samba-latest.tar.gz ;rm -f samba-latest.tar.gz
[root@server1 ~]# cd samba-4.20.1 ← Sambaのディレクトリに移動します。
[root@server1 ~]# ./configure ← Makeファイルを作成します。
[root@server1 ~]# make ;make install ← コンパイルとインストールをします。
↓ アクティブディレクトリ・ドメインコントローラを構築します。
質問に答えていって下さい。
[root@server1 ~]# /usr/local/samba/bin/samba-tool domain provision --use-rfc2307 --interactive
※ドメイン準備をやり直す場合は、以下のように編集します。
[root@server1 ~]# rm -f /usr/local/samba/etc/smb.conf ← ドメイン準備で生成されたファイルを削除します。
[root@server1 ~]# rm -rf /usr/local/samba/private/* ← ドメイン準備で生成されたファイルを削除します。
[root@server1 ~]# rm -rf /usr/local/samba/var/locks/sysvol/* ← ドメイン準備で生成されたファイルを削除します。
[root@server1 ~]# vi /etc/krb5.conf ← krb5.confを編集します。
[libdefaults]
default_realm = ZOAH.LAN
dns_lookup_kdc = true
[domain_realm]
.zoah.lan = ZOAH.LAN
zoah.lan = ZOAH.LAN
ソースを展開したディレクトリにサービスに追加するためのスクリプトファイルがあるので、/etc/systemd/system/にコピーします。
・samba-4.20.1/bin/default/packaging/systemd/smb.service
・samba-4.20.1/bin/default/packaging/systemd/nmb.service
・samba-4.20.1/bin/default/packaging/systemd/winbind.service
・samba-4.20.1/bin/default/packaging/systemd/samba.service
Samba単体でファイルサーバーを構築したり、既存のドメインに参加するならsmb,nmb,winbindを使い、Sambaでドメインコントローラーを構築するならsambaを使います。
↓ /etc/systemd/system/samba.serviceを修正します。
[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
[root@server1 ~]# systemctl daemon-reload ← 設定を反映します。
[root@server1 ~]# vi /usr/local/samba/etc/smb.conf ← smb.confを編集します。
# Global parameters
[global]
#dns forwarder = 127.0.0.1
netbios name = SERVER1
realm = ZOAH.LAN
server role = active directory domain controller
server services = s3fs, rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbindd, ntp_signd, kcc, dnsupdate, dns
utmp = yes
workgroup = ZOAH
idmap_ldb:use rfc2307 = yes
server multi channel support = yes
printcap name = cups
load printers = yes
cups options = raw
unix charset = UTF-8
dos charset = CP932
mangled names = no
vfs objects = catia
catia:mappings = 0x22:0xa8,0x2a:0xa4,0x2f:0xf8,0x3a:0xf7,0x3c:0xab,0x3e:0xbb,0x3f:0xbf,0x5c:0xff,0x7c:0xa6
#hosts allow = 192.168.100. 192.168.102. 127.0.0.1 localhost
username map = /usr/local/samba/etc/user.map ← 追加します。
template shell = /bin/bash ← 追加します。
template homedir = /home/%U ← 追加します。
client max protocol = SMB3
client min protocol = SMB3
[sysvol]
path = /usr/local/samba/var/locks/sysvol
read only = No
[netlogon]
path = /usr/local/samba/var/locks/sysvol/zoah.lan/scripts
read only = No
[homes]
comment = ホームディレクトリです。
path = /home
valid users = %S, %D%w%S
browseable = No
read only = No
inherit acls = Yes
#vfs objects = recycle
#recycle:repository = .recycle
#recycle:keeptree = no
#recycle:versions = yes
#recycle:touch = no
#recycle:maxsize = 0
#recycle:exclude = *.tmp ~$*
[printers]
comment = All Printers
path = /var/tmp
printable = Yes
create mask = 0600
browseable = No
[print$]
comment = Printer Drivers
path = /var/lib/samba/drivers
write list = @printadmin root
force group = @printadmin
create mask = 0664
directory mask = 0775
[data]
comment = データ領域です。
path = /data
valid users = rezo, root, administrator
read only = No
inherit acls = Yes
#vfs objects = recycle
#recycle:repository = .recycle
#recycle:keeptree = no
#recycle:versions = yes
#recycle:touch = no
#recycle:maxsize = 0
#recycle:exclude = *.tmp ~$*
[admin]
comment = 管理者のみアクセス出来ます。
path = /
valid users = rezo, root, administrator
read only = No
inherit acls = Yes
#vfs objects = recycle
#recycle:repository = .recycle
#recycle:keeptree = no
#recycle:versions = yes
#recycle:touch = no
#recycle:maxsize = 0
#recycle:exclude = *.tmp ~$*
[os_chaoticblue]
comment = CHAOTICBLUEのOSのバックアップ領域です。
path = /data/Data_2/backup/OS_Backup/CHAOTICBLUE
valid users = rezo, root, administrator
read only = No
inherit acls = Yes
[os_darkstar]
comment = DARKSTARのOSのバックアップ領域です。
path = /data/Data_2/backup/OS_Backup/DARKSTAR
valid users = rezo, root, administrator
read only = No
inherit acls = Yes
[os_rubyeye]
comment = RUBYEYEのOSのバックアップ領域です。
path = /data/Data_2/backup/OS_Backup/RUBYEYE
valid users = rezo, root, administrator
read only = No
inherit acls = Yes
[os_server1]
comment = SERVER1のOSのバックアップ領域です。
path = /data/Data_2/backup/OS_Backup/SERVER1
valid users = rezo, root, administrator
read only = No
inherit acls = Yes
[os_server2]
comment = SERVER2のOSのバックアップ領域です。
path = /data/Data_2/backup/OS_Backup/SERVER2
valid users = rezo, root, administrator
read only = No
inherit acls = Yes
[os_server3]
comment = SERVER3のOSのバックアップ領域です。
path = /data/Data_2/backup/OS_Backup/SERVER3
valid users = rezo, root, administrator
read only = No
inherit acls = Yes
[os_server4]
comment = SERVER4のOSのバックアップ領域です。
path = /data/Data_2/backup/OS_Backup/SERVER4
valid users = rezo, root, administrator
read only = No
inherit acls = Yes
[os_server5]
comment = SERVER5のOSのバックアップ領域です。
path = /data/Data_2/backup/OS_Backup/SERVER5
valid users = rezo, root, administrator
read only = No
inherit acls = Yes
[os_xelloss]
comment = XELLOSSのOSのバックアップ領域です。
path = /data/Data_2/backup/OS_Backup/XELLOSS
valid users = rezo, root, administrator
read only = No
inherit acls = Yes
[音楽]
comment = 音楽フォルダです。
path = /data/Data_1/backup/音楽
public = yes
writable = no
guest only = yes
read only = Yes
[MFC-L9570CDWのスキャンフォルダー]
comment = MFC-L9570CDWのスキャンフォルダーです。
path = /data/MFC-L9570CDW
public = yes
writable = yes
guest only = yes
read only = No
force create mode = 0666
force directory mode = 0777
inherit acls = Yes
[root@server1 ~]# vi /usr/local/samba/etc/user.map ← 編集します。
!root = ZOAH\Administrator
[root@server1 ~]# ln -s /usr/local/samba/lib/libnss_winbind.so.2 /lib64/ ← シンボリックリンクを作成します。
[root@server1 ~]# ln -s /lib64/libnss_winbind.so.2 /lib64/libnss_winbind.so ← シンボリックリンクを作成します。
[root@server1 ~]# ln -s /usr/local/samba/lib/libnss_winbind.so.2 /lib/ ← シンボリックリンクを作成します。
[root@server1 ~]# ln -s /lib/libnss_winbind.so.2 /lib/libnss_winbind.so ← シンボリックリンクを作成します。
[root@server1 ~]# ldconfig
[root@server1 ~]# systemctl enable samba ← Sambaが自動的に起動するようにします。
[root@server1 ~]# systemctl start samba ← Sambaを起動します。
[root@server1 ~]# vi /etc/named.conf ← named.confを編集します。
options {
listen-on port 53 { any; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
version "T_T";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
recursing-file "/var/named/data/named.recursing";
secroots-file "/var/named/data/named.secroots";
recursion yes;
allow-query { any; };
allow-recursion { localhost; localnets; 192.168.100.0/24; 192.168.102.0/24; };
//allow-query-cache { localhost; localnets; 192.168.100.0/24; 192.168.102.0/24; };
dnssec-validation auto;
bindkeys-file "/etc/named.root.key";
tkey-gssapi-keytab "/usr/local/samba/bind-dns/dns.keytab"; ← 追加します。
minimal-responses yes; ← 追加します。
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
category lame-servers { null; };
};
view "internal" {
match-clients {
localhost;
127.0.0.1;
192.168.100.0/24;
192.168.102.0/24;
};
zone "." IN {
type hint;
file "named.ca";
};
zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
type master;
file "named.ip6.local";
allow-update {
none;
};
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
allow-update {
none;
};
};
//zone "255.in-addr.arpa" IN {
// type master;
// file "named.broadcast";
// allow-update {
// none;
// };
// };
zone "localdomain" IN {
type master;
file "localdomain.zone";
allow-update {
none;
};
};
//zone "0.in-addr.arpa" IN {
// type master;
// file "named.zero";
// allow-update {
// none;
// };
// };
zone "localhost" IN {
type master;
file "localhost.zone";
allow-update {
none;
};
};
zone "zoah.lan" {
type master;
file "zoah.lan.hosts";
allow-update { 192.168.100.0/24; 127.0.0.1; };
};
zone "100.168.192.in-addr.arpa" {
type master;
file "zoah.lan.rev";
allow-update { 192.168.100.0/24; 127.0.0.1; };
};
//zone "zoah.alt" {
// type master;
// file "zoah.alt.hosts";
// allow-update { 192.168.102.0/24; };
// };
//zone "102.168.192.in-addr.arpa" {
// type master;
// file "zoah.alt.rev";
// allow-update { 192.168.102.0/24; };
// };
};
view "external" {
match-clients { any; };
match-destinations { any; };
zone "zoah.net" {
type master;
file "zoah.net.hosts";
allow-update { none; };
allow-transfer{
153.120.38.37;
160.16.54.90;
};
notify yes;
};
zone "126.209.179.115.in-addr.arpa" {
type master;
file "zoah.net.rev";
allow-update { none; };
};
};
include "/usr/local/samba/bind-dns/named.conf"; ← 追加します。
↓ /var/named/zoah.lan.hosts に以下のレコードを追加します。
server1.zoah.lan. A 192.168.100.200
_ldap._tcp.zoah.lan. SRV 0 0 389 server1.zoah.lan.
_kerberos._tcp.zoah.lan. SRV 0 0 88 server1.zoah.lan.
_ldap._tcp.dc._msdcs.zoah.lan. SRV 0 0 389 server1.zoah.lan.
_kerberos._tcp.dc._msdcs.zoah.lan. SRV 0 0 88 server1.zoah.lan.
gc._msdcs.zoah.lan. SRV 0 0 3268 server1.zoah.lan.
[root@server1 ~]# systemctl restart named ← bindを再起動します。
↓ Sambaのユーザーとパスワードを登録します。
[root@server1 ~]# /usr/local/samba/bin/samba-tool user create ユーザー名 パスワード --rfc2307-from-nss --gecos=ユーザー名 --uid=ユーザー名 --uid-number=uid --gid-number=gid --home-directory="\\\server1\home\ユーザー名"
[root@server1 ~]# authselect select sssd with-mkhomedir --force ← 認証プロバイダーを sssd に切り替え、初回ログイン時にホームディレクトリを自動生成します。
[root@server1 ~]# authconfig --enablemkhomedir --update ← ユーザーのホームディレクトリの自動作成を有効化します。
[root@server1 ~]# authselect enable-feature with-mkhomedir ← 初回ログイン時にホームディレクトリを自動生成します。
[root@server1 ~]# /usr/local/samba/bin/samba-tool domain passwordsettings set --complexity=off ← パスワード複雑性(英数字記号混在強制)を無効化します。
[root@server1 ~]# /usr/local/samba/bin/samba-tool domain passwordsettings set --complexity=on ← パスワード複雑性(英数字記号混在強制)を有効化します。
[root@server1 ~]# /usr/local/samba/bin/samba-tool domain passwordsettings set --min-pwd-length=4 ← 最小パスワード長を4桁に設定します。
[root@server1 ~]# /usr/local/samba/bin/samba-tool domain passwordsettings set --max-pwd-age=0 ← パスワード有効期限を0日(無期限)に設定します。
[root@server1 ~]# /usr/local/samba/bin/samba-tool domain passwordsettings set --min-pwd-age=0 ← パスワード変更禁止期間を0日(同日中に変更可能)に設定します。
[root@server1 ~]# /usr/local/samba/bin/samba-tool domain passwordsettings show ← パスワード方針を表示します。