You are on page 1of 19

Módulo V

(Administración Avanzada)

Introducción

En este módulo se estudiará Linux desde el punto de vista del administrador. Mucha de la
información que se ve en este módulo, también es aplicable a ambientes hogareños.
Herramientas de Configuración
Cada distribución de Linux (las que no se basan en ninguna otra) posee una herramienta de
administración diferente. Estas herramientas ayudan al administrador en las tareas cotidianas y en
las no tan cotidianas también. De todas las distribuciones de Linux, existen tres que pusieron un
gran esfuerzo en estas herramientas. Estas son SuSE, OpenLinux (Caldera) y RedHat.
Linuxconf (RedHat):

Esta herramienta se ejecuta tanto en entornos gráficos como en entornos de caracteres. Es


verdaderamente intuitiva y tiene botones de ayuda que permiten entender lo que se está haciendo.
Muchas distribuciones están basadas en Red Hat Linux por el uso de esta herramienta (en conjunto
con otras cosas que trae la distribución).
Para acceder a esta interface de administración solo basta con loguearse como "root" y poner
"linuxconf" en la línea de comando.

Yast (SuSE):

SuSE también tiene su interface, yast, al igual que linuxconf es una interface muy intuitiva y le
permite al administrador acelerar sus trabajos cotidianos.
COAS (Caldera)

COAS, a diferencia de las otras interfaces es un proyecto enteramente open sources


(http://www.coas.org). La idea del proyecto es generar una única interface para todos los diferentes
Linux y así poder estandarizarlos.
Usuarios Especiales
Existen diferentes tipos de usuarios en la mayoría de los sistemas operativos. Más allá de un
esquema de permisos, donde se podría poner en diferentes categorías a los usuarios, dependiendo
los recursos que pueden utilizar y las tareas que tienen permitido realizar; existen diferencias por la
misma esencia del usuario.
Existen usuarios que puede realizar un login (pueden entrar al equipo y tener un intérprete de
comandos), usuarios que solo pueden leer correo, usuarios que solo pueden conectarse al equipo vía
FTP, y algunos otros tipos de usuarios que no se utilizan tan a menudo (usuarios de una base de
datos, por ejemplo).
Los usuarios que se describirán a continuación, son usuarios reales y se agregan en la misma tabla
de usuarios que un usuario normal, pero tienen algunas particularidades en cuanto a que tipo de
programa ejecutan cuando entran al equipo.
La tabla de usuarios
En todos los Linux existe un único archivo que contiene a todos los usuarios del equipo, este tabla
es un archivo llamado "/etc/passwd". El archivo contiene una línea por usuario, las líneas están
separadas por el carácter ":" (dos puntos), y cada campo (separación) define una parte del usuario.
Formato
<nombre_de_usuario>:[clave]:<UID>:<GID>:[nombre_completo]:<home>:[pgm]
nombre de usuario: Este es el nombre que el usuario va a conectarse al equipo (obligatorio)
clave: Tradicionalmente se guardaba en este archivo la clave encriptada (opcional)
UID: Número de usuario (obligatorio)
GID: Número de grupo principal (obligatorio)
Nombre Completo: Nombre Completo del usuario (opcional)
home: Directorio de trabajo del usuario o HOME (obligatorio)
pgm: Programa que ejecutará el usuario cuando se conecte al equipo (opcional), generalmente un
shell (para usuarios comunes)
Usuarios de Correo
Se considera un usuario de correo a aquel que solo tiene permitido leer correo del equipo, para
realizar esto, debe trabajar con protocolos de "bajado" de correo. Estos protocolos son POP e
IMAP.
Un usuario de correo tiene la particularidad de no tener programa definido en la tabla de usuarios.
Todo el resto de la configuración es exactamente igual que la de los usuarios normales.
Generalmente y solo por una cuestión de organización, todos los usuarios de correo pertenecen al
mismo grupo ("popusers").
Un ejemplo sería el siguiente:
jose:x:101:231 aniel Coletti:/home/jose:
Como se puede ver, el usuario "jose", no tiene shell, por lo tanto no podrá loguearse al equipo como
un usuario normal. Tampoco podrá conectarse al equipo vía FTP.
Es importante tener en cuenta que para que el usuario lea correo del equipo se tendrán que hacer
algunas otras configuraciones, como la instalación del paquete de IMAP entre otras cosas.
Usuarios de FTP
Se considera un usuario FTP a aquel que solo tiene la posibilidad de entrar al equipo utilizando este
protocolo. Este usuario no tendrá la posibilidad de ejecutar comandos en el equipo (a través de un
intérprete de comandos).
Para configurar un usuario FTP se utilizaría la siguiente línea:
jhernandez:x:102:50:José Hernandez:/home/jhernandez/./:/bin/false
Lo que tiene en particular este usuario (en su definición) es el programa que ejecuta al conectarse
(/bin/false), esto hace que el usuario no pueda loguearse como un usuario normal; y también tiene
como directorio de trabajo el típico "/home/<nombre_de_usuario>", pero además contiene un "./"
(punto barra). Este último "./", genera que el usuario vea como directorio raíz "/home/jhernandez".
Cuando el usuario ejecute "cd /", estará yendo realmente a "/home/jhernadez" (sin saberlo). De esta
manera sabremos que este usuario no andará recorriendo todo el disco del equipo, solamente podrá
recorrer desde donde se le definió (en este caso "/home/jhernandez".
Para configurar usuarios "FTP" hay que hacer algunas otras configuraciones en el archivo
/etc/ftpaccess y también en el directorio de trabajo del usuario. (ver documentación de ftpaccess).
Permisos Especiales
Linux hereda de los UNIX un manejo especial con los permisos, no solo se pueden dar permisos de
lectura, escritura y ejecución, sino que presenta algunos permisos especiales que afectan la forma en
que se ejecutan los archivos. Esto da muchos beneficios, aunque hay que tener ciertas precauciones
SUID (Set User ID)
Este permiso especial genera que cuando el archivo que tiene este tipo de permiso es ejecutado, el
proceso se ejecuta a nombre del dueño del archivo, independientemente si el usuario que lo esta
ejecutando es el dueño o no.
Esto se utiliza cuando se requiere que usuarios normales tengan acceso a ciertos recursos del
sistema que están reservados para el super usuario ("root").
Modo de uso:
chmod u+s <archivo>
Este tipo de permisos son muy peligrosos sino se utilizan bien, es muy importante tener cuidado
cuando se da este tipo de permisos a los archivos o directorios.
Ejercicio:
1)Copiar el archivo /bin/bash a /tmp/mitroyano
2)(como root) Cambiar el dueño del archivo a root
3)(como root) Asignar permisos de ejecución y el SUID (con "chmod +x,u+s /tmp/mitroyano")
4)(como un usuario normal) Ejecutar /tmp/mitroyano
5)Ejecutar el comando "id" para ver que usuario soy

SGID (Set Group ID)


