Vamos lá compilar e instalar o
Samba4 no
CentOS 8.
Desative o SELinux e Firewalld, caso não saiba usar, se souber pode deixar ativo e ajustar após.
Após instalação e update do CentOS, desative o SElinux:
# vim /etc/selinux/config
E deixe assim:
SELINUX=disabled
Desativar o Firewalld:
# systemctl disable firewalld
Instalar o Repo Epel:
# yum -y install epel-release
Ativar o repo PowerTools:
# yum config-manager --set-enabled PowerTools
Efetuar o update do servidor:
# yum update -y
Reinicie o mesmo.
Instale os pacotes necessários para compilar o samba:
# yum install 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 python36-devel readline-devel rpcgen systemd-devel \
tar zlib-devel cups-devel -y
Agora, ajuste o seu
/etc/hosts:
# vim /etc/hosts
Adicione o nome e IP do seu servidor:
192.168.0.185 srvdc.home.local srvdc
Vamos efetuar o download da última versão do Samba4, no caso dessa dica, estou usando a versão 4.11.0:
# wget https://ftp.samba.org/pub/samba/samba-latest.tar.gz
Descompacte o mesmo:
# tar -xzvf samba-latest.tar.gz
Acesse o diretório:
# cd samba-4.11.0
Rode o "./configure":
# ./configure
Depois o "make":
# make
Agora, o "make install":
# make install
Criamos agora um PATH para os comandos do samba:
# vim /etc/profile.d/samba4.sh
if [ $(id -u) -eq 0 ]
then
PATH="/usr/local/samba/sbin:$PATH"
fi
PATH="/usr/local/samba/bin:$PATH"
export PATH
Salve o arquivo.
Agora, suba o domínio:
# samba-tool domain provision --use-rfc2307 --interactive
Copie o "krb5.conf":
# cp /usr/local/samba/private/krb5.conf /etc/
Link simbólico para funcionar o winbind:
# ln -s /usr/local/samba/lib/libnss_winbind.so.2 /lib/libnss_winbind.so
# ln -s /lib/libnss_winbind.so /lib/libnss_winbind.so.2
# ln -s /usr/local/samba/lib/libnss_winbind.so.2 /lib64/libnss_winbind.so
# ln -s /lib/libnss_winbind.so /lib64/libnss_winbind.so.2
# vim /etc/nsswitch.conf
E deixe assim:
passwd: files sss winbind
group: files sss winbind
Crie o arquivo de inicialização do samba:
# vim /lib/systemd/system/samba-dc.service
[Unit]
Description= Samba 4 Active Directory
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
LimitNOFILE=16384
ExecStart=/usr/local/samba/sbin/samba -D
ExecReload=/usr/bin/kill -HUP $MAINPID
PIDFile=/usr/local/samba/var/run/samba.pid
[Install]
WantedBy=multi-user.target
Agora, para ativar na inicialização do CentOS:
# systemctl enable samba-dc
Iniciar o serviço do samba:
# systemctl start samba-dc
Guia de referência:
Package Dependencies Required to Build Samba - SambaWiki
Utilizando esta abordagem, fica difícil manter? Pergunto sobre atualizações de segurança, uma vez que terá que compilar a cada atualização, não sei quanto seguro é seguindo este modelo com samba.
Estou com uma maquina aqui para a instalação de um controlador de domínio, estou estudando o caso porém tenho que ser rápido, preciso decidir se sigo esta abordagem com Cento 8 compilando o samba, se aguardo o Ubuntu 20.04 Server que acredito que já venha com suporte para provisionamento do samba nativo nos pacotes oficiais, ou se tento um All in One como o "nethserver"
https://www.nethserver.org/ que tem o CentOS 7 no background.