Anda di halaman 1dari 26

Introducción

Vamos a desarrollar un supuesto que sirva tanto como base del aprendizaje de
configuración de distintos servicios como de forma práctica para poderlo utilizar en la
realidad.

Suponemos que en nuestro centro de trabajo queremos facilitar a cada


departamento la publicación de documentos html o php en su propia carpeta y sin
poder interferir en las publicaciones de los otros departamentos. Todo esto
queremos que se pueda hacer simplmente guardando los ficheros en una unidad
compartida y desde cualquier equipo de nuestra red local.

Los departamentos que vamos a crear son secretaria, dirección y público.

La mayoría de las acciones que vamos a realizar requieren acceso como root al
sistema.

Qué necesitamos

• Una red y un servidor linux en funcionamiento.


• Distribución de usuarios.
• Un servidor DNS para facilitar las comunicaciones en red.
• DHCP para facilitar la configuración de clientes
• Un servidor web en funcionamiento.
• Recursos compartidos en la red

Configuración de red
Descripción de la red
Suponemos que nuestra red principal, la que queremos configurar, en principio no va
a tener más de 250 equipos, por lo que escogemos una dirección IP de red del
rango privado 192.168.1.0 con máscara 255.255.255.0 y dirección de difusión
192.168.1.255. La pasarela predeterminada será 192.168.1.254
Además, tenemos otra red inalambrica separada con dirección 192.168.2.0 y la
dirección IP en el interfaz que nos une a esa red es 192.168.2.1 y a la que
tendremos que acceder.
Existe una tercera red con dirección 192.168.100.0 a la cual podremos accedes a
través de la pasarela 192.168.2.254, es decir a través de la red inalámbrica.

Asignación de direcciones

Nuestra responsabilidad es la red 192.168.1.0. La asignación de direcciones


tendremos que realizarla teniendo en cuenta que ciertas maquinas exigen una
dirección IP fija. Por lo pronto ya tenemos con IP fija la pasarela a internet y siempre,
el servidor DNS tiene que tener una dirección fija, ya que si no tenemos disponible
un servidor de nombres no podremos saber qué dirección IP corresponde a un
determinado nombre.
En nuestro ejemplo, los equipos que tendrán dirección IP fija:
• Pasarela de acceso a internet: 192.168.1.254
• Interfaz ethernet de nuestro servidor: 192.168.1.1
• Interfaz inalambrico de nuestro servidor: 192.168.2.1

Debemos prever el rango de asignación de direcciones. Al menos dos equipos


funcionan con dirección IP fija, pero puede que surja la necesidad de tener que fijar
otras direcciones también. Así debemos prever los rangos para las direcciones que
va a ser fijas y para las que no tienen por qué serlo.
Si la red fuese más grande podríamos pensar en mantener varias redes, una para
cada departamento, una red dorsal y las correspondientes pasarelas para permitir
las comunicciones, de una forma igual a la red 192.168.2.1.

Configuración TCP/IP del servidor

Suponemos que el servidor se une a la red local mediante una tarjeta ethernet
(eth0). Los parámetros que deberemos de asignar serán :

Para la red ethernet


• dirección IP 192.168.1.1
• máscara de red: 255.255.255
• dirección de difusión: 192.168.1.255

Para la red inalambrica


• dirección IP 192.168.2.1
• máscara de red: 255.255.255
• dirección de difusión: 192.168.2.255
• gateway predeterminado: 192.168.1.254

Acceso a la red 192.168.100.0 mediante el gateway 192.168.2.254


servidor DNS: 127.0.0.1
dominio TCP/IP: centro.ies

Es probable que durante el proceso de instalación se haya reconocido la tarjeta de


red y ya hayamos introducido estos parámetros. En caso de que esto no haya sido
así, lo más cómodo para configurar el acceso a la red del servidor será utilizar algún
programa de entrono gráfico que lo haga por nosotros, claro está, con privilegios de
root. Estos programas puedes ser:
• netcfg
• netconf
• redhat-config-network
• yast

U otro programa que acompañe a nuestra distribución Linux. Si queremos también


podremos hacerlo a mano. Tendríamos que editar distintos ficheros según la
distribución que estuviéramos usando.

Configuración de red en Fedora/RedHat


En las distribuciones RedHat/Fedora podemos configurar las interfaces de red a
mano editando los ficheros de configuración:

Para la red ethernet, la interfaz eth0, los ficheros serían /etc/sysconfig/network-


scripts/ifcfg-eth0 y /etc/sysconfig/networking/devices/ifcfg-eth0 para configurar el
interfaz de red y y que su contenido sea similar al siguiente:

DEVICE=eth0
USERCTL=no
ONBOOT=yes
BOOTPROTO=none
NETMASK=255.255.255.0
IPADDR=192.168.1.1
IPXPRIMARY_802_2="no"
IPXACTIVE_802_2="no"
IPXPRIMARY_802_3="no"
IPXACTIVE_802_3="no"
IPXPRIMARY_ETHERII="no"
IPXACTIVE_ETHERII="no"
IPXPRIMARY_SNAP="no"
IPXACTIVE_SNAP="no"
BROADCAST=192.168.1.255
NETWORK=192.168.1.0
PEERDNS=no
TYPE=Ethernet

Para la red ethernet, la interfaz wlan0, los ficheros serían /etc/sysconfig/network-


scripts/ifcfg-wlan0 y /etc/sysconfig/networking/devices/ifcfg-wlan0 para configurar el
interfaz de red y que su contenido sea similar al siguiente:

DEVICE=wlan0
USERCTL=no
ONBOOT=yes
BOOTPROTO=none
NETMASK=255.255.255.0
IPADDR=192.168.2.1
IPXPRIMARY_802_2="no"
IPXACTIVE_802_2="no"
IPXPRIMARY_802_3="no"
IPXACTIVE_802_3="no"
IPXPRIMARY_ETHERII="no"
IPXACTIVE_ETHERII="no"
IPXPRIMARY_SNAP="no"
IPXACTIVE_SNAP="no"
BROADCAST=192.168.2.255
NETWORK=192.168.2.0
PEERDNS=no
TYPE=Wireless
DOMAIN=
ESSID=centro_ies
CHANNEL=1
MODE=Managed
RATE=11Mb/s

Para el caso de las redes inalámbricas también tenemos otro fichero adicional en la
misma ubicación llamado keys-wlan0 donde podremos introducir la clave WEP, por
ejemplo: KEY=8899AABBFF
Evidentemente, todo lo dicho para eth0 y wlan0 sería igualmente válido para
cualquier otra interfaz de red que estuviéramos configurando, por ejemplo eth1,
wlan1,...

Si ejecutamos:

ifconfig eth0 192.168.1.1

Producirá los mismos efectos pero de forma transitoria, hasta que reinicien los
servicios de red, en cuyo caso se toman los parámetros de los ficheros anteriores.

Tenemos el fichero /etc/sysconfig/network para configurar las caracteríosticas


generales de la red:

NETWORKING=yes
# FORWARD_IPV4 removed; see /etc/sysctl.conf
HOSTNAME=ns1.centro.ies
DOMAINNAME=centro.ies
GATEWAY="192.168.1.254"
GATEWAYDEV="eth0"
IPX="no"
IPXINTERNALNETNUM="0"
IPXINTERNALNODENUM="0"
IPXAUTOPRIMARY="off"
IPXAUTOFRAME="off"
FORWARD_IPV4="yes"