El GUID tiene el mismo efecto que el SUID, pero para grupos. Cuando un archivo que tiene este
permiso es ejecutado, el proceso se ejecutará como si lo hubiera ejecutado un usuario que pertenece
a ese grupo.
Cuando este permiso se aplica a directorios (chmod g+s <directorio>), genera que todos los
archivos que se vayan a crear dentro de este directorio sean del grupo al cual pertenece el directorio.
Modo de uso:
chmod g+s <archivo>
Ejercicio:
1)Crear un directorio en /tmp llamado pruebaSGID
2)Crear un archivo dentro de este directorio invocando el editor "vi" con otro usuario que NO
pertenezca al grupo al que pertenece el dueño del directorio.
3)Verificar los dueños y grupos de los archivos con "ls -la"
4)Sticky bit
El tipo de permiso "sticky bit" marca los archivos para un "tratamiento especial".
Si este tipo de permiso es asignado a un archivo y éste no contiene permisos de ejecución, la
información del archivo (cuando es leído) no se graba en el cache del disco. Cuando Linux lee
cualquier archivo, graba su contenido en memoria para que cuando se vuelva a acceder, este
procedimiento sea mucho más veloz. Si le asignamos el "sticky bit" a algún archivo, su contenido,
nunca es guardado en cache. Este tipo de permisos es muy utilizado en archivos de tipo "swap" o
archivo que se lean una única vez y sean realmente grandes.
Cuando este permiso es asignado a un directorio, el "tratamiento especial" es diferente. En el caso
de directorios genera que los archivos contenidos en él, solo puedan ser borrados o renombrados por
el dueño del archivo o el super usuario, tenga o no permisos de escritura el usuario que lo desea
borrar. Este tipo de permisos son generalmente utilizados en directorios que son accesibles para
todos ("/tmp" por ejemplo) y el administrador desea que los usuarios tengan igualmente control
sobre el estado de sus propios archivos.
Modo de uso:
chmod +t <archivo>
Ejercicio:
1)Crear un directorio en /tmp llamado "andaaa"
2)Asignarle los permisos de lectura y escritura para todos (chmod ugo+rw andaaa)
3)Crear un archivo, llamado "okok", dentro de este directorio y asignarle permisos para lectura y
escritura a todos (chmod ugo+rw okok)
4)(utilizando otro usuario) Intentar borrar el archivo /tmp/andaaa/okok
Archivos de Confifuración
Es muy importante, para un administrador, conocer dónde están los archivos de configuración.
Recordemos que en Linux, el 90% de los archivos de configuración están hechos en texto plano, por
lo tanto, para modificarlos solo basta con utilizar un simple editor de texto (y saber exactamente lo
que se esta haciendo) En ocasiones, el administrador, se ve forzado a modificar estos archivos
manualmente, por lo tanto en esta parte del módulo se presenta un tabla con los archivos de
configuración más comunes..
Es importante tener en mente que existen herramientas, como el comando "strace" que nos permiten
ver qué archivos lee una aplicación cuando es ejecutada.
Como norma, casi todos los archivos de configuración están ubicados debajo del directorio /etc.

Archivo Descripción
/etc/passwd Contiene todos los usuarios dados de alta en el sistema
/etc/shadow Contiene todas las claves encriptadas, información sobre el vencimiento de claves y
estado de una cuenta
/etc/group Contiene todos los grupos definidos
/etc/fstab Tabla de sistemas de archivo (file systems)
/etc/profile Archivo que define "perfil" preliminar de TODOS los usuarios que se loguean al
equipo, incluyendo "root".
/etc/hosts Tabla de equipos de red conocidos
/etc/hosts.equiv Tabla de equipos "confiables"
/etc/inittab Tabla de procesos de init (niveles de corrida, etc.)
/etc/issue Mensaje que aparece en la pantalla "login:" (en terminales virtuales y estáticas, no para
sesiones de telnet)
/etc/motd Mensaje del día que se despliega cada vez que un usuario entra al equipo
/etc/shells Intérpretes permitidos para usuarios de FTP
/etc/termcap Capacidades de las terminales ("secuencias de escape" que especifican como hacer
para escribir en una pantalla de caracteres)
/etc/sysconfig Directorio que contiene los archivos de configuración de una gran parte del hardware
de la máquina (periféricos y placas en gral.). Este directorio es propio de la distribución Red Hat.
/etc/sysconfig/mouse Especificaciones del ratón
/etc/sysconfig/clock Especificaciones para el reloj del equipo
/etc/sysconfig/keyboard Especificaciones del teclado
/etc/sysconfig/network Especificaciones de la red
/etc/sysconfig/sendmail Especificaciones del servicio de correo
/etc/sysconfig/network-scripts Especificaciones de todas las interfaces de red definidas dentro del
equipo (dial-up, ethernet, etc.)

Ejercicios:
1)Revisar los archivos presentados y estudiar que parte cambian al modificar configuraciones
UTILIZANDO LAS INTERFACES DE ADMINISTRACION (linuxconf, por ejemplo)
Configuración de red
La configuracion de la placa de Red se puede hacer desde un modulo del linuxconf llamado
netconf, o escribiendo en varios archivos de configuracion.

El nombre del equipo hostname se debe escribier en el archivo /etc/HOSTNAME


El numero de ip de la placa dentro del archivo /etc/sysconfig/network sin olvidarnos del nombre de
equipo(el siguiente es un ejemplo de archivo network para un equipo llamado SERVER80 en una
red clase A):
NETWORKING=yes
HOSTNAME=SERVER30
GATEWAY="10.10.3.80"
GATEWAYDEV="eth0"
FORWARD_IPV4="yes"

para que la placa este activa tengo que activarla desde el archivo /etc/sysconfig/network-
scripts/ifup-eth0 (esta es una copia del archivo para el mismo equipo):
DEVICE=eth0
BOOTPROTO=static
IPADDR=10.10.3.80
NETMASK=255.0.0.0
ONBOOT=yes

Para que la nueva configuracion tenga efecto podemos levantar la interface eth0 o el servicio de red:
service network restart

Configuración de una red usando DHCP


El objetivo de este capitulo es configurar una red usando:
•un servidor DHCP estático (listo para detectar nuevos invitados en la red tales como gente que
conecta su portátil y prueba jugar a a juegos piratas)
•una pérdida de tiempo mínima.
Construcción de un DHCP en blanco
Nuestro primer paso es crear un fichero de configuración en blanco que sea capaz de aceptar a todos
los clientes en la red.
Usaré aquí la configuración de red de la ciua.com.ar para la que probé a configurar un servidor
Linux.
<fichero dhcpd.conf> default-lease-time 86400; max-lease-time 604800; get-lease-hostnames true;
option subnet-mask 255.255.255.0; option domain-name "ciua.com.ar"; option domain-name-
servers 10.10.3.30; option interface-mtu 1500; subnet 10.10.3.30 netmask 255.0.0.0 # gateway por
defecto option routers 10.10.3.30; option broadcast-address 10.255.255.255; range 10.10.3.80
10.10.3.254; </fichero>
Una vez el servidor DHCP está funcionando (después de usar dhcp start o un comando similar,
según la distribución de Linux), se pueden iniciar estaciones cliente en la red. Deben estar
configuradas para obtener automáticamente una dirección IP.
Tan pronto como los clientes pidan una dirección al servidor DHCP, se añadirá un bloque como
este al fichero dhcpd.leases:
<bloque de atributos de un cliente dhcp> lease 192.168.12.58 starts 2 1999/08/24 06:28:48; ends 3
1999/08/25 06:28:48; hardware ethernet 00:10:5a:2e:56:a7; uid 01:00:10:5a:2e:56:a7; client-
hostname "EQUPO30"; </bloque>
Así pues, una vez que todos los clientes han obtenido una dirección IP del servidor, el fichero
dhcpd.leases tendrá el siguiente aspecto:
<fichero dhcpd.leases> lease 192.168.12.58 starts 2 1999/08/24 06:28:48; ends 3 1999/08/25
06:28:48; hardware ethernet 00:10:5a:2e:56:a7; uid 01:00:10:5a:2e:56:a7; client-hostname
"EQUPO30"; lease 192.168.12.53 starts 2 1999/08/24 05:42:22; ends 3 1999/08/25 05:42:22;
hardware ethernet 00:80:ad:97:e1:76; uid 01:00:80:ad:97:e1:76; client-hostname "EQUIPO40";
lease 192.168.12.54 starts 2 1999/08/24 03:07:26; ends 3 1999/08/25 03:07:26; hardware ethernet
00:80:ad:97:e1:7d; uid 01:00:80:ad:97:e1:7d; client-hostname "EQUIPO31"; lease 192.168.12.67
starts 2 1999/08/24 02:52:19; ends 3 1999/08/25 02:52:19; hardware ethernet 00:50:04:45:e1:65;
uid 01:00:50:04:45:e1:65; client-hostname "EQUIPO32"; lease 192.168.12.64 starts 2 1999/08/24
01:26:05; ends 3 1999/08/25 01:26:05; hardware ethernet 00:80:ad:97:e2:1c; uid
01:00:80:ad:97:e2:1c; client-hostname "EQUIPO33"; lease 192.168.12.59 starts 2 1999/08/24
01:14:06; ends 3 1999/08/25 01:14:06; hardware ethernet 00:00:21:2c:30:e7; uid
01:00:00:21:2c:30:e7; client-hostname "EQUIPO34"; </fichero>

