Cabecera


 
IMPRIMIR
Print Friendly and PDF

Leccion 5.4 Redes Linux





4. Redes Linux.

4.1. Introducción.


Hablar de redes de ordenadores a menudo significa hablar de UNIX. Creado en los 70 por un grupo de programadores en los laboratorios Bell como un sistema operativo multiusuario y multitarea, pequeño y flexible, UNIX es uno de los más populares del mundo debido a su extenso soporte y distribución. Según muchos programadores, UNIX es el auténtico y único sistema operativo: Robusto, eficaz y versátil.


 Es uno de los primeros sistemas operativos creados en el lenguaje de programación de alto nivel C. Esto hace posible su instalación en cualquier máquina que tenga un compilador de C.
UNIX es el sistema operativo más extendido en equipos servidores. Se trata de un sistema de propósito general, tal como se ha adelantado en la introducción de este capítulo, con características de multiusuario y multitarea.


Existen dos versiones de UNIX, Solaris y Linux. Optaremos por analizar más
detenidamente esta última por sus características de desarrollo y su mayor extensión en el
mundo educativo.


a) Breve historia de linux.


Linux es un sistema operativo para PCs basados en Intel, que intenta ser un clon de UNIX, sin ningún software comercial con derechos de autor y que pueda utilizar todo el mundo. Comenzó como una afición de Linus Tovarlds mientras estudiaba en la universidad de Helsinki. Su objetivo era crear un sustituto de Minix, similar a UNIX. Poco a poco, y a través de Internet, muchos internautas ofrecieron su ayuda a Linus, reportando fallos en el núcleo del sistema (Kernel), mejorando el código y añadiendo controladores. Así, llegamos al estado actual donde la última versión estable del kernel


Linux alcanza unos niveles de estabilidad, escalabilidad y rendimiento que Linux no podría ni imaginar cuando empezó su proyecto en 1991. Linux nació ya, como sistema operativo para trabajo en red, de manera que muchos de los problemas que otros sistemas operativos tuvieron que solucionar sobre la marcha a lo largo de su evolución, los desarrolladores de Linux ya los contemplaban. Así, Linux es un sistema operativo sobre el que se pueden montar estaciones clientes y servidores, sin más que implementar los servicios necesarios (Web, FTP, DHCP, etc.) en cualquier estación. Es decir, no es necesario emplear un sistema operativo servidor, sino añadir servicios a cualquier estación.



En un principio, Linux era un núcleo al que se podían incorporar una serie de aplicaciones obtenidas a través de Internet. Posteriormente, según iba evolucionando como sistema operativo y adquiriendo notoriedad, se comenzaron a desarrollar distribuciones del sistema operativo con distintas aplicaciones e interfaces de instalación. Estas distribuciones han evolucionado hasta nuestros días diferenciándose progresivamente, por lo que podríamos hablar de distintas versiones/distribuciones de
Linux.


b) El concepto de software libre.


El movimiento GNU/ Linux tiene de trasfondo el concepto de “software libre”. Se desarrolla bajo las reglas del proyecto de GNU de Free Software Foundation, Cambridge, Massachussets y básicamente significa que los usuarios tienen libertad de ejecutar, copiar, distribuir, instalar, cambiar y mejorar el programa tantas veces como quieran. En concreto se consideran tres niveles de libertad:

• Libertad para estudiar el programa, aprender de él e incluso usar todo o parte
en otros proyectos.

• Libertad para distribuir, copiar a quien se quiera y sin límite alguno; cobrándose
por ello lo que se quiera.

• La Libertad de toda la comunidad de usuarios de mejorar el programa y
distribuirlo de tal manera que se puedan beneficiar todos los integrantes de la
propia comunidad.


Con el software libre, la única libertad que no se tiene es la de restringir estos derechos a otros usuarios, es decir, la libertad de eliminar libertades. Si se distribuye una copia o una modificación de un programa libre todos los usuarios tienen los derechos
antes citados.


4.2. Características del Sistema Operativo Linux.


Linux es un sistema operativo completo multitarea y multiusuario. Esto significa que pueden trabajar varios usuarios simultáneamente en él, y que cada uno de ellos puede tener varios programas en ejecución. Lo explicamos detalladamente a continuación:


