Plataformas Tecnológicas y Gestión _ imprimible 1 de 115

Transcripción

Plataformas Tecnológicas y Gestión _ imprimible 1 de 115
Plataformas Tecnológicas y Gestión _ imprimible
1 de 115
PLATAFORMAS TECNOLÓGICAS Y GESTIÓN
OBJETIVO GENERAL
Una vez conocido el Génesis del Software Libre y entendido que Linux es parte
fundamental de este paradigma debido a que sobre él se instala ese software
aclarando que mucho de él funciona también en Windows los interesados en
este paradigma deben aprender las bases técnicas sobre el funcionamiento de
Linux orientado a tener más criterios en el caso de una posible adopción como
plataforma que afectará no solo a las Instituciones sino a sus ciudadanos
debido a la influencia que sobre ellos tiene este tipo de soluciones.
OBJETIVOS ESPECÍFICOS
Al finalizar este módulo los funcionarios estarán en capacidad de:
•
Instalar Linux comprendiendo las funcionalidades de las tecnologías
instaladas
•
Entender la arquitectura del sistema Operacional
•
Tener claridad sobre el sistema de procesos
•
Entender y manejar los Sistemas de archivos
•
Entender el concepto del shell o manejador de comandos
•
Conocer el proceso de arranque del sistema para una total claridad de
cómo el sistema se inicia para controlar el hardware
Plataformas Tecnológicas y Gestión _ imprimible
1. Preparación
1.1 Escoger una Distribución
1.2 Inventario de hardware
2. Instalación y configuración
2.1 Consideraciones iniciales e inventario de hardware
2.2 Selección del Idioma de instalación
2.3 Teclados
2.4 Mouse
2.5 Particiones
2.6 Cargador del sistema
2.7 Servicio de red
2.8 Firewall
2.9 Soporte de Múltiples idiomas
2.10 Zona geográfica
2.11 Creación de cuentas
2.12 Autenticación
2.13 Selección de paquetes
2.14 Proceso de instalación
2.15 Tarjeta de sonido
2.16 Creación del disco de arranque
2.17 Post instalación
2.18 Ejercicios
2.19 Autoevaluación
3 Uso del Sistema Operacional
3.1. Arquitectura del sistema operativo Linux
3.1.1 Manejo de tareas
3.1.1.1 Administración de recursos
3.1.1.2 Manejo de la cpu
3.1.1.3 'Scheduling' de tareas
3.1.1.4 Manejo de interrupciones
3.1.2 Interprocesos
3.1.2.1 Mensajes entre tareas
3.1.2.2 Reentrancia
3.1.2.3 Interrupciones
3.1.2.4 Administración de memoria
3.1.3 Interfaces de hardware
3.1.3.1 CPU
3.1.3.2 Buses
3.1.3.3 Entrada y salida e paralelo
3.1.3.4 Entrada y salida en serie
3.1.3.5 Dispositivos orientados a bloques
3.1.3.6 El teclado
3.1.3.7 Video
3.1.3.8 Memoria de acceso directo – DMA
3.1.4 Ejercicios
2 de 115
Plataformas Tecnológicas y Gestión _ imprimible
3 de 115
3.1.5 Autoevaluación
3.2 Sistema de procesos
3.2.1 Procesos interactivos
3.2.2 Demonios
3.2.3 Atributos de un proceso
3.2.4 Ciclo de vida de un procesos
3.2.5 Ejercicios
3.2.6 Autoevaluación
3.3 Sistema de archivos
3.3.1 Introducción
3.3.2 Cuentas de usuarios
3.3.2.1 Definiciones
3.3.2.2 Creación de un usuario
3.3.3 Interprete de comandos
3.3.4 Archivos y directorios
3.3.4.1 Los directorios de Linux
3.3.5 Más comandos
3.3.6 Navegar por los directorios
3.3.7 Mirar el contenido de los directorios
3.3.8 Propiedad de los archivos
3.3.9 Protección de los archivos
3.3.10 Especificaciones numéricas de los modos de seguridad
3.3.11 Modo estándar de seguridad
3.3.12 Tipos de archivos
3.3.13 Encadenamientos duros y suaves
3.3.13.1 Encadenamientos duros
3.3.13.2 Encadenamientos suaves
3.3.14 Dispositivos
3.3.15 Ejercicios
3.3.16 Autoevaluación
3.4. Entorno del shell
3.5 El proceso de arranque
3.5.1 El programa /sbin/init
3.5.2 Tarea padre.
3.5.3 Proceso de inicio.
3.5.4 Niveles de ejecución
3.5.5 Directorio etc/rc.d/init.d/ y /etc/rc.d
3.5.6 Control de los servicios activos.
3.5.7 Cargadores del sistema operacional Linux o 'Boot Loaders'
3.5.7.1 GRUB
3.5.7.1.1 Algunas características importantes de
GRUB.
3.5.7.1.2 Instalación de Grub
•
3.5.7.1.3 Terminología de Grub
3.5.7.1.4 El Sistema de archivo raíz de GRUB:
•
3.5.7.1.5 Interfaces de GRUB.
3.5.7.1.6 Comandos de GRUB.
3.5.7.1.7 Archivo de configuración de Grub
Plataformas Tecnológicas y Gestión _ imprimible
4 de 115
3.5.7.2 LILO.
3.5.7.3 Ejercicios
3.5.7.4 Autoevaluación
3.5.8 Cambio de nivel de ejecución en el momento de cargue.
3.5.9 Archivos especiales.
3.5.9.1 Directorio sysconfig.
3.5.9.2 El sistema de archivos proc.
3.5.9.3 Directorios en /proc/
Plataformas Tecnológicas y Gestión _ imprimible
5 de 115
Plataformas Tecnológicas de Gestión
Introducción
En este curso se define una plataforma como el software que se instala en el
servidor y que resuelve un problema específico dándoles un servicio a los
usuarios de Linux.
El mecanismo que vamos a utilizar en esta parte del curso es dar a conocer las
bases de funcionamiento de cada una de las plataformas para entender de
cada una de ellas la manera de arrancar el servicio y de apagarlo, la forma de
funcionamiento, el servicio que presta, la puesta en marcha básica y la manera
de configurarla.
Para profundizar en cada una de ellas se requeriría un curso completo y por lo
tanto el alcance de este capítulo es el de marcar el camino de inicio para que la
especialización venga después.
En la configuración de algunas de las plataformas nos vamos a ayudar de una
herramienta muy conocida para el soporte remoto orientada a la web llamada
Webmin http://www.webmin.com/ la cual se ha convertido en un estándar.
Webmin es totalmente gráfico pero de nada sirve si quien va a manejar estas
plataformas no conoce los principios de cada una de ellas por lo que es muy
importante estudiar con detalle las exposiciones que haremos en el curso.
Trataremos también de mantenernos al lado de los archivos de configuración
que son aquellos que las plataformas usan para su funcionamiento ya que un
administrador de Linux puede dejar de usar webmin y manejar líneas de
comando para manipular esos archivos de configuración. De esta manera nos
aseguramos que el aprendizaje vaya más a fondo y no simplemente hacer
click’s sin saber qué sucede por debajo.
Lo anterior nos obliga entonces a comenzar este capítulo por instalar Webmin
en el computador de trabajo para poder hacer bien el curso y lograr un
verdadero aprendizaje.
1.- Ayudas y conceptos
Para obtener la última versión de Webmin debe ir a http://www.webmin.com y
seleccionar Download. Aparecerá una pantalla con los servidores espejo de
donde debe escoger cualquiera de ellos. Observará que puede bajarlo en dos
formatos: tar.gz o rpm. Aquí, usted, debe aplicar los conocimientos adquiridos
en el capítulo de Uso de Linux en el documento shell.pdf en el cual se explicó
la manera de instalar el software. Un buen ejercicio es hacerlo de ambas
maneras cuidando de borrar la primera y de esta manera asegura que sus
conocimientos para instalar software en Linux estén en forma.
Otra cosa es que en el sitio de Webmin encontrará la última versión. Sin
embargo recomendamos ser cuidadosos de trabajar con una versión estable
Plataformas Tecnológicas y Gestión _ imprimible
6 de 115
que en ocasiones se indica en los sitios de donde se baja el software, no
afanarse por usar la última necesariamente.
De hecho las firmas multinacionales que están comenzando a promover el
software libre liberan nuevas versiones en períodos de un año para asegurarse
que están ofreciendo a los usuarios software estable. Y en software la palabra
estable significa tener ya control sobre las fallas que presenta y las
recomendaciones para resolverlas ya que el software en si es un proceso de
continuo mejoramiento.
Por esa razón incluimos en este curso una versión en funcionamiento que no
es la última y que quienes lo deseen pueden usar.
Para este caso se ha escogido la versión en formato tar.gz y se llama webmin1.210.tar.gz la cual procederemos a instalarla y a conocer sus bases de
funcionamiento en el documento llamado webmin.pdf.
Ya con Webmin instalado y funcionando iniciaremos los temas de las
plataforma y lo usaremos en la medida en que avancemos.
1.1 Los servicios de TCP/IP
La historia del tcp/ip o Transmission Control Protocol comienza en 1968 cuando
los Estados Unidos iniciaron un proyecto para interconectar los computadores
de una red militar con el propósito que las máquinas pudieran “conversar” entre
si. La red se llamó Arpanet http://es.wikipedia.org/wiki/ARPANET y para esto se
crearon una serie de nodos que se llamaron IMP’s o Procesadores de
mensajes de internet en la Universidad de California en Los Ángeles, la
Universidad de California en Santa Barbara, El Instituto de Investigaciones de
Stanford y la Universidad de Utah. En 1972 entró en servicio activo la red
llamada Arpanet utilizando el programa NCP o Netowrk Control Program que
ya podía proveer una serie de servicios como transferir archivos entre
máquinas y aceptar registros de entradas remotas para conectarse y poder
ejecutar las aplicaciones.
Con el tiempo se vio la necesidad que los usuarios de los computadores se
pudieran mandar mensajes entre ellos, lo cual los llevó a inventarse el correo
electrónico. Ocurrió que entre 1972 y 1974 se comprobó que el protocolo inicial
no cumplía con las necesidades propuestas por lo cual se decidió iniciar el
desarrollo de algo más formal y acompañado de especificaciones más
precisas, y fue así que se propuso la creación del protocolo TCP/IP.
Fueron dos Ingenieros Leonard Kleikrock http://www.cs.ucla.edu/~lk/, Vint Cerf
http://www.ibiblio.org/pioneers/cerf.html
y
Robert
Kahn
http://www.cnri.reston.va.us/bios/kahn.html quienes hicieron las primeras
propuestas siendo una de las más importantes hacer que el protocolo tuviera
independencia de la red y del hardware instalado, es decir que tuviera
conectividad universal. No torre de Babel.
En 1981 ya existía una versión estándar, la versión 4, la cual viene a sustituir al
Plataformas Tecnológicas y Gestión _ imprimible
7 de 115
NCP en 1982 conformando así una red que tenía objetivos militares y que
comenzó a crecer a una tasa de 20 nodos diarios. Es en este momento cuando
intervienen la universidades y se propuso dividir la red en dos segmentos: uno
militar, MILNET y otro para otros usos que se llamó ARPANET.
La Universidad de Berkley en California intervino de manera especial ya que
venía trabajando fuertemente en la liberación de una versión de UNIX llamada
BSD (Berkley System Distribution) y que incluyó a TCP/IP cómo parte del
sistema. Este licenciamiento de UNIX fue durante muchos años de dominio
público lo cual convirtió al TCP/IP en un producto estándar en el mercado aun
después de la desaparición del BSD en 1993. Hoy en día TCP/IP permite que
internet ofrezca muchos servicios a la red.
Existe un mapa de Arpanet que muestra el crecimiento de los nodos en
http://som.csudh.edu/cis/lpress/history/arpamaps/
Los servicios de TCP/IP son varios y se resumen en este diagrama:
Para explicar la forma como funciona TCP/IP ayudémonos de este diagrama
que muestra las capas en que se desempeña.
Plataformas Tecnológicas y Gestión _ imprimible
8 de 115
Capa 4
Capa 3
Capa 2
Capa 1
Capa 1: la conexión física es decir el cable de la red y sus conectores
asociados que van a identificar los interfaces o tarjetas de red con una
nomenclatura del estilo eth0, eth1 para las tarjetas de red y sus drivers.
Capa 2: el proceso de enrutamiento es decir el que hace que los datos que
viajan en paquetes se dirijan hacia un equipo identificado por un número IP.
Capa 3: los paquetes se transportan hacia los puertos o sockets que son los
programas residentes o demonios que representan los servicios y que están
“mirando” por el puerto para ver si algún nodo está solicitando un servicio.
Capa 4: es la aplicación misma por ejemplo el programa de correo.
El funcionamiento de TCP/IP se describe en el documento tcpi.pdf que puede
ser consultado por quienes deseen profundizar.
De una vez debemos saber que al llegar a la plataforma de Firewall es
importante tener claros los conceptos que se exponen en tcpip.pdf.
L
Para el uso de las plataformas es necesario que el computador
en el que se van a hacer las pruebas tenga una tarjeta de red y
que el tcp/ip esté configurado para trabajar adecuadamente.
9 de 115
Plataformas Tecnológicas y Gestión _ imprimible
1.2 Configuración remota
Por lo tanto la primera instalación que haremos usando Webmin será esta
funcionalidad.
Asegurarse que Apache
/etc/rc.d/init.d/httpd start
esté
en
funcionamiento
o
Direccionar el navegador a http://linux.domain.com.co:10000/
Aparece la pantalla de inicio de Webmin.
Se inicia con el usuario admin y la contraseña del administrador.
sino
ejecutar
Plataformas Tecnológicas y Gestión _ imprimible
Se carga el interfaz de webmin.
Se escoge el icono de Networking de la parte superior.
Escoger
Networking
10 de 115
Plataformas Tecnológicas y Gestión _ imprimible
11 de 115
Aparece esta pantalla y se escoge Network Configuration
Escoger
Network
Configuration
Plataformas Tecnológicas y Gestión _ imprimible
Aparece esta pantalla y finalmente Network Interface:
Escoger
Network
Interface
12 de 115
Plataformas Tecnológicas y Gestión _ imprimible
13 de 115
Al escoger Network Interface aparece una pantalla en la cual debe seleccionar
Add a New Interface y le aparecerá la siguiente pantalla en la cual se llenan los
campos como en este ejemplo:
Seleccionar
Create and
Apply.
Seleccionar Create and Apply.
En el equipo en que se escribe este curso se tiene dos tarjetas de red que se
ven así en Webmin:
Plataformas Tecnológicas y Gestión _ imprimible
14 de 115
Observe la interfaz llamada lo. Esta es necesaria porque es la manera de
identificar la dirección local
Se regresa al interfaz Network Configuration:
Y al seleccionar Network Interface se activa la tarjeta de red.
La manera de probar si está funcionando es entrar a una pantalla de comandos
y probar:
ping 192.168.100.3
PING 192.168.100.3 (192.168.100.3) 56(84) bytes of data.
64 bytes from 192.168.100.3: icmp_seq=0 ttl=128 time=1.49 ms
64 bytes from 192.168.100.3: icmp_seq=1 ttl=128 time=0.412 ms
64 bytes from 192.168.100.3: icmp_seq=2 ttl=128 time=0.421 ms
se para con Ctrl C y sale:
--- 192.168.100.3 ping statistics --3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 0.412/0.774/1.490/0.506 ms, pipe 2
Plataformas Tecnológicas y Gestión _ imprimible
L
15 de 115
Al aparecer 0% packet loss se sabe que no se están
perdiendo paquetes en la transmisión o sea que la tarjeta
está bien instalada y el tcp/ip está en funcionamiento.....!
Ahora vamos a hacer algo cuya importancia se verá más adelante cuando
hablemos del Servidor de Dominios – DNS pero que nos será útil y se trata de
identificar uno de estos IP’s con un nombre que será el nombre de dominio de
la máquina. Es decir que en lugar de referirnos a la IP 192.168.100.3 nos
refiramos a linux.domain.com.co por ejemplo. La manera de hacerlo es
editando el archivo /etc/hosts y crear un registro así:
192.168.100.3 linux.domain.com.co
Al salvar el archivo de nuevo ejecutar este comando:
ping linux.domain.com.co
y el sistema lo entenderá como ping 192.168.100.3
1.3 Resumen
Se hizo un recuento histórico sobre el protocolo de internet TCP/IP mirado
como una secuencia de actividades alrededor del proyecto DARPA y la
finalización de algo que no se tenía pensado de manera tan clara desde el
comienzo como fue la aparición del correo electrónico. Se hizo énfasis en la
participación de las Universidades como desarrolladoras de este protocolo.
Se anexó un documento sobre la manera como TCP/IP opera en la vida real,
sus diseños de encabezados y la lógica del programa para administrar los
viajes de los datos en la red y la manera como los entrega al extremo con
calidad total. En este documento se enumeraron y explicaron los principales
servicios que van a ser parte de este capítulo en la parte práctica.
Para finalizar se enseñó la manera de instalar webmin para el soporte remoto
de Linux y se hizo la instalación lógica de la tarjeta de red.
1.4 Actividades de aprendizaje
Objetivo
Verificar cómo quedaron las tarjetas de red utilizando el comando
/sbin/ifconfig, entrando como usuario root.
Instrucciones
1. El mac addres o inet6 addr que la dirección física de la tarjeta de red y
Plataformas Tecnológicas y Gestión _ imprimible
16 de 115
que además es única debe aparecer al dar el comando. Verificarla.
2. Si se configuró adecuadamente debe aparecer la dirección IP asignada
con el nombre de inet addr. Verificarla.
3. La dirección de loopback se llama lo, verificarla.
4. Hacer ping 192.168.100.3 y después ping -c 2 192.168.100.3.
Determine la diferencia.
5. En el archivo /etc/services de Linux están los servicios con sus nombres,
puerto y protocol, mirarlos con un editor y responder las siguientes
preguntas:
Preguntas
Respuesta
a) ¿Cuál es el número del puerto
del servicio de correo smtp?
25
b) ¿Cuál es el número del puerto
de ssh que es el reemplazo de
telnet?
23
c) ¿Cuál es el número del puerto
del servicio de web http?
80
d) ¿Cuál es el número del puerto
del servicios ssh que reemplazó
a telnet?
22
1.5 Ejercicio
Ubique cada palabra en orden para formar una frase que define TCP. Haga clic
sobre la palabra para irla añadiendo a la frase. Cuando usted crea que su
respuesta es correcta, haga clic en “revisar” para verificar su respuesta. Si tiene
problemas, haga clic en “pista” para saber cuál es la palabra que sigue en la
frase.
TCP - Transmition Control Protocol: es el servicio responsable de ensamblar
los datos que se van a transmitir y controlar su transmisión de un sitio a otro
Plataformas Tecnológicas y Gestión _ imprimible
17 de 115
2.- Plataformas tecnológicas
2.1 Servidor Administrador de DHCP
DHCP http://es.wikipedia.org/wiki/DHCP son las siglas de Dynamic Host
Configuration Protocol o sea Protocolo de Configuración Dinámica el Servidor.
Como ya se observó al configurar la tarjeta de red se asignaron los números
IP’s de manera fija es decir que el administrador del sistema decidió darle a
cada tarjeta de cada computador un número único que lo identificara. Esto
funciona muy bien para un número pequeño de computadores dentro de la red.
Pero se complica cuando hay muchos puesto que es susceptible de errores
como por ejemplo darle a varios equipos el mismo número. La solución que la
tecnología de redes ofrece para esta situación es la de usar el protocolo DHCP
el cual puede asignar de manera dinámica esos IP’s asegurando que no haya
repetición de los números dentro de la red.
Las ventajas para el administrador del sistema son:
•
•
•
•
•
•
•
La habilidad de dar información completa de la configuración TCP/IP a
cualquier servidor de la red.
La dirección IP puede ser asignada a un cliente solamente por el tiempo
en que esté conectado a la red.
Permite tener un conjunto de direcciones IP que pueden ser compartidas
entre clientes que no requieren estar conectados permanentemente en
la red.
La direcciones tienen una fecha de expiración pero se vuelven a poner
disponibles sin intervención de nadie.
El servidor DHCP recibe direcciones desde el llamado Address
Allocation Server (AAS), o Servidor de Localizador de direcciones .
DHCP es muy útil para aquellos nodos de la red que se conectan de
manera ocasional y que no van a estar permanentemente conectados.
DHCP no puede compartir direcciones IP para PPP o SLIP que son
protocolos para comunicación a través de modems con servidores
remotos.
La manera como funciona este protocolo se describe a continuación.
El cliente, es decir el pc que va a entrar en la red, envía un
mensaje llamado "descubrir" (discover) al servidor de DHCP con
el cual solicita que se le den parámetros de configuración los
cuales son construidos por el servidor de acuerdo con el archivo
de configuración del DHCP. Estos parámetros se pueden
construir de una serie de opciones globales, opciones de
subredes, opciones de clases específicas y de clientes.
Plataformas Tecnológicas y Gestión _ imprimible
18 de 115
Si el cliente no tiene una entrada en el archivo de configuración o
no tiene una dirección IP, el servidor de DHCP "alquila" una
dirección IP del Servidor de Localización de Direcciones
(Address Allocation Server - AAS). Si el cliente tiene ya una
dirección IP en el archivo de configuración la asigna al cliente.
Si el AAS - Address Allocation Server fue requerido, este
asigna una dirección IP de manera dinámica tomándola del pool
de direcciones que sean consistentes con la subred del cliente.
El servidor de DHCP construye un mensaje de "oferta" y se lo
envía al cliente. En este mensaje incluye los parámetros de
configuración incluyendo la dirección IP.
El servidor queda a la espera de un "requerimiento" (request) del
cliente aceptando los parámetros y la dirección asignada.
Una vez que el cliente acepta los parámetros ofrecidos, el
servidor le envía un mensaje de "ack" o Acknowledgement es
decir de recibido completando el proceso.
Es posible configurar más de un servidor de DHCP en la red pero estos no
podrán compartir el mismo conjunto (pool) de direcciones y también se puede
dedicar una IP fija a un cliente si fuera necesario. Todo esto se especifica
dentro del archivo de configuración.
Veamos ahora como se instala el servidor de DHCP en un servidor Linux
usando, en este caso usando webmin.
Se debe verificar si DHCP está instalado en el servidor para lo cual de clic en
comprobación
Los pasos son:
Se debe verificar si DHCP está instalado en el servidor con el comando
rpm -q dhcp
a lo cual el sistema responde dependiendo si está o no instalado.
Si está instalado responde algo como:
dhcp-3.0.2-12
Si no está instalado responde :
package dhcp is not installed
Vamos a suponer que no está instalado y conoceremos la manera de hacerlo la
cual se aplica para cualquier programa que venga en los discos de distribución,
Plataformas Tecnológicas y Gestión _ imprimible
19 de 115
ejemplo que servirá para cualquier necesidad posterior. Esto se encuentra en el
documento dhcp-instalacion.pdf
L
La explicación que se acaba de ver en este documento dhcpinstalacion.pdf se asume leída de tal manera que cuando más
adelante necesitemos instalar otro paquete haremos mención de
él y si acaso indicaremos el sitio del paquete que se requiera
instalar más no el procedimiento.
Ahora continuemos con el proceso.
Se debe cargar webmin desde el navegador usando la dirección de web
http://servidor:10000 en donde servidor es el nombre del host. En el caso de
este demo es http://linux.domain.com.co:10000
Inmediatamente debe aparecer el interfaz de autenticación de webmin a lo cual
se debe responder con admin/password en donde admin es la cuenta del
usuario y password es la contraseña del administrador, con la que se
configuró webmin cuando se instaló.
Una vez cargue el interfaz de webmin se debe escoger Servidores/Servidor
de DHCP y entonces debe aparecer el siguiente interfaz:
Plataformas Tecnológicas y Gestión _ imprimible
20 de 115
Añadir una nueva
subred
Para facilitar la explicación se mostrarán las diferentes pantallas que se deben
llenar para el caso sencillo de esta explicación.
Aquí se tiene un servidor Linux con dirección IP fija 192.168.100.3 es decir que
su subred es 192.168.100.0 y queremos que cualquier pc que se conecte con
la opción de DHCP es decir que no tenga un IP fijo se le asigne el IP de
manera automática por este servidor. El dominio es domain.com.co y el
nombre del host es linux.
Escoja Añadir una Nueva subred y entre los datos que se observan en la
pantalla:
Plataformas Tecnológicas y Gestión _ imprimible
21 de 115
Recopilando lo que se debe entrar es:
192.168.100.0
192.168.100.25 192.168.100.35 es decir que es un
rango de 11 direcciones en este caso de la 25 a la
35.
255.255.255.0 es decir una red de clase C.
de 86400 segundos es decir 24 horas
por
Dirección de Red
Rango de direcciones
Máscara de red
Tiempo
arrendamiento
defecto
Máximo tiempo de 86400 segundos es decir 24 horas
arrendamiento
linux
Nombre del servidor
Existen más campos que no se explicaran pero que denotan las múltiples
opciones que tiene dhcp y que deben ser estudiadas cuando se estudie de
manera detallada el protocolo y que que no es parte de este curso el
profundizar.
Para terminar y una vez esté seguro que los datos son correctos se debe
seleccionar el botón de Salvar.
Volviendo al interfaz de inicio seleccionar Edit Network Interface y seleccionar
la tarjeta de red que se va a usar eth0, eth1, etc. En este caso que solo se ve
una se selecciona eth0
Plataformas Tecnológicas y Gestión _ imprimible
22 de 115
Seleccionar Salvar una vez se marque la interface.
Volver al Interfaz de inicio y seleccionar Editar Opciones de Cliente para
definir los datos generales de comportamiento de dhcp:
Plataformas Tecnológicas y Gestión _ imprimible
23 de 115
Los datos entrados fueron:
Máscara de la subred
Nombre del dominio
Enrutador por defecto
Dirección propaganda o Broadcast
Servidores DNS si los hubiera
255.255.255.0
domain.com.co
192.168.100.3
192.168.100.255
En este caso 192.168.100.3.
Como aun no se ha hablado de DNS
en detalle se puede dejar en blanco.
Volver al Interfaz de inicio y seleccionar Listar arrendamiento activos y
observará que no aparece ninguna información por ahora.
Ahora en la pantalla del Interfaz inicial de Webmin seleccione Aplicar Cambios
lo cual arrancará el sistema dhcp es decir hará lo equivalente al comando
/etc/rc.d/init.d/dhcpd start
Sin embargo pueden suceder cosas extrañas como que el sistema diga que
hay un error y no puede activarlo. En Fedora 4 el Firewall del sistema casi
siempre tiene deshabilitado el dhcp en un sitio u poco misterioso que vamos a
descubrir ahora. En el interfaz gráfico KDE o Gnome en este caso seleccione
Escritorio / Configuración del sistema/Nivel de seguridad. El sistema le
pedirá el password de root y aparece un interfaz. Seleccione la pestaña
SELinux e Inhabilite la protección de dhcp y de aceptar a esa ventana.
Plataformas Tecnológicas y Gestión _ imprimible
24 de 115
Nuevamente seleccione Aplicar en el interfaz inicial de Webmin y dhcp debe
levantar (arrancar).
Ahora vaya a un pc en Windows que esté en la red y configure la tarjeta de red
como DHCP lo cual se asume que se sabe hacer. Sin embargo miremos el
proceso que se hace en Windows para hacerlo:
Primero se selecciona la ventana de Conexión de red en Windows:
Plataformas Tecnológicas y Gestión _ imprimible
25 de 115
Se selecciona con el botón derecho del mouse la tarjeta de red y Propiedades
para que aparezca:
Plataformas Tecnológicas y Gestión _ imprimible
26 de 115
En la ventana de atrás se selecciona Protocolo Internet (TCP/IP) y el botón de
Propiedades para que aparezca la pantalla de adelante en la que se
selecciona Obtener una dirección IP Automáticamente es decir usar DHCP y
aceptar. Finalmente se cierra la ventana que queda expuesta y el sistema
configura esa tarjeta DHCP.
Si se obtiene una pantalla de comandos en el pc de Windows y se da ipconfig
observe que ya aparece un IP para ese equipo tomado del Pool de direcciones
con el que se configuró el servidor Linux para dhcp. En el caso que estamos
viendo el IP es 192.168.100.135
Plataformas Tecnológicas y Gestión _ imprimible
27 de 115
Volviendo entonces a Linux y a Webmin vaya al interfaz inicial y seleccione
Listar arrendamientos activos y se dará cuenta que ya parece capturado por
dhcp la información de configuración de ese pc:
☺
Hemos instalado DHCP en Linux...... !
Pero no nos olvidemos de la línea de comandos. Webmin lo que ha hecho es
administrarnos el archivo de configuración de dhcp que está localizado en
/etc/dhcp.
Lístelo y encontrará esto:
28 de 115
Plataformas Tecnológicas y Gestión _ imprimible
server-name "linux";
option domain-name-servers 192.168.100.3;
option domain-name "domain.com.co";
option broadcast-address 192.168.100.255;
option subnet-mask 255.255.255.0;
option routers 192.168.100.3;
ddns-update-style none;
subnet 192.168.100.0 netmask 255.255.255.0 {
max-lease-time 86400;
default-lease-time 86400;
server-name "linux";
range 192.168.100.25 192.168.100.35;
Y hubiéramos obtenido lo mismo que hicimos con Webmin si manejáramos
bien las directivas de configuración.
2.1.1 Resumen
Hemos estudiado la primera plataforma de Linux en este caso DHCP para la
asignación dinámica de memoria con explicaciones sobre los fundamentos del
protocolo, qué se espera de este servicio, algunas limitaciones y
funcionalidades.
Una vez explicado el concepto se ha trabajado el proceso de instalación paso a
paso con explicaciones detalladas sobre los datos que se le deben dar a
webmin para que actualice el archivo de configuración de DHCP.
Una vez configurado se ha explicado la manera de configurar un pc con
Windows para que se conecte como un cliente DHCP de nuestro servidor
DHCP recién configurado y se ha demostrado cómo el sistema asigna
dinámicamente la dirección.
Finalmente hemos mirado cómo quedó el archivo de configuración como una
muestra del trabajo de webmin para concluir que se hubiera podido trabajar
manualmente si tuviéramos más elementos para hacerlo.
2.1.2 Ejercicio
De acuerdo con lo aprendido en el documento dhcp-intalacion.pdf en la sección
llamada Instalación de paquetes usando rpm, a continuación mostramos
varias acciones que son frecuentes, indique con cual de las dos posibilidades
mostradas se debería usar rpm para obtener lo que se desea.
Acción deseada
Opción de rpm Opción
rpm
Averiguar si existe un paquete
-q
-e
Actualizar un paquete
-U
-a
de
29 de 115
Plataformas Tecnológicas y Gestión _ imprimible
Acción deseada
Opción de rpm Opción
rpm
Borrar un paquete
-d
-e
Información de paquetes
-inf
.qi
Archivos de un paquete
-ql
-f
Estado de los archivos
-qs
-st
Documentación de los paquetes
-do
-qd
Ejecutar el comando de manera -v
“verbose” es decir con información del
proceso
-V
Mostrar barra del proceso
-b
-h
de
2.2 Servidor de nombre de dominios:DNS http://es.wikipedia.org/wiki/DNS
Manejar los IP's en una red muy grande manteniendo la base de datos de
nombres de cada máquina en el archivo /etc/hosts es muy complejo de
manejar debido a que habría que actualizar cada una de ellas cada vez que se
agregue un equipo a la red.
Por ese motivo se creó el servicio de DNS dentro de TCP/IP.
La idea es que uno de los equipos contenga esa base de datos distribuida para
darle el servicio de resolver los nombres a todos los equipos de la red. Ese
computador se llama servidor primario de nombres de dominios. Pueden existir
varios de ellos llamados secundarios.
De esa manera si un servicio de TCP/IP solicita el servicio de buscar el IP de
logicasoftware.domain.com, el servidor de DNS primario busca en la base de
datos el IP que le corresponde.
En el diagrama adjunto se puede observar la secuencia desde que un pc
solicita un IP, acción que se inicia cuando por ejemplo se direcciona un sitio de
internet en el navegador con http://servidor.com
Esa solicitud se envía por la red diciendo “Ahí va el dominio” para que el
Servidor de Nombres de Dominio lo resuelva enviando el IP que le
corresponde.
Para entender más de qué se trata el DNS es necesario estudiar algunas
Plataformas Tecnológicas y Gestión _ imprimible
30 de 115
definiciones relacionadas con lo que se llama el Espacio de Nombre de
Dominio que son nombres encadenados en forma de un árbol invertido.
Cuando nos referimos a www.google.com, por ejemplo, estamos haciendo
referencia a un árbol cuya raíz es www seguido por los nombres google y com
cadena que se llama un Nombre de Dominio.
En este diagrama se puede observar la estructura de ramas del árbol usado
por internet en donde cada nodo tiene un nombre y se observan los dominios
de la parte superior que son usados tradicionalmente en internet.
El dominio de una universidad puede ser por ejemplo: universidad.edu.co en
donde co se refiere a Colombia lo cual proviene de las normas de ISO 3166 y
en la cual se usa au para Australia, ar para Argentina, es para España etc.
Los servidores que almacenan información de los Espacios de Nombres de
Dominios se llaman Servidores de Nombres y almacenan partes de los
espacios de nombres llamados Zonas que se cargan de otros Servidores. El
Servidor de Nombres de una Zona se le denomina una Autoridad de la Zona.
El servicio de DNS, es decir el programa en Linux, se llama named y
corresponde a un paquete llamado BIND - Berkeley Internet Name Domain
http://es.wikipedia.org/wiki/BIND que es el software de más uso para este
servicio en internet. Se puede configurar de varias maneras, instalando el
binario con el comando rpm o compilando los fuentes.
Para conocer el procedimiento para averiguar si el named está instalado en
Linux de clic en comprobación
Para averiguar si el named está instalado en Linux se usa el comando:
rpm -q bind
Si no está instalado el sistema responde:
package bind is not installed
Si está instalado responde:
bind-9.3.1-4
En donde los números corresponde a la versión del paquete.
No se deje confundir por los nombres. DNS, Bind, named que son términos
equivalentes.
Para instalarlo recuerde las indicaciones hechas en el documento dhcpinstalacion.pdf en el cual aprovechando el ejemplo de dhcp se enseña cómo
instalar software usando el interfaz gráfico.
31 de 115
Plataformas Tecnológicas y Gestión _ imprimible
L
La configuración manual es difícil y engorrosa por lo que se
recomienda usar alguna ayuda de tipo gráfico que en este caso
será webmin, pero trataremos de seguirle la pista a los
archivos de configuración de alguna manera.
Para comenzar a analizar la configuración de named, se tiene el archivo básico
que es
/etc/named.conf
que contiene muchas directivas que iremos analizando.
Una de ellas se ve así:
options {
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
};
En donde:
directory "/var/named"
dump-file "/var/named/data/cache_dump.db"
statistics-file "/var/named/data/named_stats.txt"
Se refiere al directorio
dentro de Linux en
donde
están
los
archivos
de
configuración.
Se refiere a la base de
datos de volcado es
decir en donde named
guarda su estado en
caso de aborto.
Se refiere al archivo de
estadísticas.
Todo lo que se va a hacer para configurar DNS quedará en /var/named y al
utilizar webmin este cambiará algunos de estos parámetros como
observaremos al terminar la configuración.
Plataformas Tecnológicas y Gestión _ imprimible
32 de 115
Se debe cargar webmin: http://servidor:10000 y seleccionar el botón de
Servidores.
Seleccionar el icono Servidor de DNS BIND:
Crear una
nueva zona
Plataformas Tecnológicas y Gestión _ imprimible
33 de 115
Lo primero que se debe hacer es crear una Zona Maestra seleccionando Crear
una nueva Zona Maestra. La Zona Maestra permitirá indicar cuál es el
dominio que administrará este servidor.
Para el ejemplo se tiene un Servidor Linux cuyo dominio es domain.com.co y
manejará nombres de servidores como linux y fedora4 cuyos nombres
completos denominados como Nombre de dominio totalmente cualificados o
FQDN (fully qualified domain name) serán linux.domain.com.co y
fedora4.domain.com.co
Se deben entrar los siguientes datos:
Nombre de dominio de red
Servidor Maestro
Dirección de correo
Seleccionar el botón Crear.
domain.com.co
linux.domain.com.co
manuel, que es la cuenta del administrador
del sistema
Plataformas Tecnológicas y Gestión _ imprimible
34 de 115
Aparece el interfaz para Editar Zona Maestra:
Si desea puede indagar que contiene cada uno de estos íconos.
Hemos hablado de cómo el DNS nos va a resolver el problema que a partir de
un nombre se busque el número IP correspondiente. Sin embargo, hacer lo
contrario es decir buscar el Nombre del Dominio a partir del IP es una tarea
necesaria en estas bases de datos pero no es trivial lograrlo. Para ellos existe
la forma de indexar los datos creando una parte del espacio de nombres de
dominio que direccione esas etiquetas el cual en Internet tiene un nombre
complicado que proviene de los orígenes del proyecto Arpanet: dominio inaddr.arpa
Veamos un ejemplo: si linux.domain.com.co tiene la dirección IP
192.168.100.3
el
correspondiente
subdominio
in-addr.arpa
es
3.100.168.192.in-addr.arpa
Por eso se habla de crear una Zona reversa seleccionando nuevamente la
opción Crear una nueva Zona Maestra desde el Servidor de DNS Bind tal
como acabamos de hacer para Crear la Zona Maestra anteriormente explicada,
solo que como se verá en la explicación siguiente se escoge la opción de crear
la Inversa.
Plataformas Tecnológicas y Gestión _ imprimible
35 de 115
Los datos que se deben dar son:
L
Seleccionar la casilla Inversa frente al Tipo de Zona!!!
Nombre de dominio de la red 192.168.100
linux.domain.com.co
Servidor Maestro
manuel, en este ejemplo
Dirección de correo
Seleccionar el Botón Crear y aparecerá la ventana de Edición:
Plataformas Tecnológicas y Gestión _ imprimible
Volver al interfaz del Servidor DNS Bind:
36 de 115
Plataformas Tecnológicas y Gestión _ imprimible
37 de 115
Ya aparecen los íconos de nuestras Zonas: 192.168.100 y domain.com.co
L
Observe que no es el IP completo 192.168.100.3 sino
la parte correspondiente a la subred 192.168.100!!
Recordemos que vamos a tener un servidor llamado linux y otro llamado
fedora4 en esta Zona. Vamos a editar la zona domain.com.co que aparece en
esta ventana para crear servidores y aparece:
Plataformas Tecnológicas y Gestión _ imprimible
38 de 115
Plataformas Tecnológicas y Gestión _ imprimible
39 de 115
Vamos a crear el registro del servidor linux, seleccionando A se despliega esta
pantalla
Plataformas Tecnológicas y Gestión _ imprimible
40 de 115
Entramos el Nombre y la Dirección del servidor llamado linux como se ve en el
interfaz. Seleccionar Crear y aparece:
En donde ya se observa en la parte inferior el servidor linux creado.
Plataformas Tecnológicas y Gestión _ imprimible
41 de 115
A veces se desea llamar a ese servidor con varios nombres diferentes. A esto
se le llama un Alias. Procederemos a crearle un alias llamado fedora4,
volviendo a la ventana para Editar Zona Maestra:
Escoger CN (Canonical Name) o sea Alias de Nombres:
Plataformas Tecnológicas y Gestión _ imprimible
Crear en Nombre: fedora4 y poner en el nombre de red: linux
42 de 115
Plataformas Tecnológicas y Gestión _ imprimible
43 de 115
DNS ofrece la posibilidad de especificar un servidor para envío de correos. A
esto se le llama crear el Registro MX lo cual se hace regresando al la ventana
de Editar Zona Maestra:
Seleccionar MX o sea Servidor de Correo.
Plataformas Tecnológicas y Gestión _ imprimible
Indicar que el servidor de correo será el servidor llamado linux.
Seleccionar el botón Crear y aparece:
44 de 115
Plataformas Tecnológicas y Gestión _ imprimible
45 de 115
Que como se puede ver ya incluye el dato configurado sobre el servidor de
correo.
Nos falta ahora decirle al sistema quien es el servidor de DNS seleccionando
la Opción de Configuración de Red de la siguiente pantalla:
Plataformas Tecnológicas y Gestión _ imprimible
Al seleccionar Configuración de red aparece:
46 de 115
Plataformas Tecnológicas y Gestión _ imprimible
47 de 115
Seleccionar Cliente DNS
Los datos que se dan en esta ventana para indicar cuál es el servidor DNS son:
Nombre de la máquina
Servidor DNS
Orden de resolución Hosts y DNS
linux.domain.com.co
192.168.100.3
que indica primero buscar
/etc/hosts y después en DNS
en
Plataformas Tecnológicas y Gestión _ imprimible
48 de 115
Servidores DNS: 192.168.100.3 pero pueden haber más de uno que se llaman
secundarios. Al Salvar se crea el archivo /etc/resolv.conf que contiene algo
como esto:
nameserver
192.168.100.3
domain
domain.com.co
y /etc/nsswitch.conf
Plataformas Tecnológicas y Gestión _ imprimible
49 de 115
Ahora estamos listos para arrancar el servidor de DNS:
Arrancar Servidor
de Nombres
Seleccionando Arrancar Servidor de Nombres.
Vienen luego algunas pruebas de su funcionamiento entrando a una pantalla
de comandos y usando el programa nslookup tal como se muestra en esta
sesión de comandos:
Comando
Explicación
# nslookup
Comando
para
hacer
búsquedas de Dominios de
Internet
> linux
Server:
Address:
192.168.100.3
192.168.100.3#53
Name: linux.domain.com.co
Address: 192.168.100.3
> fedora4
Server:
Address:
Dentro de nslookup se dan los
comandos
después
del
carácter >
En este caso se indaga por el
servidor linux y el sistema
responde con todos sus datos
Se indaga por el alias fedora4
192.168.100.3
192.168.100.3#53
fedora4.domain.com.co
linux.domain.com.co.
canonical name =
Plataformas Tecnológicas y Gestión _ imprimible
Comando
50 de 115
Explicación
Name: linux.domain.com.co
Address: 192.168.100.3
Se indaga por el IP y responde
lo que el DNS sabe incluyendo
la dirección de reversa
> 192.168.100.3
Server:
192.168.100.3
Address:
192.168.100.3#53
3.100.168.192.in-addr.arpa
linux.domain.com.co.
name =
Con estas comprobaciones podemos estar seguros que el Servidor DNS está
operando.
Observemos el estado final de algunos de los archivos de configuración:
Archivo de configuración Contenido después de configurado
de named
options {
directory "/etc";
pid-file "/var/run/named/named.pid";
Contiene los datos de las
};
zonas, observe que los
archivos de configuración se
zone "domain.com.co" {
direccionan a /var/named
type master;
file "/var/named/domain.com.co.hosts";
Sin embargo en /var/named
};
solo aparece un directorio
llamado chroot. Dentro de él zone "100.168.192.in-addr.arpa" {
type master;
está var y es allí en donde
file "/var/named/192.168.100.rev";
residen
los
archivos
};
realmente
Archivo /etc/named.conf
Archivo
domain.com- $ttl 38400
domain.com.co. IN
SOA linux.domain.com.co.
co.hosts
/var/named/chroot/var/name manuel (
1136503898
d/domain.com.co.hosts
10800
3600
Los significados de algunas
604800
especificaciones son:
38400 )
domain.com.co. IN
NS
linux.domain.com.co.
IN: se refiere a Internet.
linux.domain.com.co. IN
A
192.168.100.3
CNAME linux
SOA: tipo de registro Start of fedora4.domain.com.co. IN
MX
1 linux
Authority o Comienzo de domain.com.co. IN
Autoridad.
linux.domain.com.: este es
el nombre del Servidor de
Plataformas Tecnológicas y Gestión _ imprimible
Archivo de configuración Contenido después de configurado
de named
nombres primario que en
nuestro caso es este.
Observe el punto al final del
nombre. Se debe mantener.
NS: significa Name Server o
sea Nombre del Servidor y
se incluye en cada archivo
CNAME: Canonical Name o
nombre del servidor. En este
caso indica que fedora4 es
un alias de linux.
MX: Registro para el correo
electrónico
indicando
el
nombre del servidor que lo
maneja
Dentro
de
paréntesis
aparecen
los
datos
relacionados con variables
de afinamiento:
serial: número de serie.
refresh:
número
de
segundos después de los
cuales el sistema refresca
sus datos.
retry: número de segundos
para hacer reintentos cuando
no haya respuestas a los
requerimientos hechos al
servidor.
refresh:
tiempo
refrescamiento.
de
default_ttl:
número
de
segundos del llamado time to
live o tiempo de vida que es
el tiempo de espera máximo
para que si no hay respuesta
muera la conexión e intente
otra vez
51 de 115
52 de 115
Plataformas Tecnológicas y Gestión _ imprimible
Archivo de configuración Contenido después de configurado
de named
/var/named/chroot/var/name $ttl 38400
d/192.168.100.rev
100.168.192.in-addr.arpa.
IN
linux.domain.com.co. manuel (
Dirección reversa
1136504390
10800
3600
604800
38400 )
100.168.192.in-addr.arpa.
IN
linux.domain.com.co.
3.100.168.192.in-addr.arpa. IN
linux.domain.com.co.
SOA
NS
PTR
Finalmente para rematar el tema recordemos este servicio se puede parar o
arrancar con webmin pero también se puede usar la linea de comandos. Hay
varias formas
Arrancar named
#/etc/rc.d/init.d/named start
o
#/sbin/service named start
Parar named
#/etc/rc.d/init.d/named stop
o
#/sbin/service named stop
Al arrancar debe aparecer:
Starting named:
[ OK ]
Al parar named debe aparecer:
Stoping named:
[ OK ]
2.2.1 Resumen
Se ha explicado el significado del Domain Name Server – DNS y la manera
como opera. Igualmente se ha hecho el trabajo de configurarlo utilizando
webmin.
Plataformas Tecnológicas y Gestión _ imprimible
53 de 115
Se mostró la manera de operar nslookup para probar la configuración del DNS
Durante esta sección se dieron algunas definiciones fundamentales para
entender este concepto como los Espacio de Nombre de Dominio, las Zonas, el
árbol de organización, las direcciones reversas, los archivos de configuración
como /etc/named.conf, /etc/resolv, /var/named
Igualmente se definieron algunas de los términos que usa el DNS dentro de
estos archivos de configuración como: IN, SOA, NS, CNAME,MX, serial,
refresh, retry, refresh, default_ttl.
La sección termina mostrando los contenidos de los archivos de configuración
tal como los actualizó webmin y recordando la manera de arrancar y parar el
servicio.
2.3 Shel Seguro – ssh
Tradicionalmente Linux ha utilizado una serie de comandos para conectarse de
manera remota a un servidor como son el caso de telnet para hacer conexión,
ftp para transportar archivos remotamente y otros como rlogin para conexión
remota, rsh para el manejo de líneas de comando de manera remota los cuales
tienen el inconveniente de no ser seguros debido a que la información no se
transporta de manera encriptada.
ssh en cambio usa el algoritmo de encriptación
pública RSA
http://en.wikipedia.org/wiki/Rsa#Operation que es un estándar en la industria.
Con ssh toda la comunicación será encriptada con la conveniencia adicional de
poder interactuar de manera gráfica a través de Xwindows pues la variable de
entorno DISPLAY puede ser compartida.
Por ser un programa que viene instalado en Linux por defecto no entraremos
en el detalle en su configuración sino en su uso. De todas maneras debemos
saber que el programa servidor tiene un archivo de configuración en
/etc/ssh/ssh_config y que también se puede administrar desde Webmin.
Igualmente puede ser activado usando los comandos:
/etc/rc.d/init.d/sshd start
/sbin/service sshd start
o parado usando stop en lugar de start
Para usar ssh se requiere que esté instalado openssh-server como servidor y
openssh-clients como cliente lo cual se puede ver con los comandos:
# rpm -q openssh-server
openssh-server-4.0p1-3
Plataformas Tecnológicas y Gestión _ imprimible
54 de 115
# rpm -q openssh-clients
openssh-clients-4.0p1-3
Para el laboratorio que haremos en este subtema debemos usar un servidor
remoto que probablemente no esté a su disposición en este momento.
Para esto aprovecharemos la capacidad de Linux de ser cliente y servidor a la
vez de tal manera que al conectarnos al mismo servidor de trabajo él entenderá
cuando se es cliente o servidor. En resumen no se necesita otra máquina para
practicar estos comandos.
A continuación se detallan las siguientes acciones:
Conexión a un servidor remoto usando ssh
Ejecutar comandos de manera remota
Copiar archivos de manera remota
Sesiones de transporte de archivos usando ssh
Conexión a un servidor remoto usando ssh
La manera de conectarse a un servidor remoto es:
$ ssh linux.domain.com.co
La primera vez sale un mensaje como este:
The authenticity of host 'linux.domain.com.co (192.168.100.3)' can't be established.
RSA key fingerprint is 56:87:fc:04:98:b5:e8:92:3d:39:05:c3:8e:e8:50:cd.
Are you sure you want to continue connecting (yes/no)?
Dar yes y el sistema solicita el password del usuario que esa al entrar:
Warning: Permanently added 'linux.domain.com.co,192.168.100.3' (RSA) to the list of
known hosts.
[email protected]'s password:
Y responde:
Last login: Fri Jan 6 14:25:18 2006
Dejando un prompt de este estilo:
[manuel@linux ~]$
55 de 115
Plataformas Tecnológicas y Gestión _ imprimible
Desde ese momento se es usuario remoto del servidor linux.domai.com.co;
en este caso como usuario manuel el cual debe estar creado como tal en el
servidor remoto, pero si se desea entrar como otro usuario se puede dar el
comando:
$ ssh [email protected]
[email protected]'s password:
Last login: Wed Jan 4 00:23:17 2006
[root@linux ~]#
No olvidar que para salir de una sesión ssh se usa el comando exit dentro del
prompt remoto.
Ejecutar comandos de manera remota
Muchas veces no es necesario entrar a un servidor para ejecutar un comando
sino basta indicarlo de manera directa y remota. Por ejemplo su queremos ver
que programas .conf existen en el directorio remoto /etc se usaría este
comando:
$ ssh linux.domain.com.co
/etc/*.conf
ls
A continuación el sistema remoto pide la contraseña:
[email protected]'s
password:
Y si la contraseña es correcta ejecuta el comando mostrando los archivos del
caso.
Copiar archivos de manera remota
Para hacer esta prueba debe crear en su directorio raíz /home/usuario un
archivo que llamaremos pruebassh con el comando >pruebassh o touch
pruebassh. Lo que se va a hacer es copiar el archivo desde el cliente hacia el
servidor remoto linux.domain.com.co dejándolo en un directorio equivalente
pero con el nombre pruebasshsal. Para esto usaremos el comando de ssh
llamado scp
$
scp
pruebassh
[email protected]:/home/manuel/pruebasshsal
[email protected]'s password:
pruebassh
100% 0 0.0KB/s 00:00
Para comprobar si el comando se ejecutó entre al servidor y teclee:
Plataformas Tecnológicas y Gestión _ imprimible
56 de 115
$ ls pr*
y debe salir:
pruebassh
pruebasshsal
Sesiones de transporte de archivos usando ssh
En reemplazo del comando tradicional de Unix y Linux para el transporte de
archivos llamado ftp, ssh usa uno llamado sftp que mantiene las
características de seguridad de ssh y las bondades altamente conocidas de
ftp.
La manera de conocer sobre su funcionamiento sin convertir el curso en un
manual o tutorial completo es observando cómo se comporta una sesión
normal.
Continuemos utilizando el servidor linux.domain.com.co de los ejemplos e
iniciemos conectándonos a él como servidor sftp:
$ sftp linux.domain.com.co
Connecting to linux.domain.com.co...
[email protected]'s
password:
Después de dar la contraseña aparece el prompt de sftp listo para recibir los
comandos y probemos help como primero de ellos para conocer los comandos
disponibles:
sftp>
Available commands:
cd path
Change remote directory to 'path'
lcd path
Change local directory to 'path'
chgrp grp path
Change group of file 'path' to 'grp'
chmod mode path
Change permissions of file 'path' to 'mode'
chown own path
Change owner of file 'path' to 'own'
help
Display this help text
get remote-path [local-path] Download file
lls [ls-options [path]]
Display local directory listing
ln oldpath newpath
Symlink remote file
lmkdir path
Create local directory
lpwd
Print local working directory
ls [path]
Display remote directory listing
lumask umask
Set local umask to 'umask'
mkdir path
Create remote directory
Plataformas Tecnológicas y Gestión _ imprimible
57 de 115
progress
Toggle display of progress meter
put local-path [remote-path] Upload file
pwd
Display remote working directory
exit
Quit sftp
quit
Quit sftp
rename oldpath newpath
Rename remote file
rmdir path
Remove remote directory
rm path
Delete remote file
symlink oldpath newpath
Symlink remote file
version
Show SFTP version
!command
Execute 'command' in local shell
!
Escape to local shell
?
Synonym for help
Cómo puede observarse estos comando nos permiten movernos dentro del
servidor remotos y ejecutar comandos del sistema con algunas limitaciones
propias del hecho que es una sesión de ftp nada más.
Los dos comandos más significativos son get que permite traer desde el
servidor remoto un archivo al pc del usuario y put que permite poner en el
servidor un archivo que está en el pc del usuario.
Recuerde que para salir del sftp se usa el comando quit o exit.
2.3.1 Resumen
Hemos visto el funcionamiento de ssh un programa que permite la
comunicación remota desde un cliente hacia un servidor con las
funcionalidades de telnet y ftp pero con la característica de comunicarse de
manera encritptada haciendo de esta una comunicación segura.
Teniendo en cuenta que viene ya listo para su uso nos concentramos en la
forma de utilizarlo más que en la forma de configurarlo y después de las
explicaciones básicas se procedió a hacer una serie de ejercicios prácticos
como método para aprender su manejo.
Se ha aprendido a usarlo para entrar al servidor para usar sus comandos,
ejecutar comandos de manera remota sin ingresar como un cliente conectado,
a hacer copias de archivos remotos, a hacer ftp’s para bajar y subir información
y en general a vislumbrar el potencial tan grande que nos da este comando
para administrar un servidor de menara remota..
2.3.2 Ejercicio
Ubique cada palabra en orden para formar una frase referida a ssh. Haga clic
sobre la palabra para irla añadiendo a la frase. Cuando usted crea que su
respuesta es correcta, haga clic en “revisar” para verificar su respuesta. Si tiene
problemas, haga clic en “pista” para saber cuál es la palabra que sigue en la
frase.
Plataformas Tecnológicas y Gestión _ imprimible
58 de 115
ssh usa el algoritmo de encriptación pública RSA
2.4 Servidor de web: Apache
Cuando un usuario se conecta a un servidor de internet utilizando un
navegador, lo hace especificando una dirección al estilo http://www.sitio.com/
por ejemplo. Esta dirección se llama el URL que en inglés se traduce como
Universal Resource Locator es decir Localizador Universal de Recursos.
Si descomponemos este URL en sus elementos podríamos hacerlo de la
siguiente manera:
<método>://<servidor>/<directorio absoluto>
y cada componente tiene el siguiente significado:
<método>: es la cadena de caracteres http http://es.wikipedia.org/wiki/Http que
son la sigla de Hypertext Transfer Protocol o sea Protocolo de Transferencia de
Hypertexto.
<servidor>: es el nombre del computador al cual nos estamos conectando que
en este caso es www.sitio.com cuyo IP debe se resuelto por un servidor de
Nombres de dominio o DNS como ya lo hemos visto.
<directorio absoluto>: que en este caso es / o sea el directorio raíz pero que
podría ser /algo en donde algo es un directorio ubicado en el directorio raíz del
cual hablaremos en este subtema..
Para que el servidor remoto obedezca esta solicitud de servicio debe manejar
el protocolo http dentro de sus servicios instalados de tal manera que si en el
navegador usamos el protocolo HTTP/1.1, este le enviará al servidor los
siguientes requerimientos de servicio:
GET / HTTP/1.1
El servidor identificado con el nombre de dominio www.sitio.com se encuentra
"escuchando" los requerimientos de servicio http por el puerto 80 si este
servicio se ha configurado de manera estándar con lo que la información se
transmite de manera no segura es decir en texto plano que puede ser leído en
cualquier momento por terceros o por el puerto 443 cuando la información se
transmite de manera segura es decir encriptada en cuyo caso el protocolo es
https. Se puede saber si un sitio es seguro o no mirando en el URL si aparece
http o https o gráficamente si el icono del candado del navegador está abierto
o cerrado.
El mensaje llega al servidor en tres partes que son un GET (leer), en este caso,
pero que puede ser una orden PUT (escribir), POST, Delete o CONNECT. Y el
Plataformas Tecnológicas y Gestión _ imprimible
59 de 115
Identificador de Recurso Uniforme /
El resultado de este intercambio es el de informar al servidor que se desea
traer un archivo que en este caso se transmite en el formato HTML
http://es.wikipedia.org/wiki/HTML , HyperText Markup Language o Lenguaje de
marcas de hipertexto.
Este archivo en HTML llega al cliente del navegador bien sea para desplegar
una página web en él o ejecutar un programa que venga dentro de él.
Y todo esto se logra gracias a la existencia del protocolo http en el servidor
como ya se dijo el cual es manejado y administrado por un software llamado
servidor de web. En Linux se llama Apache.
El primer servidor de web fue creado por el físico británico Tim Berners-Lee
http://es.wikipedia.org/wiki/Tim_Berners-Lee en el Centro Europeo de
Investigación Nuclear - CERN en Ginebra Suiza. El siguiente desarrollo e
iniciador de Apache se hizo en NCSA que es el Centro Nacional de
Aplicaciones para Supercomputadores por allá en el año 1995. Dada su
liberación como software libre se puede bajar desde http://www.apache.org
Su nombre no obedece a ninguna sigla en especial. Se dice que sus
desarrolladores estaban permanentemente aplicándole mejoras al sistema que
en inglés se denominan patches. Y al repetirlos se decía en inglés a patch, a
patch, a patch que terminó convergiendo en el nombre apache.
2.4.1 Archivos de configuración de Apache
Apache maneja dentro del servidor una serie de directorios en donde residen
las páginas web y los programas de las aplicaciones orientadas a la web cuya
ubicación puede variar según la distribución de Linux o las especificaciones
que se dan en el momento de compilarlo.
Para conocer la forma de averiguar si existe Apache dentro del servidor de clic
en comprobación
La manera de averiguar si existe Apache dentro del servidor si se usó rpm para
instalarlo es:
$ rpm
httpd
-q
en caso de existir el sistema responde:
httpd-2.0.5410
pero la versión puede variar según la versión de la Distribución usada.
60 de 115
Plataformas Tecnológicas y Gestión _ imprimible
Cuando se compila Apache desde los fuentes este viene en formato .gz como
este: httpd-2.0.54.tar.gz
La manera de compilarlo es:
gunzip httpd-2.0.54.tar.gz
aparece el archivo
descomprimir:
.tar
el
cual
se
debe
tar xvf httpd-2.0.54.tar
Aparece el directorio
debemos entrar:
httpd-2.0.54 al cual
cd httpd-2.0.54
y se ejecutan estos comandos como usuario root:
./configure –prefix=/www
make
make install
El parámetro –prefix determina en qué directorio debe quedar apache lo cual
es muy bueno saberlo para ubicarlo en donde se quiera y no dejar esta
decisión al sistema.
Dentro de /www, en este caso, aparecerán varios directorios:
bin cgi-bin error icons
include logs manual
lib
man
modules build conf
htdocs
Y aquí nos vamos a referir a algunos de ellos que son los esenciales dejando la
investigación completa a la consulta de los manuales de Apache.
/www
es la dirección en la cual está Apache instalado
y se identifica dentro del archivo de
configuración llamado httpd.conf con una
directiva llamada ServerRoot de la forma:
ServerRoot “/www”
/www/htdocs o /www/html
directorio en donde residen las páginas web y
que dentro del archivo de configuración de
Apache llamado httpd.conf se define en una
directiva llamada DocumentRoot su ubicación.
Por ejemplo ServerRoot “/www/htdocs”
Plataformas Tecnológicas y Gestión _ imprimible
61 de 115
directorio en donde está el archivo de
configuración httpd.conf lo cual se indica en la
directiva llamada ServerRoot en el archivo de
configuración httpd.conf
directorio en donde residen los programas de
las aplicaciones web indicado por la directiva
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
directorio en donde residen los programas de
Apache. Allí está por ejemplo apachectl que
sirve
para
arrancarlo
o
pararlo:
/www/bin/apachectl
start
o
/www/bin/apachectl stop
directorio en donde se graban las bitácoras de
Apache. Allí existen por ejemplo dos archivos
acces_log y error_log que si los mira con cat
verá las actividades de acceso y de errores
respectivamente.
/www/conf
/www/cgi-bin
/www/bin
/www/logs
En el caso de Fedora 4, Apache viene localizado en /var/www y el archivo de
configuración en /etc/httpd/conf/httpd.conf y para arrancar el servicio se
puede hacer de varias maneras:
/sbin/service httpd start
/etc/rc.d/init.d/httpd start
Para pararlo es igual pero con stop
Cuando se accede a un servidor de web como http:/www.google.com la
página que aparece en el navegador es index.html y está localizada en el
directorio que indique DocumentRoot allá en el servidor de google.
Para la administración de Apache es muy importante conocer las directivas que
se dan en httpd.conf así que mírelas con un editor de texto para ver el
contexto y estudie algunos de sus significados en el documento httpd.conf.pdf
anexo al curso.
Imaginémonos que se acaba de instalar Linux y queremos hacer un prueba
para verificar si Apache está en funcionamiento, de clic en comprobación para
conocer los pasos a seguir.
Los pasos son los siguientes:
a. Comprobar si está instalado: rpm -q httpd
b. Si no está instalado, instalarlo usando el procedimiento explicado en el
documento dhcp-instalacion.pdf
c. Editar como usuario root el archivo de configuración de Apache httpd.conf y
cambiar las directivas: User usuario, Group usuario, en donde usuario es su
Plataformas Tecnológicas y Gestión _ imprimible
62 de 115
cuenta de usuario, ServerName dominio. En donde dominio es el nombre de
su equipo o localhost. Se sugiere que siempre que se vaya a cambiar algún
archivo de configuración se copie el original con otro nombre para que en el
caso de cometer errores se pueda reconstruir. Por ejemplo cp
/www/httpd/conf/httpd.conf /www/httpd/conf/httpd.confini. Salvar el archivo
editado.
d. Arrancar Apache:
/sbin/service httpd start
o
/sbin/rc.d/init.d/httpd start
Debe aparecer un OK en color verde en la pantalla.
e. Arrancar la página de Apache desde el navegador: http://dominio y debe
aparecer. La palabra dominio puede ser linux.domain.com co o cualquier
otro dominio válido
Como se ha podido observar no hemos usado webmin pero conociendo las
definiciones que se han estudiado podríamos usarlo sin ningún problema.
2.4.2 Resumen
Se han dado las bases sobre lo que es un servidor de web concentrándose en
Apache el servidor de web de Linux. Se explicó la manera de instalarlo
compilando los programas aunque en Fedora4 ya viene instalado. Sin embargo
es conveniente mostrar como se hace para cuando se presente la necesidad
de hacerlo.
Se procedió a explicar la manera como Apache queda instalado en el servidor y
cuáles son sus principales directorios.
Se invitó a mirar el archivo de configuración httpd.conf y se sugirieron unos
cambios para arrancar el sistema haciendo énfasis en sus directivas en el
documento httpd.conf.pdf el cual tiene una explicación muy detallada de las
más importantes. Se enseñó a arrancar y apagar el servidor web y a entrar
para ver si operaba cargando la página inicial de Apache.
2.4.3 Ejercicios
No.1
Las directivas del archivo de configuración de Apache definen el
comportamiento del sistema. Las directivas tienen una denominación y un
parámetro. Escoja del menú de opciones el parámetro que corresponde a cada
denominación
Denominación
ServerRoot
Parámetro
“/etc/httpd"
Plataformas Tecnológicas y Gestión _ imprimible
ServerAdmin
Server Name.
Listen
63 de 115
root@localhost
80
linux.domain.com.co
“/etc/httpd"
root@localhost
80
linux.domain.com.co
“/etc/httpd"
root@localhost
80
linux.domain.com.co
“/etc/httpd"
root@localhost
80
linux.domain.com.co
No.2
Cuando se compila Apache se usa el comando
./configure –prefix=/www
Apache crea los siguientes directorios.
/www
Es el directorio en dónde quedará instalado Apache
/www/conf
Es el directorio de configuración
/www/bin
Es el directorio de los programas de Apache
/www/logs
Es el directorio de bitácora
Escoja del menú de oopciones cómo quedan los directorios si el
comando es ./ configure –prefix=/var
Es el directorio en dónde quedará /var/www
instalado Apache
/var/www/conf
/var/www/bin
/var/www/logs
Es el directorio de configuración
/var/www
/var/www/conf
/var/www/bin
/var/www/logs
Es el directorio de los programas de /var/www
Apache
/var/www/conf
/var/www/bin
Plataformas Tecnológicas y Gestión _ imprimible
64 de 115
Es el directorio en dónde quedará /var/www
instalado Apache
/var/www/conf
/var/www/bin
/var/www/logs
/var/www/logs
Es el directorio de bitácora
/var/www
/var/www/conf
/var/www/bin
/var/www/logs
2.5 Servidor de Correo: Sendmail
El correo electrónico es una de las aplicaciones más usadas a nivel mundial
pues fue el servicio escogido libremente por los usuarios de Internet lo cual
determinó el auge de la computación personal de Internet.
Utilizando el diagrama adjunto procederemos a dar las explicaciones
relacionadas con los servidores de correo que ayuden a tener claro el
concepto.
Se llama un MTA o Mail transfer agent http://es.wikipedia.org/wiki/MTA el
programa que maneja toda la comunicación en el servidor para transmitirla al
usuario quien se comunica desde un MUA: Mail User Agent
http://es.wikipedia.org/wiki/MUA.
Para Linux existen varios MTA’s como Sendmail, Qmail, Postfix siendo
Sendmail uno de los más populares razón por la cual le dedicaremos un
espacio en esta sección. Y los MUA’s más conocidos son Eudora, Outlook,
Netscape, Mozilla, Evolution, Pine.
SMTP o Simple mail Transfer Protocol es el protocolo de TCP/IP encargado
de la transmisión de correos.
pop3 http://es.wikipedia.org/wiki/POP3 e imap http://es.wikipedia.org/wiki/IMAP
son protocolos diseñados para la gestión de los correos y manejos de las
bandejas
en
los
agentes
de
los
clientes
Sendmail no es un programa orientado a que lo use el usuario directamente
pero se puede usar lo cual haremos en este momento solamente para ver
algunos aspectos de su funcionamiento y recibiremos el correo con el
programa de texto mail que viene en Linux.
Casi siempre que los usuarios oyen hablar del correo electrónico referencian
mentalmente al programa MUA que usan diariamente como es el caso del
Outlook de Microsoft que es tan popular para ellos. Si embargo nuestro tema
no estará concentrado en el MUA sino en el MTA y en este caso Sendmail. Los
Plataformas Tecnológicas y Gestión _ imprimible
65 de 115
MUA’s que se usan gráficamente casi siempre piden por configuración el MTA
que se va a usar y Sendmail en uno de ellos.
Una sesión con Sendmail utilizado como MUA requiere conocer algunos
comandos internos de smtp que se irán viendo en el ejemplo y que
quisiéramos que el estudiante lo practique como parte del curso.
Sendmail viene ya preinstalado para un uso básico así que solo
mencionaremos los pasos de comprobación como se ha hecho con las otras
plataformas:
a. Comprobar si está instalado: rpm -q sendmail
b.Si no está instalado, instalarlo usando el procedimiento explicado en el
documento dhcp-instalacion.pdf
c. Editar como usuario root el archivo de configuración de Sendmail
/etc/mail/sedmail.cf solo como ejercicio de comprobación sin hacer cambios.
Este es un archivo muy complejo que es preferible no tocar mientras no sea un
experto.
d. Arrancar Sendmail:
Forma 1:
/sbin/service sendmail start o
/etc/rc.d/init.d/sendmail start
Forma 2:
/sbin/service sendmail start o
/sbin/service sendmail stop
Debe aparecer un OK en color verde en la pantalla.
e. Como usuario normal, en el caso de este laboratorio, usaremos el usuario
manuel y para comprobar quien está como usuario usaremos este comando:
$
whoami
manuel
f. Activar sendmail para enviarle un correo al usuario manuel:
$ /usr/sbin/sendmail manuel
La pantalla queda en un renglón en blanco y el sistema espera los comandos
para enviar el mensaje para lo cual se introducen los datos aquí presentados:
Se debe terminar con . (punto) después de DATA y el texto del mensaje.
HELO linux.domain.com.co
Plataformas Tecnológicas y Gestión _ imprimible
66 de 115
MAIL FROM:[email protected]
RCPT TO:[email protected]
DATA
Este es un mensaje desde Sendmail
Para comprobar si esta funcionando
Adios...
.
Aparece el prompt
$
Ahora vamos a ver si el mensaje fue enviado y lo recibiremos con un MUA de
texto llamado mail que viene en Linux:
$ mail
Mail version 8.1 6/6/93. Type ? for help.
"/var/spool/mail/manuel": 1 message 1 new
>N 1 [email protected]. Sun Jan 8 15:22 20/775
&
Se debe responder con 1 después de & para ver el mensaje Número
1 y aparece:
1
Message 1:
From [email protected] Sun Jan 8 15:22:13 2006
Date: Sun, 8 Jan 2006 15:20:28 -0500
From: Manuel Davila Sguerra <[email protected]>
HELO linux.domain.com.co
MAIL FROM:[email protected]
RCPT TO:[email protected]
DATA
Este es un mensaje desde Sendmail
Para comprobar si esta funcionando
Adios...
&
Salir de este programa con:
quit
De esta manera ya sabemos que Sendmail está instalado.
Si quisiéramos configurar un MUA en Linux para recibir correos desde
linux.domain.com.co basta con configurar Evolution que viene en el sistema
y que se activa escogiendo en el entorno gráfico, Gnome en este caso:
Aplicaciones/Internet/Correo Electrónico y aparecerá el interfaz de
Evolution:
Plataformas Tecnológicas y Gestión _ imprimible
Escoger Preferencias para configurarlo.
67 de 115
Plataformas Tecnológicas y Gestión _ imprimible
68 de 115
Y dentro de la siguiente ventana escoger Añadir y entrar los datos que se
observan:
Plataformas Tecnológicas y Gestión _ imprimible
69 de 115
Nombre: [email protected]
Nombre completo: Su Nombre
Dirección de correo: [email protected]
La palabra usuario se debe reemplazar por el nombre de su cuenta. A
continuación escoger la pestaña Recibiendo mensajes y establecer la ruta del
Buzón: /var/mail/usuario
Finalmente vamos a determinar con qué MTA lo vamos a trabajar y escogemos
Sendmail como se ve en la ventana siguiente:
Plataformas Tecnológicas y Gestión _ imprimible
70 de 115
Hecho lo anterior se ha configurado el sistema de correos en forma básica
tanto para el MTA como para el MUA y ya se pueden enviar y recibir correos lo
cual lo puede practicar el estudiante en su equipo de manera local.
2.5.1 Resumen
En esta sección hemos estudiado lo que es el correo electrónico, primero
definiendo las diferencias entre el servidor de correo o MTA y el agente del
usuario o MUA los cuales debido a la acción del protocolo smtp permiten
manejar de manera integral el correo electrónico.
Una vez dadas las definiciones iniciales se procedió a trabajar con el MTA más
conocido como es Sendmail el cual dándole un uso de MTA y MUA nos sirvió
para estudiar algunos conceptos de cómo se comporta smtp para el envío de
correos.
Estos correos enviados se recibieron luego con mail un MUA de texto que
viene en Linux para comprobar que teníamos instalado y funcionando el
servidor de correo.
Finalmente se configuró Evolution, un agente de correo de usuario de tipo
gráfico con el cual cerramos el ciclo de aprendizaje de esta plataforma.
71 de 115
Plataformas Tecnológicas y Gestión _ imprimible
2.5.2 Ejercicio
No. 1
Los programas de correo que se mencionan tienen la característica de ser un
agente de correo de usuario MUA y de servidor MTA. Indique la característica
de cada uno de los mencionados a continuación escogiendo del menú de
opciones:
Programa
Tipo
Sendmail
MTA
MUA
Mozilla
MTA
MUA
Qmail
MTA
MUA
Outlook
MTA
MUA
Postfix
MTA
MUA
Evolution
MTA
MUA
No. 2
¿Cuáles maneras de arrancar el proceso de sendmail son válidas? Elija su
respuesta entre verdadero (V) o falso (F) de acuerdo con lo anteriormente
expuesto.
Maneras de arrancar el proceso de
sendmail
/sbin/service sendmail start
Verdadero
V
/etc/rc.d/init.d/sendmail init
/sbin/service sendmail start
/sbin/service sendmail stop
Falso
F
V
F
Plataformas Tecnológicas y Gestión _ imprimible
72 de 115
2.6 Servidor Proxy: SQUID http://es.wikipedia.org/wiki/Proxy: SQUID
http://es.wikipedia.org/wiki/Squid
El acceso a Internet a que están acostumbrados los usuarios en sus casas se
hace casi siempre utilizando un modem o un servicio de Internet por cable.
Esto sucede casi siempre en donde hay un solo equipo, el del usuario, y su
correspondiente conexión al Internet.
Qué ocurre cuando en una empresa hay cientos o miles de usuarios,
conectados en una red local y en dónde todos deben tener acceso a Internet?
En estos casos el nodo de Internet se ubica en un gran servidor que es el único
que realmente se conecta al ISP o Internet Service Provider (Proveedor de
servicio de internet). Los computadores de los usuarios se configuran para que
los navegadores de Internet o Intranet se conecten a través de la red a ese
servidor para que utilicen el Proxy que permitirá que finalmente entre al
Internet.
Tenemos entonces la primera característica de un Proxy que es un punto
común de entrada al Internet.
Esto permitirá entones crear mecanismos de seguridad de acceso porque
desde ese punto común va a ser fácil establecer algunas políticas para que se
asegure un acceso con menores riesgos y con políticas que reglamenten de
manera automática ese acceso.
Por otro lado si cada usuario cada vez que entra a un sitio del Internet repite el
proceso de ir al sitio de origen en donde encontrará las mismas páginas cada
vez hará de este proceso una tarea congestionada.
Existe entonces el concepto llamado memorias cache que son áreas en el
disco duro en donde residen las páginas más comunes de tal manera que al
hacer accesos repetidos desde un pc no tendrá que ir al sitio de origen fuera de
la red sino que encontrará esas páginas frecuentes en el disco duro del
servidor, es decir en las memorias cache.
Y todos esos servicios los presta un programa que es el que llamamos Proxy
Server.
Proxy.
Un proxy es un programa de computador que sirve como agente con autoridad
sobre otros que puede usar una memoria cache para agilizar la carga de datos.
Actúa como agente, aceptando requerimientos de los clientes (Navegadores) y
los pasa al servidor de Internet apropiado almacenando copias de los datos
(páginas web) en una memoria cache en disco. El verdadero beneficio del
Proxy aparece cuando los mismos datos son necesitados varias veces pues no
necesita ir a Internet cada vez sino que los trae de la memoria cache del disco,
mejorando el uso del ancho de banda.
Plataformas Tecnológicas y Gestión _ imprimible
73 de 115
No se debe confundir el Proxy con el Firewall pués existen diferencias entre
ambos y algunas son:
•
El Firewall no usa cache.
•
El Proxy usa muchos protocolos y el Firewall es limitado.
•
Es posible tener proxy’s en arreglos jerárquicos
El programa Proxy más conocido en Linux se llama Squid y está basado en un
desarrollo de un proyecto llamado Harvest y se originó en el National
Laboratory of Network Research - NLANR, que a su vez se basa en la National
Science Foundation – NSF y es un programa de fuente abierta.
En resumen Squid permite que se tenga un servidor dando el servicio de
Internet con un solo IP y los clientes se conecten a él para recibir el servicio sin
tener IP's válidos en cada uno. También provee servicio de FTP.
// diseño arreglar esta imagen
// Diseño, al dar clic en este icono le aparece el texto de comprobación . Al final
debe quedar todo el texto. El autor dice que hay que obligar a que la persona
lea todo.
Plataformas Tecnológicas y Gestión _ imprimible
74 de 115
Comprobación
La manera de comprobar si squid está disponible y la forma de activarlo es la
siguiente:
a. Comprobar si está instalado: rpm -q squid
b. Si no está instalado, instalarlo usando el procedimiento explicado en el
documento dhcp-instalacion.pdf
c. Editar como usuario root el archivo de configuración de Squid
/etc/squid/squid.conf
solo como ejercicio de comprobación sin hacer
cambios. Este es un archivo complejo que es preferible no tocar mientras no
sepa como hacerlo.
d. Arrancar quid:
/sbin/service
squid
start o
/etc/rc.d/init.d/squid
start
Debe aparecer un OK en color verde en la pantalla. Si se desea parar se usa
stop en lugar de start.
e. El demonio se levanta de manera silenciosa esperando que algún usuario lo
conecte por el puerto 3128
// Fin de la comprobación
Pero ya dijimos que los usuarios deben configurar sus navegadores para
acceder Internet a través del servidor que tiene el Proxy.
Configuración del navegador del
cliente
Entre
a
Firefox
Editar/Preferencias/Configuración
de conexión, y una vez allí coloque
en el protocolo correspondiente (http
por ejemplo) la IP del servidor squid
y el puerto 3128
Explorador
Ver/Opciones
de
Entrar
a
Internet/Conexión
Una vez allí marque la casilla para
conectarse al Proxy y coloque el IP
del servidor squid y el puerto 3128
75 de 115
Plataformas Tecnológicas y Gestión _ imprimible
Falta ahora mirar unos detalles del archivo de configuración para obtener una
versión básica que trabaje adecuadamente antes de entrar en aspectos más
avanzados.
El
principal
archivo
de
configuración
de
squid
es
/usr/local/squid/etc/squid.conf que viene con todos los parámetros
necesarios para su funcionamiento pero tiene una sección que se identifica por
el título:
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR
CLIENTS
Allí vamos a poner algunas directivas que explicaremos para iniciar la parte
relacionada con las políticas de uso del Proxy. Veamos:
acl myIP src 192.168.100.3/255.255.255.255
acl myNET src 192.168.100.0/255.255.255.0
http_access allow myIP
http_access deny myNET
http_access deny all
Los acl son las Listas de control de acceso que en inglés se denominan Access
Control List – acl y definen como su nombre lo indican las listas de control.
Ellas definen los elementos que se van a controlar y luego se crean unas
directivas que definen las acciones de permiso y deniego de acceso.
Expliquemos entonces las directivas que se acaban de mostrar una a una:
// Diseño la tabla siguiente darle color.
// Diseño el contenido de la columna de regla debe quedar en una sola línea,
las otras columnas akustarlas
Regla
Explicación
acl myIP src 192.168.100.3/255.255.255.255
Define
el
elemento myIP
que
es
la
conexión fuente
(src) cuyo IP
es
192.168.100.3
acl myNET src 192.168.100.0/255.255.255.0
Define
el
elemento
myNET que es
la una conexión
fuente
(src)
que en este
caso es una
Complemento
76 de 115
Plataformas Tecnológicas y Gestión _ imprimible
Regla
Explicación
Complemento
red
192.168.100
http_access allow myIP
Permite (allow)
que los clientes
que
se
conecten desde
el
elemento
myIP o sea
desde el nodo
192.168.100.3
de forma http
es decir los
navegadores,
accedan
el
puerto de web
http
Si
el
acceso
efectuado cumple
la regla es decir se
accede desde el IP
192.168.100.3 se
acepta la conexión
y no mira más
reglas
http_access deny myNET
Prohibe (deny)
que los clientes
que
se
conecten desde
el
elemento
myNET o sea
desde la red
192.168.100 de
forma http es
decir
los
navegadores,
accedan
el
puerto de web
http
Si la regla anterior
no se cumple se
ejecuta esta regla
que rechaza la
conexión si esta se
hace desde la red
local
indicada,
192.168.100,
es
decir
cualquier
nodo de esa red
http_access deny all
Prohíbe todo
Si las anteriores no
se
cumplen
rechaza cualquier
conexión
El ejemplo anterior nos sirve para determinar la forma como se ejecutan las
normas.
1. Se definen los elementos.
2. El proxy aplica los controles y si alguno se cumple acepta la norma y para de
mirar normas.
3. Si no se cumple mira la siguiente, hasta el final
Ahora si definamos los elementos que pueden ser controlados.
El sistema tiene una serie de elementos que son los que deben controlarse,
como por ejemplo: las direcciones IP de origen y destino y otros más que se
encuentran como referencia a continuación. También cuenta con listas de
acceso.
// Sacar una ventana con la siguiente información
77 de 115
Plataformas Tecnológicas y Gestión _ imprimible
Elementos sujetos de
control
Listas de acceso
// Diseño, contenido de Elementos sujetos de control
src
Fuente del cliente, dirección IP
dst
Servidor de destino dirección IP
myip
La dirección local o IP del cliente
srcdomain
Nombre del dominio fuente, cliente
dstdomain
Nombre del dominio del destino (servidor)
srcdom_regex
Fuente (cliente) que cumpla una expresión
regular
dstdom_regex
Destino (servidor)
expresión regular
srcdom_regex
Fuente (cliente) que cumpla una expresión
regular
dstdom_regex
Destino (servidor)
expresión regular
time
Hora del día, día de la semana
url_regex
URL que cumpla una expresión regular
urlpath_regex
URL-path que cumpla una expresión
regular, dejando a un lado el protocolo y el
nombre del servidor
puero
Número del puerto en el destino (servidor)
myport
Puerto local del cliente que se conecta
proto
Protocolo de transferencia, http, ftp y otros
method
Método del requerimiento http (get, post y
otros)
browser
Expresión regular que se cumpla en el
encabezamiento del agente usuario
ident
Cadena de caracteres que coincida con el
nombre del usuario
src_as
Número del sistema autónomo de la fuente
-asn (cliente). Se define como un número
único que identifica a un conjunto de redes
de direcciones IP que son administradas
por un grupo de uno o más operadores de
red.
dst_as
Número del sistema autónomo del destino
-asn (servidor).
que
que
cumpla
cumpla
una
una
Plataformas Tecnológicas y Gestión _ imprimible
78 de 115
src
Fuente del cliente, dirección IP
proxy_auth
Autenticación del usuario a través de
procesos externos
proxy_auth_regex
Expresión regular sobre la autenticación
del usuario a través de procesos externos
snmp_community
Coincidencia de la cadena de caracteres
de la comunidad SNMP (Simple Network
Management Protocol)
maxconn
Límite del máximo número de conexiones
desde una IP de un cliente
req_mime_type
Expresión regular sobre el encabezado
llamaso content-type de un correo
electrónico
arp
Coincidencia sobre la dirección de la
tarjeta de red. MAC
// Diseño, contenido de Listas de acceso
http_access Clientes (navegadores) permitidos para acceder el puerto http.
Es la lista de control de acceso primaria
icp_access Memorias caches vecinas permitidas para buscar en su
memoria cache usando el Protocolo de Cache de Internet ICP
Par ver todas las listas acceda con el navegador a /usr/share/doc/squid2.5.STABLE9/FAQ- 10.html#ss10.1 dentro del servidor Linux.
2.6.1 Ejemplos de manejo de políticas del tráfico de dattos utilizando el proxy
server.
A continuación se presentan una serie de ejemplos a cerca del manejo de
políticas del tráfico de dattos utilizando el proxy server.
Los ejemplos se explican detalladamente, y se espera que el estudiante analice
cada uno buscando la comprensión de las explicaciones; si lo desea puede
comprobar la ejecución en su propio computador.
// Diseño introducir 12 tabs para cada uno de los ejemplos, debe permanecer
después de que le dé clic.
79 de 115
Plataformas Tecnológicas y Gestión _ imprimible
Veamos la siguiente lista de acceso:
acl myIP src 192.168.100.1/255.255.255.255
acl myNET src 192.168.100.0/255.255.255.0
http_access
allow
myIP
http_access
deny
myNET
http_access deny all
La explicacióm de cada linea es la siguiente:
acl myIP src 192.168.100.1/255.255.255.255
La lista myIP se refiere a una conexión fuente
(de entrada) con un IP 192.168.100.1
acl myNET src 192.168.100.0/255.255.255.0
La lista all se refiere a la red 192.168.100
http_access
allow
Permite cualquier conexión desde myIP
myIP
http_access
deny
myNET
Rechaza la conexión de cualquier nodo de la
red.
Ejemplo 1. Solo dar En resumen si el nodo que se conecta es
192.168.100.1 al analizar la política 1 acepta la
acceso a un IP
conexión.
Si se conecta cualquier otro, al aplicar la política
http_access deny myNET, se rechaza la
conexión.
El efecto final es que solo se acepta la conexión
de myIP.
Las normas de las listas de acceso están
diseñadas para que una vez llegue la conexión
se
aplique
la
primera.
Si
se
Si
no
cumple,
se
cumple
acepta
aplica
la
la
conexión.
siguiente.
Si termina la lista y ninguna se cumple toma la
última y aplica la opuesta.
En este caso si se conecta un nodo de otra red,
sucede que ninguna política coincide pero como
al final tiene http_access deny all esta se
cumplirá y no dejará que entre otro nodo.
Plataformas Tecnológicas y Gestión _ imprimible
80 de 115
Si quisiéramos almacenar una regla o varias en
archivos que faciliten el mantenimiento se puede
configurar de la siguiente manera:
Ejemplo
2.
almacenadas
acl
myIP
src
"/especiales/reglamyIP"
acl myNET src 192.168.100.0/255.255.255.0
Reglas
http_access
allow
myIP
http_access
deny
myNET
http_access deny all
y en el archivo /especiales/reglamyIP se crea
una
línea
con
la
regla
192.168.100.1/255.255.255.255
Si se desea se pueden especificar más de una
decisión es válido codificar de esta manera:
Ejemplo
3.
direcciones
Varias acl myIP src 192.168.100.1 192.168.100.5
Observe que se especifican dos IP s en la
misma linea.
Tipos de listas de acceso. Existen varias:
Prohibir accesos a destinos:
acl
MalDestino
dst
Ejemplo 4. Direcciones 192.168.100.1/255.255.255.255
BuenDestino
dst
IP
fuente
(src)
y acl
192.168.100.5/255.255.255.255
destino (dst)
http_access
deny
MalDestino
http_access
allow
BuenDestino
http_access deny all
acl DominiosMalos dstdomain cosasmalas.com
acl IpsMalos dst 10.255.1.2 10.255.1.3
acl
myNet
192.168.100.0/255.255.255.0
http_access
deny
DominiosMalos
Ejemplo 5. Filtrar sitios
http_access
deny
IpsMalos
web de destino
http_access
allow
myNet
http_access deny all
El DNS debe estar bien configurado.
Prohíbe acceso a sitios que tengan la palabra
sex en el URL
acl
MalosUrl
url_regex
-i
sex
Ejemplo 6. Palabras
acl
myNet
192.168.100.0/255.255.255.0
claves dentro de los
http_access
deny
MalosURL
URLs
http_access
allow
myNet
http_access deny all
Prohíbe el acceso, para bajar, archivos tipo avi
Plataformas Tecnológicas y Gestión _ imprimible
81 de 115
de URLs con la palabra sexo. Nótese el uso de
expresiones regulares.
acl
badURL
url_regex
-i
sex.*\.avi$
acl
myNet
192.168.100.0/255.255.255.0
http_access
deny
badUrl
http_access
allow
myNet
http_access deny all
acl myNet src 192.168.100.0/255.255.255.0
acl
workdays
time
AMTWHF
# allow web access only on the weekends!
http_access
deny
workdays
http_access
allow
myNet
http_access deny all
Observe la linea
acl workdays time MTWHF
Ejemplo
7:
Para
permitir acceso solo
Esta es la firma de indicar que los periodos son
los fines de semana
los dias de la semana bajo la mnemotécnica
siguiente:
S - Sunday M - Monday T - Tuesday W Wednesday H - Thursday F - Friday A - Saturday
También es válido dar horas: 17:00-24:00 por
ejemplo.
Existen aplicaciones que se abren por puertos
determinados. Es el caso de webminel paquete
de administración orientado a web que se abre
por el puerto 10000. Para permitir esto se
Ejemplo 8: Puerto de
establece una política de esta manera:
destino
acl
webmin
port
10000
http_access
allow
webmin
http_access deny all
Se puede desear restringir a los usuarios a usar
ciertos protocolos. Para eso existe el tipo de lista
proto. El siguiente ejemplo prohíbe el uso del
protocolo FTP:
Ejemplo 9: Protocolos
acl
ftp
proto
FTP
FTP, HTTP, SSL
acl
myNet
src
10.0.0.0/16
acl
all
src
0.0.0.0/0.0.0.0
http_access
deny
ftp
http_access
allow
mynet
http_access deny all
Ejemplo 10: Método El protocolo HTTP se puede usar para bajar
HTTP GET, POST o datos (get) o enviarlos (post). O transferir datos
encriptados SSL Cuando se hace una conexión
CONNECT)
Plataformas Tecnológicas y Gestión _ imprimible
82 de 115
al proxy, el cliente especifica la clase de
requerimiento llamado método que se envía.
Un requerimiento GET se ve asi:
GET
http://www.ora.com/
HTTP/1.1
línea en blanco
Si se usa SSL se cambia GET por CONNECT
El tipo de acl que permite controlar el método de
acceso se llama post.
Un uso común es evitar requerimientos
CONNECT hacia un puerto no SSL.
CONNECT www.domain.example:23 HTTP/1.1
línea en blanco
Asumir que se quiere parar a los clientes cuando
hacen POST
acl
Post_class
method
POST
acl
myNet
src
10.0.0.0/16
acl
all
src
0.0.0.0/0.0.0.0
# parar requerimientos antes que a ellos se les
permita entrar por ser de las direcciones propias
http_access
deny
Post_class
# permitir acceso a mis clientes a los sitios que
no
son
post
http_access
allow
myNet
#
denegar
a
todos
http_access deny all
Para usuarios multiusuarios
Ejemplo 11: Tipo de
acl
ident
navegante nombre de
http_access
usuarios
http_access
usuariosbuenos
oskar
tom
allow
usuariosbuenos
deny
all
Para usuarios multiusuarios:
Ejemplo 12: Tipo de
acl
responsables
ident
navegante clasificando
cuartosemestre
usuarios
http_access
allow
http_access deny all
tercersemestre
postgrados
responsables
2.6.2 Resumen
En esta sección se estudió lo que es un proxy server como servidor de
memorias cache para Internet/Intranet. En primer lugar se dio una definición lo
más precisa posible y se habló de las diferencias entre un proxy y un firewall.
Luego se procedió al estudio de squid el proxy más famoso del software libre
para lo cual se ubicó su archivo de configuración invitando a leerlo para
conocer su estructura y concentrándose en una sección muy especial que es la
Plataformas Tecnológicas y Gestión _ imprimible
83 de 115
que define las listas de control o acl’s para la escritura de reglas o políticas que
controlen el acceso a la red.
Estas listas tienen una sintaxis algo caprichosa por lo que se definieron sus
componentes para luego proceder a entender su sintaxis con ejemplos
explicados y concretos que mostraran cómo se puede controlar el acceso o
salida de los datos dependiendo de las funciones, origen y destino.
Plataformas Tecnológicas y Gestión _ imprimible
84 de 115
2.6.3 Ejercicio
Lea esta regla y determine cuáles son sus componentes:
acl myIP src 192.168.100.3/255.255.255.255
myIP
src
192.168.100.3/255.255.255.255
Es un(a) IP
Es un(a) elemento
Es un(a) fuente
Es un(a) IP
Es un(a) elemento
Es un(a) fuente
Es un(a) IP
Es un(a) elemento
Es un(a) fuente
No.2
A continuación se listan algunos de los elementos que se controlan en el proxy.
Defina cuál es la definición correcta que corresponde a cada uno escogiendo
del menú de opciones.
Definición
Fuente del cliente, dirección IP
Elemento
src
dst
myip
srcdomain
srcdom_regex
Servidor de destino dirección IP
src
dst
myip
srcdomain
srcdom_regex
La dirección local o IP del cliente
src
dst
myip
srcdomain
srcdom_regex
Nombre del dominio fuente, src
cliente
dst
myip
srcdomain
srcdom_regex
Fuente (cliente) que cumpla una src
expresión regular
dst
myip
srcdomain
srcdom_regex
Plataformas Tecnológicas y Gestión _ imprimible
85 de 115
No.3
A continuación se listan algunos de los elementos que se controlan en el proxy.
Defina cuál es la definición correcta que corresponde a cada uno escogiendo
del menú de opciones.
Definición
Elemento
Puerto local del cliente que se myport
conecta
proto
method
arp
Protocolo de transferencia, http, ftp myport
y otros
proto
method
arp
Método del requerimiento http (get, myport
post y otros)
proto
method
arp
Coincidencia sobre la dirección de myport
la tarjeta de red. MAC
proto
method
arp
No. 4
Ubique cada palabra en orden para formar una frase relacionada con el
Servidor Proxy: SQUID. Haga clic sobre la palabra para irla añadiendo a la
frase. Cuando usted crea que su respuesta es correcta, haga clic en “revisar”
para verificar su respuesta. Si tiene problemas, haga clic en “pista” para saber
cuál es la palabra que sigue en la frase.
Las memorias cache son áreas del disco duro en donde residen las páginas
más comunes
Plataformas Tecnológicas y Gestión _ imprimibles
86 de 48
2.7.Firewall: iptables
2.7.1 Definiciones sobre un firewall
Un firewall http://es.wikipedia.org/wiki/Firewall es un elemento que puede ser
hardware o software que está en capacidad de conocer el tráfico existente
entra dos o más redes y que a través de políticas de filtrado puede controlar lo
que es aceptable o no que fluya en la red para seguridad de la información.
Dentro de la información que viene en una comunicación tcp/ip está el IP de
origen y el puerto. Esta información continuará existiendo cuando los datos
sigan su camino y con frecuencia es deseable que no se conozca por terceros
más si por el sistema. Para estos casos un firewall debe estar en capacidad de
cambiar estos datos y almacenar en unas tablas lo datos de origen a lo cual se
le denomina un NAT o Network Address Translation o traductor de direcciones
de red.
Un firewall es un dispositivo que filtra el tráfico entre redes, como mínimo dos.
El firewall puede ser un dispositivo físico o un software sobre un sistema
operativo. En general debemos verlo como una caja con dos o mas interfaces
de red en la que se establecen una reglas de filtrado con las que se decide si
una conexión determinada puede establecerse o no. Incluso puede ir más allá y
realizar modificaciones sobre las comunicaciones, como el NAT.
Las políticas se almacenan en tres tablas que se han agrupado a medida que
ha avanzado el desarrollo de iptables y que definiremos a continuación:
Tabla FILTER
Tabla NAT
Tabla
MANGLE
usada para el filtro de paquetes y que contiene tres estados
que se llaman INPUT, OUTPUT y FORWARD
para trasladar direcciones, como ya se explicó, a lo cual
también se le llama masquerading y que tiene dos estados
llamados PREROUTING para hacer modificaciones al tráfico
que nos llega y POSTROUTING para modificar paquetes
creados localmente antes de enrutarlos y OUTPUT para
alterarlos en el momento de salida
para alterar el estado de un paquete es decir las variables
relacionadas con el tipo de servicio
Aquí vamos a trabajar con la tabla FILTER.
Un diagrama explicativo de un firewall es el siguiente:
Como se puede observar se tiene acceso a Internet a través de un enrutador
http://es.wikipedia.org/wiki/Router cuyo objetivo es poder hacer pasar los
paquetes entre las redes usando unas tablas de enrutamiento. La red local
está conectada a un switch o hub. El firewall vigilará, dependiendo de las
políticas implementadas, qué paquetes de datos pasarán o no a la red así
86
Plataformas Tecnológicas y Gestión _ imprimibles
87 de 48
como cuáles pueden salir.
Es posible poner varios firewalls dentro de la red dependiendo de las
necesidades de la compañía.
En ocasiones se necesitan servidores que permitan cualquier conexión como
es el caso del correo electrónico el cual se debe recibir y después si analizar
asuntos como el spam por ejemplo. En estos casos esos servidores se colocan
en una zona de la red llamada Desmilitarizada o DMZ como se ve en el
diagrama siguiente:
L
La red local sigue siendo protegida por el firewall.!!!
Sin embargo son muchas las posibilidades de conexiones de la red pues cada
organización es diferente.
Otro ejemplo del firewall en el cual se tienen por separados los servidores de
Correo y de Internet puede ser el siguiente:
2.7.2 ¿Qué es lo que se puede filtrar?
El concepto hasta ahora explicado es relativamente sencillo y se puede asimilar
al ejemplo de poner una operadora telefónica que filtre las llamadas a los
directivos de una empresa basada en consultar antes de pasarla a quién va
dirigida. Vigilará por ejemplo: de quién viene la llamada, cuál es el tema y de
esta manera decidirá si la pasa o no o si la redirecciona a otro funcionario de
nivel más operativo o si la desecha.
Es de imaginarse que ese es el caso de los programas de radio en vivo en el
cual llaman los oyentes a dar sus opiniones y en los cuales algún filtro se debe
poner.
La dificultad radica en que el oyente puede decir mentiras sobre lo que va a
decir y ya en vivo aprovecharse de las circunstancias quedando de todas
maneras la opción de cancelarle la llamada si se está sobrepasando a los
códigos de ética del programa radial.
En el caso de las redes informáticas se tienen algunas verntajas ya que lo que
se va a decir que son los datos ya vienen empaquetado en una cadena de
caracteres de las tramas de tcp/ip.
Es entonces la hora de recordar lo que se estudió en el punto 1.1 de este
Capítulo que trató sobre el protocolo tcp/ip.
En esa trama viene el encabezado y los datos mismos que van a ser
analizados por el firewall asi que entrando en materia informática y dejando a
un lado los ejemplos mencionados de la llamada telefónica de una persona o el
87
Plataformas Tecnológicas y Gestión _ imprimibles
88 de 48
programa radial, debemos mencionar loe elementos sujetos a filtrado usando el
lenguaje de tcp/ip.
Cuando los datos llegan al sistema estos pasan por unas listas de reglas que
se denominan cadenas (o tablas como ya las comentamos) unas de las cuales
llamada FILTER tiene 3 básicas llamadas INPUT, OUTPUT Y FORWARD
como se ve en este diagrama:
Cada vez que un paquete llega a uno de los rombos que dice INPUT, OUTPUT
o FORWARD se examina la información que viene allí y es la política la que
determina si para el proceso, es decir desecha esa cadena de datos (DROP) o
la acepta (ACCEPT) en cuyo caso la deja seguir. DROP y ACCEPT son las
palabras que entiende el firewall para tomar una acción.
Pero una cadena es una lista de varias reglas y el paquete se someterá a ellas
bajo unas normas que son:
a) Si el paquete se ajusta a la norma se lleva a cabo la acción: DROP o
ACCEPT
b) Si el paquete no se ajusta a la norma consulta la siguiente regla
c) Si se llega al final y no hay más reglas cumple la última regla que se
llama “la regla del paquete” que decide que hacer y que por seguridad
siempre es DROP, es decir que si el paquete no encontró reglas
aceptadas lo descarta.
Repasando la secuencia y siendo más explícitos esta es la secuencia que sufre
el paquete:
1.
2.
3.
4.
El núcleo de Linux cuando llega un paquete es mirar su destino es
decir para dónde va y definir su ruta a lo cual se le llama
encadenamiento.
Si el destino es el mismo servidor pasa al paquete a la cadena
INPUT en donde se someterá a las reglas escritas.
El núcleo podría haberse compilado con o sin capacidades de
reenvío y si esta opción está activada pasará a someterse a las
reglas de la cadena FORWARD.
Para terminar, los paquetes que salen se someten a la cadena
OUTPUT y salen hacia el destino a que está dirigido.
Las reglas o políticas están orientadas a decidir el destino de los datos es decir
ser aceptados (ACCEPT) o descartados (DROP) revisando los encabezados
88
Plataformas Tecnológicas y Gestión _ imprimibles
89 de 48
que tcp/ip trae en sus tramas. Este manejo de las reglas tienen unas
características que debemos conocer antes de entrar en el propio uso de
iptables que es el firewall escogido para este curso:
a) Mantenimiento de las reglas: a iptables se le puede indicar cuándo una regla
se debe añadir, modificar o eliminar lo cual significa que hay un método de
editarlas para darles un mantenimiento permanente.
b) Especificación de las direcciones ip: estas direcciones siempre son de origen
(source) o destino (destination) y se pueden indicar con IP numéricos a los
nombre de dominios como linux.domain.com.co con la opción de especificar
rangos de direcciones en los IP’s numéricos por ejemplo: 192.100.207.0/24 lo
cual significa que se refiere a una dirección IP que comienza por 192.100.207
(los 3 primeros octetos es decir 24 bits) y que debe tener en cuenta aquellos
cuyo último octeto caiga dentro de los válidos al aplicar un “exclusive or”. Es
equivalente a especificar 192.100.207.0/255.255.255.0 El número 24 se refiere
al número de bits con el valor 1de la máscara o sea que
11111111.11111111.11111111.00000000 tiene 24 bits en 1. En este caso se
refiere a las direcciones que van desde 192.168.100.0 hasta 192.168.100.255
Si la especificación fuera 192.168.100.0 /32 solo aceptaría direcciones de la
subred 192.255.255
c) Negaciones de las políticas: cuando se desea indicar que lo que se debe
aplicar es lo contrario se usa el carácter ! Por lo que decir !192.168.100.4 es
indicar que la política se refiere a los IP’s que no sean 192.168.100.4
d) Especificar protocolos: muchas veces las reglas se refieren los protocolos
que está usando el tcp/ip en una trama definida. Por decir algo ya no referirse a
un IP o rango de IP’s sino al hecho que se esté usando el protocolo TCP por
ejemplo. En este sentido la reglas se pueden referir a TCP, UDP o ICMP e
igualmente tiene la opción de usar negaciones: !
e) Interfaces: los paquetes de FORWARD tienen la posibilidad de indicar el
interface es decir la tarjeta física de salida para lo cual se usan las
especificaciones estándar de Linux como eth0, eth1... ethn para referirse a las
tarjetas de red, o ppp0 en las interfaces punto a punto como un modem por
ejemplo permitiendo manejo interesantes como indicar todas las interfaces
usando el carácter + asi que ppp+ se refiere a todos los interfaces punto a
punto.
f) Fragmentos: cuando un paquete es más grande que los buffers de tcp/ip este
protocolo los descompone en fragmentos y luego el destino los reensambla
bajo un algoritmo propio de tcp/ip. Cuando hablamos de reglas o políticas del
firewall aparece la pregunta: ¿y cómo ponerlas para los fragmentos ? La
respuesta es que existen especificaciones en la sintaxis de las normas para
poder especificar los números de los fragmentos. Cabe anotar que bastaría
aplicarla al primero ya que si este es descartado, nunca se reensamblaría en el
destino aunque no es lo más ortodoxo de hacer pensando en desempeño y aun
89
Plataformas Tecnológicas y Gestión _ imprimibles
90 de 48
en seguridad.
g) Extensiones: hay extensiones a lo expresado hasta ahora de tal manera que
el filtrado de protocolos TCP, UDP, ICMP permiten muchas opciones sobre las
cuales mencionaremos algunos ejemplos más adelante cuando entremos al
manejo propio de la herramienta.
h) Cadenas propias de los usuarios: fuera de las cadenas ya mencionadas
como son INPUT, OUTPUT, FORWARD, los usuarios pueden crear sus
propias cadenas de tal manera que en las especificaciones se le pude indicar al
Firewall que en lugar de un DROP o un ACCEPT de un salto a una cadena de
usuario que tendrá la complementación de la reglas.
2.7.3 iptables en funcionamiento.
Lo primero que debemos hacer es comprobar si iptables está en nuestro
sistema con los siguientes pasos:
a. Comprobar si está instalado: rpm -q iptables a los cual el sistema debe dar
una respuesta del estilo iptables-1.3.0-2
b. Si no está instalado, instalarlo usando el procedimiento explicado en el
documento dhcp-instalacion.pdf
c. En este caso no vamos a entrar al archivo de configuración sino que
editaremos las políticas a través de los comandos.
d. Arrancar iptables:
/sbin/service iptables start o
/etc/rc.d/init.d/iptables Stara
Debe aparecer un OK en color verde en la pantalla en cuyo caso siga al paso
7, pero puede suceder que no suceda lo anterior así que se debe comprobar el
estado de iptables, vaya al paso siguiente.
e. Use /etc/rc.d/init.d/iptables status para ver el estado de iptables. Si la
respuesta es Firewall is stoped es porque aun no tiene el archivo de
configuración.
f. El archivo de configuración debe debe estar en /etc/sysconfig y se debe
llamar iptables. En este caso crearlo usando touch /etc/sysconfig/iptables y
comprobar que quedó creado con ls -l /etc/sysconfig/iptables
g. Con la cuenta de root, levante el sistema nuevamente como se indicó en el
paso 4.
Taller de comprobación
A continuación se proponen una serie de ejercicios para el manejo de políticas
para la filtración de paquetes utilizando iptables.
Los ejerccios están explicados detalladamente, se recomienda que el
estudiante los practique en su computador para entender los conceptos
90
Plataformas Tecnológicas y Gestión _ imprimibles
91 de 48
explicados.
mejor.
Ejercicio 1 Nombre del ejercicio
Ejercicio 2
Ejercicio 3
Ejercicio 4………………….15
Ejercicio 1
Impedir el uso del comando ping al loopback del servidor
El loopback del servidor es la dirección 127.0.0.1 que es, por decirlo de alguna
manera, la dirección de si mismo y que la tienen todos los servidores al
configurar la tarjeta de red. El comando ping verifica si hay comunicación con
la red usando la opción -c 1 para que solo pruebe una vez. ping es un
comando del protocolo ICMP.
Verificamos si hay conexión:
# ping -c 1 127.0.0.1
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.085 ms
--- 127.0.0.1 ping statistics --1 packets transmitted, 1 received, 0% packet loss, time
0ms
rtt min/avg/max/mdev = 0.085/0.085/0.085/0.000 ms, pipe
2
Observe el mensaje 0% packet loss que indica que si hay conexión y que no
se perdieron paquetes.
Ahora indiquémosle a iptables la creación de una regla que impida esta
comunicación:
# /sbin/iptables -A INPUT -s 127.0.0.1 -p icmp
-j DROP
El comando le dice a iptables: Adicione una regla (-A), a la cadena de INPUT
para que lo que llegue de entrada (-s o sea source) del IP 127.0.0.1 y que
corresponda al protocolo icmp salte (-j o jump) a la acción DROP es decir
denegando la conexión.
Ahora probemos nuevamente la conexión:
91
Plataformas Tecnológicas y Gestión _ imprimibles
92 de 48
# ping 127.0.0.1
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of
data.
--- 127.0.0.1 ping statistics --1 packets transmitted, 0 received, 100% packet
loss, time 0ms
Esta vez no hay respuesta, observe el mensaje después de unos segundos 100% packet
loss que indica que se perdieron los paquetes pues la regla está obedeciendo .
Ejercicio 2
Listar las reglas con la opción -L
Para listar las reglas activas:
# /sbin/iptables -L
Chain FORWARD (policy ACCEPT)
target prot opt source
destination
Chain INPUT (policy ACCEPT)
target prot opt source
DROP
icmp -- localhost
destination
anywhere
Chain OUTPUT (policy ACCEPT)
target prot opt source
destination
Ejercicio 3
Borrar una regla
# /sbin/iptables -D INPUT 1
Estamos borrando la regla número 1 y si se comprueba con -L se pude ver que
ya no existe y que el ping vuelve a funcionar.
Ejercicio 4
Especificaciones de filtrado.
Muchas veces se necesita indicarle a iptables que lo que queremos filtrar es un
protocolo que se va a usar, un IP de origen o fuente, un IP de destino para lo
cual usa una sintaxis que incluye esta información con el siguiente indicativo:
-p para especificar una regla relacionada con un protocolo
-s para especificar una regla para especificar la fuente, es decir de donde
92
93 de 48
Plataformas Tecnológicas y Gestión _ imprimibles
vienen
los
datos
-d para especificar una regla relacionada con el destino, es decir hacia donde
van los datos.
Ejercicio 5
Prohibir la entrada a cualquier IP
Para impedir cualquier entrada al sistema basado en la identificación de la
fuente:
/sbin/iptables -A INPUT -s 0/0 -j DROP
Ejercicio 6
Inversión. Se refiere a indicar no a la regla
Para eso se usa el carácter admiración ! antes de una dirección por ejemplo
para indicar que la regla se refiere a una fuente que no sea localhost: -s !
localhost
Veamos esta regla
linux.domain.com.co:
para
detener
todo
lo
que
/sbin/iptables
ipchains
-A
linux.domain.com.co -j DROP
no
INPUT
venga
de
-s
!
El sentido de este comando es:
Agregue (-A) a la cadena INPUT un control para que lo que no vaya a
linux.domain.com.co (! linux.domain.com.co) sea descartado (-j DROP)
Ejercicio 7
Descartar cualquier uso del protocolo tcp
iptables -A INPUT -p tcp -j DROP
Es el momento de mirar el archivo de los servicios de Linux en /etc/services.
Allí encontrará las especificaciones de los puertos y servicios indicando entre
otras cosas la categoría a que pertenece cada uno es decir si son del protocolo
tcp, udp o icmp. Sugerimos mirarlo con un editor de texto o: vi /etc/services
Si quiere ver cuáles pertenecen al protocolo TCP: cat /etc/services|grep tcp
Observe que ssh es tcp o sea que después de añadir esta regla no permitirá
hacer ssh.
93
Plataformas Tecnológicas y Gestión _ imprimibles
94 de 48
Ejercicio 8
Descartar un IP específico
/sbin/iptables -A INPUT -s 192.168.100.3 -j
DROP
No aceptará ninguna conexión que venga del computador cuyo IP sea
192.168.100.3
Ejercicio 9
Descartar cualquier conexión que vaya a una tarjeta de red o interfaz
específica
/sbin/iptables -A INPUT -i eth0 -j DROP
Es una manera de “desconectar” de manera lógica, no física, la tarjeta de red
pues cualquier conexión hacia ella va a ser descartada. Recordar que un
servidor puede tener varias tarjetas de red o interfaces: eth0, eth1, eth2 etc.
Ejercicio 10
Descartar accesos a un protocolo y un servicio específico
Si mira el servicio de http en /etc/services observará que tiene el puerto 80.
Dicho de otra manera el protocolo http que es el servidor de web, es decir
Apache, “escucha” por el puerto 80 para ver si alguien se conecta con un
navegador de la forma http://servidor
La manera de desconectar este servicio usando el firewall es:
/sbin/iptables -A INPUT -p TCP --sport 80 -j
DROP
Agregue (-A) una regla a la cadena INPUT para descartar (-j DROP) las
conexiones al protocolo tcp (-p TCP) que vayan al puerto 80 (--sport 80)
Si tiene levantado su Apache con /sbin/service httpd start, observará que al
acceder con el navegador de la forma http://linux.domain.com.co este no carga
la hoja inicial de Apache después de crear la regla anterior.
Ejercicio 11
Descartar un protocolo que viene de una fuente determinada.
Miremos este comando:
/sbin/iptables -A INPUT -p TCP -s 192.168.100.5 -j
DROP
94
Plataformas Tecnológicas y Gestión _ imprimibles
95 de 48
Para probar este comando debería tener otro pc (puede ser de windows)
conectado por red con el IP 192.168.100.5 y al crear la regla verá que no
obedece a la conexión web, por ejemplo por ser esta tipo tcp desde ese pc.
Ejercicio 12
Descartar un protocolo que viene de una fuente determinada para un
puerto
específico.
La manera de rechazar cualquier comunicación del protocolo (-p) tcp con
desde la fuente (-s) 192.168.100.5 para un servicio específico como ftp,ssh o
http sería con esta regla:
# /sbin/iptables -A INPUT -p tcp --dport 80 -j DROP
En este caso rechaza paquetes tcp que van al puerto 80
Ejercicio 13
Descartar solicitudes al servicio ssh que es un tcp al puerto 22
/sbin/iptables -A INPUT -p tcp --sport 22 -j DROP
En este caso no deja hacer ssh desde el propio servidor pero si de otros.
Ejercicio 14
Descartar banderas
Se llaman banderas o flags a ciertos indicadores de conexión. Por ejemplo
cuando un pc se conecta a un servidor el TCP/IP envía una bandera llamada
SYN para decirle “ahí voy” y si la conexión va por buen camino el servidor le
responde ACK es decir, “estoy listo”. Es posible entonces colocar reglas más
internas como estas para descartar cualquier datos que contenga cierto tipo de
banderas.
/sbin/iptables -A INPUT -p tcp --tcp-flags SYN,FIN,ACK SYN
-j DROP
No acepta tramas de datos que tengan esas banderas: SYN, FIN,ACK
Ejercicio 15
Descartar por protocolo icmp
Este protocolo icmp o Internet Control Message Protocol es el que permite
que TCP/IP envíe mensajes de sus resultados y como ya vimos, uno de estos
95
Plataformas Tecnológicas y Gestión _ imprimibles
96 de 48
es el que usa el comando ping. En realidad ping es el mensaje tipo 8 del
icmp. Y así como este existen muchos más.
Si desea conocer la tabla completa de clic aquí
Tipos de ICMP
TIPO
0
3
3
3
3
CODIGO
0
0
1
2
3
3
4
3
3
3
3
5
6
7
8
3
9
3
10
3
3
11
12
3
13
3
3
4
5
5
5
5
8
14
15
0
0
1
2
3
0
9
0
9
16
10
11
11
12
12
0
0
1
0
1
Descripción
Query Error Reference
Echo Reply
x
RFC792
Network Unreachable
x RFC792
Host Unreachable
x RFC792
Protocol Unreachable
x RFC792
Port Unreachable
x RFC792
Fragmentation needed but no
x RFC792
frag. bit set
Source routing failed
x RFC792
Destination network unknown
x RFC792
Destination host unknown
x RFC792
Source host isolated (obsolete)
x RFC792
Destination
network
x RFC792
administratively prohibited
Destination host administratively
x RFC792
prohibited
Network unreachable for TOS
x RFC792
Host unreachable for TOS
x RFC792
Communication administratively
x RFC1812
prohibited by filtering
Host precedence violation
x RFC1812
Precedence cutoff in effect
x RFC1812
Source quench
RFC792
Redirect for network
RFC792
Redirect for host
Redirect for TOS and network
RFC792
Redirect for TOS and host
RFC792
Echo request
x
RFC792
Router advertisement - Normal
RFC1256
router advertisement
Router advertisement - Does not
RFC2002
route common traffic
Route selection
RFC1256
TTL equals 0 during transit
x RFC792
TTL equals 0 during reassembly
x RFC792
IP header bad (catchall error)
x RFC792
Required options missing
x RFC1108
96
Plataformas Tecnológicas y Gestión _ imprimibles
97 de 48
TIPO
12
13
14
15
16
17
18
CODIGO Descripción
Query Error Reference
2
IP Header bad length
x RFC792
0
Timestamp request (obsolete)
x
RFC792
Timestamp reply (obsolete)
x
RFC792
0
Information request (obsolete)
x
RFC792
0
Information reply (obsolete)
x
RFC792
0
Address mask request
x
RFC950
0
Address mask reply
x
RFC950
Zaw-Sing
Reserved
for
robustness
20-29
Su
experiment
30
0
Traceroute
x
RFC1393
31
0
Datagram Conversion Error
x RFC1475
David
32
0
Mobile Host Redirect
Johnson
Bill
33
0
IPv6 Where-Are-You
x
Simpson
Bill
34
0
IPv6 I-Am-Here
x
Simpson
Bill
35
0
Mobile Registration Request
x
Simpson
Bill
36
0
Mobile Registration Reply
x
Simpson
Tom
39
0
SKIP
Markson
40
0
Photuris
RFC2521
Observe que el icmp tipo 8 se llama echo request es decir ping …….
Una manera de rechazar conexiones de ping diferente a la del primer ejemplo
es :
/sbin/iptables –A INPUT –p icmp –icmp-type 8 –j DROP
Si quisiéramos rechazar otros icmp bastaría con indicar el tipo en el comando.
2.7.4 Resumen
En esta sección se definió qué es un firewall y se explicó cómo este dispositivo
o software se ubica como parte de la red para controlar todo el tráfico de datos
de llegada y de salida para que sobre ellos se apliquen políticas de filtrado o
cambio de rutas que contribuya a decidir qué se quiere aceptar o no dentro de
la red de una empresa.
Se explicaron los tres tipos de tablas FILTER, NAT, MANGLE que usa iptables
97
Plataformas Tecnológicas y Gestión _ imprimibles
98 de 48
el firewall más conocido de Linux y nos concentramos en la Tabla FILTER para
el filtrado de paquetes con la cual se desarrollaron una serie de ejemplos bien
documentados y fáciles de probar por parte del estudiante que contribuyeron a
entender la sintaxis de los comandos que iptables entiende para su
funcionamiento.
2.7.5 Ejercicios
iptables trabaja con tres tipos de tablas que permiten filtrar los datos de entrada
y de salida. Determine a que nombre corresponde la dfinición escogiendo
entre las opciones del menú.
FILTER
NAT
MANGLE
FILTER
NAT
MANGLE
Traslada direcciones de un valor a FILTER
otro tanto el el tráfico de llegada, antes NAT
de enrutarlos y en el momento de MANGLE
salida
Altera el estado de un paquete desde
el punto de las variables relacionadas
con el tipo de servicio
Filtra paquetes
2.8 Conectividad con Windows – Samba
SAMBA - SMB - Server message Block http://samba.org es un conjunto de
aplicaciones que permiten establecer una arquitectura cliente/servidor para la
compartición de recursos en sistemas heterogéneos.
Se desarrolló con la idea que Unix entendiera a los pc´s más que al revés.
Microsoft desarrollo SMB http://es.wikipedia.org/wiki/SMB en los sistemas
operacionales Windows para trabajo en grupo, Windows 95, Windows 98 y se
extendió a Windows 2000 y XP para poder compartir y acceder los archivos e
impresoras de la red local desde cualquiera de los pc’s. Al principio solo
soportaba Netbeui http://es.wikipedia.org/wiki/NetBEUI que ahora se conoce
como Lan Manager y Netbios http://es.wikipedia.org/wiki/NetBIOS. Actualmente
también soporta los protocolos tcp/ip y ipx/spx, este último de Novell.
Samba
nace
en
Diciembre
de
1993
por
Andrew
Tridgell
http://en.wikipedia.org/wiki/Andrew_Tridgell para que un computador Linux
instalado en una red local Windows se comporte como uno más de la red y
pueda también ser usado como servidor de archivos e impresoras más otras
funcionalidades adicionales.
En el siguiente diagrama se observa una configuración de red utilizando
98
Plataformas Tecnológicas y Gestión _ imprimibles
99 de 48
Samba:
Samba tiene una serie de programas que componen la totalidad del sistema
como son:
smbd
nmbd
smbclient
smbrun
testprns
smb.conf
testparms
smbprint
el servidor silencioso de Samba. Maneja las conexiones
desde los clientes, haciendo que los archivos, sus
permisos y el control de usuarios autorizados trabajen
correctamente.
es el servidor de nombres de Netbios el cual ayuda a los
clientes a localizar los servidores haciendo que el
navegador (entorno de red) administre los dominios. De
acuerdo a como se haya configurado Samba
es el programa de manejo o anfitrión de Unix para que se
atienda al cliente.
un programa que ayuda al servidor a correr programas
externos.
un programa para analizar el acceso de impresoras desde
el servidor.
el archivo de configuración de Samba.
un programa que efectúa un análisis de configuración de
Samba sobre el archivo /etc/samba/smb.conf
un script de ejemplo para que le permita a un servidor unix
usar smbclient para imprimir en un servidor de Samba.
Con relación a Samba se estudiarán en detalle los siguientes aspectos:
El archivo de configuración /etc/samba/smb.conf
Plataformas de trabajo
Directivas
El archivo de configuración /etc/samba/smb.conf
Antes de entrar en ese detalle lo primero que debemos hacer es comprobar si
samba está en nuestro sistema con los siguientes pasos:
a. Comprobar si está instalado: rpm -q samba a los cual el sistema debe
dar una respuesta del estilo samba-3.0.14a-2
b. Si no está instalado, instalarlo usando el procedimiento explicado en
el documento dhcp-instalacion.pdf
99
Plataformas Tecnológicas y Gestión _ imprimibles
100 de 48
Samba se configura a través de un archivo llamado /etc/samba/smb.conf el
cual tiene una serie de parámetros que determinan su comportamiento.
Usaremos un archivo de configuración de ejemplo que se encuentra en
smb.ejemplo.conf dentro de los anexos de esta sección lo cual nos permite
arrancar en funcionamiento para hacer las explicaciones en vivo. Por lo que se
deben hacer los siguientes pasos:
A)
Copiar,
como
root,
/etc/samba/smb.conf
a
/etc/samba/smb.conf.ini para tener una copia de seguridad del archivo
de configuración que viene con el sistema.
B) Copiar sobre /etc/samba/smb.conf el archivo smb.ejemplo.conf que
viene en los anexos. Este archivo ya viene configurado para compartir
un directorio ubicado en el directorio raíz llamado /compartidos en el
cual vamos a crear un archivo de texto llamado archivo1 con un texto
cualquiera. Por ejemplo: Este es un archivo compartido. Para eso
hacemos los siguientes pasos:
Entrado como usuario root:
•
Crear el directorio: mkdir /compartidos
•
Crear dentro de archivo1 con un editor como vi por ejemplo
•
Dar
permisos
al
directorio
/compartidos:
chmod
u+rwx,g+rx,o+rx /compartidos/
•
Poner de dueño a su usuario personal: chown -R
usuario:usuario /compartidos
Se debe arrancar samba:
/sbin/service smb start
o
/etc/rc.d/init.d/smb start
Debe aparecer un OK en color verde en la pantalla.
Pueden suceder que en Fedora 4 el Firewall del sistema tenga habilitada la
protección de SELinux para el demonio smbd en cuyo caso no permitirá grabar
desde los pc’s en los directorios de Linux por lo que en el Interfaz gráfico KDE
o Gnome en este caso seleccione Escritorio / Configuración del
sistema/Nivel de seguridad. El sistema le pedirá el password de root y
aparece un Interfaz. Seleccione la pestaña Samba e Inhabilite la protección de
SELinux para el demonio Samba y de aceptar a esa ventana.
L
Hasta ahora solo hemos iniciado samba con un archivo de
ejemplo que debe funcionar así que procederemos, y en un
instante tendremos acción para por primera vez compartir
archivos de Linux en la red windows. Paciencia !
100
Plataformas Tecnológicas y Gestión _ imprimibles
101 de 48
Plataformas de trabajo
Para comprender mejor lo que vamos a hacer, imaginémonos un servidor Linux
llamado linux.domain.com el cual tiene samba como un servicio activo y un
PC con Windows XP el cual está configurado con soporte de red. Al
conectarse, este a la red detectará al servidor Linux con samba e incluirá el
servidor en el entorno de red como un pc más de la red. Dependiendo de la
configuración de samba, se podrán usar una serie de servicios de conectiividad
desde el pc de windows, tal como compartir archivos del servidor, recursos
como la impresora o el cd etc.
Ubicados en el pc de Windows que debe pertenecer a la misma red del de
Linux debemos seleccionar Mis sitios de red/Ver equipos del grupo de
trabajo y aparecerá:
Como se puede observar Windows ya incluyó al servidor Linux en su entorno
de red identificado por el mismo nombre de grupo del equipo windows. Puede ir
mirando /etc/samba/smb.conf y verá cómo una de las directivas dice:
101
Plataformas Tecnológicas y Gestión _ imprimibles
102 de 48
workgroup = GRUPO
Que es la que identifica al servidor Linux en ese grupo.
Continuando con el interfaz en el equipo de Windows de doble click a Samba
Server:
Aparece una carpeta llamada public y un ícono de las impresoras de Linux.
Esto obedece a la directiva de /etc/samba/smb.conf llamada [public] (Léala
en su equipo):
[public]
comment = Public Stuff
path = /compartidos
public = yes
read only = no
writable = yes
printable = no
Aquí observamos más cosas como por ejemplo que es en dónde le decimos a
Linux que /compartidos es la carpeta o directorio a compartir y que queremos
que aparezca con el nombre public en windows.
102
Plataformas Tecnológicas y Gestión _ imprimibles
103 de 48
Y las impresoras aparecen por la directiva de /etc/samba/smb.conf:
printcap name = /etc/printcap
load printers = yes
cups options = raw
[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
# Set public = yes to allow user 'guest account' to print
guest ok = no
writable = no
printable = yes
Si a continuación damos doble click en public:
Aparece el archivo1 listo para ser leído desde Windows haciéndole doble click.
Este primer paso nos ayuda a ir entendiendo hacia donde se enfoca samba
como servidor de archivos e impresoras.
103
Plataformas Tecnológicas y Gestión _ imprimibles
104 de 48
No pretendemos hacer del curso un manual de samba, que ya existen muchos
en la web, asi que nos enfocaremos solamente en sus capacidades como
servidor de archivos e implementaremos algunas de sus funcionalidades en
vivo.
El método de trabajo será presentar la funcionalidad, definirla de acuerdo a
como la usa samba, identificar las directivas dentro de /etc/samba/smb.conf,
cambiar el archivo de configuración, reiniciar samba y probar.
Cada vez que se modifique samba.conf se sugiere
correr el programa /usr/bin/testparm situándose en el
directorio /etc/samba, programa que hace un chequeo
de sintaxis al archivo de configuración y ayuda a
detectar errores. Igualmente se debe bajar y subir
samba con /etc/rc.d/init.d/samba restart !!!!!
Ojo:
restart !!!
Directivas
En esta sección vamos enunciar una serie de características de samba sobre
las cuales, después de ser definidas, se insinuarán las directivas que puestas
en el archivo de configuración logran el efecto deseado. En algunas se muestra
gráficamente el resultado y el estudiante debe hacer el laboratorio en su equipo
con otro que use windows y que esté conectado a la red.
Las característica son:
•
•
•
•
•
•
•
•
•
•
•
•
•
Variables globales
Workgroup
Descripción del servidor: Server string
Permitir o denegar acceso de servidores: hosts allow y hosts deny
Archivos de bitácora - log
Seguridad
Encriptación: encrypt
Creación de los usuarios de Linux dentro de samba.
Concepto de Mapas de usuarios
Configuración
de
Samba
por
máquina:
include
Mejorar comportamiento
Directorio raíz
Directorios privados :[directorio privado]
Compartir directorio entre varios usuarios: [directorio]
Compartir CD
Variables globales
Las variables globales afectan todo el entorno de despliegue de Samba. Se
definen así:
[global]
104
Plataformas Tecnológicas y Gestión _ imprimibles
105 de 48
Dentro de esta sección del archivo de configuración las directivas más
pertinentes se describe a continuación:
Workgroup
La variable llamada workgroup determina el nombre con el cual se identifica el
grupo al que pertenece el servidor en el entorno de red de Windows también
llamado el navegador. Su formato es:
workgroup = Nombre de Dominio de NT o Nombre de Grupo.
En nuestro ejemplo se llama GRUPO y es el nombre que aparecerá en el
navegador de windows
workgroup = grupo
Por eso es que al abrir el entorno de red de windows aparece este grupo.
Recordemos
como
aparece:
105
Plataformas Tecnológicas y Gestión _ imprimibles
106 de 48
Descripción del servidor: Server string
La variable server string es el equivalente al Campo del Descripción del
desaparecido NT
server string = Servidor de Samba
o
server string = Samba Server como aparece en nuestro smb.conf de prueba.
Este es el nombre que aparecerá cuando en el entorno de red de Windows
averigüemos las propiedades del servidor de Linux
Permitir o denegar acceso de servidores: hosts allow y hosts deny
Son dos opciones muy importante para la seguridad del sistema pues permiten
restringir la conexión de máquinas que están en la red local.
El siguiente ejemplo permite el acceso a las dos redes de clase C identificadas
con el IP 192.168.1 y 192.168.2 y a la interfaz de loopback 127.
Esto significa que solo tendrán acceso a los servicios de samba los nodos
cuyas direcciones IP vayan de 192.168.1.1 hasta 192.168.1.254 o desde
192.168.2.1 hasta 192.168.2.254 así como el mismo servidor con su dirección
llamada de loopback 127.
Así mismo se puede prohibir de manera especifica el servicio al nodo cuyo
nombre IP sea 192.168.100.3.
En el ejemplo bastaría poner estas directivas a smb.conf:
hosts allow = 192.168.1. 192.168.2. 127.
hosts deny = 192.168.100.1
Probando con la directiva deny, es decir colocando
hosts deny =
192.168.100.1 en smb.conf y reiniciando samba, al acceder al servidor samba
desde windows aparecerá:
106
Plataformas Tecnológicas y Gestión _ imprimibles
107 de 48
Archivos de bitácora - log
Samba maneja un archivo de bitácora llamado log en donde guardará todos
los mensajes de samba para ofrecerle al administrador del sistema una historia
de los accesos. Este archivo se llama /var/log/samba/log.smb en su forma
estándar. Sin embargo, si quisiéremos que este archivo se generara por cada
máquina que accede a samba podemos especificarlo con la opción log file =
archivo de log por cada máquina. El parámetro siguiente le indica a Samba
que use un archivo de log separado para cada máquina que se conecte. La
forma de especificarlo es:
log file = /var/log/samba/log.%m o
log file = /var/log/samba/log.%m.log
en este caso %m es una variable que significa el nombre de la máquina o del
servidor que entra a usar Samba. De esta manera si un pc llamado rodrigo se
conecta, su log quedará grabado en /var/log/samba/rodrigo.log. Y así para
cada nodo que acceda a samba. Con esta opción, el administrador del sistema
podrá hacer análisis de conectividad de una manera más completa.
En el directorio /var/log/samba/ del servidor en donde se ha escrito este curso
aparece un archivo llamado rodrigo.log debido a que la máquina windows con
107
Plataformas Tecnológicas y Gestión _ imprimibles
108 de 48
la que se hacen las pruebas se llama rodrigo.
El tamaño del archivo de log se puede controlar con la opción max log size =
tamaño en KB. De esta manera cuando se cope ese tamaño, reiniciará de
manera circular el archivo de log y evitará que crezca infinitamente. Si
quisiéramos que el tamaño del archivo de log sea máximo 50 KB la instrucción
es:
max log size = 50
Esto se puede ver en nuestro archivo smb.conf
Samba chequea periódicamente el tamaño y cuando se pasa del especificado
crea un archivo con el mismo
nombre.old y lo reinicia.
Seguridad
La directiva security determina el tipo de seguridad desde el punto de vista de
autenticación permitiendo una llamada user en que el cliente se conecta con
un usuario/password solicitado desde el equipo conectad, server para que le
de la responsabilidad de autenticar a otro servidor y share para que deje que el
servidor permita entrada de acuerdo con los parámetros del archivo de
configuración.
Encriptación: encrypt
Si queremos conservar el nivel de encriptación del pc de windows pero que
este se sincronice con samba es necesario colocar:
encrypt passwords = yes
smb passwd file = /etc/smbpasswd
La primera clausula, o sea encrypt passwords, mantiene el encriptamiento de
las
contraseñas
y
la
segunda
habilita
el
archivo
llamado
/etc/samba/smbpasswd para almacenarlas dentro samba.
Creación de los usuarios de Linux dentro de samba.
Los usuarios de Linux se deben crear dentro de /etc/samba/smbpasswd lo
cual se hace usando el comando:
smbpasswd
usuario
En este caso el sistema pide la contraseña dos veces para asegurarse que
esté bien digitada y una vez hecho esto, e iniciado samba de nuevo, el sistema
de windows y samba permitirán a ese usuario entrar a samba sin necesidad de
cambiarle a windows el registro para deshabilitar el encriptamiento. Esta debe
108
Plataformas Tecnológicas y Gestión _ imprimibles
109 de 48
ser la manera natural de trabajar con samba.
Si se desea crear toda la lista de los usuarios de Linux en Samba se usa el
comando:
mksmbpasswd < /etc/passwd > /etc/samba/smbpasswd
Que toma todos los usuarios de /etc/passwd y crea la plantilla sobre
/etc/samba/smbpasswd
a continuación se le debe asignar el password a cada usuario de samba
usando:
smbpasswd usuario
Concepto
de
mapas
de
usuarios
Los usuarios de Unix pueden hacer un mapa para diferentes nombres de
usuarios de SMB con el fin de trasladar equivalencias entre nombres de
usuarios. La opción busca facilitar el hecho de que un usuario que no existe en
Linux use la cuenta de otro que si tiene cuenta. La directiva que permite hacer
esto se llama username map. Veamos su uso:
username map = /etc/smbusers
Para lograr este efecto existe en Linux un archivo de configuración llamado
/etc/samba/smbusers dentro del cual se hacen los mapas o equivalencias de
las cuentas.
A continuacion vamos a ver un ejemplo:
en /etc/samba/smbusers existen los mapas que se desean tener. Por ejemplo
un usuario llamado admin que no tiene identificación en Linux se "mapea" así:
root = admin entonces ese usuario admin entrará como root.
Configuración de Samba por máquina: include
Usando la siguiente linea, le permite al usuario personalizar su configuración
sobre la base de las máquinas que se conectan. El símbolo %m se reemplaza
con el nombre de la máquina que da el netbios de la máquina que se está
conectando.
include = /etc/samba/smb.conf.%m
Mejorar comportamiento
Los manuales de Samba dicen literalmente que algunos usuarios dicen que la
siguiente opción mejora el comportamiento de la máquina.
socket options = TCP_NODELAY
109
Plataformas Tecnológicas y Gestión _ imprimibles
110 de 48
Directorio raíz
La opción [homes] define los servicios de Samba relacionados con el
directorio home de los clientes.
Como es sabido cada usuario de Linux, al entrar al sistema, se posiciona en el
directorio llamado home, propio del usuario. Así, un usuario llamado manuel al
entrar al sistema, queda localizado en el directorio /home/manuel. Samba
permite definir si a este directorio se tiene o no acceso desde el entorno de red
de windows a través de la siguiente sección llamada [home]
[homes] comment = Home Directories
browseable = no
; browsable = yes
writable = yes
; path=/manuel/%S
; path=/aplicaciones
Las directivas con ; al comienzo son comentarios y se muestran solo para
recordar esas opciones.
La explicación de estas opciones son:
comment: para darle un nombre genérico interno a esta opción
browsable: no, para que no aparezca el directorio llamado home entre
las carpetas del directorio cuando sea abierto desde el entorno de red.
yes para que si aparezca esta carpeta llamada home. En ambos casos
aparece una carpeta con el nombre del usuario que ha entrado a linux
desde windows.
•
writable= no para que no de permiso de escritura sobre este directorio y
yes
para
que
si
le
de
permiso
de
escritura.
path: el directorio asumido para un usuario es el directorio
home/usuario que tenga en linux. De esa manera si no se especifica
path el sistema entrará al directorio raiz. Si si se especifica path
entonces la entrada se llevará a cabo al directorio especificado.
Así se ve en windows:
•
110
Plataformas Tecnológicas y Gestión _ imprimibles
111 de 48
Directorios privados :[directorio privado]
Es el caso en el que un usuario quiere tener su propia carpeta en Linux para
entrar desde otro pc de la red.
Por ejemplo si un usuario llamado juan quiere que esto suceda se codifican las
siguiente directivas:
[juan]
comment = Directorio de rodris.
path = /home/juan
public = no
writable = yes
printable = no
Si se pone printable = yes aparecerá una impresora llamada juan. Si se pone
no aparece el directorio juan apuntando al contenido de /home/juanl
El efecto es que aparece en el navegador de windows la carpeta llamada juan
pero solo deja que tenga acceso el usuario root con los permisos indicados.
Así se ve desde windows:
111
Plataformas Tecnológicas y Gestión _ imprimibles
112 de 48
Al entrar a juan se accede a los archivos de /home/juan
Asignar directorios por máquina: [pchome]
Se puede definir un servicio que tiene un directorio diferente dependiendo de la
máquina que lo acceda o aun del usuario que lo haga. La diferencia estará en
el uso de la variable %m para la máquina o %u para el usuario.
[pchome]
comment = Directorio de los pcs
path = /tmp/%m
public = no
writable = yes
Desde windows se ve así:
112
Plataformas Tecnológicas y Gestión _ imprimibles
113 de 48
En el ejemplo anterior, si la máquina del cliente se llamara rodrigo entonces se
debe crear el directorio /tmp/rodrigo en el servidor Linux o sea que por cada
máquina debe aparecer un directorio en el navegador con el nombre indicado,
pchome en este caso.
Compartir directorio entre varios usuarios: [directorio]
Las siguientes dos entradas demuestran cómo se puede compartir un directorio
de tal manera que dos usuarios puedan colocar archivos que sean propiedad
de usuarios específicos. En esta configuración, el directorio podría tener
acceso de escritura por ambos usuarios y podría tener un conjunto de sticky
bits sobre ellos para prevenir abusos. Recuerde que el sticky bit es una
propiedad de modo de acceso en unix para que un programa frecuentemente
usado mantenga una copia en la memoria aun después de salir de él para
evitar cargas adicionales de arranque. Obviamente esto se puede extender a
tantos usuarios como se desee
113
Plataformas Tecnológicas y Gestión _ imprimibles
114 de 48
[multiuso]
comment = Asuntos de maria y pedro
path = /compartidos
valid users = root manuel
public = no
writable = yes
printable = no
create mask = 0765
En windows aparece:
Compartir CD
Fimalmente si queremos compartir el CD del servidor Linux desde los equipos
windows o de otros sistemas como Unix de la red usaríamos estas directivas:
114
Plataformas Tecnológicas y Gestión _ imprimibles
115 de 48
[cdrom]
path=/media/cdrrecorder
root preexec = /bin/mount -r /dev/cdrom
/media/cdrecorder
root postexec = /bin/umount /media/cdrecorder
read only = yes
browsable = yes
Miremos cómo se ve en windows:
115
116 de 48
Plataformas Tecnológicas y Gestión _ imprimibles
2.8.4 Resumen
Se estudiaron los protocolos de la red local que usa windows como netbios,
netbeui y el api smb que permiten que los equipos windows de una red local se
conecten para compartir los archivos y las impresoras.
El tema tiene un componente importante de tecnología para el manejo de las
cuentas de usuarios y las contraseñas que también se explicó en esta sección.
Luego se procedió a estudiar la manera como un servidor Linux conectado a la
red puede ser parte de la misma utilizando Samba de tal manera que pudiera
servir como servidor de archivos y de impresoras como uno más de la red sin
discriminaciones de sistema operacional.
Se comenzó con un archivo de configuración sencillo y a medida que se
explicaron los conceptos se fueron haciendo prácticas modificando ese archivo
para que operara como era de esperarse. De esa manera se fueron explicando
y practicando los conceptos de carpetas compartidas, seguridad de
autenticación, manejos de contraseñas en ambos sistemas, usuarios con
permisos de compartir directorios y en general las funcionalidades más
importantes de Samba como servidor de archivos.
Se terminó configurando el CD de Linux para ser compartido por toda la res de
pc’s windows.
Al final de este ejercicio hemos construido un archivo de configuración que se
encuentra en los anexos llamado smb.conf
2.8.5 Ejercicio
Seleccione las directivas cuya explicación es la correcta, eligiendo su
respuesta entre verdadero (V) o falso (F) de acuerdo con lo anteriormente
expuesto.
Directiva
Verdadero
path=/media/cdrrecorder - Visualiza el
directorio de montaje del cd en el
servidor de Linux
OK
root
preexec
=
/bin/mount
/dev/cdrom /media/cdrecorder seleccionar el ícono monta el cd
-r
Al
OK
root
postexec
=
/bin/umount
/media/cdrecorder - Al salir desmonta
el cd
Ok
read only = yes - Tiene permisos de
escritura
Falso
Ok
116
117 de 48
Plataformas Tecnológicas y Gestión _ imprimibles
browsable = yes - No permite navegar
sobre él
ok
117

Documentos relacionados