Seguridad en la configuración DHCP


A continuación, es necesario convertir nuestro DHCP "abierto" en uno estático y más seguro. Esto
lo haremos usando el fichero dhcp.lease que acabamos de crear y convirtiéndolo en lo que he
llamado un dhcp estático.
¿Cuál es la diferencia entre un DHCP estático y uno abierto? En lo que nos concierne, un DHCP
abierto permite a cualquier ordenador conectado a la red obtener una dirección IP y el resto de
parámetros de la red. Esto es un gran agujero en la seguridad, ya que cualquier pirata no autorizado
puede conectarse físicamente a la red y obtener parámetros de red correctos Para contrarrestar
tales ataques, usaremos el DHCP estático. Cada dirección IP sólo se da a clientes que tengan el Mac
correspondiente al adaptador ethernet asociado. De esta manera es fácil detectar una intrusión.
<fichero dhcpd.conf> default-lease-time 86400; max-lease-time 604800; get-lease-hostnames true;
option subnet-mask 255.255.255.0; option domain-name "ciua.com.ar"; option domain-name-
servers 10.10.3.80; option lpr-servers 10.10.3.80; option interface-mtu 1500; subnet 10.10.3.80
netmask 255.0.0.0 # gateway por defecto option routers 10.10.3.30; option broadcast-address
10.255.255.255; # Those not in the dhcp # will get ip between .10 et .50 range 10.10.3.81
10.10.3.254; host hardware ethernet 00:10:5a:2e:56:a7; fixed-address "EQUIPO30.ciua.com.ar";
host hardware ethernet 00:80:ad:97:e1:76; fixed-address "EQUIPO31.ciua.com.ar"; host hardware
ethernet 00:80:ad:97:e1:7d; fixed-address "EQUIPO31.ciua.com.ar"; host hardware ethernet
00:40:95:49:0b:a5; fixed-address "EQUIPO32.ciua.com.ar"; host hardware ethernet
00:50:04:45:e1:65; fixed-address "EQUIPO31.ciua.com.ar"; </file>

ATENCIÓN: Si no tienes un servidor DNS, el fichero dhcp.conf debe usar direcciones IP y no


nombres de máquinas.
<extracto de dhcpd.conf sin dns> host hardware ethernet 00:40:95:49:0b:a5; fixed-address
"10.10.3.30"; host hardware ethernet 00:50:04:45:e1:65; fixed-address "10.10.3.45"; </extracto>

A continuacion se da el ejemplo de un script escrito en el lenguaje Perl para el armado de un dhcp


con DNS.

#!/usr/bin/perl
#/************************************************** ********************
# * File : dhcp-auto.pl
# * Author: Eric SEIGNE
# * mailto:erics@rycks.com
# * http://www.rycks.com/erics/linux/
# * Date : 26/03/2000
#*
# * Description:
# * ------------
# * Convertisseur automatique de dhcpd.leases vers un dhcp fixe
#*
# * 27/03/2000 Modification, si on ne fait pas de dns, il faut mettre
# * les ip dans le dhcp fixe.
# * Sortie des fichiers dns classés par ordre croissant d'ip
#*
# * Attention, si il y a plusieurs réseaux ip dans le fichier leases
# * seul un fichier de dns ne sera créé. Vous devrez ensuite le répartir
# * entre vos différents fichiers dns.
#*
# ************************************************** *******************/

use Getopt::Long; #pour le getoptions


use DB_File;

$choix = "";
$dns = 0;
GetOptions ("f:s",\$fichier,"d:s",\$domaine,"h",\$help,"dns", \$dns);
if($help){
print "\n\n";
print "dhcp-auto\t\t\t\t\tUn utilitaire rycks.com\n---------\t\t\t\t\terics\@rycks.com\n\n";
print "Constitution du dhcpd.conf à partir du fichier dhcpd.leases\n";
print "Options:\n";
print "\t-f [fichier] donne le dhcpd.leases à utiliser\n";
print "\t-d [domaine] donne le nom de domaine dans lequel on se situe\n";
print "\t-dns si vous voulez creer les fichiers dns\n";
print "\t ils porteront les noms named.\$domaine et named.\$domaine.rev\n";
print "\t-h affiche cet écran d'aide\n\n";
exit;
}

#si on a pas de parametre


while ($fichier eq "") {
print STDERR "Ou est votre fichier dhcpd.leases ?:";
$fichier = <STDIN>;
chomp $fichier;
}
#si on constitue un dns et qu'on ne sait pas dans quel domaine on se trouve
while ($dns && $domaine eq "") {
print STDERR "Quel est le nom de votre domaine ?:";
$domaine = <STDIN>;
chomp $domaine;
}

#on ouvre le fichier en lecture


open(IN,"<$fichier");

#lecture du fichier
my $ip = "";
my $hostname = "";
my $mac = "";
my $pos = 0;

#on ouvre la table de hash


my %h;

while (<IN>) {
# print $_;
#on cherche l'ip
my ($t, $lease) = split("lease ",$_);
if($lease){
($ip,$t) = split(" ",$lease);
}

#puis la hardware ethernet


my ($t, $hard) = split("hardware ethernet ",$_);
if($hard){
($mac,$t) = split(";",$hard);
}

#et enfin, le nom de la machine


my ($t, $nom) = split("client-hostname \"",$_);
if($nom){
($hostname,$t) = split("\"",$nom);
}

if($ip && $hostname && $mac){


#on met les noms en minuscules
$hostname = lc $hostname;
#print "$mac/$ip/$hostname\n";
#on ajoute tout ca dans la table de hash
#pour eviter d'avoir des doublons
$h{"$mac"} = "$ip/$hostname";
$ip = $mac = $hostname = "";
}
}

#on referme le fichier


close(IN);

#On affiche ce qu'il faut rajouter à la fin du dhcpd.conf


open(OUT,">dhcpd.conf.ajouter");
while (($mac, $v) = each %h){
my ($ip, $hostname) = split("\/",$v);
#si on ne fait pas de dns, il faut les adresses IP
#des machines
if($dns){
print OUT "host {
hardware ethernet $mac;
fixed-address \"$hostname.$domaine\";\n}\n\n";
}
else{
print OUT "host {
hardware ethernet $mac;
fixed-address \"$ip\";\n}\n\n";
}
}
print "\n\n\t\t\tRESULTATS:\n\t\t\t----------\n\n";
print "1 - Ajoutez dans votre fichier dhcpd.conf les lignes qui\n";
print " se trouvent dans le fichier dhcpd.conf.ajouter\n\n";
close(OUT);