• Multiusuario: varios usuarios pueden acceder a las aplicaciones de un único PC. La característica que más resalta de Linux es que un grupo de personas puede trabajar con la misma versión de la misma aplicación al mismo tiempo, desde el mismo terminal o desde terminales distintos.






• Multitarea: describe la capacidad de ejecutar muchos programas al mismo tiempo sin detener la ejecución de cada aplicación. Linux se basa en la multitarea prioritaria donde cada programa tiene garantizada la oportunidad de ejecutarse, y se ejecuta hasta que el sistema operativo da prioridad a otro programa para ejecutarse. MS-DOS y Windows 3.1, por ejemplo, se basan en una forma de multitarea denominada multitarea cooperativa. Con ésta, los programas se ejecutan hasta que permiten voluntariamente que se ejecuten otros programas o no cesan su actividad por el momento.


 En Linux, el microprocesador sólo es capaz de hacer una tarea a la vez, pero las realiza en tiempos tan cortos que no los notamos y es en sus "ratos libres" donde se dedica a ejecutar otras tareas que se le hayan pedido. Además de estas propiedades, Linux se caracteriza por:

• Multiplataforma: corre en muchas CPUs distintas, no sólo Intel.

• Protección de la memoria entre procesos, de manera que uno de ellos no
pueda colgar el sistema.

• Carga de ejecutables por demanda: Linux sólo lee de disco aquellas partes de
un programa que están siendo usadas actualmente.

• Política de copia en escritura para la compartición de páginas entre
ejecutables: esto significa que varios procesos pueden usar la misma zona de memoria para ejecutarse. Cuando alguno intenta escribir en esa memoria, la página (4Kb de memoria) se copia a otro lugar. Esta política de copia en escritura tiene dos beneficios: aumenta la velocidad y reduce el uso de memoria.

• La memoria se gestiona como un recurso unificado para los programas de usuario y para la caché de disco, de tal forma que toda la memoria libre puede ser usada para caché y ésta puede a su vez ser reducida cuando se ejecuten grandes programas.

• Consolas virtuales múltiples: podemos entrar como diferentes usuarios de la máquina o como el mismo usuario y trabajar en distintas consolas virtuales. Es como si en el mismo ordenador tuviéramos varias terminales.

• Soporta TCP/IP, incluyendo ftp, telnet, NFS, etc.

• Software cliente y servidor Netware disponible en los núcleos de desarrollo.














4.3. Sistema de archivos de Linux.


Linux es un sistema operativo que está estructurado en archivos. Todos los elementos de hardware o software de un equipo están gestionados a través de un archivo. El sistema Linux es una estructura de directorios jerárquica donde se organizan los archivos. Posee una estructura de árbol donde la parte superior es su raíz. Este sistema permite ubicar cualquier
dispositivo dentro de la estructura de archivos, aunque se encuentre en otra unidad de red.



Para pensar:
MS-DOS empleaba también un sistema e archivos similar, la principal diferencia radica en que la estructura de archivos de DOS se realizaba a partir de unidades físicas, DISCOS, mientras que en Linux los discos se encuentran como directorios dentro de la propia estructura de árbol, se sigue más bien, una organización lógica.



El árbol de directorios suele contener una serie de directorios que incluyen otros subdirectorios, son pues sistemas de archivos incluidos en otros sistemas más amplios. Esta característica tiene como consecuencia que el nombre de un archivo no sea el nombre que se le ha asignado al crearlo, sino la ruta de ese archivo en el árbol de directorios añadiéndole, al final, su nombre.



Analogía:

El sistema de archivos de Linux asemeja, como ya hemos indicado, a un árbol, más bien un arbusto, de cuya raíz crecen todas las ramas. Estas ramas serían los directorios, de cada rama pueden crecer más ramas (subdirectorios) o salir hojas (archivos).



Los directorios presentes dentro del sistema raíz suelen ser:

• /bin: contiene los programas ejecutables binarios.

• /sbin: archivos binarios de sistema orientados a su administración.

• /etc: incluye gran parte de los archivos de configuración del sistema.

• /lib: contiene las bibliotecas de opciones compartidas de los distintos
programas.

• /dev: contiene los archivos de dispositivo que son empleados para acceder
a los elementos de hardware.