Observamos según el comentario del fichero, como en las últimas versiones


tenemos que utilizar el fichero /etc/sysctl.conf para indicar que la máquina actúa
como enrutador.

Rutas estáticas

De la misma forma que en la configuración de la interfaz de red, para configurar las


rutas de red en nuestro caso ejecutaríamos:

route add default gw 192.168.1.254


route add -net 192.168.100.0
netmask 255.255.255.0 gw 192.168.2.254

Pero igual que antes, es una modificación transitoria.


Las rutas estáticas se indican dentro del directorio /etc/sysconfig/network-scripts/,
/etc/sysconfig/network-scripts/route-eth0, etc. cuyo contenido sería, en nuestro caso,
para la interfaz wlan0:

/etc/sysconfig/network-scripts/route-wlan0

y el contenido:

to 192.168.100.0/24 via 192.168.2.254


Ficheros alternativos

Las herramientas gráficas de configuración de estas distribuciones también utilizan


ficheros dentro del directorio /etc/sysconfig/networking/devices/ para indicar las rutas
estáticas según el interfaz de red que tenga asociado. El fichero se llamará:

interfaz.route

Donde interfaz podrá ser eth0, eth1.route, wlan0, ... Evidentemente podremos tener
un fichero por interfaz.

ADDRESS0 = IP de la red destino de la ruta 0


NETMASK0 = Mascara de la subred destino de la ruta 0
GATEWAY0 = IP del gateway para la ruta 0
ADDRESS1 = IP de la red destino de la ruta 1
NETMASK1 = Mascara de la subred destino de la ruta 1
GATEWAY1 = IP del gateway para la ruta 1
...

Si, por ejemplo, la maquina 192.168.0.253 fuese una pasarela para acceder a la red
192.168.100.0 accesible desde el interfaz "wireless" wlan0 tendríamos
/etc/sysconfig/networking/devices/wlan0.route:

ADDRESS0 = 192.168.100.0
NETMASK0 = 255.255.255.0
GATEWAY0 = 192.168.2.254

Si a través de este interfaz tuviéramos acceso a más de una red simplemente


añadimos ADDRESS1, ....
Usando cualquiera de las dos formas podríamos configurar las rutas manualmente.
En las versiones previas a RedHat 8.0, las rutas se definen en un fichero de texto,
situado en el directorio /etc/sysconfig, llamado "static-routes". En este fichero las
rutas se especifican siguiendo una sintaxis similar a la orden route:

wlan0 net 192.168.100.0 netmask 255.255.255.0 gw 192.168.2.254

En este fichero se define una ruta por linea, y en cada línea indicamos:
• Interfaz a la que se asocia la ruta
• Tipo de ruta, de red (net), o de maquina (host)...
• IP de red de la ruta (la red o el host al que queremos tener acceso)
• Máscara de la red destino, precedida de la palabra "netmask"
• IP de la pasarela precedida de la palabra "gw" .

Configuración de red en SuSE

El sistema de configuración de la rutas en SuSE es similar a Fedora, utiliza el fichero


/etc/sysconfig/network/routes y un fichero de rutas por cada una de las interfaces
llamado /etc/sysconfig/network/ifroute-eth0, ..., dependiendo de la interfaz. El
formato de todos estos ficheros es igual:

IP de red 0 IP del gateway Mascara de red Interfaz ruta 0


IP de red 1 IP del gateway Mascara de red Interfaz ruta 1
...

Si ponermos un "-" en su lugar, podemos omitir cualquier parámetro, salvo la


dirección de red. En nuestro ejemplo el fichero /etc/sysconfig/network/routes
quedaría como:

192.168.100.0 192.168.2.254 255.255.255.0 wlan0

Configuración de red en Debian

En el caso de Debian las configuraciones de las interfaces de red y las rutas


estáticas se realizan en el mismo fichero, llamado /etc/network/interfaces". En este
fichero podemos especificar una orden para que se ejecute una vez activada la
interfaz y otra orden para ejecutarse cuando desctivamos la interfaz.
Así, nuestro fichero /etc/network/interfaces, quedaría como:

auto lo eth0 wlan0


iface eth0 inet static
address 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
iface wlan0 inet static
address 192.168.2.1
netmask 255.255.255.0
network 192.168.2.0
broadcast 192.168.2.255
up route add -net 192.168.100.0 netmask 255.255.255.0 gw 192.168.1.2

Configuración DNS
Ahora configuramos el servidor DNS del servidor linux, que hemos llamado
ns1.centro.ies y queremos que sea él mismo su servidor DNS. La configuración del
servidor DNS en una máquina Linux se hace en el fichero /etc/resolv.conf que
deberá tener un contenido similar al siguiente:

nameserver 127.0.0.1

Claro está que para que este linux sea su propio servidor DNS tendremos que
configurar el servicio DNS.

Software para DNS

En primer lugar tendremos que instalar varios paquetes:

caching-nameserver-x.y.z
bind-utils-xx.xx-x
bind-xx.xx-x
Montamos el cd con la distribución en /mnt/cdrom:

mount /mnt/cdrom

E instalamos estos paquetes:

rpm -Uvh /mnt/cdrom/rutaacceso/bind-xx.xx-x


rpm -Uvh /mnt/cdrom/rutaacceso/caching-nameserver-x.y.z
rpm -Uvh /mnt/cdrom/rutaacceso/bind-utils-xx.xx-x

Dependiendo de la distribución podremos utilizar cualquier utilidad para instalar el


software, apt-get, yum, update,... incluso tampoco podemos descartar la posiblidad
de compilarlo nosotros mismos.
El paquete bind contiene todo el sistema de resolución de nombres. El paquete
caching-nameserver contiene los datos necesarios para que nuestro servidor DNS
sea un servidor válido para internet, va a actuar como servidor DNS para toda la red
local. Por último el paquete bind-utils contiene varias utilidades para consultas y
actualizaciones dinámicas.

Configurar /etc/named.conf

El fichero named.conf contiene todos los dominios que va a albergar nuestro


servidor DNS. Si el sistema está recién instalado deberá contener, entre otras cosas:

options {
directory "/var/named";
};

Indica que el resto de ficheros de configuración se encuentran en el directorio


/var/named

zone "." {
type hint;
file "root.cache";
};

Este trozo de configuración indica al sistema de nombres de dominio que consulte a


los servidores raíz de internet para resolver cualquier nombre que no sea local. De
esta forma nuestro servidor actúa como servidor de internet.

Ahora vamos a configurar nuestra zona principal:

zone "centro.ies" in {
type master;
file "centro.ies";
allow-update{
127.0.0.1;
192.168.1.1;
};
};
Zone indica el nombre del dominio que estamos configurando, el resto son sus
detalles. Type master indica que es el servidor principal de la zona. Si fuera un
servidor secundario tendríamos que poner "type slave".
La línea file indica qué fichero contiene los datos de la zona. Este fichero se debe
encontrar en el directorio /var/named, según especificamos en "options".
Por último, allow-update indica desde qué equipos se pueden realizar
actualizaciones dinámicas, en nuestro caso sólo el mismo puede realizarlas. Si fuera
un servidor secundario tendremos que poner la dirección del servidor principal.
En estos ficheros tendremos que poner direcciones IP y no nombres porque el
sistema de resolución aun no está activo. Es justo eso lo que queremos hacer.