if($dns){
#on classe le tableau par ordre croissant des ip
#pour facilité la lecture du fichier de dns
tie(%classe, 'DB_File', undef, O_RDWR|O_CREAT, 0, $DB_BTREE);
while (($mac, $v) = each %h){
my ($ip, $hostname) = split("\/",$v);
$classe{"$ip"} = "$hostname";
}

#on ouvre le fichier de dns classique


open(OUT,">named.$domaine.ajouter");
print OUT "; Constitution automatique du dns à partir du dhcpd.leases\n";
print OUT "; Eric Seigne <erics\@rycks.com>\n";
print OUT "; merci de controler ce fichier et d'ajouter son contenu à votre dns\n\n";
while (($ip, $hostname) = each %classe){
# on envoie ce qu'il faut dans le fichier de dns
# et les tabulations correctes pour éviter des
# non alignements
if(length($hostname)<8){
print OUT "$hostname\t\tIN\tA\t$ip\n";
}
else{
print OUT "$hostname\tIN\tA\t$ip\n";
}
}
#on ferme ce fichier
close(OUT);

#on passe au reverse dns


open(OUT,">named.$domaine.rev.ajouter");
print OUT "; Constitution automatique du dns inversé à partir du dhcpd.leases\n";
print OUT "; Eric Seigne <erics\@rycks.com>\n";
print OUT "; merci de controler ce fichier et d'ajouter son contenu à votre dns inversé\n";
while (($ip, $hostname) = each %classe){
print OUT "$ip\t\tIN\tPTR\t$hostname.\n";
}
#on ferme ce fichier
close(OUT);

#les commentaires
print "2 - Pensez à ajoutez dans votre fichier named.conf les lignes qui\n";
print " correspondent à vos domaines\n\n";
print "3 - Ajoutez dans votre fichier named.$domaine les lignes qui\n";
print " se trouvent dans le fichier named.$domaine.ajouter\n\n";
print "4 - Ajoutez dans votre fichier named.$domaine.rev les lignes qui\n";
print " se trouvent dans le fichier named.$domaine.rev.ajouter\n\n";
}
#on "libere" h ...
untie %h;
untie %classe;
#au revoir
print "Pensez ensuite à relancer les serveurs dhcp et dns si nécessaire !\n";
Contrucción automática del DNS
¿Por qué parar a medio camino cuando podemos configurar el servidor DNS al mismo tiempo?
El mismo script de perl, con la opción -dns, creará los ficheros named.$domaine.ajouter y
named.$domaine.rev.ajouter que deberías comprobar antes de añadirlos a tus propios ficheros de
configuración del dns.
Además, es necesario rellenar el fichero named.conf con parámetros de tu propio dominio. Por
ejemplo:
<añadir al fichero named.conf> zone "ciua.com.ar" type master; file "ciua.com.ar"; ; zone
"3.10.10.in-addr.arpa" type master; file "3.10.10"; ; </añadir>
Entornos de Red
Disponible por el mismo precio (mejor incluso cuando es gratis , la configuración del "Entorno
de red" de las máquinas con windows. Esta es la historia, con un pequeño dibujo y sus
explicaciones:
Hay una historia de dos redes, una era de 10 Mbits y la otra de 100 Mbits. El principal problema fue
que ambas redes no podían "ver" a la otra a través del "Entorno de Red" de windows.
La solución es WINS. WINS permite declarar, en la red, un servidor que mantiene una lista de
enlaces entre IPs y nombre de varios dominios. Es una especie de master para las redes R1 y R2.
Es pues necesario configurar un servidor WINS y a los clientes para que lo usen y crear un gateway
IP entre ambas redes.
Samba soporta perfectamente WINS.
Esquema:
------------------- I I I Red R1 I I I I 10.10.3.0 I I 255.255.255.0 I -------+----------- | -----|----- eth0:
10.10.3.80 Servidor Linux eth1: 10.10.3.80 -----|----- | -------+----------- I I I Red R2 I I I I
10.10.2.81 I I 255.0.0.0 I -------------------
Se modifica dhcpd.conf para que autoconfigure a los clientes para usar nuestro servidor wins .
¡Sin dhcp, hubiera sido necesario configurar cada cliente individualmente para activar su acceso al
servidor wins!
AVISO: NO OLVIDES AÑADIR LAS SIGUIENTES LÍNEAS A TU FICHERO DHCPD.CONF
PARA QUE TU SERVIDOR WINS SEA USADO POR LOS CLIENTES
<fichero dhcpd.conf> [...] option routers 192.168.0.1; option netbios-name-servers 192.168.0.1;
option netbios-dd-server 192.168.0.1; option netbios-node-type 8; [...] </fichero>
Para tener el servidor wins funcionando, tengo funcionando Samba, configurado como sigue:
<fichero smb.conf> ; validated with samba 2.0.5 [global] workgroup = rycks.com server string =
Linux Box comment = Linux Box netbios name = pantoufle volume = pantoufle guest only = yes
guest account = nobody log file = /var/log/samba-log.%m max log size = 50 share modes = yes
security = share socket options = TCP_NODELAY os level = 33 ; Configured as network master
domain master = yes local master = yes preferred master = yes ; Activate wins support wins support
= yes wins proxy = yes ; FTP sharing [ftp] path = /home/ftp/pub public = yes printable = no guest
ok = yes </fichero>
Es necesario reiniciar los servidores, dhcp, samba y dns si se hacen modificaciones. Reinicia
también los clientes dhcp para que se den cuenta de la nueva configuración. Busca los grupos en la
"otra" red en el "Entorno de Red".
Dado el usual retraso que windows necesita para añadir las nuevas máquinas en el "entorno de red",
sugiero que busques un ordenador usando su nombre. Prueba a encontrar un ordenador de la red en
la que estás, y luego otro de la "otra" red.
Si puedes "ver" máquinas de fuera, pero no puedes acceder a ellas, necesitas configurar el gateway
para que actúe como un gateway real entre ambas redes.
Para más información sobre ello, mírate el ipchains.
Normalmente es necesario usar algo similar a:
#Reiniciar cadenas ipchains -F #Activar masquerading ipchains -A forward -i eth0 -j MASQ

Bugs y limitaciones
Ves con cuidado, si el servidor dhcp se usa en dos áreas a la vez, solo habrá un fichero dns a la
salida del programa... Será necesario ordenarlo a mano.
Configuración de una red basada en DNS
La primera le explica en palabras breves lo que significa la Internet y como se desarrolló.
La segunda le ayudará a comprender algunas expresiones técnicas.
La tercera se dedica de los protocolos más importantes de la Internet: El TCP y el IP.
La cuarta le ayudará entender el funcionamiento del DNS.
La quinta sección pertenece a la parte practica, explicando la creación de un Servicio de Dominio
de Nombres (Domain Name Service - DNS) para una red local con un gateway, usando el sistema
operativo LINUX, como fue implementado en la red del autor. De este modo el documento sirve
como introducción básica para principiantes y ofrece una referencia práctica para avanzados.
1 La ARPANET, el origen de la World Wide Web
2 Comprendiendo algunas expresiones técnicas
3 El TCP/IP
3.1 El IP y la IP
3.2 El TCP (Transmission Control Protocol)
4 El Sistema de Dominio de Nombres (DNS: Domain Name System)
4.1 Un resumen del sistema
4.2 ¿Por qué se necesita el DNS?
5 La Instalación de un Servidor de Dominio de Nombres
5.1 Archivos de base de datos (database files)
5.2 Ressource records
5.3 Los archivos completos para nuestro dominio ficticio
5.4 Abreviaciones
5.5 La Librería de Resolver
5.6 Probando su setup con nslookup

(1) La ARPANET, el origen de la World Wide Web


La "Internet" significa todas las redes informáticas interconectadas las cuales resultaron de la
ARPANET. La ARPANET nació en el año 1969 de un proyecto de investigación de la DARPA
(Defense Advanced Research Project Agency) americana. Cuando la ARPANET salió del estado
experimental, se desarrollaron los protocolos básicos del TCP IP, los cuales fueron nominados al
estándar militar (Military Standard) y todas las instituciones que formaban parte de la ARPANET
tuvieron que adaptarse a los nuevos protocolos. Para simplificar este cambio, la DARPA encargó a
la empresa Bolt, Beranek &Newman (BBN) para la integración de TCP IP en el sistema Berkley-
Unix (BSD). Es por eso que TCP IP y el sistema de operación UNIX se fusionaron.
En el año 1983 La ARPANET fue separada. De ella resultaron La MILNET como parte de la
Defense Data Network (DDN) y otra ARPANET mas pequeña. El conjunto consistiendo de la
MILNET y la ARPANET se dominaba la INTERNET. En el año 1990 desapareció la ARPANET
abriendo el paso a la Internet, que abarca una gran cantidad de redes en todo el mundo.

IP
Los datagrams como unidades mas pequeñas de la transmisión de datos son intercambiados por un
protocolo - el Internet Protocol (el IP), que es completamente independiente del hardware. De este
modo llegamos a la ventaja principal del protocolo IP, que consiste en reunir redes físicamente
separadas en una red aparentemente homogénea.
Las funciones principales del IP:
•Definir datagrams: al enviarse un archivo vía la red, es dividido en partes mas pequeños, es decir,
bloques de datos o paquetes
•Establecer la dirección en la Internet: el IP incorpora esta información en el cabezal, junto con la
identificación del mismo
•Routing de datagrams a computadoras lejanas: si un datagram va dirigido a una computadora que
no se encuentra en la misma red, es direccionado a un gateway para llegar al destino indicado.
Pero por otra parte el IP no dispone de informaciones de control de la transmisión (handshake), es
decir, que el IP transporta paquetes de un lugar a otro sin el debido control de que se recibieron
todos los paquetes en el orden correcto. Este problema lo trataremos más adelante.
Ahora tenemos una idea sobre el software de la transmisión (Routing). Recordemos que nuestra
computadora tiene el nombre SERVER80. Las computadoras de redes reciben nombres porque son
mas fáciles de recordar que una secuencia de cifras.
El IP tiene un esquema de dirección independiente del hardware. Esto se consigue asignando una
cifra única de 32 bits a un host; la dirección-IP (la IP). La dirección IP es representada por cuatro
cifras decimales (octetos) separadas por puntos. SERVER80 por ejemplo, podría tener la dirección
de hardware 0x952C0C02, la cual aparecería de la forma 10.10.3.1 .
En este punto habrá comprendido que tenemos tres direcciones distintas:
•El nombre del host: SERVER80
•La dirección IP: 10.10.3.1
•Y la dirección del hardware. En nuestro caso será una tarjeta de Ethernet con la dirección única
0x952C0C02.
La dirección de la tarjeta de Ethernet ocupa un puerto en el sistema operativo, usualmente es eth0-n
bajo Linux. Puertos seriales p. ej. llevan el nombre cua0-n o ttyS0-n. Para ser exacto no se debería
decir que su computadora o el host tiene el nombre SERVER80, sino que se refiere al interfaz de
hardware correspondiente.
Usted sabe ahora que el Internet Protocol (el IP) transmite datos entre computadoras en forma de
datagrams. Cada datagram es transmitido a la dirección en la Internet u otra red local, que se indica
en el cabezal del datagram. La dirección de destinatario es una dirección estándar (la IP) de 32 Bits
y contiene información suficiente para identificar inequívocamente una computadora de una red.
Una dirección IP consiste de dos partes:
•Una dirección de red
•Y una dirección de la computadora (host) dentro de esta red.
Dependiendo del tamaño de la red resulta el número de las direcciones de host. Para cumplir estas
diferentes exigencias, se ha creado diferentes clases de redes, que definen separaciones de dirección
IP diferentes.

Clase A:
La Clase A abarca redes de 1.0.0.0 hasta 127.0.0.0. La cifra de este tipo de red se encuentra en el
primer octeto. Así quedan 24 Bits para definir los hosts, lo que es suficiente para aproximadamente
1,6 millones de computadoras.
Clase B: La Clase B abarca redes de 128.0.0.0 hasta 191.255.0.0 . La cifra de este tipo de red se
encuentra en los dos primeros octetos. Esto permite 16.320 redes con 65.024 computadoras en cada
una.
Clase C: Clase C abarca las redes 192.0.0.0 hasta 223.255.255.0 . La cifra de red se encuentra en los
primeros tres octetos. Esto permite casi dos millones de redes con alrededor de 254 hosts. Clase
D, E y F: Direcciones, que están en la gama de 224.0.0.0 hasta 225.0.0.0 son experimentales, o son
reservadas para el uso futuro y no definen ninguna red. Regresando a nuestro ejemplo, Ud. puede
ver que SERVER80 con la IP 10.10.3.1 forma parte de una red de la clase A: 149.176.0.0 y precisa
la computadora host 12.7. Es importante saber, que la dirección de host no debe tener el 0 ni el 225,
como están reservados para objetivos especiales. La dirección de host , consistiendo solo de ceros
identifica la red misma (10.10. 0.0). Si las cifras de host sólo consisten de 255 (10.255.255.255) se
habla de una dirección broadcast (radio), ya que los datos, que son mandados a esta dirección, son
recibidos de todas las computadoras en la red 10.10.0.0.
Al mismo tiempo existen dos direcciones de red reservadas: 0.0.0.0, que se llama default route y
127.0.0.0 que es la dirección-loopback. La default route tiene que ver con la manera como IP realiza
el routing de los datagrams (apunte: masquerading).
Mas importante por ahora es la red 127.0.0.0, la cual es reservada para el tráfico de IP, que tiene
lugar en su computadora. La IP 127.0.0.1 se dirige usualmente a un interfaz en su computadora que
se llama interfaz de loopback, lo que funciona como un círculo cerrado. Cada paquete mandado allí,
es devuelto inmediatamente. De este modo el loopback sirve para probar el software de red sin estar
obligado usar una red "real".
"Ping localhost" o "ping 127.0.0.1" es una prueba común bajo LinuX para ver si TCP IP está
configurado de la manera correcta.
La IP que Ud. va a tener al final es decidido por una institución central que se llama NIC (Network
Information Center). La mejor solución es encargar su proveedor con la reservación de la dirección
IP. Si Ud. está seguro que su red nunca será conectada a la Internet, puede elegir una IP cualquiera.
Pero para estar seguro que ningún paquete de datos escape a la Internet, conviene usar IPs que sólo
son válidos dentro de su red privada y no pueden ser transferidos entre Sistemas de Internet.
Estas direcciones son:
•Clase A: 10.0.0.0
•Clase B: 172.16.0.0 hasta 172.31.0.0
•Clase C: 192.168.0.0
Sin embargo es posible instalar un gateway para la Internet, es decir, que la dirección externa del
gateway es conocida dentro de la Internet, pero las computadoras dentro de su red normalmente no
las pueden accesar, porque sus IPs no son transmitidos en la Internet. Los hosts de su red por otro
lado tendrán acceso a la WWW (World Wide Web).

(3.2) El TCP (Transmission Control Protocol)


Como fue mencionado antes, el Internet Protocol no dispone de control de la transmisión, de esto se
ocupa el TCP. El TCP es un protocolo de flujo de datos (byte stream), confiable y orientado a la
conexión.
•Se habla de flujo de datos (byte stream), porque el TCP considera los datos como una unidad de
paquetes no separados, en vez de una secuencia de paquetes independientes.
•Es confiable porque verifica si todos los datagrams han llegado. En el caso de que se pierda uno, el
emisor recibe la información correspondiente del receptor y tiene que retransmitir los paquetes
perdidos hasta que todos sean recibidos por el receptor.
•Orientado a la conexión significa que el TCP establece una conexión lógica entre dos
computadoras, de modo que antes de la transmisión de los datagrams el TCP transmite
informaciones de control (handshake) entre el emisor y el receptor iniciando la comunicación entre
los dos hosts.
Debido a esto el TCP se ocupa del orden correcto de los datos.

(4) El Sistema de Dominio de Nombres (DNS: Domain Name System)


(4.1) Un resumen del sistema
El Sistema de Dominio de Nombres (DNS) es básicamente una base de datos distribuida de
computadoras que forman parte de una red. Esto facilita el control local de la totalidad de
segmentos de la base de datos, lo que permite, que cada segmento esté disponible a través de la red
por un esquema de cliente-servidor (client server).
El Servidor de Nombres (name server) es un programa que forma la parte servidor del mecanismo
cliente-servidor del DNS. Los Servidores de Nombres contienen información sobre un determinado
segmento de la base de datos y la hace disponible para clientes (clients), denominados Resolver.
Los Resolvers muchas veces consisten sólo en rutinas de librerías, que crean interrogaciones y las
mandan a través de la red a un Servidor de Nombre.
La estructura de la base de datos del DNS es mostrada en figura 2. La totalidad de la base de datos
se muestra como un árbol (tree) invertido con la raíz (root) en la punta. El nombre de la raíz es la
etiqueta NULL, pero se escribe con un solo punto ("."). Cada nudo del árbol representa tanto una
partición de la totalidad de la base de datos, como un Dominio (domain) del Sistema de Dominio de
Nombre. En adelante cada dominio puede ser dividido en particiones que se llaman Subdominios
(subdomains), que son derivados como niños de sus nudos paternales.

Figura 2: La base de datos del DNS


Cada dominio es marcado de modo que tiene una etiqueta que le identifica relativamente con su
dominio paternal. El dominio posee también un nombre de dominio (domain name), que identifica
su posición en la base de datos, tal como una ruta absoluta de un directorio especifica su lugar en el
sistema de archivos de su computadora.
En el DNS, el nombre de dominio completo es una secuencia de etiquetas, empezando por el
dominio hasta la raíz (root), separando las etiquetas por puntos "." (p. ej: SERVER80.ciua.com.ar).
Permitiendo que cada dominio puede ser administrado por una organización diferente. Cada
organización puede dividir su dominio en varios subdominios, cuya administración puede ser
realizada por otras organizaciones.

Figura 3: El mantenimiento de subdominios


Finalmente queda mencionar que un dominio puede contener tanto subdominios como hosts. Cada
host en una red tiene un Nombre de Dominio que posee la información sobre el host, así como la
dirección IP o como va el Routing de correo, etc. Un host también puede tener uno o mas Aliases de
Dominio de Nombre, que son simplemente un indicador de un nombre de dominio (el alias) para el
nombre oficial (canonical domain name). Un ejemplo: si su esposa se llama Maria Elizabeth, en
algunos momentos la llamará Maria y en otros Elizabeth. Aunque utilice nombres diferentes se
refiere a la misma persona.
Las organizaciones de un dominio son libres de elegir nombres dentro de su dominio. No importa
cual nombre sea usado, es seguro que no causa conflicto con otro nombre, porque tiene su Nombre
de Dominio único adjuntado al final. De este modo pueden existir dos hosts con el nombre
SERVER80 en su Universidad, por ejemplo, paquetes de SERVER80.linuxcollege.com.ar siempre
van a encontrar su camino a SERVER80.ciua.com.ar, porque se trata de dominios paternales
diferentes.

(4.2) ¿Por qué se necesita el DNS?


Para resolver nombres de dominio y direcciones IP y para poder ubicar hosts de redes lejanas.
Como fue mencionado antes, es más fácil recordar nombres en vez de cifras. Sobre todo cuando se
trata de una cantidad de direcciones tan inmensa como la Internet.
Las computadoras por otro lado trabajan perfectamente con cifras como la dirección IP. Lo que
sucede cuando usted entra a la Internet colocando una dirección como p. ej.
http://www.altavista.com, es que su navegador dirige una petición (request) al Servidor de Dominio
de su proveedor y este intenta resolver el nombre de dominio con la IP correspondiente. En el caso
que su proveedor no está autorizado para esta zona, transmite la petición (request, query) al servidor
de dominio autorizado hasta llegar al dominio que se indicó.
Esto significa que cada servidor de dominio tiene la información completa de la zona para que esta
autorizado y aparte tiene informaciones básicas sobre otras zonas. Cuando una petición (request) se
dirige a una zona que esta fuera de la zona autorizada, su servidor por lo menos sabe por donde
buscar. Esto puede significar que la petición (request) de una dirección tiene que pasar por varios
Servidores de Dominio hasta que usted tenga contacto con el destino solicitado.
Aunque usted supiera la dirección IP del detino, es imprescindible consultar otros Servidores de
Dominio si su computadora no se encuentra en la misma zona. De este modo es fácil de imaginar
porque el Sistema de Dominio de Nombre no puede consistir en una sola base de datos centralizada.
Primero tardaría demasiado tiempo encontrar un servidor entre millones de otros y segundo habría
una cola bastante larga en el caso de miles de peticiones simultáneas de todo el mundo.
Adicionalmente no tendría sentido dirigirse a un servidor lejano para comunicar con un host de la
misma zona.
Hasta ahora hablamos del mapeo de nombres a direcciones. Pero, que sucede si usted de repente
tiene la dirección IP y desee saber el nombre de este dominio. Para solventar este problema fue
creado el dominio "in-addr.arpa". (Figura 5)
Este dominio es llamado dominio inverso y la resolución de direcciones IPs a nombres de dominio
se denomina mapeo reverso (reverse mapping o reverse lookup). El dominio de nombre inverso es
creado poniendo las cifras de la IP del orden contrario y añadiendo in-addr.arpa al final.
Un ejemplo: Nos recordamos que la IP de SERVER80 de ciua.com.ar "10.10.3.1" con el nombre de
dominio "SERVER80.ciua.com.ar".
El dominio "ciua.com.ar" entonces tendrá el nombre de dominio inverso: "3.10.10.in-addr.arpa" y la
computadora SERVER80.ciua.com.ar correspondientemente esta realizada con "3.10.10.in-
addr.arpa".

(5) La Instalación de un Servidor de Dominio de Nombres para una red local (LAN) con gateway
bajo el Sistema Operativo LINUX usando BIND (Berkeley Internet Name Deamon: Demonio de
Nombres Internet de Berkeley).
Lo siguiente está basado en un supuesto de que usted sabe instalar y configurar tarjetas de red bajo
LinuX. Los comandos "ifconfig" y "ping localhost" pueden comprobar una configuración correcta
para cada computadora. Ahora nos dedicamos a conectar sus computadoras vía el DNS
configurando BIND. Usted tiene que tener instalado el paquete BIND, que contiene named
(pronunciado neimdii = el demonio de servidor) en la computadora que trabajará como servidor de
dominio. En este capitulo vamos a instalar un dominio ficticio. De este modo usted solo tiene que
reemplazar las IPs, los nombres de las computadoras y un par de detalles adicionales de su red.

Nuestro dominio ejemplo es para una red interna en un alula del instituto llamada aula3. El dominio
en el cual trabajaremos se llamara ciua.com.ar.
Una parte de la tabla de host (hosttable, usualmente el archivo /etc/hosts) muestra lo siguiente:
/etc/hosts 127.0.0.1 localhost.localdomain localhost
10.10.3.30 SERVER30.ciua.com.ar SERVER30
10.10.3.32 EQUIPO32.ciua.com.ar EQUIPO32
10.10.3.80 SERVER80.ciua.com.ar SERVER80
10.10.3.39 EQUIPO39.ciua.com.ar EQUIPO39
10.10.3.35 EQUIPO35.ciua.com.ar EQUIPO35
10.10.3.42 EQUIPO42.ciua.com.ar EQUIPO42
10.10.3.33 EQUIPO33.ciua.com.ar EQUIPO33
10.10.3.43 EQUIPO43.ciua.com.ar EQUIPO43
10.10.3.31 EQUIPO31.ciua.com.ar EQUIPO31
10.10.3.32 EQUIPO32.ciua.com.ar EQUIPO32
10.10.3.36 EQUIPO36.ciua.com.ar EQUIPO39
10.10.3.40 EQUIPO40.ciua.com.ar EQUIPO40
10.10.3.44 EQUIPO44.ciua.com.ar EQUIPO44
10.10.3.57 EQUIPO57.ciua.com.ar EQUIPO57
10.10.3.38 EQUIPO38.ciua.com.ar EQUIPO38
10.10.3.37 EQUIPO37.ciua.com.ar EQUIPO37
(5.1) Archivos de base de datos (database files)
La primera etapa será traducir la tabla de host a datos equivalentes de DNS. El DNS consiste de
varios archivos: Un archivo proyecta todos los nombres de hosts a direcciones IP. Otros archivos
vuelven a proyectar las IPs a nombres de hosts. La búsqueda de direcciones IP a nombres de hosts
es llamada reverse mapping (mapeo reverso) y cada red tiene su propio archivo para el mapeo
reverso.
He llamado el archivo que proyecta nombres a direcciones named.hosts. Los archivos que
proyectan las direcciones a hosts los llamé ciua.com.arcorrespondiendo a las dos redes de la
empresa ciua.
Aparte de estos existen dos archivos de datos que son mas o menos iguales para cada servidor.
Estos los llamé named.ca y named.local.
Para unir todos los archivos de base de datos, el Servidor de Nombres requiere un archivo de inicio
- usando BIND, este archivo usualmente es /etc/named.boot. Los archivos de base de datos son
específicos para el DNS. El archivo de inicio es específico para la implementación del Servidor de
Nombres - en nuestro caso usaremos BIND.

(5.2) Ressource records


La mayoría de los componentes de estos archivos se llaman DNS ressource records. Según las
Referencias de DNS los ressource records tienen el orden siguiente:
•SOA record: Indica la autoridad para estos datos de dominio
•NS record: Indica el servidor de nombre para este dominio
Los siguientes records indican datos de hosts en este dominio:
•A: mapeo de nombres a direcciones
•PTR: mapeo de direcciones a nombres (mapeo reverso)
•CNAME: canonical name (nombre oficial para aliases)
•TXT: información de texto
•RP: persona responsable
Comentarios: Se les hace leer mas fácil a los archivos del DNS usando comentarios y líneas
blancas. Los comentarios empiezan con un punto y coma y terminan al final de la línea. Los
Servidores de Nombres ignoran comentarios así como líneas blancas.)
SOA record:
El primer ressource record de cada archivo de base de datos es el SOA record (start of authority). El
SOA record indica que este Servidor de Nombres es la mejor fuente de informaciones para los hosts
dentro de este dominio. Nuestro Servidor de Nombres - ciua.com.ar. SOA record @ IN SOA
SERVER80.ciua.com.ar. root.ciua.com.ar. (
2001111602 ; serial
28800 ; refresh
14400 ; retry
3600000 ; expire
86400 ; default_ttl
) El nombre "ciua.com.ar debe estar en la primera columna. ¡Es muy importante poner un punto al
final de los nombres! Sino, es añadido automáticamente el dominio "ciua.com.ar", lo que tendría
poco sentido. La explicación se la daré cuando tratemos las abreviaciones.
El "IN" pone para la Internet. Existen otras clases, pero ninguna es de uso común.
El primer nombre después de SOA, augustiner.alcomat.com, es el nombre del Servidor de Nombres
para estos datos. El segundo nombre, juan.mahou.alcomat.com, es la dirección de correo de la
persona encargada de estos datos (si usted reemplaza el primer punto "." por una @). BIND provee
otro tipo de ressource record para este propósito: RP (persona responsable).
Los paréntesis permiten que el SOA record se extiende sobre varias líneas. La mayoría de los
renglones dentro de los paréntesis sirven para informar Servidores de Nombres secundarios, que no
usamos en nuestra red ficticia y probablemente será tratado en la próxima edición.
SOA records similares son insertados en los archivos ciua.com.ar. Note que en estos archivos
cambiamos el primer nombre del SOA record de alcomat.com al nombre apropiado del dominio in-
addr.arpa: 249.249.192.in-addr.arpa. y 253.253.192.in-addr.arpa.
NS record:
El próximo renglón que añadimos a cada archivo de base de datos es el NS record (name server:
Servidor de Nombres). Los NS records de nuestro dominio son:
NS record @ IN NS SERVER80. Estos records indican que existe un Servidore de Nombres para el
dominio "ciua.com.ar". El Servidor de Nombres se encuentra en el host "SERVER80".
Igual que con los SOA records, añadimos NS records a los archivos ciua.com.ar.
Dirección y Alias records:
El paso siguiente es el mapeo de direcciones a nombres. Añadimos los siguientes ressource records
al archivo ciua.com.ar.
EQUIPO37 IN MX 10 SERVER80.
EQUIPO44 IN A 10.10.3.44
EQUIPO44 IN MX 10 SERVER80.
EQUIPO31 IN A 10.10.3.31
EQUIPO31 IN MX 10 SERVER80.
EQUIPO32 IN A 10.10.3.32
EQUIPO32 IN MX 10 SERVER80.
EQUIPO33 IN A 10.10.3.33
EQUIPO33 IN MX 10 SERVER80.
EQUIPO43 IN A 10.10.3.34
EQUIPO43 IN MX 10 SERVER80.
EQUIPO35 IN A 10.10.3.35
EQUIPO42 IN MX 10 SERVER80.
EQUIPO36 IN A 10.10.3.36
EQUIPO36 IN MX 10 SERVER80.
EQUIPO38 IN A 10.10.3.38
EQUIPO38 IN MX 10 SERVER80.
EQUIPO39 IN A 10.10.3.39
EQUIPO39 IN MX 10 SERVER80.
EQUIPO40 IN A 10.10.3.40
EQUIPO40 IN MX 10 SERVER80.
EQUIPO41 IN A 10.10.3.41
EQUIPO41 IN MX 10 SERVER80.
EQUIPO47 IN A 10.10.3.47
EQUIPO47 IN MX 10 SERVER80.
EQUIPO50 IN A 10.10.3.50
EQUIPO50 IN MX 10 SERVER80.
EQUIPO51 IN A 10.10.3.51
EQUIPO51 IN MX 10 SERVER80.
SERVER80 IN A 10.10.3.80
SERVER30 IN A 10.10.3.30
SERVER30 IN MX 10 SERVER80.