• /proc: incluye los procesos que se están ejecutando en ese momento por
el sistema.

• /tmp: almacena los archivos temporales.

• /home: se emplea para guardar los directorios de los usuarios de los
equipos.

• /var: incluye los archivos que pueden modificar su tamaño.

• /usr: contiene todos los archivos y órdenes usados por el sistema. Este
directorio se divide en otros subdirectorios.

o /usr/bin: órdenes orientadas a los usuarios y programas de utilidades.

o /usr/sbin: órdenes de administración de sistemas.

o /usr/lib: incluye las bibliotecas de los lenguajes de programación.

o /usr/doc: incluye los documentos de Linux.

o /usr/man: archivos del manual interactivo.

o /usr/spool: contiene los archivos en formato spool.


Un aspecto que indica cómo Linux desde un principio es un sistema multiusuario es lapresencia de la carpeta home, en la que se incluyen todos los usuarios que están creados en
ese sistema. Por otro lado, Linux ha creado una estructura lógica que permite aprovechar cualquier sistema de ficheros, FAT 16, FAT 32, etc. y montar, además particiones Linux nativa o ext.

Cada directorio debe incluir las entradas de cada archivo que contiene. Es decir, aunque parezca que los archivos se encuentran dentro de una carpeta, físicamente no es así, los archivos se encuentran distribuidos por el disco, pero están asociados a otro archivo (directorio) que incluye la información (entradas) para poder localizarlos.



Para poder acceder a cualquier archivo es necesario que el sistema averigüe cuáles son los bloques de datos del disco en los que este archivo está grabado. Por cada archivo, su directorio almacena una cadena de datos que forman el nombre del archivo (ruta) y un número. El número indica cuál es la estructura de datos que contiene la información de ese archivo; esta estructura de datos se conoce como inodo, un inodo por cada archivo. Es el inodo del archivo el que contiene, entre otras, la información sobre los bloques de datos en los que se encuentra ubicado cada archivo.





4.4. Montaje de dispositivos.


 Linux maneja los dispositivos de almacenamiento como un archivo más dentro del directorio raíz. Cuando realizamos una nueva partición, deberemos establecer un punto de montaje para dicha partición, es decir, una carpeta en la que ubicar el dispositivo que vamos a crear. El sistema que emplea Linux para las particiones de los discos es similar al de DOS. Sin embar.















Nota:
Cuando montamos una distribución de Linux es conveniente realizar, al menos, dos particiones, la primera para ubicar el sistema operativo, con cualquier sistema de ficheros Linux y la segunda swap (intercambio) para emplearla como almacén cuando la memoria se
encuentre llena y necesite depositar esos procesos en el disco duro. Los discos duros se identifican mediante letras hda, hdb y cada una de las pariciones de un disco mediante números hda1, hda2, etc.




Una vez que hemos formateado la unidad (creado el sistema de ficheros) debemos montarla para que pueda ser utilizada por el sistema. Es decir, debemos indicar qué directorio y qué nombre vamos a asignarle, este proceso, tal como hemos indicado, se denomina montaje. La ventaja de este proceso consiste en su flexibilidad, puesto que una vez que hemos montado un disco o una partición como carpeta dentro del sistema de archivos, podemos trabajar con ella como otro directorio más, es decir, podemos copiarla, moverla, etc. como si se tratara de un archivo de texto.


Del mismo modo que montamos una partición en nuestro árbol de archivos, podemos montar una unidad de red, es decir, incorporar a nuestro directorio una carpeta compartida por otro equipo de la red y manejarla como si estuviera en local de forma completamente transparente.


Cualquier dispositivo de almacenamiento debe ser montado en el árbol de archivos. Sin
embargo, la partición en la que se ha instalado el sistema operativo aparecerá como raíz y
no se le aplica el proceso que acabamos de explicar.




4.5. Aspectos generales.

a) Intérpretes de comandos “shell”.


Un interprete de comandos no es sino un programa que lee instrucciones del usuario a través del teclado y las ejecuta. Existen multitud de intérpretes de comandos, pero los más usados son tcsh (especialmente en UNIXs comerciales) y bash, que se puede decir es el estándar en los sistemas Linux.


