domingo, 30 de junio de 2019

Instalar SAMBA 4 Active Directory Centos 7 (compilado)

Hace poco más de 2 años había echo una guia con repositorios para centos, desafortunadamente, estos repositorios desaparecieron y hasta hora no he visto a nadie con el deseo de hacer algo parecido. Sin embargo traigo esta nueva guía que pienso que está bastante depurada Les dejo 2 modos de red dependiendo de lo que requieran y como instalalr samba 4.9 ya probado y samba 4.10 que debo de actualizar.



  1. Aprovisionamiento de red avanzado


Si se desea hacer un samba 4 que sirva a 2 redes con eth1 y eth2 si no es su caso saltese estos pasos y empiese

Nota: Lo de las 2 redes solo se usará en caso de querer servir en 2 redes diferentes un mismo servicio, si se tiene una sola red interna obviar este paso

  1. Direcciones IP de demostración   

192.168.10.6   red delagro
10.20.10.6red fondas
hostnameads01
usando network manager

ejecutamos como administrador


nmuti

aparecerá el siguiente menú donde seleccionaremos "Modificar una conexión"



Seleccionamos RED-FONDAS la cual es la eth1 que irá a la red principal (eth0 es puerta de enlace)


vemos la configuración



De esta manera podremos llegar a la red a servir, sin necesidad de configurar una puerta de enlace adicional.



  1. Configuración del archivo host:

Ediatamos el archivo hosto para coloar nuestra dirección FQDN

nano /etc/hosts

Colocamos

127.0.0.1       ads01.ad.corpodelagro.gob.ve ads01 localhost localhost.localdomain
192.168.10.6    ads01.ad.corpodelagro.gob.ve ads01
10.20.10.6      ads01.ad.corpodelagro.gob.ve ads01

Si solo tenemos una red (caso simple)

127.0.0.1       ads01.ad.corpodelagro.gob.ve ads01 localhost localhost.localdomain
192.168.10.6    ads01.ad.corpodelagro.gob.ve ads01

  1. Permisos de firewalld

Primero ver que zonas están activas en el firewall

firewall-cmd --get-active-zones

saldrá algo como esto (que si se usa centos no va a variar). En caso de que varíe poner la zona que sale en la salida del comando

public
output
  interfaces: eth0 eth1

nota: lo tachado es para no redundar en cuanto a las configuraciones pues recordemos se estan dando dos ejemplos posibles al mismo tiempo.

Ejecutar los siguientes comandos para abrir los puertos de cara a los usuarios

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 --reload

  1. Instalar las dependencias para la compilación

yum install epel-release -y
yum --enablerepo=extras 
install centos-release-scl
yum groups -y install "Development Tools"

Segun el blog de samba (para 4.10 o superiores)


#!/bin/bash


#
# This file is generated by 'bootstrap/template.py --render'
# See also bootstrap/config.py
#


set -xueo pipefail


yum update -y
yum install -y epel-release
yum update -y


yum install -y \
    "@Development Tools" \
    acl \
    attr \
    autoconf \
    avahi-devel \
    bind-utils \
    binutils \
    bison \
    cups-devel \
    curl \
    dbus-devel \
    docbook-dtds \
    docbook-style-xsl \
    flex \
    gawk \
    gcc \
    gdb \
    git \
    glib2-devel \
    glibc-common \
    gnutls-devel \
    gpgme-devel \
    gzip \
    hostname \
    htop \
    jansson-devel \
    keyutils-libs-devel \
    krb5-devel \
    krb5-server \
    lcov \
    libacl-devel \
    libaio-devel \
    libarchive-devel \
    libattr-devel \
    libblkid-devel \
    libbsd-devel \
    libcap-devel \
    libicu-devel \
    libnsl2-devel \
    libpcap-devel \
    libsemanage-python \
    libtasn1-devel \
    libtasn1-tools \
    libtirpc-devel \
    libunwind-devel \
    libuuid-devel \
    libxslt \
    lmdb \
    lmdb-devel \
    make \
    mingw64-gcc \
    ncurses-devel \
    nettle-devel \
    openldap-devel \
    pam-devel \
    patch \
    perl-Archive-Tar \
    perl-ExtUtils-MakeMaker \
    perl-JSON-Parse \
    perl-Parse-Yapp \
    perl-Test-Base \
    perl-core \
    perl-generators \
    perl-interpreter \
    pkgconfig \
    policycoreutils-python \
    popt-devel \
    procps-ng \
    psmisc \
    pygpgme \
    python-crypto \
    python-devel \
    python-dns \
    python-markdown \
    python36 \
    python36-crypto \
    python36-devel \
    python36-dns \
    dnf \
    nano \
    fail2ban \
    python36-markdown \
    quota-devel \
    readline-devel \
    redhat-lsb \
    rng-tools \
    rpcgen \
    rsync \
    sed \
    sudo \
    systemd-devel \
    tar \
    tree \
    which \
    xfsprogs-devel \
    yum-utils \
    zlib-devel


yum clean all


if [ ! -f /usr/bin/python3 ]; then
    ln -sf /usr/bin/python3.6 /usr/bin/python3
fi

Este era para samba 4.9 (con el que probé y esta funcionando)