Los primeros dos bloques no le van a sorprender. La "A" indica dirección (address) y cada
ressource record mapea un nombre a una dirección. Tubo actúa como Router y tiene dos direcciones
asociados con su nombre y por eso tiene dos ressource records.
Formulemos una regla general para esto: Cuando un host tiene más de una interfaz de red
(multihomed host), se crea un address record "A" para cada alias que es único para una dirección.
PTR Records
Ahora creamos los mapeos de dirección a nombre. El archivo ciua.com.ar mapea direcciones a
nombres de hosts para la red 10.10.3. El ressource record para este mapeo es el PTR (pointer =
puntero, indicador) record. Existe un record para cada host de esta red. (Recuerde que en el DNS
son buscado nombres para direcciones). La dirección esta puesta en orden inversa y es adjuntado in-
addr.arpa.
Los siguientes records son los PTR records para la red 10.10.3.
PTR record @ IN SOA SERVER80.ciua.com.ar. root.ciua.com.ar. (
2001111602 ; serial
28800 ; refresh
14400 ; retry
3600000 ; expire
86400 ; default_ttl
)
@ IN NS SERVER80.
37 IN PTR EQUIPO37.
44 IN PTR EQUIPO44.
31 IN PTR EQUIPO31.
32 IN PTR EQUIPO32.
33 IN PTR EQUIPO33.
34 IN PTR EQUIPO34.
35 IN PTR EQUIPO35.
36 IN PTR EQUIPO36.
38 IN PTR EQUIPO38.
39 IN PTR EQUIPÒ39.
40 IN PTR EQUIPO40.
47 IN PTR EQUIPO47.
50 IN PTR EQUIPO50.
51 IN PTR EQUIPO51.
30 IN PTR EQUIPO30.
80 IN PTR SERVER80.
named.boot directory /var/named
primary ciua.com.ar named.hosts
primary 3.10.10.in-addr.arpa ciua.com.ar
primary 0.0.127.in-addr.arpa named.local

