Configuração
Instale o repositório EPEL mais atualizado possível:
# rpm -ivh http://mirror.globo.com/epel/7/x86_64/e/epel-release-7-10.noarch.rpm
Atualize o sistema:
# yum -y update
Instale os pacotes necessários do sistema:
# yum -y install wget vim net-tools open-vm-tools
# yum -y groupinstall 'Development Tools'
Configuração do nome da máquina:
# vim /etc/hostname
nomedamaquina
Configurando o sysconfig/network:
# vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=nomedamaquina
Desabilitando o SElinux e IPtables
Para não complicar muito as coisas nesse momento e como estamos fazendo em um ambiente de controle e de teste, vamos desabilitar o SELinux e o Firewall.
# vim /etc/selinux/config
SELINUX=disabled
# systemctl stop firewalld
# systemctl disable firewalld
Reinicie a máquina:
# init 6
Preparando para a instalação do Samba4
Nesta seção, iremos preparar o ambiente para que o
Samba4 seja instalado como controle de configuração do
CentOS 7. Instale o repositório EPEL, mais atualizado possível:
# rpm -ivh http://mirror.globo.com/epel/7/x86_64/e/epel-release-7-10.noarch.rpm
Atualize o sistema:
# yum -y update
Instale os pacotes necessários do sistema:
# yum -y install wget vim net-tools open-vm-tools
# yum -y groupinstall 'Development Tools'
Configuração do nome da máquina:
# vim /etc/hostname
nomedamaquina
Configurando o sysconfig/network:
# vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=nomedamaquina
Para não complicar muito as coisas nesse momento e como estamos fazendo em um ambiente controla e de teste, vamos desabilitar o SELinux e o Firewall.
# vim /etc/selinux/config
SELINUX=disabled
# systemctl stop firewalld
# systemctl disable firewalld
Reinicie a máquina:
# init 6
O CentOS 7 não possui todos os pacotes necessários para compilação do Samba4 com suporte a Active Directory, por isso devemos baixar os pacotes.
Instalando pacotes necessários para a instalação do Samba4:
# yum install -y openldap-devel pam-devel git gcc make wget libacl-devel libblkid-devel gnutls-devel readline-devel python-devel cups-devel libaio-devel quota-devel ctdb-devel krb5-devel krb5-workstation acl setroubleshoot-server setroubleshoot-plugins policycoreutils-python libsemanage-python setools-libs-python setools-libs popt-devel libpcap-devel libidn-devel libxml2-devel libacl-devel libsepol-devel libattr-devel keyutils-libs-devel cyrus-sasl-devel cups-devel bind-utils bind-sdb bind-devel bind-libs bind avahi-devel mingw32-iconv gamin libcap-devel rpc2-devel glusterfs-devel python-dns pkgconfig gdb e2fsprogs-devel zlib-devel sqlite-devel perl attr acl krb5-user ntp bind bind-sdb attr bind-utils docbook-style-xsl gcc gdb krb5-workstation libsemanage-python libxslt perl perl-ExtUtils-MakeMaker perl-Parse-Yapp perl-Test-Base pkgconfig policycoreutils-python python-crypto gnutls-devel libattr-devel keyutils-libs-devel libacl-devel libaio-devel libblkid-devel libxml2-devel openldap-devel pam-devel popt-devel python-devel readline-devel zlib-devel systemd-devel tdb-tools
Configurando o arquivo "hosts":
# vim /etc/hosts
192.168.40.70 inf.infstorage.local inf
Configurando "fstab":
# vim /etc/fstab
defaults,acl,user_xattr
# mount -o remount /
Configurando NTP
O NTP (Network Time Protocol) é um protocolo de rede baseado no TCP/IP. Ele é usado para sincronizar o relógio dos computadores conectados a uma rede de dados de maneira precisa. A real necessidade disso é superar aos problemas causados pela latência, os quais colocam quaisquer registros sob desconfiança.
# vim /etc/ntp.conf
server a.ntp.br
server b.ntp.br
server c.ntp.br
server a.st1.ntp.br
server b.st1.ntp.br
server c.st1.ntp.br
# systemctl enable ntpd
# systemctl restart ntpd
Baixando o pacote do Samba4:
wget https://download.samba.org/pub/samba/stable/samba-4.8.2.tar.gz
Configurando o "resolv.conf":
# vim /etc/resolv.conf
search infstorage.local
domain infstorage.local
nameserver 127.0.0.1
Configurando o krb5.conf
Kerberos é um protocolo desenvolvido para fornecer poderosa autenticação em aplicações usuário/servidor, onde ele funciona como a terceira parte neste processo, oferendo autenticação ao usuário.
# mv /etc/krb5.conf /etc/krb5.conf.old
# vim /etc/krb5.conf
[libdefaults]
default_realm = INFSTORAGE.LOCAL
dns_lookup_realm = false
dns_lookup_kdc = true
Extraindo e copilando o pacote:
# tar zxvf samba-4.8.2.tar.gz
# cd samba-4.8.2
# ./configure
# make
# make install
Provisionando o Samba4
Provisionamento do domínio em que serão utilizadas ferramentas automatizadas do próprio Samba para preparar nosso servidor como controlador do domínio. A principal ferramenta é o comando "samba-tool", que serve como frontend responsável por manipular o OpenLDAP.
# /usr/local/samba/bin/samba-tool domain provision --use-rfc2307 -interactive
Realm [INFSTORAGE.LOCAL]
Domain [INFSTORGE]:
Server Role (dc, member, standalone) [dc]:
DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: BIND9_DLZ
Administrator password:
Retype password:
Verificar se o Samba subiu normalmente:
# /usr/local/samba/sbin/samba
# ps uax | grep samba
Script de inicialização do Samba4
Para que o Unit baseado no Systemd seja integrado ao servidor, possibilitando assim, o controle dos processos relativos aos serviços, bem como na inicialização do sistema e o Samba possa subir automaticamente.
# vim /etc/systemd/system/samba.service
[Unit]
Description=Samba AD Daemon
After=syslog.target network.target
[Service]
Type=forking
NotifyAccess=all
PIDFile=/usr/local/samba/var/run/samba.pid
LimitNOFILE=16384
EnvironmentFile=-/etc/sysconfig/samba
ExecStart=/usr/local/samba/sbin/samba -D
ExecReload=/usr/bin/kill -HUP $MAINPID
ExecStop=/usr/bin/killall samba
Restart=on-failure
[Install]
WantedBy=multi-user.target
Configurando o DNS
Um Active Directory funcional baseia-se fortemente em um DNS funcional. Não é apenas para resolver endereços IP em nomes e vice-versa. Os clientes encontram seus controladores de domínio e outros serviços importantes do AD por meio de consultas DNS, isso significa que seus clientes devem usar seus controladores de domínio como seus servidores de nomes.
Acessando o "named.conf", altere ou insira:
# vim /etc/named.conf
options{
tkey-gssapi-keytab "/usr/local/samba/private/dns.keytab";
listen-on port 53 { 127.0.0.1; 192.168.40.70;};
forwarders {
200.175.182.139;
8.8.8.8;
};
}
include "/usr/local/samba/bind-dns/named.conf";
zone "70.168.192.in-addr.arpa" {
type master;
file "/var/named/192.168.70.rev";
allow-update {
none;
};
};
Verificar a versão do "named":
# named -v
# vim /usr/local/samba/bind-dns/named.conf
Retire a opção # da versão do named.
Reinicie o "named":
# systemctl restart named
Testando o Samba4:
# host -t SRV _ldap._tcp.infstorage.local.
# host -t SRV _kerberos._udp. infstorage.local.
# host -t A infstorage.local
Gerando chave do Kerberos:
# kinit administrator
Verificando a chave:
# klist -e
Atualizando o DNS:
# /usr/local/samba/sbin/samba_dnsupdate verbose
Referências