El intérprete de comandos le indicará al sistema que está esperando instrucciones mostrando lo que se denomina el prompt del sistema. Puede mostrarse de formas diferentes, puesto que es configurable por el usuario, pero generalmente será un símbolo $ o #, dependiendo si se trata de un usuario normal o del usuario root.


Al pulsar intro, se le indicará al sistema que ha acabado de introducir el comando. Entonces hace varias cosas con él. Primero comprueba si el comando es interno al intérprete de comandos y si puede ejecutarlo por si mismo. También comprueba si el comando es un alias, o un sustituto de nombre de otro comando. Si no cumple ninguna de estas dos condiciones, el intérprete de comandos busca un programa que tenga el nombre especificado. Si tiene éxito el intérprete ejecuta el programa, mandándole los argumentos especificados en la línea de comandos.


b) Entorno gráfico.

El sistema Xwindow.

Xwindow fue desarrollado a mediados de los 80 como respuesta a la necesidad de un interfaz gráfico transparente para los sistemas UNIX. Es el encargado de visualizar la información de manera gráfica, y es totalmente independiente del sistema operativo, el cual puede ser trabajado totalmente en modo texto.


La diferencia entre Xwindow y otros interfaces gráficos es que Xwindow establece un enlace cliente-servidor: el cliente X especifica el “qué hacer” al servidor X, que se encargará de “Cómo hacerlo”. El servidor X de una aplicación y el cliente X no tienen porque estar en la misma máquina. Podemos utilizar Xwindow en nuestra máquina, conectarnos a otra remota, ejecutar un programa en la remota y visualizarlo en nuestra máquina local. 


Esto es totalmente independiente de la plataforma/ sistema operativo que la máquina remota utilice. Existen distintas versiones de Xwindow: comerciales y bajo licencia GNU. De estos últimos es de destacar Xfree86, incluido en todas las distribuciones Linux.












Gestores de ventanas.


Un gestor de ventanas es el conjunto de programas, ventanas, funcionalidades que hacen posible que el usuario pueda interactuar con el sistema de forma gráfica y no en modo texto. Lo podríamos comparar al entorno gráfico que todos conocemos de Windows. Esta basado en el motor gráfico Xfree86 y existen numerosos y variados tipos, unos más desarrollados y estables que otros. Es el usuario el que tiene que decidir cual es el que le conviene, pudiendo tener instalados varios. Evidentemente es totalmente independiente del sistema operativo, y muchos usuarios trabajan en modo texto sin ningún problema.Algunos de los gestores de ventanas más populares son: Gnome, KDE, icewm, FVWM, Window Maker, Enlightenment...etc.



c) Usuarios y grupos.

Para acceder a una máquina Linux es necesario identificarse como usuario. Este proceso de identificación permite al administrador flexibilizar al máximo la utilización de los recursos de la red, puesto que se puede determinar quién o quiénes pueden o no pueden acceder a cada uno de los archivos que se encuentran en el sistema, y de qué forma pueden hacerlo.



Nota:

No debemos olvidar que cualquier elemento de una red o un equipo es un archivo o un directorio dentro del árbol de directorios de Linux. Si restringimos la lectura, escritura, etc. a un grupo de usuarios en un archivo, podemos estar impidiendo su ejecución. Igualmente, si permitimos esos procesos a un grupo o un usuario, le asignamos un control total sobre ese elemento.












Disponer de este sistema exige la utilización de un método que permita distinguir unos usuarios de otros, debe tener, pues, cada usuario, una identificación única. Además, a cada usuario se le asocia un directorio propio en el que guardar sus archivos. Este directorio se puede montar en una máquina local o en un servidor remoto. Por último, es necesario que, asociada a cada cuenta de usuario exista una contraseña, conocida únicamente por este, que evite que otros usuarios accedan a su información.


Un usuario es aquel que dispone de una cuenta en el sistema en la que se recogen los datos asociados a un mismo usuario. Un grupo de usuarios es, básicamente, una organización administrativa. Se emplea para facilitar la gestión de los mismos en función de parámetros de administración más generales. Un usuario puede pertenecer a varios grupos, pero también puede actuar de forma independiente en el sistema.






Los elementos que caracterizan a un usuario son:

a) Nombre de usuario: es el identificador del usuario dentro del sistema. Debe
ser un identificador único.

