jueves, 25 de agosto de 2016

HARDENING SERVIDORES

HARDENING DE SERVIDORES

Ahora vamos a hablar de un tema muy importante en la seguridad de nuestros servidores linux. El mantener una infraestructura informática segura y al margen de atacantes siempre es una tarea complicada. Son muchos los aspectos a tener en cuenta. A los diferentes dispositivos en un entorno en red hay que añadirle la heterogeneidad de los sistemas operativos que la componen y los servicios prestados.

Para lo cual en este tutorial, veremos algunas aplicaciones y técnicas desde distintos criterios, que servirán para fortalecer la seguridad de nuestros servidores linux

1. DENEGAR ACCESO AL SERVIDOR POR   INTENTOS FALLIDOS

Para esta técnica, utilizaremos la herramienta denyhosts que se encuentra en los repositorios de Debian, para instalarlo ejecutamos:

# apt-get install denyhosts

Una vez instalada la herramienta, procedemos a ajustar la configuración de la aplicación que está en /etc/denyhosts.conf.

##### THESE SETTINGS ARE REQUIRED #####
SECURE_LOG = /var/log/auth.log
HOSTS_DENY = /etc/hosts.deny
PURGE_DENY = 1w
BLOCK_SERVICE = ALL
DENY_THRESHOLD_INVALID = 3
DENY_THRESHOLD_VALID = 3
DENY_THRESHOLD_ROOT = 2
DENY_THRESHOLD_RESTRICTED = 2
WORK_DIR = /home/sec/denyhosts
SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS=YES
HOSTNAME_LOOKUP=YES
LOCK_FILE = /var/run/denyhosts.pid

##### THESE SETTINGS ARE OPTIONAL #####
ADMIN_EMAIL = diego.donoso@caminosca-sa.com
SMTP_HOST = localhost
SMTP_PORT = 25
#SMTP_USERNAME=root
#SMTP_PASSWORD=rootpass
SMTP_FROM = DenyHosts
SMTP_SUBJECT = DenyHosts Report
SYSLOG_REPORT=YES

AGE_RESET_VALID=5d
AGE_RESET_ROOT=25d
AGE_RESET_RESTRICTED=25d
AGE_RESET_INVALID=10d

##### THESE SETTINGS ARE SPECIFIC TO DAEMON MODE #####
DAEMON_LOG = /home/sec/denyhosts/denyhosts.log
DAEMON_SLEEP = 30s
DAEMON_PURGE = 1h
Con esta configuración lo que hemos hecho es bloquear a un host determinado al tercer intento fallido de logueo al servidor por cualquier puerto o servicio, con cualquier usuario existente o inexistente, desbloqueandolo después de 1 semana. Una vez que se hayan ajustado los cambios deseados, se debe reiniciar el servicio denyhost:

# /etc/init.d/denyhosts restart
[ ok ] Stopping DenyHosts: denyhosts.
[ ok ] Starting DenyHosts: denyhosts.

Para validar que efectivamente se cumple la condición de bloqueo por los n intentos fallidos, vale ejecutar la siguiente instrucción para visualizar los intentos fallidos de logueo al server en el log de autoriazación:

# cat /var/log/auth* | grep Failed | awk '{print $2 "-" $1 " " $3 "\t USUARIO: " $11 "\t DESDE: " $13}'
19-Sep 11:46:16     USUARIO: fer       DESDE: 172.16.5.217
19-Sep 11:46:19     USUARIO: fer       DESDE: 172.16.5.217
19-Sep 11:46:22     USUARIO: fer       DESDE: 172.16.5.217

Como se puede observar, el usuario fer desde la IP 172.16.5.217 tuvo 3 intentos “Failed”.

La siguiente tabla, muestra la descripción de cada parámetro configurable en el archivo /etc/denyhosts.conf, para ajustar a la necesidad de cada administrador:

Parámetro
Descripción
ADMIN_EMAIL
Su dirección de e-mail. Si está presente, este parámetro le permite recibir mensajes de e-mail cada vez que DenyHosts decida bloquear un host. Si usted configura este parámetro, modifique también SMTP_HOST ySMTP_PORT para especificar su servidor de e-mail y para verificar otros parámetros SMTP_ .
AGE_RESET_VALID
Similar a PURGE_DENY (vea a continuación) este define el lapso de tiempo después del cual, si no hay intentos fallidos adicionales, el conteo de fallas para un host se reinicia a cero. AGE_RESET_INVALID es similar pero aplica a intentos (fallidos) de inicio de sesión de usuarios no existentes, mientras que AGE_RESET_ROOTpertenece a intentos fallidos de inicio de sesión raíz. Usted también debe configurar RESET_ON_SUCCESS para definir si el conteo de intentos inválidos para una IP es o no es reiniciado a cero después de un inicio de sesión exitoso. El valor predeterminado es no, pero yo prefiero yes porque si usted algunas veces escribe mal la contraseña, a pesar de haber podido iniciar sesión varias veces, eventualmente quedará bloqueado.
DAEMON_PURGE
Define con qué frecuencia DenyHosts revisa si hay hosts que se deben desbloquear. Este valor puede ser mucho mayor que el tiempo entre ejecuciones, por ejemplo 2h (cada dos horas) o 1d (una vez al día).
DAEMON_SLEEP
Especifica cuánto tiempo espera DenyHosts entre verificaciones sucesivas de SECURE_LOG. Un valor razonable puede ser 30s (treinta segundos), por ejemplo. Usted no deseará ejecutar el script con demasiada frecuencia (gastando ciclos de procesador) ni demasiado esporádicamente (dando total libertar a los piratas).
DENY_THRESHOLD_VALID
Define cuántos intentos fallidos de inicio de sesión (para usuarios válidos, no raíz) serán tolerados antes de bloquear el host. También hay un valor DENY_THRESHOLD_ROOT que aplica exclusivamente para intentos raíz de inicio de sesión, pero usted estará mejor prohibiendo directamente la raíz para que se conecte remotamente mediante SSH con su servidor, como se mostró en el artículo anterior. Otro valor,DENY_THRESHOLD_INVALID, aplica para intentos de inicio de sesión de usuarios no existentes. El valor anterior debe ser menor que aquel para los usuarios válidos, porque es más probable que este tipo de intento de inicio de sesión sea parte de un intento de phishing.
HOSTS_DENY
Debe apuntar al archivo con los datos de acceso de host restringido, el cual normalmente es/etc/hosts.deny. Este parámetro es obligatorio. Si está mal, DenyHosts no funcionará como se espera.
LOCK_FILE
Es la ruta y el nombre del archivo, si existe cuando usted ejecute DenyHosts, que hace que salga inmediatamente (por ejemplo, /tmp/denyhosts.lock). El archivo es similar a /etc/nologin, el cual hace que los intentos de inicio de sesión fallen. Si el archivo no existe cuando usted ejecute DenyHosts, será creado y luego eliminado al salir para evitar tener dos instancias del programa ejecutándose al mismo tiempo.
PLUGIN_DENY
Apunta hacia una aplicación que usted desee ejecutar siempre que se bloquee un host. La aplicación es invocada con el host como un argumento. Usted debe usar esto siempre que desee efectuar acciones adicionales, como actualizar una base de datos. De forma similar, la aplicación referida por PLUGIN_PURGE es llamada cuando un host es removido del archivo HOSTS_DENY.
PURGE_DENY
Define el tiempo después del cual un host bloqueado es permitido nuevamente. Si está vacío los host quedarán bloqueados permanentemente. Esta entrada puede estar en minutos (120m), horas (2h), días (14d), semanas(2w), o años (1y).
PURGE_THRESHOLD
Define cuántas veces un host puede desbloquearse antes de quedar bloqueado para siempre. Si es cero, los host pueden ser bloqueados y desbloqueados un número infinito de veces.
SECURE_LOG
La ruta y nombre del archivo donde sshd registra sus mensajes. Esto varía de distribución a distribución. Por ejemplo es /var/log/messages para openSUSE®, pero para otras distribuciones use /var/log/secure o /var/log/auth.log. Recuerde también configurar sshd de forma que produzca registros. Si este parámetro está equivocado, DenyHosts simplemente no funcionará.
WORK_DIR
La ruta para los archivos propios DenyHosts, la cual normalmente es /usr/share/denyhosts/data. Si la ruta no existe, será creada.