Configuración del archivo de zona

Ahora tenemos que introducir una configuración inicial de la zona. No necesitamos


introducir todos los equipos porque habilitaremos, mediante DHCP, el sistema de
actualización dinámica, de forma que cuando un equipo se conecta se le asigna una
dirección IP y un nombre y la correspondiente actualización de la zona.
Hechas estas consideraciones pasamos a crear el fichero /var/named/centro.ies, que
deber ser similar al siguiente:

$TTL 604800
@ IN SOA ns1.centro.ies. root.ns1.centro.ies. (
2002111502 ; serial
86400 ; refresh
7200 ; retry
2592000 ; expire
172800 ; default_ttl
)

@ IN NS ns1.centro.ies.
@ IN MX 5 ns1.centro.ies.

ns1 IN A 192.168.1.1
www.centro.ies. IN CNAME ns1.centro.ies.
correo IN CNAME ns1.centro.ies.

secretaria IN A 192.168.1.2
router IN A 192.168.1.254

Los parámetro numéricos los dejaremos tal y como están, salvo quizás el número de
serie que indica que es la segunda modificación (02) del día 15/11/2003 (20031105).

El resto de los parámetros:


• @ equivale al dominio, centro.ies en este caso.
• SOA significa Start Of Autority e indica el nombre del equipo (ns1.centro.ies) y
la dirección de correo de administrador (root.centro.ies), sustituyendo la
cásica @ por un ".".
• @ IN NS ns1.centro.ies. indica que el servidor de nombres del dominio es
ns1.centro.ies. (IN= internet NS=name server).
• @ IN MX 5 ns1.centro.ies. indica que el servidor de correo electrónico del
dominio es ns1.centro.ies. (MX=Mail eXchanger)
• ns1 IN A 192.168.1.1 esta línea asigna la dirección IP al nombre de máquina.
(A=address).

www.centro.ies. IN CNAME ns1.centro.ies.


correo IN CNAME ns1.centro.ies.

Estas líneas asignan dos alias a nuestro servidor principal, es decir ns1.centro.ies se
llama también www.centro.ies y correo.cento.ies.

Las dos últimas líneas son dos nuevos registros de asignación de direcciones a
nombres de máquina.

NOTA IMPORTANTE
Podemos observar como algunos nombres acaban en punto. El punto indica un
nombre completo; si no tiene punto el sistema le añade automáticamente el nombre
del dominio. Por ejemplo correo es equivalente a correo.centro.ies. Sim embargo si
ponemos correo.cento.ies (sin punto final) en realidad lo que estamos poniendo es
correo.centro.ies.cento.ies. Esta es la causa más frecuente de errores a la hora de
configurar el servicio DNS.

Verificación del DNS

Una vez configurado el servicio de nombres vamos a ponerlo en marcha y


comprobar si tiene algún error o funciona correctamente.
El registro de incidencias anota en el fichero /var/log/messages el estado de inicio
del sistema de nombres. Lo más cómodo es abrir una nueva consola para ir viendo
las incidencia en el momento en que ocurren y ejecutar:

tail -f /var/log/messages

Ahora reiniciamos el servicio:

/etc/init.d/named restart

Y comprobamos en la consola qué ha sucedido. Si todo es correcto, enhorabuena,


en caso contrarío tendremos que volver a editar los ficheros de configuración,
corregir los errores y volver a reiniciar el servicio.

Cuando tengamos el servicio en funcionamiento comprobaremos si la resolución la


realiza correctamente. Ejecutamos:

nslookup ns1.centro.ies
nslookup www.centro.ies

En ambos casos nos debe responder con la dirección IP del servidor Linux.
Configuración DHCP
Una herramienta que puede hacer más agradable la vida de los administradores de
una red local. Me explico: DHCP don las iniciales de Dynamic Host Configuration
Protocol, un protocolo que instalado en un servidor de una red local, permite la
configuración automática del protocolo TCP/IP de todos los clientes de dicha red.
Nos permite evitar el tedioso trabajo de tener que configurar el protocolo TCP/IP
cada vez que agregamos una nueva máquina a la red, por ejemplo, dirección IP,
servidores DNS, gateway, WINS y alguna que otra cosa más muy interesante
también. Con un servidor DHCP tendremos una red con máquinas "plug-and-play",
con sólo contectarlas podrá dialogar con red.
La ventaja no es sólo esta, además podremos modificar la configuración de todos los
equipos de la red con sólo modificar los datos del servidor.
Teniendo esta herramienta, ¿qué administrador irá cliente por cliente configurándolo
de forma independiente?
El servidor DHCP viene prácticamente con todas las distribuciones de GNU/Linux.
En cualquier caso, se puede encontrar en Internet Software Consortium (ISC --
http://www.isc.org/products/DHCP/) si queremos compilar nosotros mismos el
programa. Además también incluye el cliente DHCP.

Funcionamiento del servidor DHCP

La configuración de DHCP se basa en un fichero de texto, /etc/dhcp.conf que el


proceso servidor lee en el inicio. La lectura del fichero de configuración sólo se
realiza durante el inicio, nunca cuando ya está en ejecución, por tanto cualquier
modificación requiere detener el servicio DHCP y volverlo a iniciar. En este fichero
se especifican las características de comportamiento como son el rango de
direcciones asignadas, el tiempo de asignación de direcciones, el nombre del
dominio, los gateways, etc. DHCP almacena en memoria la lista de direcciones de
cada subred que está sirviendo. Cuando se arranca un cliente DHCP le solicita una
dirección al servidor, éste busca una dirección disponible y se la asigna. En caso de
necesidad, el servidor DHCP también puede asignar direcciones fijas a
determinados equipos de la red.
La asignación de los datos TCP/IP al cliente se realiza para un determinado espacio
de tiempo que se define en la configuración del servidor. Si no se especifica otro
valor, la asignación predeterminada es por un día. También los clientes pueden
solicitar datos de una duración especificada, aunque para evitar que un cliente tenga
una dirección fija se puede prefijar un tiempo máximo de asignación.
Si tenemos varias subredes en nuestra instalación, también se pueden diferenciar
las asignaciones que otorga el servidor DHCP según el interfaz en el que se realice.
Como el servidor DHCP puede pararse y reiniciarse, necesita mantener la lista de
direcciones asignadas. El fichero /var/lib/dhcp/dhcpd.leases o
/var/state/dhcp/dhcpd.leases mantiene esta lista de asignaciones. Cuando se inicia
el servidor, primero lee el fichero de configuración dhcpd.conf, después el fichero
dhcpd.leases y marca qué sistemas tienen asignaciones activas.

Protocolo de intercambio de mensajes

Cuando el cliente DHCP arranca resulta evidente que ignora la configuración de red
por lo que necesita realizar las primeras comunicaciones mediante mensajes de
difusión o broadcast. Esta difusión y el resto de las comunicaciones se basa en 8
tipos de mensajes en DHCP:

• DHCPDISCOVER: El cliente envía un mensaje de difusión para localizar a los


servidores DHCP activos.
• DHCPOFFER: El servidor responde al cliente con una oferta de parámetros
de configuración conforme a la situación del cliente.
• DHCPREQUEST: Respuesta del cliente solicitando los parámetros ofertados,
en caso de que el mensaje del servidor haya sido aceptado, rechazando la
oferta, si el mensaje del servidor ha sido desestimado o confirmando la
solicitud de una dirección IP obtenida anteriormente.
• DHCPACK: Mensaje de confirmación y cierre desde el servidor hacia el
cliente indicando los parámetros definitivos.
• DHCPNACK: Mensaje que informa desde el servidor al cliente de que la
dirección IP que solicita no es válida para la subred en la que se encuentra o
la dirección IP ya no la puede asignar porque está asignada a otro equipo.
• DHCPDECLINE: El cliente informa al servidor de que la dirección está en uso,
normalmente porque otro usuario ha asignado esa dirección manualmente.
• DHCPRELEASE: El cliente informa al servidor de que ha finalizado el uso de
la dirección IP.
• DHCPINFORM: El cliente consulta al servidor la configuración local. El cliente
ya está configurado cuando envía este mensaje.

Configuración del servidor DHCP

La configuración del servidor DHCP, como hemos visto anteriormente, se realiza en


el fichero /etc/dhcpd.conf. Es un fichero de texto, donde cada línea que comience
por # indica un comentario y no se tiene en cuenta. Las distintas entradas de este
fichero terminan en ;. Si una entrada de configuración necesita distintos parámetros
los podemos agrupar mediante { }.

Ver el siguiente ejemplo de configuración.

Este fichero contendrá línea de configuración de la forma

parámetro valor;
y línea de la forma:
option parámetro valor;

El valor dependerá del parámetro que queramos configurar; podrá ser un valor lógico
(on u off, por ejemplo), una dirección, un nombre predefinido u otro valor según el
caso.
En este fichero también se definen las subredes en las que actúa el servidor DHCP y
qué rangos de direcciones puede asignar. Existen unos parámetros que pueden ser
globales o se pueden especificar dentro de una declaración de subred. Cualquier
parámetro especificado en una subred tiene preferencia en esta subred sobre los
establecidos de forma global.
Primero vemos un ejemplo de configuración y posteriormente veremos una
descripción de las líneas que contiene y otras que podría contener:

authoritative;
one-lease-per-client on;
server-identifier ns1.centro.ies;
default-lease-time 604800;
max-lease-time 604800;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.254;
option domain-name-servers 192.168.1.1;
option domain-name "centro.ies";
ddns-domainname "centro.ies";
ddns-update-style ad-hoc;
ddns-updates on;
option netbios-name-servers 192.168.1.1;
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.7 192.168.1.9;
range 192.168.1.90 192.168.1.150;
}