yum install -y \ 
    perl \ 
    gcc \ 
    libacl-devel \ 
    libblkid-devel \ 
    gnutls-devel \
    readline-devel \
    python-devel \ 
    gdb pkgconfig \ 
    krb5-workstation \ 
    zlib-devel \ 
    setroubleshoot-server \ 
    libaio-devel \ 
    setroubleshoot-plugins \ 
    policycoreutils-python \ 
    libsemanage-python \ 
    setools-libs-python \ 
    setools-libs \ 
    popt-devel libpcap-devel \ 
    sqlite-devel \ 
    libidn-devel \ 
    libxml2-devel \ 
    libacl-devel \ 
    libsepol-devel \ 
    libattr-devel \ 
    keyutils-libs-devel \ 
    cyrus-sasl-devel \ 
    cups-devel bind-utils \ 
    libxslt docbook-style-xsl \ 
    openldap-devel pam-devel \ 
    bzip2 \ 
    vim \ 
    wget \ 
    bind-utils \ 
    dnf \ 
    nano \
    fail2ban \ 
    ntpdate \ 
    iniparser \ 
    libldb \
    libtalloc \ 
    libtdb \ 
    libtevent \ 
    python-devel \
    gnutls-devel \ 
    libacl-devel \ 
    openldap-devel \ 
    pam-devel \ 
    readline-devel \ 
    krb5-devel \ 
    cups-devel \ 
    attr \ 
    docbook-style-xsl \ 
    gcc \ 
    gdb krb5-workstation \ 
    libsemanage-python \ 
    libxslt \ 
    perl \ 
    perl-ExtUtils-MakeMaker \ 
    perl-Parse-Yapp \ 
    perl-Test-Base \ 
    pkgconfig \ 
    policycoreutils-python \ 
    python2-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 \ 
    lmdb-devel \ 
    jansson-devel \ 
    gpgme-devel \
    pygpgme \ 
    libarchive-devel \ 
    cups-devel

  1. Descargar Samba desde los repositorios

Samba 4.9, Probado y funcional

curl -O https://download.samba.org/pub/samba/stable/samba-4.9.4.tar.gz

Samba 4.10

curl -O https://download.samba.org/pub/samba/stable/samba-4.10.5.tar.gz

Samba 4.10 Pendiente de actualizar o instalar. Lo intente desde samba 4.9 y me dio error, aunque debo admitir que no habia leido el archivo de samba actualizado a 4.10 donde nos coloca esto:
if [ ! -f /usr/bin/python3 ]; then
    ln -sf /usr/bin/python3.6 /usr/bin/python3
fi

  1. Descomprimir e ir al directorio

Samba 4.9 

tar zxvf samba-4.9.4.tar.gz
cd samba-4.9.4

Samba 4.10

tar zxvf samba-4.10.5.tar.gz
cd samba-4.10.5

configurar:

./configure --prefix=/usr --localstatedir=/var --with-configdir=/etc/samba --libdir=/usr/lib64 --with-modulesdir=/usr/lib64/samba --with-pammodulesdir=/lib64/security --with-lockdir=/var/lib/samba --with-logfilebase=/var/log/samba --with-piddir=/run/samba --with-privatedir=/etc/samba --enable-cups --with-acl-support --with-ads --with-automount --enable-fhs --with-pam --with-quotas --with-shared-modules=idmap_rid,idmap_ad,idmap_hash,idmap_adex --with-syslog --with-utmp --with-dnsupdate


  1. Compliar e instalar

make && make install

mover configuración anterior de samba

mv /etc/samba/smb.conf /etc/samba/smb.conf.bak

iniciamos la configuración del dominio

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


  1. Activamos e iniciamos samba

systemctl enable samba
systemctl start samba

  1. Instalar servidor de ntp

yum install ntp

editamos

nano /etc/ntp.conf

iniciamos ntpd

systemctl enable ntpd
systemctl start ntpd

Activar servidor ntp (se necesita para sincronizar hora con los equipos del dominio)

editar

nano /etc/ntp.conf

Modificar 

# Permit all access over the loopback interface.  This could
# be tightened as well, but to do so would effect some of
# the administrative functions.
restrict 127.0.0.1
restrict ::1

por

# Permit all access over the loopback interface.  This could
# be tightened as well, but to do so would effect some of
# the administrative functions.
#restrict 127.0.0.1
#restrict ::1

y agregar las siguientes líneas

broadcast 192.168.10.6 autokey  # broadcast server
broadcast 10.20.5.6 autokey  # broadcast server
broadcastclient                 # broadcast client

Con esto activamos nuestro servidor NTP para aceptar peticiones de sincronización de hora en la ip asignada a la interfaz

comandos útiles

samba-tool domain level show
samba-tool drs showrepl
samba_dnsupdate --verbose --all-names
samba_dnsupdate --verbose


Para unir un equipo secundario active directory al dominio

samba-tool domain join ad.corpodelagro.gob.ve DC -U "AD\administrator" --dns-backend=SAMBA_INTERNAL




Nota: si se configuró una maquina virtual, clonela, cambiele las IP, la configuración de /etc/hosts y el hostname  y posteriormente ejecute el comando para unir un equipo secundario al dominio.

No hay comentarios:

Publicar un comentario