cache . named.cache

(5.5) La Librería de Resolver


La contraparte del Servidor de Nombres es la Librería de Resolver, que consiste en un grupo de
funciones perteneciendo a las librerías estándar de "C" bajo LinuX. Las rutinas más importantes del
Resolver son:
•entregar todas las IPs que pertenecen a un nombre de host (gethostbyname) y
•entregar el nombre de primer orden de un host que pertenece a una IP (gethostbyaddr).
El archivo más importante es host.conf, que controla las funciones de su Resolver. Se encuentra en
el directorio /etc y entre otros determina cuales servicios y en la orden de ellos serán solicitados por
el Resolver.
Para nuestra red ficticia solo necesitamos dos opciones: order y multi.
•Order determina la orden de los servicios consultados
•Multi indica que un host puede tener varias direcciones y es usado únicamente para la tabla
/etc/hosts. Los argumentos posibles son on y off.
El archivo /etc/host.conf de nuestro ejemplo le indica al Resolver usar primero el DNS y después la
tabla /etc/hosts. /etc/host.conf # /etc/host.conf
# Usamos named y la tabla de hosts:/etc/hosts
order bind hosts
# permitimos multiples direcciones (sólo para /etc/hosts)
multi on
Ya que nuestro Resolver esta usando DNS, le tenemos que comunicar cual Servidor de Nombres
consultar. Para cumplir esto, existe el archivo: resolv.conf.
La opción mas importante en resolv.conf es nameserver, que indica al Servidor de Nombres
correspondiente. Se pueden insertar hasta tres Servidores de Nombres. Es recomendable poner el
Servidor de Nombres más confiable como primero, porque son consultados según la sucesión .
Existen dos opciones adicionales - domain y saerch- que indican a nombres de dominios, que son
adjuntados a un nombre de host en el caso de que el Resolver no conoce la dirección. En cuanto a
nuestro ejemplo es decir que, cuando usted coloca "ciua.com.ar",
# El dominio de Distribuciones ciua
domain ciua
#
# El Servidor de Nombres
# Como segundo IP conviene poner la IP de su Proveedor de Internet
nameserver 10.10.3.80
(5.6) Probando su setup con nslookup
Antes de usar la herramienta nslookup, que trae BIND, vamos a investigar si existen errores de
syslog. Si usted ha configurado el archivo inicial de modo que "named" arranca automáticamente
durante el inicio del sistema, sale un mensaje de "named" esta activo. En el caso de que usted
prefiera arancar "named" manualmente, use el comando siguiente:
# /etc/named -b /etc/named.boot (sólo root puede realizarlo)
•Con el comando:
# grep daemon /etc/syslog.conf debe aparecer algo como
*.err;kern.debug;daemon,auth.notice /var/adm/messages o /var/log/messages
Esto le dice, dependiendo de la distribución, que los mensajes de syslog se encuentran en el archivo
/var/adm/messages o /var/log/messages.
•Con el comando
# grep named /var/adm/messages (/var/log/messages)