En una vista rápida para impacientes:

authoritative; Supone que la configuración correcta para la red es la definida en el


servidor DHCP y tratará de reasignar datos a los clientes mal configurados. Este
parámetro puede ser global o asigando a una declaración de subred. Los cambios
realizados en servidor marcado como authoritative tienen una rápida propagación en
la subred ya que se reconfigura cualquier cliente con la antigua configuración.

one-lease-per-client on; cuando esta opción está en "on" y un cliente solicita una
asignación, el servidor libera automáticamente cualquier otra asignación que tenga
ese cliente. Se supone que si el cliente hace una solicitud es porque ha olvidado que
tuviera alguna, es decir tiene una sola interfaz de red. Si no se da esta situación en
los clientes hay que usar este parámetro con precaución.

server-identifier 192.168.1.1; este parámetro identifica el nodo que alberga el


servicio DHCP. Sólo se deber usar cuando el nodo tenga más de una dirección IP
asignada al interfaz.

default-lease-time 604800; indica el tiempo de asignación en segundos.

max-lease-time 604800; indica el tiempo máximo de asignación en segundos.

ddns-updates on; activa la actualización DNS con los valores asignados mediante
DHCP.

ddns-domainname "centro.ies"; indica el dominio en el que se actualizan los DNS

ddns-update-style interim; esta línea indica el método de actualización DNS


automática con los valores de la IP asignados por DHCP. Más adelante veremos
como hay que modificar las zonas en el fichero /etc/named.conf para permtir la
actualización.

option subnet-mask 255.255.255.0; definimos la máscara general de red que vamos


a utilizar.
option broadcast-address 192.168.1.255; definimos la dirección de difusión de la red.

option routers 192.168.1.254; definimos el gateway de la red.

option domain-name-servers 192.168.1.1; definimos la dirección del servidor DNS de


la red.

option domain-name "centro.ies"; definimos el nombre del dominio DNS que se


añade a los nombres de host.

option netbios-name-servers 192.168.1.1; definimos ls dirección del servidor WINS


para NetBios.

subnet 192.168.1.0 netmask 255.255.255.0 {


range 192.168.1.7 192.168.1.9;
range 192.168.1.90 192.168.1.150;
}

Y por último definimos la red en la que queremos hacer asignaciones y los rangos de
direcciones que puede asignar el servidor DHCP.
Una vez vista la descripcíón preliminar de la configuración DHCP vamos a entrar en
más detalles.
Podíamos haber definido una descripción de subred más simple si sólo tuviéramos
un rango de asignaciones:

subnet 192.168.1.0 netmask 255.255.0.0


range 192.168.1.100 192.168.1.200;

Nota: En cualquier red serán necesarios distintos host con dirección IP fija, por
ejemplo los servidores DNS o gateways. Habrá que tener cuidado con la asignación
de estas direcciones y definir los rangos correctamente para no llevarnos sorpresas.
También se pueden configurar equipos concretos mediante el parámetro host.

Vemos otras opciones disponibles:

fixed-address lista_direcciones_ip; define direcciones estáticas para asignar a un


host
group comienza una declaración de grupo.
hardware tipo_hardware dirección; se utiliza para indicar el tipo de hardware,
Ethernet o token ring. por ejemplo: hardware ethernet 00:50:b3:c5:60:05;
host comienza una declaración de host. Por ejemplo:

host cli004 {
hardware ethernet 00:50:b3:c5:60:23;
fixed-address 192.168.1.122;
}

fixed-address direccion-ip; dirección fija para asignar a un host, como vemos en el


ejemplo anterior.

host-name nombre; nombre para asignar al host solicitado.


max-lease-time segundos; Máximo tiempo de asignación de la asignación. Esta
parámetro lo podemos utilizar para evitar que los clientes tomen una dirección IP por
tiempo indefinido.

netbios-name-servers lista_IP; Lista de IP de servidores WINS.

range ip-menot ip-mayor; el rango de direcciones que se asignarán en la


correspondiente subred.

routers lista_IP; Lista de IP de gateways.

subnet comienza un declaración de subred.

subnet-mask máscara; mascara de red

shared-network define unadeclaración de subred compartida.

Algunas veces es necesario especificar opciones para cierto número de máquinas


de la red sin tener que tratarlas como una subred separada. Por ejemplo, se puede
definir una subred para un grupo de equipos y entonces aplicarle unas opciones
específicas a esa subred. Esto significa que tendremos que especificarle todas las
opciones de configuración necesarias.
Por ejemplo:

shared-network 192.168.2.253 {
subnet 192.168.2.0 netmask 255.255.255.0 {
option routers 192.168.2.253;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.2.255;
option domain-name-servers ns.centro.ies, ns2.centro.ies;
pool {
default-lease-time 400;
max-lease-time 400;
range 192.168.2.100 192.168.2.200;
ddns-domainname "centro.ies";
ddns-rev-domainname "in-addr.arpa";
}
}
}
shared-network 192.168.3.253 {
subnet 192.168.3.0 netmask 255.255.255.0 {
option routers 192.168.3.253;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.3.255;
option domain-name-servers ns1.centro.ies, ns2.centro.ies;
pool {
default-lease-time 400;
max-lease-time 400;
range 192.168.3.100 192.168.3.200;
ddns-domainname "centro.ies";
ddns-rev-domainname "in-addr.arpa";
}
}
}

DHCP y DNS

Como hemos visto, las opciones que tenemos que incluir en el fichero
/etc/dhcpd.conf para asegurar la comunicación entre DHCP Y DNS son:

ddns-updates on; activa la actualización DNS con los valores asignados mediante
DHCP.

ddns-domainname "centro.ies"; indica el dominio en el que se actualizan los DNS

ddns-update-style interim; esta línea indica el método de actualización DNS


automática con los valores de la IP asignados por DHCP.

Ahora cada zona DNS en la que queramos que se actualicen automáticamente los
datos asignados tendremos que indicarlo con la opción allow-uptates en el fichero
/etc/named.conf. Por ejemplo:

zone "centro.ies" in{


type master;
file "centro.ies";
notify no;
allow-update{
127.0.0.1;
192.168.1.10;
};
};
zone "1.168.192.IN-ADDR.ARPA" in{
type master;
file "192.168.1.0";
notify no;
allow-update{
127.0.0.1;
192.168.1.10;
};
};

También tendremos que asegurarnos que el usuario que ejecuta named (también
llamado named normalmente) tiene permiso de escritura sobre los ficheros de
zona, /var/named/centro.ies y /var/named/192.168.1.0 en el ejemplo anterior.

El fichero /var/state/dhcp/dhcpd.leases

Como hemos visto, este fichero contiene las direcciones asignadas. Su conternido
es similar al siguiente:

# All times in this file are in UTC (GMT), not your local timezone. This is
# not a bug, so please don't ask about it. There is no portable way to
# store leases in the local timezone, so please don't request this as a
# feature. If this is inconvenient or confusing to you, we sincerely
# apologize. Seriously, though - don't ask.
# The format of this file is documented in the dhcpd.leases(5) manual page.
# This lease file was written by isc-dhcp-V3.0pl1
lease 192.168.1.90 {
starts 5 2003/04/11 16:29:27;
ends 5 2003/04/18 16:29:27;
binding state active;
next binding state free;
hardware ethernet 00:10:4b:54:41:85;
uid "\001\000\020KTA\205";
set ddns-rev-name = "90.1.168.192.in-addr.arpa";
set ddns-txt = "31070ea7b3f1e83949c8096766b1f5eee9";
set ddns-fwd-name = "JULIA.centro.ies";
client-hostname "JULIA";
}
lease 192.168.1.7 {
starts 5 2003/04/11 16:29:35;
ends 5 2003/04/18 16:29:35;
binding state active;
next binding state free;
hardware ethernet 48:54:e8:6c:a6:3f;
uid "\001HT\350l\246?";
set ddns-rev-name = "7.1.168.192.in-addr.arpa";
set ddns-txt = "31006d63529f9d904ffdb884baa1923c39";
set ddns-fwd-name = "msrr.centro.ies";
client-hostname "msrr";
}

Configuración de los clientes DHCP

Win32

Es muy simple, en Entorno de Red ->TCP/IP seleccionaremos "Obtener dirección IP


automáticamente", o texto similar dependiendo de la versión.

Linux

Dependiendo de la distribución usamos el programa de configuración de red y


asignamos al interfaz correspondiente obtener dirección IP por DHCP. Por ejemplo,
en una distribución RedHat y similares, tendremos en el fichero
/etc/sysconfig/networking/devices/ifcfg-eth0

DEVICE=eth0
USERCTL=no
ONBOOT=yes
BOOTPROTO=dhcp
NETMASK=255.255.255.0
IPADDR=192.168.1.11
IPXPRIMARY_802_2="no"
IPXACTIVE_802_2="no"
IPXPRIMARY_802_3="no"
IPXACTIVE_802_3="no"
IPXPRIMARY_ETHERII="no"
IPXACTIVE_ETHERII="no"
IPXPRIMARY_SNAP="no"
IPXACTIVE_SNAP="no"
BROADCAST=192.168.1.255
NETWORK=192.168.1.0
PEERDNS=no
TYPE=Ethernet

Observamos como la variable BOOTPROTO tomael valor dhcp.

Configurar Samba
El siguiente paso es compartir los directorios para que los usuarios puedan acceder
a los contenidos de las carpetas. Con este fin vamos a configurar el servicio samba
para que nuestro Linux actúe como servidor principal de dominio NetBios.

Fichero /etc/smb.conf

La configuración se realiza en el fichero /etc/samba/smb.conf. El fichero consta de


secciones y ``parámetros''. Una sección comienza con el nombre de sección, entre
corchetes, y continúa hasta el comienzo de la siguiente sección. Las secciones
contienen
``parámetros'' de la forma nombre=valor.
Sintaxis
El fichero tiene formato de línea, esto es, cada fin de línea representa bien un
comentario, bien una sección o bien un parámetro.
Los nombres de secciones y ``parámetros'' son indistintos en mayúsculas o
minúsculas.
Sólo el primer signo igual de un parámetro es significativo. Los espacios en blanco
antes o después del igual se descartan.
Los espacios en blanco iniciales, internos y finales son irrelevantes. Los iniciales y
finales se descartan. Los espacios en blanco interiores se guardan literales.
Cualquier línea que comience por punto y coma (;) o el carácter '#' se ignora, así
como la que sólo contenga espacios en blanco. Es habitual considerar las líneas que
comienzan por '#' como comentarios y usar el punto y coma (;) para deshabilitar
líneas que no nos interese borrar. De todas formas esto queda al gusto del
administrador.
Cualquier línea que que termine en \ continúa en la siguiente línea, como es habitual
en Unix.
Los valores que hay a continuación de los signos iguales son cadenas (no necesitan
comillas) o un valor lógico (booleano), que puede ser yes/no, 0/1 o true/false.
No impora si los valores lógicos se ponen en mayúsculas o minúsculas, pero se
conserva en los valores de cadena.
Algunos elementos como los modos de creación son numéricos.
1.5. SUSTITUCIÓN DE VARIABLES
Muchas de las cadenas se pueden actualizar desde el fichero de configuración
mediante sustituciones. Por ejemplo, la opción ``path''= /tmp/%u sería interpretada
como "path=/tmp/juan" si el usuario está conectado con el nombre juan.
Estas sustituciones se aprecian mejor en las descripciones posteriores, pero hay
algunas sustitciones generales que se aplican cuando pueden ser relevantes. Estas
pueden ser:
%S = el nombre del servicio activo.
%P = el directorio raíz del servicio activo.
%u = nombre de usuario del servicio activo.
%g = nombre de grupo primario de %u
%U = nombre se usuario de sesión (el nombre de usuario que el cliente quiere no es
necesariamente el mismo que obtiene)
%G = prnombre de grupo primario de %U
%H = directorio home del usuario dado por %u
%v = versión de Samba
%h = el nombre del host que ejecuta Samba
%m = nombre netbios de la máquina cliente (muy útil)
%L = nombre netbios del servidor. Esto permite modificar su fichero de configuración
basado en lo que pide el cliente. Su servidor puede tener una personalidad dual.
Más adelante vermos algunos ejemplos de sustitución, pero como muestra vemos el
siguiente ejemplo:
config file= %m.%u.conf