jueves, 6 de febrero de 2014

Monitoreo de tráfico con NTOPNG

1. NTOPNG


ntopng (de Network Top) es una herramienta que permite monitorizar en tiempo real una red. Es útil para controlar los usuarios y aplicaciones que están consumiendo recursos de red en un instante concreto y para ayudarnos a detectar malas configuraciones de algún equipo, (facilitando la tarea ya que, justo al nombre del equipo, aparece sale un banderín amarillo o rojo, dependiendo si es un error leve o grave), o a nivel de servicio.


Posee un microservidor web desde el que cualquier usuario con acceso puede ver las estadísticas del monitorizaje.



2. SERVICIOS



3. SISTEMA OPERATIVO


La presente instalación, se la hará en un Sistema Operativo Linux, Distribución Debian, Versión 7 (Wheezy).


4. PAQUETES INSTALADOS


ntopng
webmin
libpcap-dev
libglib2.0-dev
libgeoip-dev
redis-server
wget
libxml2-dev
build-essential
subversion


5. INSTALACIÓN DE NTOPNG


Previo a la instalación de ntopng, se deben instalar las siguientes dependencias:


# apt-get install libpcap-dev libglib2.0-dev libgeoip-dev redis-server wget libxml2-dev build-essential subversion


5.1. DESCARGA Y COMPILACIÓN DEL CÓDIGO


Primeramente crear un director en /usr/src ya que será en este sitio donde se descargará el código fuente para luego compilarlo:
# mkdir /usr/scr/ntopng


Una vez creado el directorio, se procede a bajar las últimas fuentes del sitio oficial, para ello, en un navegador de internet ir al sitio http://sourceforge.net/projects/ntop/files/ntopng/:

Luego se procede a descargar el /usr/src/ntopng cada source, para ello, dar un clic derecho en el primer link y seleccionar “Copiar vínculo de la dirección”, luego:

# wget http://sourceforge.net/projects/ntop/files/ntopng/ntopng-data-1.1_6932.tgz/download


Luego copiar el segundo link y hacer lo mismo:


# wget http://sourceforge.net/projects/ntop/files/ntopng/ntopng-1.1_6932.tgz/download


Después se procede a desempaquetar las fuentes:


# cd /usr/local/src
# tar -xvf *.tar.gz
# cd ntopng-data-1.1_6932


Entonces configurarlo:


# ./configure
Luego se hace un clean up:


# make clean
# cd third-party/json-c
# make clean
# cd ..
# cd third-party/LuaJIT-2.0.2
# make clean
# cd ..
# cd third-party/rrdtool-1.4.7
# make clean
# cd ..
# cd third-party/zeromq-3.2.3
# make clean
# cd ..
# cd third-party/credis-0.2.3
# make clean
# cd ..


Y se compila:


# make
E instalar los módulos:


# make install
5.2. CONFIGURACIÓN DE NTOPNG


Primeramente crear el directorio requerido para:


# mkdir -p /etc/ntopng
Aquí se necesitan 2 archivos, el primero es /etc/ntopng/ntopng.start, para ello:


# nano /etc/ntopng/ntopng.start


Y agregar las líneas:


--local-networks "172.20.16.0/24"
--interface 1

Para ver las interfaces disponibles y opciones, se debe usar ntopng -h:


# ntopng -h


Available interfaces (-i <interface index>):
  1. eth0
  2. vmbr0
  3. venet0
  [...]
  14. any
  15. lo

Entonces crear el segundo archivo /etc/ntopng/ntopng.conf y agregar la línea:


-G=/var/run/ntopng.pid
Antes de iniciar el primer inicio de ntopng, hay que asegurarse que redis server esté levantado.


# /etc/init.d/redis-server restart
Finalmente ejecutar ntopng


