Existió un tiempo en el que poner un servidor de dominio en Windows era algo muy sencillo, emular un Windows NT4 era la cosa más simple del mundo y firmar computadoras con Windows 95 , Windows 98 y Windows ME era simple rápido y fácil. Si no querías pagar las licencias impuestas siempre podías instalar un GNU/Linux con Samba y evitar usar tecnologías de SERVER Microsoft.
Ocurrió que por el 2000 Microsoft cambio las reglas del juego, con el Windows XP y Windows 2000 Server se hizo una integración llamada Directorio Activo, donde ya no solo era un servidor controlador de dominio, sino un sistema formado por el PDC, Listas en directorios (Protocolo Ligero de Acceso a Directorios) Aka LDAP y para rematar un DNS Server. Son más cosas pero esas 3 básicas forman en si el Directorio Activo y en los primeros días era horrible homologar un GNU/Linux a un Servidor Windows 2000, 2003 y 2008 para entrar al mundo del Active Directory. No porque no se pueda, si no por que intentarlo es abrumador llevar a cabo todas las configuraciones necesarias.
Afortunadamente la versión 4.0.0 de Samba hace que esto sea un poco mas sencillo y ahora si me da un artículo para dar los pasos necesarios para convertir tu equipo GNU/Linux en un servidor de dominio con rol de PDC/AD aka (Controlador Primario de Dominio con Directorio Activo)
Los siguientes pasos los hice con un CentOS 6.3 a 64 bits y SAMBA 4.0.1 descargado de su sitio oficial en código fuente para su compilación en el equipo.
1.0 Instalar GNU/Linux 6.3 a 64bits
2.0 Preparar el sistema.
2.1 Deshabilitar SELinux, desactivar los firewall y quitar toda regla iptables filter
2.2 Instalar los paquetes y herramientas necesarias con yum, con darle copiar y pegar a la siguiente línea bastara.
yum -y install gcc make wget python-devel gnutls-devel openssl-devel libacl-devel krb5-server krb5-libs krb5-workstation bind bind-libs bind-utils
2.3 Descargar Samba 4.0.X o superior, al momento de redactor este articulo estaba la versión 4.0.1 y la obtuve del siguiente URL
http://www.samba.org/samba/ftp/stable/samba-4.0.1.tar.gz
2.3.1 Preparar el Makefile para compilarlo usando configure y la bandera –enable-selftest.
./configure –enable-selftest
Nota que no doy prefix, dejo que se instale en su ruta por default.
2.4 Crear el smb.conf usando el comando samba-tool, se encuentra /usr/local/samba/bin/ que es el lugar donde estarán los binarios de SAMBA después de la compilación e instalación. En este articulo usare lastdragon como dominio de red y lastdragon.net dominio de directorio activo.
La línea a usar es:
/usr/local/samba/bin/samba-tool domain provision –realm=lastdragon.net –domain=lastdragon –adminpass ‘C@ntraseña1#’ –server-role=dc –dns-backend=BIND9_DLZ
Nota que el parámetro de adminpass es seguido por la contraseña de administrador entre apostrofes, esta contraseña se le asignara al usuario Administrator, usuario que usaras para unir las maquinas con Windows al dominio, la contraseña debe tener obligatoriamente una mayúscula, un numero, un símbolo y al menos 6 caracteres de largo. El nombre de dominio debe ser diferente al HOSTNAME (Nombre) de tu maquina GNU/Linux. Cuando este comando termine de ejecutarse creara el archivo smb.conf en la ruta /usr/local/samba/etc/.
El smb.conf se crea solo y se auto configura, salvo quieras editarlo para compartir alguna carpeta en red. Si no vas a compartir nada puedes dejarlo como te lo entrega el samba-tool y será funcional para el propósito de Active Directory
El contenido del archivo será muy similar a:
[global]
workgroup = lastdragon
realm = lastdragon.net
netbios name = HOSTNAME
server role = active directory domain controller
server services = s3fs, rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbind, ntp_signd, kcc, dnsupdate[netlogon]
path = /usr/local/samba/var/locks/sysvol/adevya.com/scripts
read only = No[sysvol]
path = /usr/local/samba/var/locks/sysvol
read only = No
3.0 Configurando el servicio de DNS Server
3.1 generar la llave
rndc-confgen -a -r /dev/urandom
3.2 editar named.conf en /etc,
El contenido de /etc/named.conf debe ser:
options {
listen-on port 53 { any; };
forwarders {192.168.1.1; };
allow-query { any; };
tkey-gssapi-keytab “/usr/local/samba/private/dns.keytab”;
};
include “/usr/local/samba/private/named.conf”;
nota la ip en forwarders escribo la ip de mi GNU/Linux en este caso es 192.168.1.1
3.2.1 Edita el archivo named.conf en /usr/local/samba/private/
El contenido del archivo /usr/local/samba/private/named.conf debe ser:
# This DNS configuration is for BIND 9.8.0 or later with dlz_dlopen support.
#
# This file should be included in your main BIND configuration file
#
# For example with
# include “/usr/local/samba/private/named.conf”;#
# This configures dynamically loadable zones (DLZ) from AD schema
# Uncomment only single database line, depending on your BIND version
#
dlz “AD DNS Zone” {
# For BIND 9.8.0
database “dlopen /usr/local/samba/lib/bind9/dlz_bind9.so”;# For BIND 9.9.0
# database “dlopen /usr/local/samba/lib/bind9/dlz_bind9_9.so”;
};
3.3 edita resolv.con en /etc
El contenido de /etc/resolv.conf debe ser:
nameserver 127.0.0.1
domain lastdragon.net
Nota la línea de domain, ahí va el dominio de directorio activo que usaras en tu red, yo uso lastdragon.net como lo especifique en el paso 2.4
4.0 Configurando Kerberos
4.1 Editando el archivo krb5.conf en /etc
El contenido del archivo /etc/krb5.conf debe ser:
/etc/krb5.conf
[libdefaults]
default_realm = LASTDRAGON.NET
dns_lookup_realm = false
dns_lookup_kdc = true
Nota la línea de default_realm es LASTDRAGON.NET como lo especifique en el paso 2.4 y le hice de nuevo mención en el paso 3.3
5.0 Instalar NTP
Si abres tu archivo smb.conf que se genero con samba-tool en la línea de servicios encontraras una referencia de ntp_signd, esta característica no la tiene el ntp que incluye la instalación de CentOS por lo que como en samba; habrá que descargar ntp y compilarlo asegurándonos que tenga signd
Yo descargue la versión ntp-4.2.6p5 con el siguiente URL
http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/ntp-4.2.6p5.tar.gz
5.1 Compilando ntp
al igual que con SAMBA para preparar el Makefile usamos ./configure pero con la bandera que nos interesa, la de signd usando la línea.
./configure –enable-ntp-signd
Nota que no uso prefix, permito que se instale en sus directorios por default.
5.2 Configurando NTP el archivo ntp.conf en /etc
El contenido de /etc/ntp.conf debe ser
server 127.127.1.0
fudge 127.127.1.0 stratum 10
server 0.pool.ntp.org iburst prefer
server 1.pool.ntp.org iburst prefer
driftfile /var/lib/ntp/ntp.drift
logfile /var/log/ntp
ntpsigndsocket /usr/local/samba/var/lib/ntp_signd/
restrict default kod nomodify notrap nopeer mssntp
restrict 127.0.0.1
restrict 0.pool.ntp.org mask 255.255.255.255 nomodify notrap nopeer noquery
restrict 1.pool.ntp.org mask 255.255.255.255 nomodify notrap nopeer noquery
6.0 Aplicando los permisos finales a los archives de configuración con las líneas.
chown named:named /usr/local/samba/private/dns
chown named:named /usr/local/samba/private/dns.keytab
chmod 775 /usr/local/samba/private/dns
Felicidades hasta aquí ya tienes un servidor de directorio activo, pero recuerda que el samba y el ntp fueron compilados y al no venir en los paquetes RPM de la distribución no están aun reconocidos como servicios del sistema y no arrancaran por si solos, tampoco tendrán un apagado correcto cuando quieras reiniciar o apagar tu servidor. A continuación pondré como integrar samba y ntp como servicios en el sistema operativo.
6.1 Crear el archivo samba en /etc/init.d/
El contenido de /etc/init.d/samba debe ser.
#! /bin/bash
#
# samba4 Bring up/down samba4 service
#
# chkconfig: – 90 10
# description: Activates/Deactivates all samba4 interfaces configured to \
# start at boot time.
#
### BEGIN INIT INFO
# Provides:
# Should-Start:
# Short-Description: Bring up/down samba4
# Description: Bring up/down samba4
### END INIT INFO
# Source function library.
. /etc/init.d/functionsif [ -f /etc/sysconfig/samba4 ]; then
. /etc/sysconfig/samba4
fiCWD=$(pwd)
prog=”samba4″start() {
# Attach irda device
echo -n $”Starting $prog: ”
/usr/local/samba/sbin/samba
sleep 2
if ps ax | grep -v “grep” | grep -q /samba/sbin/samba ; then success $”samba4 startup”; else failure $”samba4 startup”; fi
echo
}
stop() {
# Stop service.
echo -n $”Shutting down $prog: ”
killall samba
sleep 2
if ps ax | grep -v “grep” | grep -q /samba/sbin/samba ; then failure $”samba4 shutdown”; else success $”samba4 shutdown”; fi
echo
}
status() {
/usr/local/samba/sbin/samba –show-build
}# See how we were called.
case “$1″ in
start)
start
;;
stop)
stop
;;
status)
status irattach
;;
restart|reload)
stop
start
;;
*)
echo $”Usage: $0 {start|stop|restart|status}”
exit 1
esacexit 0
6.2 Crear el archivo ntp en /etc/init.d/
El contenido de /etc/init.d/ntp debe ser
#! /bin/bash
#
# ntp Bring up/down ntp service
#
#chkconfig: – 99 30
#description: Bring up/down ntp
#
### BEGIN INIT INFO
# Provides:
# Should-Start:
# Short-Description: Bring up/down ntp
# Description: Bring up/down ntp
### END INIT INFO
# Source function library.
. /etc/init.d/functionsCWD=$(pwd)
NTPD=/usr/local/bin/ntpd
prog=”ntp”
start() {
# Attach irda device
echo -n $”Starting $prog: ”
$NTPD -p /var/run/ntpd.pid
sleep 2
if ps ax | grep -v “grep” | grep -q $NTPD ; then success $”ntp startup”; else failure $”ntp startup”; fi
echo
}
stop() {
# Stop service.
echo -n $”Shutting down $prog: ”
kill -9 `cat /var/run/ntpd.pid` > /dev/null 2>&1
sleep 2
if ps ax | grep -v “grep” | grep -q $NTPD ; then failure $”ntp shutdown”; else success $”ntp shutdown”; fi
echo
}
# See how we were called.
case “$1″ in
start)
start
;;
stop)
stop
;;
restart|reload)
stop
start
;;
*)
echo $”Usage: $0 {start|stop|restart}”
exit 1
esac
exit 0
6.3 Darles permiso de ejecución
chmod +x /etc/init.d/ntp
chmod +x /etc/init.d/samba
6.4 Con la siguiente secuencia de arranque puedes activar el servicio
/etc/init.d/named start
/etc/init.d/ntp start
/etc/init.d/samba start
Pero si quieres que inicien sin intervención cuando inicie tu servidor ejecuta las siguientes líneas.
chkconfig –levels 35 samba on
chkconfig –levels 35 ntp on
chkconfig –levels 35 named on
7.0 Administrando usuarios en el directorio activo.
Puedes usar el comando smbpass, yo uso pdbedit
Con pdbedit –L puedes listar todos los usuarios registrados en el directorio, tanto usuarios de computadoras, como usuarios humanos. Consulta la ayuda de pdbedit para ver cómo crear, editar o borrar usuarios.
Yo probé uniendo a mi dominio una maquina con Windows 7, no tenia mas equipos a la mano, pero si se une una Windows 7, igual se une un Windows Vista y anteriores. Me falta probar si se une Windows 8 aunque seguramente si se unirá a dominio. El usuario para unir las maquinas a dominio es Administrator, la contraseña es la que se puso en la línea de comando del paso 2.4
Aunque parecen muchos pasos, el 90% de la configuración se resuelve dándole copiar y pegar, solo hay que cambiar donde escribo lastdragon.net, lastdragon y la clave del Administrator
Muy interesante, no esta por demas saber algo como esto.
Actualmente estoy usando ubuntu y me gustaria saber si podrias poner como poder compilar el kernel, ya que eh leido las ventajas que esto tiene.
Saludos desde Colima last.
me da error el include cuando reinicio el servicio named dice /etc/named.conf:8 open: /usr/local/samba/private/named.conf: file not found
Jose Gabriel
Tienes razon olvide poner el contenido de ese archivo, edite el articulo y anexe el paso 3.2.1
Relee el articulo y busca el paso 3.2.1 Edita el archivo named.conf en /usr/local/samba/private/
Como quiera sigue el mismo error el archivo no existe cuando voy hacia esa ruta de verdad no existe solo habia uno que se llamaba named.conf.update entoces lo que hice fue que lo cree el archivo /usr/local/samba/private/named.conf y copie lo que pusiste y como quiera cuando reinicio el servicio me da el mismo error
Jose, por supuesto que el archivo no existe, CREALO tu mismo, puedes usar un editor de texto o lo mas básico, ejecuta el siguiente comando
touch /usr/local/samba/private/named.conf
Esto es por que la configuración no es natural del sistema, hacemos que un sistema GNU/Linux se comporte como un PDC con AD,
hey si eso lo se que tenia que crearlo y eso hice como te apunte en el ultimo coment y copie y pegue lo que pusiste en el archivo normal y cuando voy y lo reinicio da el mismo error lo has probado??
pues tengo un AD en produccion, despues lo volvi a hacer para escribir este articulo.
hey gracias por tus respuestas y demas yo lo eh hecho ya el samba pero con la version 4.0.0 y me salia perfecto estaba el archivo ya creado osea el /usr/local/samba/private/named.conf entonces lo estoy haciendo de nuevo pero con la nueva version 4.0.2 de samba y cuando llego a ese paso es que me da ese error el cual te comente y eh buscado en internet y nada y ya habia hecho el paso anterior el de crear el archivo en la ruta y lo hice y cuando reinicio me da el mismo error
Alguien ya ocupa YUM 😛 jejejejejejejeje
Obvio, desdes de el
yum install php*
pero aun sigo compilando las cosas cuando hay que hardenizar, para todo lo demas yum =)
lastdragon, y una vez creado el AD en linux, has probado si se puede aplicar reglas o politicas de tipo GPO y administrarlas estas desde la consola de administracion del AD instalada en mi estacion windows7? yo lo he probado con una distribución ya preparada para este caso se llama SerNet Samba 4 y si funciona, me gustaria saber si tu instalacion cumple las mismas funciones. Saludos
Jesus, si se puede pero eso seria otro articulo
Hola admin, tengo una duda, soy novatillo en esto y no entiendo muy bien el punto 2.3.1 y el 2.4, lo que pone es lo que tenemos que escribir tal cual??
Vale, el punto 2.3.1 ya lo tengo resuelto, pero el el punto 2.4 no se que es lo que tengo que hacer… no existe la ruta…
mue wueno
Buena tarde
Admin, me encuentro realizando el procedimiento paso a paso pero en el punto 2.3.1 al ejecutar el comando me sale el siguiente error.
Unable to find build target matching –enable-selftest
Ademas de otros mensajes en amarillo relacionados al test. Mi instalación es Centos 6.3 x64 instalación minima
Esimado: interesante tu pagina, he seguido cada paso que mencionas, cuando deseo iniciar el servicio named, me sale el siguiente error.
[root@localhost /]# /etc/init.d/named start
Iniciando named:
Error in named configuration:
/etc/named.conf:14: expected quoted string near ‘“’
[FALLÓ]
Estimado dicho archivo en ningun momento lo editado.
Esperando tu apoyo.
Muchas Gracias
Aveces dependiendo si estas en MacBook en una PC o en GNU/Linux cuando copias al portapales directamente del navegador algunos caracteres no son equivalente y son sustituidos por otros, por ejemplo
/etc/named.conf:14: expected quoted string near ‘“’ debería ser ” ( comillas dobles ) las que están en el numero 2 del teclado QWERTY, revisa bien que sea ” y no ” a la vista se parecen pero no es lo mismo esto es un carácter ” y esto son 2 caracteres ”
Estimado : gracias por tu respuesta rapida. Pero el archivo /etc/init.d/named yo no le creado, editado. Solo segui bien tu buena guia y inicie dicho servicio y salio el mensaje.
Lo que quisiera saber en que linea esta dicho error para solucionar.
Muchas Gracias por todo.
Te dejo el script
#!/bin/bash
#
# named This shell script takes care of starting and stopping
# named (BIND DNS server).
#
# chkconfig: – 13 87
# description: named (BIND) is a Domain Name Server (DNS) \
# that is used to resolve host names to IP addresses.
# probe: true
### BEGIN INIT INFO
# Provides: $named
# Required-Start: $local_fs $network $syslog
# Required-Stop: $local_fs $network $syslog
# Default-Start:
# Default-Stop: 0 1 2 3 4 5 6
# Short-Description: start|stop|status|restart|try-restart|reload|force-reload DNS server
# Description: control ISC BIND implementation of DNS server
### END INIT INFO
# Source function library.
. /etc/rc.d/init.d/functions
[ -r /etc/sysconfig/named ] && . /etc/sysconfig/named
RETVAL=0
export KRB5_KTNAME=${KEYTAB_FILE:-/etc/named.keytab}
named=’named’
if [ -x /usr/sbin/named-sdb ]; then
named=’named-sdb’
fi
# Don’t kill named during clean-up
NAMED_SHUTDOWN_TIMEOUT=${NAMED_SHUTDOWN_TIMEOUT:-25}
if [ -n “$ROOTDIR” ]; then
ROOTDIR=`echo $ROOTDIR | sed ‘s#//*#/#g;s#/$##’`;
rdl=`/usr/bin/readlink $ROOTDIR`;
if [ -n “$rdl” ]; then
ROOTDIR=”$rdl”;
fi;
fi
PIDFILE=”/var/run/named/named.pid”
ROOTDIR_MOUNT=’/etc/named /etc/pki/dnssec-keys /var/named /etc/named.conf
/etc/named.dnssec.keys /etc/named.rfc1912.zones /etc/rndc.conf /etc/rndc.key
/usr/lib64/bind /usr/lib/bind /etc/named.iscdlv.key /etc/named.root.key’
mount_chroot_conf()
{
if [ -n “$ROOTDIR” ]; then
for all in $ROOTDIR_MOUNT; do
# Skip nonexistant files
[ -e “$all” ] || continue
# If mount source is a file
if ! [ -d “$all” ]; then
# mount it only if it is not present in chroot or it is empty
if ! [ -e “$ROOTDIR$all” ] || [ `stat -c’%s’ “$ROOTDIR$all”` -eq 0 ]; then
touch “$ROOTDIR$all”
mount –bind “$all” “$ROOTDIR$all”
fi
else
# Mount source is a directory. Mount it only if directory in chroot is
# empty.
if [ -e “$all” ] && [ `ls -1A $ROOTDIR$all | wc -l` -eq 0 ]; then
mount –bind “$all” “$ROOTDIR$all”
fi
fi
done
fi
}
umount_chroot_conf()
{
if [ -n “$ROOTDIR” ]; then
for all in $ROOTDIR_MOUNT; do
# Check if file is mount target. Do not use /proc/mounts because detecting
# of modified mounted files can fail.
if mount | grep -q ‘.* on ‘”$ROOTDIR$all”‘ .*’; then
umount “$ROOTDIR$all”
# Remove temporary created files
[ -f “$all” ] && rm -f “$ROOTDIR$all”
fi
done
fi
}
pidofnamed() {
pidofproc -p “$ROOTDIR/$PIDFILE” “$named”;
}
# Check if all what named needs running
start()
{
[ “$EUID” != “0” ] && exit 4
# Source networking configuration.
[ -r /etc/sysconfig/network ] && . /etc/sysconfig/network
# Check that networking is up
[ “${NETWORKING}” = “no” ] && exit 1
[ -x /usr/sbin/”$named” ] || exit 5
if [ ! -s /etc/rndc.key ]; then
# Generate rndc.key if doesn’t exist
echo -n $”Generating /etc/rndc.key:”
if /usr/sbin/rndc-confgen -a > /dev/null 2>&1; then
chmod 640 /etc/rndc.key
chown root.named /etc/rndc.key
[ -x /sbin/restorecon ] && /sbin/restorecon /etc/rndc.key
success $”/etc/rndc.key generation”
echo
else
failure $”/etc/rndc.key generation”
echo
fi
fi
# Handle -c option
previous_option=’unspecified’;
for a in $OPTIONS; do
if [ $previous_option = ‘-c’ ]; then
named_conf=$a;
fi;
previous_option=$a;
done;
named_conf=${named_conf:-/etc/named.conf};
mount_chroot_conf
if [ ! -r $ROOTDIR$named_conf ]; then
echo ‘Cannot find configuration file. You could create it by system-config-bind’
exit 6;
fi;
[ -x /sbin/portrelease ] && /sbin/portrelease named &>/dev/null || :
# all pre-start is done, lets start named
echo -n $”Starting named: ”
if [ -n “`pidofnamed`” ]; then
echo -n $”named: already running”
success
echo
exit 0;
fi;
if ! [ “$DISABLE_ZONE_CHECKING” = yes ]; then
ckcf_options=’-z’; # enable named-checkzone for each zone (9.3.1+) !
fi;
if [ -n “${ROOTDIR}” -a “x${ROOTDIR}” != “x/” ]; then
OPTIONS=”${OPTIONS} -t ${ROOTDIR}”
ckcf_options=”$ckcf_options -t ${ROOTDIR}”;
[ -s /etc/localtime ] && cp -fp /etc/localtime ${ROOTDIR}/etc/localtime;
fi
RETVAL=0
# check if configuration is correct
if [ -x /usr/sbin/named-checkconf ] && [ -x /usr/sbin/named-checkzone ] && /usr/sbin/named-checkconf $ckcf_options ${named_conf} >/dev/null 2>&1; then
daemon –pidfile “$ROOTDIR/$PIDFILE” /usr/sbin/”$named” -u named ${OPTIONS};
RETVAL=$?
if [ $RETVAL -eq 0 ]; then
rm -f /var/run/{named,named-sdb}.pid;
ln -s $ROOTDIR/”$PIDFILE” /var/run/”$named”.pid;
fi;
else
named_err=”`/usr/sbin/named-checkconf $ckcf_options $named_conf 2>&1`”;
echo
echo “Error in named configuration:”;
echo “$named_err”;
failure
echo
[ -x /usr/bin/logger ] && echo “$named_err” | /usr/bin/logger -pdaemon.error -tnamed;
umount_chroot_conf
exit 2;
fi;
echo
if [ $RETVAL -eq 0 ]; then
touch /var/lock/subsys/named;
else
umount_chroot_conf
exit 7;
fi
return 0;
}
stop() {
[ “$EUID” != “0” ] && exit 4
# Stop daemons.
echo -n $”Stopping named: ”
[ -x /usr/sbin/rndc ] && /usr/sbin/rndc stop >/dev/null 2>&1;
RETVAL=$?
# was rndc successful?
[ “$RETVAL” -eq 0 ] || \
killproc -p “$ROOTDIR/$PIDFILE” “$named” -TERM >/dev/null 2>&1
timeout=0
RETVAL=0
while pidofnamed &>/dev/null; do
if [ $timeout -ge $NAMED_SHUTDOWN_TIMEOUT ]; then
RETVAL=1
break
else
sleep 2 && echo -n “.”
timeout=$((timeout+2))
fi;
done
umount_chroot_conf
# remove pid files
if [ $RETVAL -eq 0 ]; then
rm -f /var/lock/subsys/named
rm -f /var/run/{named,named-sdb}.pid
fi;
if [ $RETVAL -eq 0 ]; then
success
else
failure
RETVAL=1
fi;
echo
return $RETVAL
}
rhstatus() {
[ -x /usr/sbin/rndc ] && /usr/sbin/rndc status;
status -p “$ROOTDIR/$PIDFILE” -l named /usr/sbin/”$named”;
return $?
}
restart() {
stop
start
}
reload() {
[ “$EUID” != “0” ] && exit
echo -n $”Reloading “$named”: ”
p=`pidofnamed`
RETVAL=$?
if [ “$RETVAL” -eq 0 ]; then
/usr/sbin/rndc reload >/dev/null 2>&1 || /bin/kill -HUP $p;
RETVAL=$?
fi
[ “$RETVAL” -eq 0 ] && success $”$named reload” || failure $”$named reload”
echo
return $RETVAL
}
checkconfig() {
ckcf_options=’-z’;
if [ -n “${ROOTDIR}” -a “x${ROOTDIR}” != “x/” ]; then
ckcf_options=”$ckcf_options -t ${ROOTDIR}”;
mount_chroot_conf
fi;
if [ -x /usr/sbin/named-checkconf ] && [ -x /usr/sbin/named-checkzone ] && /usr/sbin/named-checkconf $ckcf_options ${named_conf} ; then
umount_chroot_conf
return 0;
else
umount_chroot_conf
return 1;
fi
}
# See how we were called.
case “$1″ in
start)
start
;;
stop)
stop
;;
status)
rhstatus;
RETVAL=$?
;;
restart)
restart
;;
condrestart|try-restart)
if [ -e /var/lock/subsys/named ]; then restart; fi
;;
reload)
reload
;;
force-reload)
if ! reload; then restart; fi
;;
checkconfig|configtest|check|test)
checkconfig
;;
*)
echo $”Usage: $0 {start|stop|status|restart|try-restart|reload|force-reload}”
[ “x$1” = “x” ] && exit 0
exit 2
esac
exit $RETVAL
Gracias por la ayuda, cambie las comillas como me mencionaste y lo ejecute y me salio el siguiente mensajes:
/usr/bin/readlink: missing operand
Pruebe `/usr/bin/readlink –help’ para más información.
/etc/init.d/named: línea 304: try-restart: no se encontró la orden
echo $“Usage: $0 {start|stop|status|restart|try-restart|reload|force-reload}“
/etc/init.d/named: línea 304: force-reload}“: no se encontró la orden
echo $“Usage: $0 {start|stop|status|restart|try-restart|reload|force-reload}“
/etc/init.d/named: línea 252: [: “3“: se esperaba una expresión entera
if [ “$RETVAL“ -eq 0 ]; then
/etc/init.d/named: línea 256: [: “3“: se esperaba una expresión entera
[ “$RETVAL“ -eq 0 ] && success $“$named reload“ || failure $“$named reload“
de ante mano muchas gracias
Esperando tu respuesta.
Gracias
Buenas, buen articulo, voy a intentar ponerlo en práctica
prueba de comentario para ver si detecta mi navegador
Pues segun esto es una IPv6 de la red Tor
2001:620:20d0::20
Usando firefox 6 en un Windows 7 de 64 bits en suiza
Non-authoritative answer:
0.2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.d.0.2.0.2.6.0.1.0.0.2.ip6.arpa name = tor4e3.digitale-gesellschaft.ch.
Muchas gracias por compartir.
¿Por casualidad tienes algún videoturorial para seguirlo con más detalle?
De nuevo, muy agradecido con el post.