Esta línea incluidas en el fichero de configuración harían que se incluyeran


configuraciones particulares del servidor según la máquina desde la que realizamos
la conexión (%m) y según el cliente que inicia la sesión (%u). En este caso si se
conecta el cliente jose desde la máquina secretaría, al lanzar el servicio incluiría el
contenido de los ficheros secretaria.jose.conf. El resto de usuarios y máquinas no se
verían afectadas por la configuración de estos ficheros.
Descripciones de los servicios
Cada sección del fichero de configuración describe un recurso compartido o servicio
(salvo la sección ``[global]''). El nombre de sección es el nombre de servicio y los
``parámetros'' de la sección definen los atributos del servicio.
Hay tres secciones especiales ``[global]'' ``[homes]'' y ``[printers]'', que se desciben
en ``secciones especiales''. Las siguientes notas se aplican a la descripción de
servicios ordinarios.
Un servicio consiste en un directorio al cual se proporciona acceso más una
descripción de los derechos de acceso que se ofrecen a los usuarios del servicio.
También se pueden especificar opciones de mantenimiento.
Los servicios son bien servicios de espacio para ficheros (usados por los clientes
como extensions de sus sistemas de archivos nativos) o servicios de impresión
(utilizados por los clientes para acceder a las impresoras de las que dispone el
servidor).
Los servicios pueden ser para invitados (guest), en cuyo caso no se necesita clave
para acceder. Se usa una cuenta de invitados para definir los privilegios de acceso
en este caso.
Tenga en cuenta que los derechos de acceso proporcionados por el servidor, se
comparan con los derechos de acceso especificados o de la cuenta de invitados
usados por el sistema. El servidor no ofrece más derechos de acceso de los que
garantiza el host del sistema.
El siguiente ejemplo de sección define un servicio de espacio para ficheros. El
usuario tiene derechos de escritura en la ruta /home/bar. El acceso al servicio de
realiza a través del nombre del servicio datos:
[datos]
path = /home/bar
writable = true

El siguiente ejemplo de sección define un servicio de impresión. El servicio es de


sólo lectura, pero imprimible. Es decir, el único acceso de escritura permitido el
mediante llamadas a open, escribir y cerrar un fichero de spool. El parámetro ``guest
ok'' significa que se permite acceso como usuario invitado por defecto (especificado
en cualquier lugar):
[unaimpresora]
path = /usr/spool/public
read only = true
printable = true
guest_ok = true

Secciones Especiales
La sección global
Los ``parámetros'' de esta sección se aplican a todo el servidor, o son por defecto
para los servicios que no definen de forma específica ciertos elementos. Por ejemplo
el parámetro WORKGROUP que define el nombre del dominio o grupo de trabajo es
un parámetro global porque afecta a todo el servidor.
La sección homes
Si existe una sección denominada homes incluida en el fichero de configuración, los
clientes se podrán conectar a su directorio HOME del servidor.
Cuando efectúa una solicitud de conexión, se comprueban los servicios existentes.
Si alguno se verifica entonces se usa. Si no se encuenta ninguno, la solicitud de
servicio se trata como un nombre de usuario y se busca en el fichero passwd local.
Si el nombre existe y la clave es correcta, se crea un servicio mediante un duplicado
de la sección
[homes].
Se efectúan algunas modificaciones en la sección recientemente creada:
El nombre de servicio se cambia de "homes" al nombre local del usuario.
Si no se sumistra ``path'', se usa el directorio home del usuario.
Si decide uar una línea ``path''= en su sección homes entonces encontrará útil la
macro %S. Por ejemplo, path=/data/pchome/%S sería útil si tiene diferentes
directorios home en su equipo, además del propio de Unix.
Esta es una forma rápida y sencilla de suministrar acceso a gran número de clientes
a sus directorios home con un mínimo de preocupaciones.
Si el nombre de recurso solicitado es "homes" ocurre un proceso similar, salvo que
no se modifica el nombre de recurso a petición del usuario. Este método de uso de
la sección ``[homes]'' funciona bien si diferentes usuarios comparten un equipo
cliente.
La seción [homes] puede especificar todos los ``parámetros'' de sección de un
servicio normal, aunque unos tienen más sentido que otros.
Lo siguiente es un ejemplo típico de sección [homes]:
[homes]
writable = yes
Un punto importante:
Si se especifica el acceso de invitados en la sección ``[homes]'', todos los directorio
home serán accesibles por todos los clientes, sin clave. En el caso poco probable de
que esto sea deseable, también sería posible especificar acceso de sólo lectura.
Observe que la bandera ``browseable'' para los directorios home automáticos se
heredará de la bandera browseable global, no la bandera browseable ``[homes]''.
Esto es útil porque significa que poner browseable=no en la sección ``[homes]''
esconderá el servicio homes, pero lo hará visible el auto directorio home.
La sección printers
Esta sección funciona como la ``[homes]'', pero para impresoras.
Si aparece una sección [printers] en el fichero de configuración, los usuarios podrán
conectar a cualquier impresora especificada en el fichero printcap del host local.
Cuando se solicita una conexión, se verifican los servicios existentes. Si se verifica
alguno, se usa. Si no se encuentra ninguno, pero hay una sección ``[printers]'' se usa
como se describió anteriormente. En otro caso, el nombre de servicio solicitado se
trata
como un nombre de impresora y se mira en el fichero printcap apropiado para ver si
el nombre de servicio solicitado es un nombre de impresora válido. Si se encuentra,
se crea un nuevo servicio duplicando la sección de [printers].
Se efectúan algunas modificaciones a la nueva sección creada:
El nombre de servicio se asigna como el nombre de la impresora.
Si no se da nombre de impresora, se usa el nombre de impresora localizado.
Si el servicio no permite acceso de invitados y no se da nombre de usuario, el
nombre de usuario se asigna como el nombre de impresora localizado.
Observe que el servicio [printers] debe ser ``printable'', si especifica otro, el servidor
no cargará el fichero de configuración.
Normalmente el ``path'' indicado sería un directorio de spool, con permisos de
escritura globales con el sticky bit activado. Una sección [printers] típica se parecería
a los siguiente:
[printers]
path = /usr/spool/public
writable = no
public = yes
printable = yes

Usuarios de samba
Para que un usuario del sistema sea usuario de samba tenemos que agregarlo
explícitamente con la orden smbpasswd.
Para añadir un usuario tendremos que ejecutar:
smbpasswd -a usuario

Si omitimos la opción -a entonces simplemente se cambia la contraseña para samba


del usuario.
La lista de usuarios de samba se almacena en el fichero /etc/samba/smbpasswd o
bien según indiquemos en el parámetro passwd backend.
Usuarios virtuales
Existe la posibilidad de asignar múltiples nombres a un mismo usuario en el
fichero /etc/samba/smbusers. Por ejemplo:
# Unix_name = SMB_name1 SMB_name2 ...
root = administrator admin
nobody = guest pcguest smbguest
indicaría que los usuarios reales serían root y nobody, pero los usuarios admin y
administrator serían en realidad el usuario root.
Puede resultar útil si varias personas tienen que acceder a los mismos datos crear
una sola cuenta en samba y luego asignarle diferentes nombres en este fichero.

Nuestro fichero smb.conf


El contenido del fichero smb.con que vamos a utilizar para nuestro trabajo va a ser el
siguiente. A continuación se describe el significado de las líneas más significativas:
# Configuración PDC

[global]
# tipo de servidor y sesiones
workgroup = CENTRO
netbios name = web
server string = Servidor Samba para la Web
security = user
domain logons = Yes
os level = 99
preferred master = Yes
domain master = Yes
logon script = %U.bat
logon drive = h:
logon home = \\%N\%U
logon path =
add share command=/usr/local/sbin/modify_samba_config.pl
delete share command=/usr/local/sbin/modify_samba_config.pl
# usuarios
passdb backend = smbpasswd tdbsam
username map = /etc/samba/smbusers
password level = 1
username level = 1
encrypt passwords = yes
unix password sync = Yes
min password length=4
passwd program = /usr/bin/passwd %u
passwd chat = *ew\sUNIX\spassword* %n\n *etype* %n\n *all\sauthentication\stokens\supd
admin users = root, Administrator, pfabrega, Administrador
add user script = /usr/sbin/useradd -d /dev/null -s /bin/false -g samba -M %u
add group script = /usr/sbin/groupadd %g
add user to group script = /usr/sbin/adduser -G %g %u
add machine script = /usr/sbin/adduser -n -g machines -c Machine -d /dev/null -s /bin/false %
delete user script = /usr/sbin/userdel -r "%u"
delete group script = /usr/sbin/groupdel "%g"
delete user from group script = /usr/sbin/groupmod -x "%u" "%g"
set primary group script = /usr/sbin/usermod -g "%g" "%u"
add machine script = /usr/sbin/useradd -w "%u"
# parámetros generales
root directory = /
bind interfaces only = Yes
read bmpx = Yes
socket options = TCP_NODELAY SO_SNDBUF=4096 SO_RCVBUF=4096
time server = Yes
remote announce = 192.168.0.255
hosts allow = 192.168.1., 192.168.0., 127.
wins support = Yes
lock directory = /var/lock/samba
map acl inherit = Yes
#impresión
printcap name = CUPS
printing = cups
show add printer wizard = No
lpq command = lpstat -o %p
lprm command = cancel %p-%j
# registro de incidencias
log level = 1
log file = /var/log/samba/log.%m
max log size = 50
[homes]
comment = Home Directories
read only = No
hide files = /.*.*/
browseable = No

[netlogon]
comment = Network Logon Service
path = /home/netlogon
read only = No
guest ok = Yes
[Profiles]
path = /home/%U/profile
browseable = No
[printers]
comment = All Printers
path = /var/spool/samba
printable = Yes
browseable = No

[direccion]
path = /var/www/html/direccion
browseable = No

read only = No
[secretaria]
path = /var/www/html/secretaria
browseable = No

read only = No
[datos]
path = /var/datos
browseable = Yes

read only = Yes


Workgroup
Este parámetro controla en qué grupo de trabajo aparecerá su servidor cuando sea
consultado por los clientes. En nuestro caso:
workgroup = CENTRO
netbios name
Este parámetro fija en nombre NetBIOS por el cual es conocido el servidor Samba.
Por defecto es el mismo nombre que el primer componente del nombre DNS del
host. Si la máquina es un servidor de listas o servidor logon este nombre ( o el
primer componente del nombre DNS) será el nombre por el que estos servicios se
anuncian.
netbios name = web

server string
Esto controla qué cadena aparecerá en el cuadro de comentario de la impresora en
el gestor de impresión y en la conexión IPC en "ver red". Puede ser cualquier
cadena que quiera que vean sus usuarios.
También fija qué aparecerá en las lista despues del nombre de equipo.
Un %v se sustituye por el número de la versión de Samba.
Un %h se sustituye por el nombre de host.
Valor por defecto: server string = Samba %v
server string = Servidor Samba para la Web
security
SECURITY = USER

Este es el valor predeterminado de seguridad en Samba 3.0, y con él indicamos que


un cliente tiene que conectarse con un nombre de usuario y clave válidos,
incluyendo los definidos en username map. También se pueden usar claves cifradas
(ver el parámetro "encrypted passwords") en este modo de seguridad. Los
parámetros tales como user y guest only, si están activos se usan y puede cambiar
el usuario UNIX que se utiliza en esta conexión, pero sólo una vez que el usuario ha
sido validado correctamente.
Si nuestro servidor no fuera un controlador de dominio deberíamos usar
SECURITY=server o SECURITY=domain. Una cuarta posibilidad es
SECURITY=share
domain logons
Si se pone como true, el servidor Samba servirá registros de dominio a los clientes.
Observe que este parámetro se debe usar conjuntamente con la opción domain
master.
domain logons = Yes

preferred master
Este parámetro booleano controla si Samba es un examinador de listas principal
para su grupo de trabajo. Si se pone a true, al iniciar, samba forzará una elección y
tendrá una ligera ventaja para ganar la elección. Es recomendable que este
parámetro se use en conjunción con ``domain master'' = yes, para que samba pueda
garantizar convertirse en un ``domain master''.
Use esta opción con precaución, porque si hay varios hosts (sevidores samba,
Windows 95 o NT) que son servidores de listas preferidos en la misma subred,
intentarán continua y periódicamente convertirse en los principales locales. Esto
ocasiona un tráfico de difusión innecesario y reduce las capacidades de las listas.
preferred master = True

domain master
Activa la comparación de lista WAN. Las listas principales locales en subredes-
aisladas proporcionan a Samba sus listas locales, y solicitan una copia completa de
la lista a la red amplia. Entonces las listas de clientes contactan con sus servidores
locales y reciben una lista de la red amplia, en lugar de las listas de las subredes.
domain master = True

os level
Este valor entero controla qué nivel anuncia Samba él mismo como para elecciones
examinadores de listas.
os level=99

logon script
Este parámetro especifica el fichero de lotes (.bat) o fichero de comandos NT (.cmd)
que hay que cargar y ejecutar en una máquina cuando se conecta correctamente. El
fichero debe tener el estilo de fin de línea de DOS (cr/lf). Se recomiendausar un
editor estilo DOS para crear este fichero.
El script debe ser relativo al path del servicio [netlogon]. Si el servicio [netlogon]
especifica un pathde /home/netlogon y logon script = STARTUP.BAT, entonces el
fichero que se carga será:
/home/netlogon/STARTUP.BAT

El contenido del fichero esá enteramente a su disposición. Un comando que se