# ntopng /etc/ntopng/ntopng.conf
Para ver el monitor, se lo puede hacer desde cualquier navegador web, ingresando la dirección http://ip_ntopng:3000. Por default, ntopng inicia el servicio web en el puerto 3000. Luego el usuario y password por default es, user=admin, password=admin.
5.3. PERSONALIZACION DE NTOPNG


Este es un simple script de inicio el cual puede ser usado para iniciar, detener y reiniciar ntopng. Colocarlo al final del archivo /etc/init/ntopng.conf:


# nano /etc/init.d/ntopng.conf


# ntopng network flow analyzer
# by https://raymii.org

description     "ntopng network flow analyzer"

start on virtual-filesystems
stop on runlevel [06]

respawn
respawn limit 5 30
limit nofile 65550 65550

setuid root
setgid root
console log

script
       exec /usr/local/bin/ntopng /etc/ntopng/ntopng.conf
end script


6. RECOMENDACIONES

martes, 5 de noviembre de 2013

Crear network-bridges en Xen 4.1 usando Debian Wheezy

1.   BRIDGE

Un bridge en el ambiente de redes es un dispositivo que une dos o más segmentos de red de forma transparente, por ende un bridge es independiente de cualquier protocolo de red o transporte, ya que actúa únicamente en la capa 2.

Un bridge no re-enruta paquetes como lo haría un router por el contrario al trabajar únicamente en la capa 2 del modelo OSI, este se dedica a aprender las direcciones MAC de las máquinas conectadas a él, direcciones que luego utiliza para comunicar una estación con otra separando a ambas en dominios de colisiones distintos.

2.   ALCANCE

Básicamente el alcance de este documento tiene como finalidad crear una interfaz tipo Bridge en una interfaz física para el balanceo de cargas en máquinas virtuales de Xen 4.1 en Debian Wheezy, ya que los scripts que Xen 4.1 trae por default tienen errores para generar dicha solución en esta distribución.

3.   SISTEMA OPERATIVO

La presente instalación, se la hará en un Sistema Operativo Linux, Distribución Debian, Versión 7 (Squeeze).

4.   PAQUETES INSTALADOS

bridge-utils (Mismo que se encuentra al instalar Xen 4.1)

5.   INSTALACIÓN DEL PAQUETE

Primeramente instalar el paquete (Si es que aún no está instalado):

# apt-get install bridge-utils

Ahora previo a la configuración de las interfaces físicas y puentes, verificar que el script network-bridge, propio de xen, esté configurado por default.

5.1.     CONFIGURACIÓN DE INTERFACES

Identificar el número de interfaces físicas de red en el equipo. Luego editar el archivo:

# nano /etc/udev/rules.d/70-persistent-net.rules

Y se verán las n interfaces de red que se tienen conectadas al equipo. En este ejemplo se ven 2 interfaces:

# PCI device 0x1186:/sys/devices/pci0000:00/0000:00:1e.0/0000:03:00.0 (skge)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:21:91:91:82:38", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

# PCI device 0x8086:/sys/devices/pci0000:00/0000:00:19.0 (e1000e)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="70:71:bc:19:44:99", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

Donde NAME=”ethx” determina el nombre de la interfaz. Ahora con la interfaz eth0 no existe problemas con el script de network-bridge de xen, así que nos centraremos en las demás interfaces donde se desea crear el puente, en este caso eth1 se renombrará a peth1, para trabajar bajo el mismo esquema de la eth0 que se verá más adelante.

Cambiar:

NAME="eth1"

Por:

NAME="peth1"

Para que tome los efectos necesarios, se debe reiniciar el equipo. Una vez reiniciado, verificar que efectivamente se cambió el nombre del dispositivo con el comando:

# dmesg | grep eth

Aquí se podrá verificar que

[    6.050968] udevd[426]: renamed network interface eth1 to peth1

Ahora el siguiente paso será crear el script de inicio que permita levantar las interfaces de red al inicio y el puente de la interfaz peth1. Para ello crear el archivo

# nano /etc/init.d/red.sh

Y pegar el siguiente contenido