b) Nombre real: Nombre real del usuario.



Nota:
El nombre de usuario también es conocido como login Es decir log in. Acceso al
sistema.




c) Contraseña: Serie de caracteres que permiten confirmar la identidad de un usuario. Las contraseñas no aparecen en pantalla y deben ser encriptadas para que no puedan ser desveladas. El administrador puede obligar a los usuarios a que cambien de contraseña cada cierto tiempo.


d) Directorio de entrada (directorio home): Es un directorio propio donde cada usuario puede almacenar sus ficheros. Este directorio se crea automáticamente al crear un usuario en la carpeta /home añadiendo la carpeta propia de ese usuario con su nombre /home/usuario; el admistrador puede determinar el lugar en el que se creará la carpeta.



Para pensar:
La carpeta home puede ser una unidad compartida de un servidor de archivos que se
monta en local cada vez que accede al sistema un usuario.



e) Identificador numérico: Identificador numérico de cada usuario.

f) Shell: Cuando un usuario accede al sistema se le asigna un shell o sistema
de comandos para interactuar con la máquina.

g) Grupo de entrada: Es el grupo prioritario que se asigna al usuario cuando
accede al sistema.

h) Grupos adicionales: Otros grupos a los que pertenece el usuario.

i) Caducidad de la cuenta: Posibilita el que un usuario sólo pueda acceder al sistema hasta un momento determinado. Todas estas opciones son configurables cuando el administrador rea un usuario.

























Del mismo modo que existen una serie de atributos de usuario, podemos indicar
algunos elementos que caracterizan a los grupos. Estos son:

a) Nombre del grupo.
b) Identificador numérico del grupo.
c) Nombres de los usuarios miembros del grupo.
d) Contraseña del grupo.


La cuenta root.


Linux distingue diferentes rangos de usuarios. Cada usuario recibe una cuenta que incluye un nombre de usuario y un directorio inicial, entre otras cosas. Además de las cuentas dadas a personas reales, existe otra, definida por el sistema, con privilegios especiales: la cuenta raíz, con el nombre de usuario root.


Los usuarios normales están restringidos para que no puedan dañar o borrar ficheros vitales del sistema. Si se comete un error, éste sólo afectará a su cuenta. Estas restricciones desaparecen para el usuario root, que puede leer, modificar o borrar cualquier fichero en el sistema, cambiar permisos y pertenencias en cualquier fichero y ejecutar programas especiales, como pueden ser los que particionan un disco o crean
sistemas de ficheros.




Para pensar:

Puesto que root puede hacer todo, es fácil cometer errores que tengan
consecuencias catastróficas cuando se trabaja utilizando esta cuenta. Es
conveniente seguir estas precauciones:

• Pensar dos veces antes de presionar <enter> en un comando que pueda
causar daño.

• No acostumbrarse a utilizar la cuenta root, y si es necesario hacerlo,
desconectarse en el momento en que terminemos de trabajar con ella.

• El root debe disponer de una cuenta de usuario que permita realizar operaciones habituales sin correr el riesgo de dañar gravemente el sistema.



Las redes Linux disponen de un sistema de administración muy fuerte. Desde el comienzo de la instalación de un equipo o la creación de un usuario se necesita de la intervención del administrador que será, al fin y al cabo será quien defina hasta el último detalle la configuración de la red.






4.6. Administración.


Linux no dispone de una base de datos centralizada en la que se recojan todos los
recursos existentes en la red, similar a Active Directory o Novell Directory Services. Su
sistema de ficheros y la estructura jerárquica de sus directorios permite realizar alguna de las
tareas de estas herramientas, sin embargo, el peso de la administración de una red Linux
depende, fundamentalmente, de la capacidad del administrador y de cómo halla planificado
el montaje y crecimiento de su red.


a) Sistemas de permisos. Administración de archivos.


Administración de archivos.

Cualquier archivo que se encuentre en un sistema Linux tiene asignada una serie de características. Una de ellas es los permisos de acceso. En este sentido, Linux establece dos niveles. En primer lugar determina quiénes pueden acceder y en segundo lugar, en qué condiciones.Con respecto a quiénes pueden acceder determina tres grupos:


• El usuario propietario del archivo.
• El grupo al que pertenece.
• Todos los usuarios del sistema.