sugiere que se añada es NET TIME \\SERVER /SET /YES, para forzar a cada
máquina que sincronice su reloj con el del servidor.
Otro que se podría añadir sería NET USE U: \\SERVIDOR\UTILES para las
utilidades de uso común, o NET USE Q: \\SERVIDOR\otrorecurso o NET USE H:
/HOME para montar el directorio personal del usuario como la unidad de red H:.
Observe que es particularmente importante no permitir acceso de escritura al
servicio [netlogon], o le permite a los usuarios modificar arbitrariamente los ficheros
batch.
Esta opción toma las sustitucions estándar, permitiéndole tener scritps de logon
separados para cada usuario o máquina utilizando %u o %m.
logon script = %U.bat

logon drive
Este parámetro especifica el path local al cual se conectarán los directorios home
(vea ``logon home'') y lo usan las estaciones NT Workstations, 2000 o XP.
logon drive = h:
logon home
Este parámetro especifica la ubicación del directorio home cuando se conectan
estaciones Win95 o NT Workstation en un PDC Samba PDC. Esto le permite hacer
"NET USE H: /HOME" desde la línea de comando, por ejemplo.
Esta opción toma las sustituciones estándar, permitiéndole tener scripts de conexión
distintos para cada usuario o máquina.
logon home = \\%N\%U

logon path
Este parámetro indica el directorio home donde se guardan los ficheros de perfiles
2000/XP. Esta opción toma las sustituciones estándar, permitiendo tener script de
conexión para cada usuario o máquina. También especifica el directorio desde el
cual se cargan los contenidos de las carpetas "escritorio", "menú inicio",
"pprogramas" y "entorno de red" y se muestran en sus clientes NT/2000/XP.
El recurso y la ruta deben poderse leer por el usuario para que las preferencias y los
directorios sean cargados en los clientes Windows NT. El recurso debe tener
permiso de escritura, al menos la primera vez que el usuario se conecta, para que
los clientes NT/2000/XP puedan crear el fichero user.dat y otros directorios.
Los directorio y cualquiera de los contenidos, pueden, si se necesita, ponerse como
sólo lectura. No es conveniente que el fichero NTuser.dat se haga de sólo lectura,
renómbrelo como NTuser.man para llevar a cabo los efectos deseados ( MANdatory
profile).
Los clientes Windows algunas veces pueden mantener conexiones a los recursos
[homes], incluso si no hay usuario registrado. Por tanto es vital que la ruta de logon
no incluya una referencia a los recursos homes (i.e \\%L\HOMESrofile_path causará
problemas). .
Tenga en cuenta que esta opción sólo es válida si Samba está configurado como
logon server. server.
El valor predeterminado para este parámetro es:
logon path = \\%N\%U\profile
pero en nuestra configuración hemos decidido que los perfiles se almacenen
localmente para evitar demoras en los inicio y cierre de sesión u por ese motivo:
logon path =

add share command


Samba 2.2.0 incorporó la capacidad de agregar y borrar servicios a través de la
gestión de servidor Windows NT 4.0. La orden add share command se usa para
definir el programa o script externo que que añade la nueva definición de servicio en
smb.conf. Para la correcta ejecución de add share command, smbd necesita que el
administrador se conecte usando la cuenta de root (i.e. uid == 0).
add share command
Análogo, al parámetro add share command, permite eliminar un recurso compartido.
passdb backend
Esta opción perimte al administrador elegir qué sistema o backend usa para guardar
y recuperar contraseñas. Permite, por ejemplo, usar smbpasswd y tdbsam sin
recompilar. Se pueden especificar múltiples backends separados por espacios. Los
backends se usan en orden en el que se especifican. Los nuevos usuarios simpre se
añaden al primer backend especificado.
passdb backend = smbpasswd tdbsam

encrypt passwords
Este parámetro lógico controla si las claves cifradas se negocian con el cliente.
Observe que Windows NT 4.0 SP3 y superiores y también Windows 98, por defecto
esperan claves cifradas salvo que modifiquemos una entrada del registro.
Para que las claves cifradas funcionen correctamente smbd debe tener, bien acceso
al fichero smbpasswd local (véase el programa smbpasswd para información sobre
como mantener este fichero), o usar el parámetro ``security''= con los valores
"server" o "domain", que hace que se valide con otro servidor.
encrypt passwords = Yes
min passwd length
Esta parámetro indica la longitud mínima de la clave.
min passwd length = 1
passwd program
El nombre de un programa que se puede usar para fijar claves de usuarios.
Esto sólo es necesario si ha activado cambio remoto de claves cuando compiló
Samba. Cualquier ocurrencia de %u será sustituida por el nombre de usuario.
También tiene que tener en cuenta que muchos programas passwd insisten en
claves "razonables", tales como longtud mínima, o inclusión de distintos tipo de
caracteres y dígitos. Esto puede ser un problema en algunos clientes (como
Windows para trabajo en grupos) que envían claves en mayúsculas.
Observe que si el parámetro ``unix password sync'' está como "True" este programa
se llama como ROOT antes de que la clave SMB del fichero smbpasswd se cambie.
Si la modificación de la clave UNIX falla, entonces smbd fallará en el cambio de la
clave SMB también (esto es por diseño).
Si el parámetro ``unix password sync'' está activo tiene que usar rutas absolutas
para todos los programas que se llamen. Observe que por defecto ``unix password
sync'' está como "False".
passwd program = /usr/bin/passwd %u
passwd chat
Esta cadena controla la conversación que tiene lugar entre smbd y el programa local
de cambio de claves para cambiar la clave del usuario. La cadena describe describe
una secuencia de pares respuesta-recepción que smbd usa para determinar qué
enviar al programa passwd y qué espera que le devuelva. Si no se recibe la
respuesta esperada entonces no se modifica la clave.
Esta secuencia chat es con frecuencia específica del sitio, dependiendo de qué
métodos locales se usan para para el control de claves (como NIS+ etc).
La cadena puede contener las macros %o y %n que se sustituyen por las claves
nueva y vieja respectivamente. También puede contener las macro estándar \n \r \t y
\s para asignar line-feed, retorno de carro, tab y espacio.
La cadena también puede contener un * que equivale a cualquier secuencia de
caracteres.
Se pueden usar comillas dobles para cadenas que contengan espacios en blanco.
Si la cadena enviada en cualquier parte de la secuencia chat es un punto final "."
entonces no se envía ninguna cadena. De forma similar con la cadena esperada si
es un punto y aparte entonces no se espera ningún string.
passwd chat = *ew\sUNIX\spassword* %n\n *etype* %n\n
*all\sauthentication\stokens\supdated\ssuccessfully*
add user script
Esta es la ruta completa a un guion que smbd ejecutará como root en las
circunstancias especiales descritas más abajo.
Normalmente, un servidor Samba requiere que se creen los usuarios UNIX para
todos los usuarios que accedan a los ficheros del servidor. En los sitios que usan
bases de datos de cuentas Windows NT como su base de datos primaria, la
creación de estos usuarios y el mantenimiento de la lista de usuarios en sincronía
con el PDC Windows NT es una tarea pesada. Esta opción permite a smbd crear los
usuarios UNIX requeridos bajo demanda cuando un usuario