#!/bin/bash
### BEGIN INIT INFO
# Provides: red
# Required-Start: $syslog $remote_fs xen
# Required-Stop: $syslog $remote_fs $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Description: LEVANTA INTERFACES DE RED SOLUCIONANDO EL PROBLEMA DEL SCRIPT DE XEN 4.1
### END INIT INFO

# EN ESTA SECCION SE LEVANTAN LAS INTERFACES DE RED FÍSICAS
/etc/init.d/networking stop
echo "eth0=eth0" >> /etc/network/run/ifstate
echo "peth1=peth1" >> /etc/network/run/ifstate
ifdown eth0
ifdown peth1
ifup eth0
ifup peth1

# EN ESTA SECCION SE CREA LA INTERFAZ TIPO BRIDGE PARA PETH1
brctl addbr eth1
brctl addif eth1 peth1
ifconfig eth1 up

Grabar el archivo y ejecutar:

insserv red

Y con esto quedará creado el script de inicio para que se levanten las interfaces de red y su respectivo puente.

Ahora para verificar que los puentes están creados en la respectiva interfaz de red, ejecutar:

root@debian:/etc/xen# brctl show

Y deberá desplegarse una información similar a esto:

bridge name  bridge id           STP enabled  interfaces
eth0          8000.002191918238   no           peth0
eth1         8000.7071bc194499   no           peth1

Donde nos indica el nombre del bridge, el id, y cual interfaz física está sirviendo como switch.

Finalmente, ejecutar una máquinas virtual utilizando cada bridge configurado y volver a ejecutar brctl show, y se deberá visualizar algo similar a esto:

bridge name  bridge id           STP enabled  interfaces
eth0         8000.002191918238   no           peth0
                                               vif1.0
eth1         8000.7071bc194499   no           peth1
                                               vif8.0

Donde se pueden ver las distintas interfaces virtuales vif que utilizan los distintos puentes peth.


6.   RECOMENDACIONES

martes, 1 de octubre de 2013

Controlador de Dominio con SAMBA 4 exactamente como un Microsoft Active Directory

1. CONTROLADOR PRIMARIO DE DOMINIO CON SAMBA 4 (ACTIVE DIRECTORY)

2.1 SAMBA 4

Samba es el Active Directory de Linux, es Open Source y te permite compartir tus archivos y documentos en una misma red en una máquina UNIX. Utiliza para ello el protocolo SMB compatible para todos los sistemas operativos de Linux pero además con sistemas Windows o Mac, incluso para el sistema operativo antiguo de Windows MS-DOS.
Samba 4, soporta el inicio de sesión de ‘Active Directory’ y protocolos de clientes de administración compatibles con Windows XP, Windows 7 y Mac OS X.
Soporta la política de grupos.
Tiene un servidor interno de LDAP con semántica AD.
Integra un servidor Kerberos, para permitir Single Sign-On en la red.
Nueva infraestructura de RPC.
Soporte para Python.

2.2. CONTROLADOR ACTIVE DIRECTORY

Sin duda, Active Directory es la característica más atractiva a la hora de decidirnos por Windows Server como servidor de nuestra red local. El conjunto de servicios y utilidades que ofrece para la gestión de usuarios y equipos permite una gestión tremendamente productiva, especialmente si trabajamos con clientes Windows.
Por otro lado Samba, la implementación para el mundo Linux del protocolo CFIS de Windows, permitía hasta la fecha implantar un servidor de dominio NT, que aunque permite la autenticación centralizada, quedaba muchos pasos atrás respecto las funcionalidades de cualquier Windows Server de 2003 hacia adelante. Pero, ahora la nueva versión de Samba, Samba 4, permite implementar un DC (Domain Controller) basado en Active Directory.

3. SISTEMA OPERATIVO

La presente instalación, se la hará en un Sistema Operativo Linux, Distribución Debian, Versión 7 (Wheezy).

4. PAQUETES INSTALADOS

samba4
samba-common
smbclient4
ntp
krb5-client

5. LEVANTAMIENTO Y CONFIGURACIÓN DEL DOMINIO

5.1. INSTALACIÓN DE SAMBA4