Por otro lado, cada uno de estos posibles usuarios que deseen acceder al archivo,
pueden tener varios permisos dentro de dicho archivo:


• Lectura.
• Escritura.
• Ejecución.


Cualquiera de estos permisos pueden ser atribuidos a cualquiera de los usuarios que
hemos descrito anteriormente.



Para pensar:

Un archivo de texto puede tener permiso de ejecución, aunque parezca absurdo. Es evidente que, aunque un usuario tenga permiso para ejecutar uno de estos archivos, no podrá debido a que no son ejecutables.









Administración de directorios.

Al igual que los archivos, los directorios también disponen de permisos. La gestión de los usuarios es similar a la del sistema anterior, sin embargo, los permisos varían en los siguientes aspectos:


• Lectura: permite visualizar los archivos que incluye.

• Escritura: permite crear y suprimir archivos en el directorio.

• Ejecución: permite el desplazamiento a dicho directorio.


Si un usuario no tiene permiso de acceso a un directorio, no podrá acceder a un
archivo que esté incluido en el mismo, aunque tenga permiso para ello.

b) Compartición de recursos.

Linux permite compartir recursos en toda la red. Para ello emplea distintos sistemas, pero, el objetivo final es disponer de un sistema de archivos distribuidos totalmente transparente para el usuario. Estos sistemas implementan procedimientos clienteservidor y deben permitir una compartición de recursos sencilla basada en los siguientes
principios:

• Transparencia de red: los ficheros remotos aparecen como locales.

• Independencia de posición: el nombre del fichero no debe cambiar aun
cuando cambie su ubicación.

• Movilidad de usuarios: el acceso a los recursos compartidos debe ser
independiente del nodo desde el que se acceda.

• Tolerancia a fallos.

• Escalabilidad: el sistema debe poder adaptarse a un crecimiento de carga y
de estructura.

• Movilidad física de los ficheros.

La opción por uno u otro sistema dependerá del modo en el que trabajen cada una de las características descritas y de la facilidad de administración que ofrezcan. La implantación de cada uno de estos sistemas está dominada por NFS (Network File System) mientras que samba es la opción más habitual en redes que combinan Linux y Windows.




Sistema de archivos en red (NFS).


NFS es un sistema de archivos que permite compartir recursos en la red mediante el protocolo TCP/IP. Es un estándar abierto creado por SunSoft que implementa una arquitectura cliente/servidor para el proceso de compartición de ficheros. La configuración de NFS permite que varios sistemas operativos compartan los archivos en una misma red puesto que define un modelo abstracto de sistemas de ficheros que es interpretado por los distintos sistemas operativos. El sistema de archivos NFS consta de un servidor, que proporciona los archivos, un cliente que los monta en su sistema de ficheros local y un protocolo de comunicación que permiten al cliente manipular los ficheros en el servidor.



Analogía:

Realmente el cliente no manipula los archivos en el servidor. Es el propio servidor el que actúa y envía los resultados al cliente. Básicamente, la máquina cliente es como una persona que da instrucciones para aparcar un vehículo, mientras que el servidor sería el conductor que ejecuta las órdenes.




El servidor NFS dispone de un sistema que permite indicar desde qué máquinas o dominios se puede acceder a los ficheros compartidos y en qué modo lo van a hacer. Monta de forma virtual una unidad en el host local con los directorios compartidos ocultando la posición del fichero en la red y del servidor. 



Sistema de ficheros de Andrew (AFS)


Se trata de un sistema de ficheros distribuidos que presenta de forma compacta todos los recursos compartidos en la red (LAN y WAN) a través de un directorio /afs sobre TCP/IP.


Todos los recursos compartidos en un dominio se presentan en una celda AFS que agrupa a los servidores de recursos presentando un único sistema de ficheros. AFS emplea el sistema de seguridad Kerberos de manera que los password circulan encriptados por la red. La autenticación de usuarios debe ser realizada contra el servidor que mantiene un listado de los usuarios que acceden al servicio.


Mejora a NFS en tanto en cuanto el usuario no debe conocer el servidor en el que se encuentra el archivo compartido, sino que todos se presentan juntos y sólo se debe conocer la ruta de acceso. Soporta con garantías una razón 50:1 de cliente/servidor y ofrece opciones de escalabilidad mejoradas con respecto a NFS.




Samba.


Samba permite la compartición de ficheros e impresoras en redes constituida por
múltiples sistemas operativos. Un servidor Samba permite:

• Compartir sistemas de ficheros.

• Compartir impresoras instaladas en cualquier lugar de la red.

• Autentificar clientes en un dominio windows.

Smb.cnf es el fichero que controla los demonios de samba. Está compuesto de secciones y parámetros. Cada sección define un servicio y los parámetros son los atributos con los que se puede acceder a dicho servicio, siendo este un espacio de ficheros o servicios imprimibles.







Difiere de las dos opciones anteriores en que no consiste en un sistema de ficheros, sino una utilidad para compartir recursos. Para configurarse como tal necesita smfbs que sí es un sistema de ficheros que analiza los recursos compartidos por servidores samba y los presenta a los usuarios en una estructura de directorios.

c) Sistema de directorios.

Como ya hemos indicado, las redes Linux no emplean herramientas de administración como  l Active Directory de Windows, puesto que su propia estructura de archivos lleva implícito un sistema similar. El administrador de una red Linux dispone de algunas herramientas que permiten una administración en entorno gráfico (Webmin), sin embargo, la mayoría de los administradores prefieren la utilización de líneas de comando puesto que controlan más todo el proceso.


Linux es un sistema operativo multiusuario y de trabajo en red desde sus orígenes, por lo que el sistema de archivos ya lleva incorporadas capacidades. La administración se puede realizar desde un principio en el momento en el que un usuario se identifica para acceder a los recursos. El proceso de autentificación puede ser implementado a través de LDAP contra una base de datos de usuarios (MySQL), de manera que, al iniciar su sesión, se cargue su perfil en cualquier máquina.


Además, en este proceso de inicio, se montan tanto las unidades locales como las unidades de red de forma transparente, el usuario accede a sus recursos que pueden estar en cualquier otra máquina y que se montan en la carpeta home. El sistema de directorios que aparece en la máquina local una vez que se inicia Linux y se identifica el usuario recogerá todos los recursos que el administrador considere que deben ser empleados por ese usuario, en función de los permisos que tenga asignados. Es decir, tras el proceso de identificación se montan los directorios y recursos asociados a ese usuario con independencia del lugar en el que se encuentren.







El sistema de directorios permite gestionar los recursos de la red de forma similar a la
administración que con Active Directory se hace de los dominios. Las distintas unidades
que se montan en la red y que son compartidas pueden moverse de un lugar a otro, las
propiedades de un grupo pueden ser modificadas en cualquier momento y la gestión de
permisos se hace completamente flexible.


d) Seguridad del Sistema.


Una red debe disponer de unas opciones de seguridad que garanticen la estabilidad del sistema. En muchos casos la estabilidad puede deberse a actuaciones de los usuarios o a la intervención de crackers que acceden a nuestra red.


Hasta ahora nos hemos centrado en los aspectos relacionados con los usuarios y las políticas de permisos. El punto débil de estas políticas es la transmisión de claves a través de la red. Ya comentamos que ADF utilizaba el Kerberos para encriptar las claves que se emplean en la compartición de ficheros.



 Sin embargo, existen otras opciones que deben ser implementadas cuando estamos administrando remotamente nuestra red. SSL (Secure Server Layer) es un protocolo que permite cifrar las comunicaciones entre cliente y servidor . En el mundo Linux existen varias opciones que, implementando este tipo de protocolo, permiten establecer conexiones seguras entre clientes y servidores, especialmente útiles cuando se está realizando cualquier labor de
administración remota.


Algunas de las soluciones de seguridad emplean OpenSSL, OpenSSH o Net_SSLeay. En cualquier caso se trata de proteger las comunicaciones con independencia de la aplicación o protocolo de comunicación que se emplee FTP, web, o ejecutando X-window en un servidor remoto.


















Con respecto a los ataques que puedan venir desde el exterior, la opción mejor es la utilización de un cortafuegos que proteja a usuarios y datos de los peligros de Internet. Existen dos tipos de cortafuegos en Linux, de filtrado de paquetes y proxy. En el primer caso se analizan los datos de la cabecera IP y se establecen unos criterios para su filtrado. 



El proxy, por otro lado, recibe todos los paquetes, los filtra y los reencamina dentro de la red, pudiendo llegar a analizar todo el paquete, no sólo su cabecera. Como ya veremos en el capítulo 6, su uso puede ser conjunto, pero la opción a la hora de elegir uno u otro es personal, y va a depender, sobre todo, de la experiencia previa que se disponga a la hora de manejar uno u otro tipo.




4.7. Protocolos de comunicación en redes con Linux.


Siendo el resultado del esfuerzo concentrado de programadores de todo el mundo, Linux no habría sido posible sin la red global. Así que no sorprende que ya en los primeros pasos del desarrollo, varias personas comenzaron a trabajar en dotarlo de capacidades de red. Linux dispone de los dos principales protocolos de red para sistemas UNIX: TCP/IP y UUCP.


a) UUCP.


UUCP (UNIX-to-UNIX Copy) es un viejo mecanismo usado para transferir ficheros, correo electrónico y noticias entre máquinas UNIX. Clásicamente las máquinas UUCP conectan entre ellas mediante líneas telefónicas y módem, pero UUCP es capaz de funcionar también sobre una red TCP/IP. Si no tiene acceso a una red TCP/IP o a un servidor SLIP, puede configurar su sistema para enviar y recibir ficheros y correo electrónico usando UUCP. Su principal aplicación es todavía en redes de área metropolitana (MAN) basadas en enlaces telefónicos.



Una de las principales desventajas de las redes UUCP es su bajo ancho de banda. Por un lado, el equipo telefónico establece un límite rígido en la tasa máxima de transferencia. Por otro lado, los enlaces UUCP raramente son conexiones permanentes; en su lugar, los nodos se llaman entre sí a intervalos regulares. Es por ello, que la mayoría del tiempo que le lleva a un mensaje viajar por una red UUCP permanece atrapado en el disco de algún nodo, esperando al establecimiento de la próxima conexión.


A pesar de estas limitaciones, aun hay muchas redes UUCP funcionando en todo el mundo, utilizado principalmente por aficionados, ya que ofrecen acceso de red a usuarios privados a precios razonables. La razón fundamental de la popularidad del UUCP es que es baratísimo comparado con tener el ordenador conectado al Gran Cable de Internet. Para hacer de su ordenador un nodo UUCP, todo lo que necesita es un módem, software UUCP, y otro nodo UUCP que desee suministrarle correo y noticias.


b) TCP/IP.

Aunque UUCP puede resultar una elección razonable para enlaces de red mediante llamada de bajo coste, hay muchas situaciones en las que su técnica de almacenamiento y reenvío se muestra demasiado inflexible, por ejemplo en Redes de Area Local (LANs).


TCP/IP (Transmission Control Protocol/Internet Protocol) es un conjunto de protocolos de red que permite a sistemas de todo el mundo comunicarse en Internet. Con Linux, TCP/IP y una conexión a la red, puede comunicarse con usuarios y máquinas por toda Internet mediante correo electrónico, noticias (USENET news), transferencias de ficheros con FTP y mucho más. Actualmente hay muchos sistemas Linux conectados a Internet.



No todo el mundo tiene una conexión Ethernet en casa, así que Linux también proporciona SLIP (Serial Line Internet Protocol), el cual permite conectarse a Internet a través de un módem. Para poder usar SLIP, necesitará tener acceso a un servidor de SLIP, una máquina conectada a la red que permite acceso de entrada por teléfono. Muchas empresas y universidades tienen servidores SLIP disponibles. De hecho, si su sistema Linux dispone de conexión Ethernet y de módem, puede configurarlo como servidor de SLIP para otros usuarios.



Fue en el otoño de 1992 cuando se comenzó a desarrollar el soporte de TCP/IP, cuando Ross Biro y otros crearon lo que ahora se conoce como Net-1. Actualmente ya existe Net-3, que ofrece controladores de dispositivo para una amplia variedad de tarjetas Ethernet, así como SLIP (para enviar trafico de red sobre líneas serie), y PLIP (para líneas paralelo). Con Net-3, Linux tiene una implementación de TCP/IP que se comporta muy bien en entornos de red de área local, mostrándose superior a algunos de los Unix comerciales para PCs.