debe aparecer algo similar como p.ej.


Feb 12 21:16:48 tubo named [3221]: starting (o restarted)
Si ha ocurrido algun error, aparecen mensajes como p. ej.
Feb 12 21:16:48 tubo named [3221]: named hosts Line 15: database format error (10.10.3.0),
indicándole el archivo, junto con la línea donde se encuentra el error.
Después de corregir los errores, use el comando
# kill -HUP 'cat /etc/named.pid'
para que el Servidor de Nombres vuelva a leer los archivos de base de datos.

Las pruebas usando nslookup


Con nslookup se puede buscar cualquier tipo de ressource record y puede ser dirigido a cualquier
Servidor de Nombres. Aqui vamos a tratar solo las pruebas elementales.
Búsquedas locales: Si las dos pruebas funcionan de la manera mostrada, su Servidor de Nombres
trabaja correctamente para su dominio.
Búsquedas de hosts lejanos:
En el caso de que su red tiene acceso a la Internet conviene usar el comando nslookup para buscar
un host lejano. Si esta prueba funciona, su Servidor de Nombres puede ubicar los Servidores de
Nombres de root (archivo: named.cache) y como contactarlos para solicitar informaciones sobre
hosts lejanos.

INDICE

Módulo V 1
(Administración Avanzada) 1
Introducción 1
Herramientas de Configuración 2
Linuxconf (RedHat): 2
COAS (Caldera) 3
Usuarios Especiales 3
La tabla de usuarios 3
Usuarios de Correo 3
Usuarios de FTP 4
Permisos Especiales 4
SUID (Set User ID) 4
Modo de uso: 5
SGID (Set Group ID) 5
4) Sticky bit 5
Archivos de Confifuración 6
Configuración de red 7
Configuración de una red usando DHCP 8
El objetivo de este capitulo es configurar una red usando: 8
Seguridad en la configuración DHCP 10
Contrucción automática del DNS 14
Entornos de Red 15
Bugs y limitaciones 17
Configuración de una red basada en DNS 17

You might also like