En primer lugar configuraremos la  red de nuestro servidor PDC, editando el archivo /etc/network/interfaces, y utilizaremos la IP 172.16.5.216 como PDC.

auto eth0
iface eth0 inet static
address 172.16.5.216
netmask 255.255.0.0
gateway 172.16.4.4
dns-nameservers 172.16.5.216 8.8.8.8
dns-search cardcam.com

Nótese que como primer servidor de nombres (DNS principal), se ha establecido al mismo PDC, como secundario elegimos alguno que nos permita acceder a Internet ( podría ser el que provee el ISP o único público de Google en este caso), y que la búsqueda dns se hace sobre el nombre de dominio de ejemplo CARDCAM.COM

A continuación instalaremos el servicio NTP (Network Time Protocol) para asegurar que nuestro equipo siempre tenga la hora correcta (el funcionamiento de Kerberos exige que los equipos estén sincronizados en cuanto la hora). Para instalar el servicio:

# apt-get install ntp

Una vez instalado, configuraremos el servicio para elegir el servidor horario de nuestra preferencia, en nuestro caso, elegimos los servidores ubicados en España. Así mismo, habilitamos el servicio para que nuestra red pueda consultar la hora al servidor (podemos consultar los servidores disponibles en la página de NTP project; para agregar servidores NTP, editar el archivo /etc/ntp.conf

server 0.debian.pool.ntp.org iburst
server 1.debian.pool.ntp.org iburst
server 2.debian.pool.ntp.org iburst
server 3.debian.pool.ntp.org iburst

A continuación procederemos a instalar Samba 4. Aunque se puede descargar como paquete ya construido mediante apt-get, la página de Samba recomienda bajar las fuentes y compilarlas. De hecho, si se intenta bajar el paquete del repositorio da un error a media instalación. En primer lugar, se debe instalar los archivos necesarios o prerequisitos:

# apt-get install build-essential libacl1-dev python-dev libldap2-dev pkg-config gdb libgnutls-dev libreadline-dev libattr1-dev python-dnspython libpopt-dev libbsd-dev attr docbook-xsl libcups2-dev git acl

Una vez finalizada la instalación, verificar que el puerto 9418 que es por el cual se hace la descarga GIT, sea admitido por el Firewall, ya que de no ser así, git dará error; una vez verificado, se bajará la versión más reciente del repositorio GIT, para ello:

# git clone git://git.samba.org/samba.git /usr/src/samba4/

Una vez finalizada la descarga se procede a compilar:

# cd /usr/src/samba4
# ./configure –enable-debug
# make
# make install

Luego, agregue los paths en el archivo /etc/profiles. Ya que estos paths contienen varias herramientas de samba para ejectuarlas directamente desde la consola:

/usr/local/samba/sbin:/usr/local/samba/bin:

Una vez terminada la compilación del paquete, se procederá a configurar el Controlador de Dominio, para ello haga un reinicio de la máquina, y a continuación escriba:

# samba-tool domain provision --realm cardcam.com --domain CARDCAM --adminpass P@ssword --server-role=dc --use-ntvfs

Note que debe reemplazar “cardcam.com” por el nombre del dominio a levantar, y adicionalmente que la “adminpass” es una password compleja que contiene un caracter mayúsculo con al menos un número y caracter especial, si no se cumple esta condición en la password, tendrá que volver a compilar el paquete de samba y vovler a ejecutar la instrucción con mucho cuidado.

Luego de ello, el archivo de configuración de samba que OJO, se encuentra en /usr/local/samba/etc/smb.conf deberá contener algo similar a lo siguiente:

# Global parameters
[global]
        workgroup = CARDCAM
        realm = cardcam.com
        netbios name = PDC
        server role = active directory domain controller
        dns forwarder = 8.8.8.8
       server services = rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbind, ntp_signd,$ kcc, dnsupdate, dns, smb
        dcerpc endpoint servers = epmapper, wkssvc, rpcecho, samr, netlogon, lsarpc,$ spoolss, drsuapi, dssetup, unixinfo, browser, eventlog6, backupke$
        allow dns updates = nonsecure
[netlogon]
        path = /usr/local/samba/var/locks/sysvol/cardcam.com/scripts
        read only = No
        Browseable = No
[sysvol]
        path = /usr/local/samba/var/locks/sysvol
        read only = No
        Browseable = No

Nótese que el parámetro allow dns updates debe tener el valor nonsecure en vez de True como en la versión de Samba 4.0.
Ahora se instalará el servicio Kerberos, para ello instalaremos la utilidad de cliente:

# apt-get install krb5-user

Cuando nos pida el reino Kerberos, deberemos poner el que hemos elegido, y cuando solicite el servidor administrativo, escribimos el hostname donde se aloja el Samba4, pero muy importante en mayúsculas! Una vez instalado podemos testear por ejemplo la password de administrador.
Luego, editar el archivo /etc/resolv y verificar que el nameserver sea el PDC y se especifique el dominio de la siguiente manera:

search cardcam.com
domain cardcam.com
nameserver 172.16.5.216

Finalmente, reiniciar el equipo y arrancar el servicio de Samba para que se levante el controlador de dominio:

# /usr/local/samba/sbin/samba start

Ahora lo que queda es realizar varias pruebas para verificar la funcionalidad del servicio, para ello verificar:

# host -t SRV _ldap._tcp.cardcam.com.
_ldap._tcp.cardcam.com has SRV record 0 100 389 pdc.cardcam.com.

5.1.2 CREAR SCRIPT DEL SERVICIO

Lo primero que haremos es bajar de su repositorio samba4.init y guardarlo en /etc/init.d de nuestro sistema:

# wget http://anonscm.debian.org/loggerhead/pkg-samba/samba4/unstable/download/head:/1833%40fc4039ab-9d04-0410-8cac-899223bdd6b0:trunk%252Fsamba4:debian%252Fsamba4.init/samba4.init -O /etc/init.d/samba4

Ahora, asignaremos permisos de ejecución al script que acabamos de bajar:

# chmod +x /etc/init.d/samba4

Perfecto, ahora cambiaremos las rutas por defecto donde tenemos instalado nuestro Samba4.

# sed -i 's|/usr/sbin|/usr/local/samba/sbin|g' /etc/init.d/samba4
# sed -i 's|/etc/samba|/usr/local/samba/etc|g' /etc/init.d/samba4

Desde este preciso momento ya podemos iniciar o parar nuestro servicio con:

# /etc/init.d/samba4 start
# /etc/init.d/samba4 stop

Ahora, solo nos falta configurar el inicio automático del servicio con el siguiente comando para tener todo listo:

# update-rc.d samba4 defaults

5.2. UNIR MÁQUINAS MS-WIN AL DOMINIO

Para agregar un equipo Windows al dominio, ya no será necesario editar el registro de Windows para unir a “Otros Dominios”, ya que Samba 4 es reconocido como si se tratase de un Control de Dominio Microsoft.

Ahora procederemos a agregar el equipo al dominio:



Comprobamos como el cliente se ha agregado correctamente al dominio:



5.3. ADMINISTRAR EL DOMINIO

En esta sección, procederemos a configurar una herramienta que servirá para administrar el dominio y realizar algunas de las tareas básicas (creación de usuarios, grupos, configuración de perfiles, políticas de grupo, etc.).

Para ello, vamos a utilizar el conjunto de herramientas gratuitas que ofrece Microsoft, conocido como RSAT (Remote Server Administration Tool). Dichas herramientas, disponibles tanto para Windows 7 como Windows 8, permitirán gestionar nuestro controlador de dominio, de forma idéntica a si estuviéramos delante de un Windows 2008R2 Server.

El primer paso será descargar de la página de Microsoft la versión RSAT adecuada a nuestro equipo cliente. http://www.microsoft.com/es-es/download/details.aspx?id=7887:




Una vez instalado el paquete de herramientas, procederemos a habilitar aquellas que necesitemos, para ello deberemos ir a > Panel de Control > Programas y características > Activar características de Windows, y sobretodo activar “Usuarios y Equipos de Active Directory, DNS y Políticas de grupo”: