Laboratorio de Sistemas Operativos

Anuncio
Laboratorio de Sistemas Operativos
Sesiones de Practicas. Indice.
1. Análisis y diseño. Políticas de red.
2. Instalación de Windows 95. Configuración de arranque.
3. Instalación de Linux.
4. Linux a nivel de administrador.
5. Servicio DNS, Instalación de aplicaciones.
6. Servicio NFS. Servicio de cuotas.
7. Servicio NIS.
8. Servidor http. Servidor FTP
9. Servidores de BBDD.
10. Referencias
11. Anexos
Iván Fernández Vallejo
Fernando Perales Esandi
itig11.labitig.unavarra.es
Laboratorio de Sistemas Operativos
Ingeniería Técnica en Informática – UPNA
Junio 2003
Memoria
1
Laboratorio de Sistemas Operativos
Laboratorio de Sistemas Operativos
1. Análisis y diseño. Políticas de red.
En la primera sesión de practicas, una vez dadas las primeras indicaciones sobre el
desarrollo de las sesiones, grupos, recursos disponibles, forma de trabajo, etc.,
diseñamos como iba a quedar definida nuestra red.
Una vez conocidas todas las posibilidades en cuanto a clases de redes, decidimos
montar una red de clase C, con la dirección de red 192.168.192.0 y su
correspondiente mascara de red 255.255.255.0.
Nomenclatura de equipos:
Estaciones: itigXX correspondientes a las posiciones ocupadas en clase por
los equipos, comenzando de las direcciones IP inferiores o más bajas dentro
del rango establecido: 192.168.192.1
Servidores: las direcciones más altas o superiores: 192.168.192.255
DNS: ESPINETE
WEB: SPIDERMAN
MAIL: MAZINGER
FTP: FLASH
IMPRESIÓN: HULK
NIS: SCOOBY
NFS: BATMAN
Nuestra estación dentro de la red va a tomar el nombre itig11 y su tarea consistirá
en una gestionar una estación de investigación matemática con las funciones de
realizar informes, estadísticas, información, formulas, ecuaciones, gráficos,
maquetación, por lo que necesitamos una estación con potentes herramientas de
calculo, estadística, diseño y procesamiento de textos.
Ver anexos: Hojas de Descripción de maquinas e Instalación de Software.
Memoria
2
Laboratorio de Sistemas Operativos
2. Instalación de Windows 95. Configuración de arranque.
Antes de comenzar con la instalación de ningún sistema, conviene realizar un
pequeño diagrama de configuración del disco duro, con sistemas operativos a
instalar, numero de particiones, tamaño, sistema de archivos....etc., dependiendo
de las necesidades de nuestra maquina.
Tabla de particiones HD 3’2 GB:
Sistema operativo
Función
Tamaño
Sistema de Archivos
Win’95
S. Operativo \
250 Mb
2’5 GB
Fat16
Ext3
Linux
Swap
32 Mb
Intercambio
Datos
400 Mb
Ext2
Una vez definidas las particiones, procederemos a instalar el primer sistema
operativo. Elegimos primero Windows 95, porque en el caso de hacerlo al revés,
instalando primero Linux, al instalar W95, este sobrescribiría el sector de arranque y
la parte Linux, no estaría accesible.
Arrancamos con un disquete de inicio de W’95 y con el la instrucción fdisk,
establecemos las particiones. Borraremos las particiones existentes en el disco,
crearemos una primaria y le daremos formato. Ahora solo realizamos la partición
donde residirá W95, posteriormente cuando instalemos Linux, el propio sistema,
durante la fase de instalación, nos permitirá establecer el resto de particiones
necesarias.
Procedemos a la instalación estándar del sistema W95.
A continuación, la instalación de Linux, nos generará un boot de arranque (Grub)
que una vez arrancada la maquina nos permitirá elegir entre trabajar con un
sistema operativo u otro.
Memoria
3
Laboratorio de Sistemas Operativos
3. Instalación de Linux
Un vez instalado Windows 95, reiniciamos la maquina, y configurando
apropiadamente el arranque de nuestro equipo modificando la Bios, para que
arranque desde cd-rom, comenzamos la instalación de Linux Mandrake 9. Para ello
cogimos el CD1 de Mandrake.
Una vez arrancada la instalación de Linux procedemos a realizar las particiones por
medio del gestor de particiones Druida (Teníamos que particionar el espacio que
dejamos después de instalar W95 en nuestro PC).
Con las particiones definidas pasamos a configurar los dispositivos de nuestro PC
tales como teclado, ratón.... teniendo solo que decir en la instalación el tipo de
dispositivo, sino venía ya definido en el controlador, ya que una de las grandes
ventajas de Linux, es que puede configurar la mayoría de dispositivos sin necesidad
de proporcionarle el driver, algo que en Windows es bastante complicado, por lo
menos en las versiones más antiguas.
El siguiente paso consistirá en elegir los paquetes para la instalación, algunos de
ellos podrían ser:
- Icewm (Este paquete lo instalamos porque consume menos memoria que el
KDE o el GNOME y con las características del equipo instalar uno de estos
entornos es “insufrible”)
- Estación científica
- Calculo matemático
- Estadística
- OpenOffice
- Servidores (Servidores Web, Apache, DNS,....)
Una vez instalados los paquetes, nos queda configurar la red y la resolución de
pantalla.
La red la configuramos según se muestra en el punto 1 es decir según habíamos
decidido en la primera sesión de practicas.
Para la resolución de la pantalla elegimos una resolución baja y con pocos colores
para conseguir una mayor agilidad en StartX, debido a la escasa memoria RAM del
PC, además, como principalmente trabajaremos con terminales la resolución no es
excesivamente importante.
Con ésto terminamos la instalación de Linux y comprobamos que todo funciona
correctamente dentro de las posibilidades que nos ofrecen los escasos recursos de
los que disponemos.
El gestor de arranque elegido a la hora de iniciar la maquina y seleccionar el
sistema operativo a cargar es Grub, que configura todo de forma automática.
Memoria
4
Laboratorio de Sistemas Operativos
4. Linux a nivel de administrador
Lo primero que debemos decidir en nuestro sistema operativo es el nivel en el que
queremos arrancar, estos niveles, se denominan niveles de ejecución (Runlevel):
0. Parar (Halt)
1. Modo de usuario único o monousuario
2. Multiusuario sin NFS (usuario definible)
3. Modo multiusuario completo
4. Sin usar (Usuario-definible)
5. Modo multiusuario completo con entorno gráfico (X)
6. Rearrancar (Reboot)
En nuestra maquina, como no está muy “sobrada” de recursos, decidimos arrancar
en el nivel 3, es decir, multiusuario en pantalla de terminal, con lo cual conseguimos
un arranque más rápido y si queremos podemos arrancar la el interface X (gráfico),
algo que no usamos muy a menudo.
Para configurar este nivel de arranque editamos el archivo /etc/inittab y
modificamos el nivel de arranque, que por defecto se encontraba en el nivel 5.
Otro punto importante en Linux son los demonios, que sería el equivalente a los
servicios en Windows, estos se encuentran en el directorio /etc/rc.d/init.d, los
demonios se gestionan con 3 parámetros:
Start: Arranca un demonio
Restart: Detiene el demonio y lo vuelve a arrancar
Stop: Detienen el demonio
Status: nos muestra el estado actual
Política de Seguridad:
El siguiente paso en nuestra maquina fue proceder a definir las políticas de
seguridad del sistema, para la gestión de los usuarios de nuestra maquina:
Nuestra organización ha sido la siguiente y la implementamos como se muestra en
la figura siguiente:
Memoria
5
Laboratorio de Sistemas Operativos
ROOT
ADMINISTRADORES
JCONTA
JRRHH
JINFORMATICA
JINVESTICAGION
CONTABILIDAD
RRHH
INFORMATICA
INVESTIGACION
La organización de los usuarios funciona de la siguiente forma, los que se
encuentran por encima tendán control sobre los que tienen por debajo.
En los distintos grupos estarían:
a.
b.
c.
d.
e.
f.
g.
h.
i.
j.
ROOT: El súper usuario, Contraseña: A1B2C3
ADMINISTRADORES: ivan, fperales
JCONTA: jconta , Contraseña: jCONTA
JINFORMATICA: jinformatica, Contraseña: jinformatica
JRRHH: jRRHH, Contraseña: idem
JINVESTIGACIÓN: jinvestigacion, Contraseña: jINVESTIGACIÓN
CONTABILIDAD: conta1, conta2, conta3,
INFORMATICA: inform1, inform2, inform3
RRHH: RRHH1, RRHH2, RRHH3
INVESTIGACIÓN: invest1, invest2, invest3
Los usuarios normales tinen la contraseña en blanco, pulsar intro.
La política que seguimos fue la siguiente, los jefes de cada sección pueden acceder
a los grupos de sus subordinados, los administradores lo pueden hacer a todos los
grupos de los jefes y a todos los subordinados de los jefes y el súper usuario puede
acceder a todos los recursos, para ello creamos todos los usuarios y creamos un
grupo para cada usuario, introducimos a cada usuario en un grupo con todos los
permisos para el usuario y aquellos usuarios que tienen acceso a los demás
formaran parte de su grupo y de sus subordinados.
Para realizar lo anterior utilizamos linuxconf: con él creamos los usuarios, los
grupos y realizamos la política de seguridad establecida.
También está la opción de usar un terminal y generar los usuarios, grupos, etc., por
medio de los comandos adduser (añadir un usuario), groupadd (crear un grupo y
asignar las pertenencias a grupos), chown (cambiar el propietario de un directorio o
archivo) y chmod (cambiar los permisos de un directorio o archivo), además del
comando passwd para especificar password a los usuarios.
La tercera opción sería crear los usuarios, grupos, etc por medio de un programa
de gestión de usuarios mediante la interfaz gráfica, Kuser, por ejemplo.
Memoria
6
Laboratorio de Sistemas Operativos
Añadir/Quitar paquetes:
Otro punto a tener en cuenta sería la instalación de paquetes que nos va a ser muy
útil para poder actualizar el sistema operativo, instalar aplicaciones, utilidades que
no se han instalado en la instalación inicial...... y sobre todo nos va a servir para las
futuras sesiones, debido a que vamos a tener que añadir paquetes para usar
distintos servicios.
Usamos dos formas para la instalación de paquetes:
1. Comando RPM: rpm –i “nombre_paquete”
2. Por medio de un gestor de paquetes en entorno gráfico:
Gnorpm (gnome)
Kpackage
Rpmdrake (Mandrake): Fue la utilizada para añadir y quitar
paquetes
Nosotros mayormente usamos el comando rpm aunque también usamos algo el
rpmdrake.
Memoria
7
Laboratorio de Sistemas Operativos
5. Servicio NFS. Servicio de cuotas.
Un Sistema de Ficheros en Red (NFS-Net File System) permite manejar ficheros de
distintos ordenadores dentro de una red como si estuvieran en el disco duro local.
Es decir, no se necesita saber dónde están localizados físicamente los ficheros
para poder acceder a ellos.
NFS nos permite compartir datos entre varios ordenadores de una forma sencilla.
Por ejemplo, un usuario validado en una red no necesitará hacer login en un
ordenador específico, vía NFS, accederá a su directorio personal (que llamaremos
exportado) en la máquina en la que esté trabajando.
Se requiere tener instalados los paquetes nfs-utils y portmap.
Antes de hablar de NFS, hay que hacer mención al concepto “Sistema de ficheros”.
Un sistema de ficheros es la forma de almacenar datos en un medio, la manera en
que se organizan y manejan. Hay muchos sistemas de ficheros, algunos más
utilizados que otros (New Technology FileSystem (NTFS), High Performance
FileSystem (HPFS), DOS, FAT 16/32, VFAT, Macintosh Hierarchical Filesystem
(HFS), ISO 9660(para CD-ROM), extended file systems (Ext, Ext2, Ext3), y muchos
otros).
El protocolo NFS
Lo que comúnmente se llama NFS está formado por 4 protocolos distintos. Cada
uno depende de las Remote Procedure Calls (RPC) y de portmap (también llamado
rpc.portmap). Un portmapper convierte números de programa RPC en números de
puerto. Cuando un servidor RPC se inicia, dice a portmap qué puerto usará y el
número de programa RPC manejado. Cuando un cliente quiere enviar una petición
RPC a un número de programa dado, primero contacta con el servidor portmap
para tomar el número de puerto dando acceso al programa deseado. Después,
dirige los paquetes RPC al puerto correspondiente.
Memoria
8
Laboratorio de Sistemas Operativos
Los 4 servicios que permiten funcionar a NFS son:
Protocolo
Descripción
Demonio
Nfs
Este protocolo es el básico y permite crear, buscar, leer o escribir ficheros.
Este protocolo también maneja autentificación y estadísticas de ficheros.
nfsd
Mountd
Éste se encarga de montar sistemas exportados para acceder a ellos con
nfs. El servidor recibe peticiones como mount y umount debiendo mountd
mantener información sobre los sistemas de ficheros exportados.
nsm
(Network
Status
Monitor)
Se usa para monitorizar los nodos de la red y así conocer el estado de una
máquina (cliente o servidor). Informa, por ejemplo, de un rearranque.
statd
nlm
(Network
Lock
Manager)
Para impedir modificaciones de los datos por varios clientes al mismo
tiempo, este protocolo maneja un sistema de bloqueo. Así, con la ayuda
del protocolo Nsm es posible conocer cuándo se está reiniciando un
cliente. Nsm libera todos los bloqueos del cliente antes de devolverlos.
lockd
El demonio knfsd, disponible con las últimas versiones del núcleo, soporta
directamente los protocolos nfs y nlm.
etc/export
datos a exportar
etc/fstab
chequeo de sistemas de ficheros y los monta
Configuración servidor:
Arrancar demonio:
etc/rc.d/init.d/nfs start
Recursos compartidos:
Etc/exports directorios, usuarios, maquinas y permisos
Ejemplo: /disco itig11(rw) itig17 (r)
Configuración cliente:
Etc/fstab
Incluir la ruta del servidor nfs
Ejemplo:
192.198.192.13: /mnt/intercambio /mnt
rsize=8192,wsizw=8192,timeo=14,intr.
También podemos configurar /etc/host para la resolución de nombres
estática.
Memoria
9
Laboratorio de Sistemas Operativos
El servidor:
La primera cosa a hacer, como ya hemos visto, es iniciar portmap ya que este
protocolo es necesario para NFS .
root >>/usr/sbin/rpcinfo -p
rpcinfo: can't contact portmapper: RPC: Remote
system error - Connection refused
root >>/sbin/portmap
root >>/usr/sbin/rpcinfo -p
program vers proto
port
100000
2
tcp
111 portmapper
100000
2
udp
111 portmapper
El comando rpcinfo muestra los servicios RPCs en la máquina especificada
como argumento (opción -p). Vemos que portmap todavía no está funcionando: lo
iniciamos (la mayoría de las distribuciones Linux proveen scripts para automatizar
esto en el arranque) y comprobamos que funciona. Otra razón común para que
rpcinfo responda negativamente es que el portmapper no permita la respuesta a
causa de la restricción de seguridad en los ficheros /etc/hosts.{allow,
deny}. En este caso, añada una entrada "portmap: hosts" en el fichero hosts.allow.
Antes de que NFS se inicie por sí mismo, debe ser configurado. Existe un único
fichero de configuración que se llama /etc/exports. Cada línea muestra la ruta
exportada seguido de una lista de clientes a los que se permite el acceso. Se
pueden añadir opciones al final de cada nombre de cliente. La página de manual
exports (man exports) explica la sintaxis para los nombres de cliente y las opciones.
Se aceptan como nombres de cliente:
•
•
•
•
nombre de la máquina
caracteres comodín en un nombre de dominio (ej: : linux-*.unavarra.es)
un netgroup ( @grupo) si se usa NIS
una dirección IP
No vamos a detallar aquí todas las opciones de montaje disponibles, pero algunas
de las más importantes son:
•
•
•
•
•
Memoria
rw (lectura/escritura) : el cliente puede leer y escribir en el sistema exportado
ro (sólo lectura) : el cliente sólo puede leer el sistema exportado
root_squash : es preferible que un usuario root del cliente no pueda
escribir con permisos de root. Para impedirlo, UID/GID 0 (i.e. root) en el lado
del cliente se traduce en el usuario nobody. Esta opción está activada por
defecto, pero se puede cancelar con no_root_squash
all_squash : todos los clientes que acceden al sistema exportado utilizan
el UID/GID de nobody
anonuid, anongid: el usuario nobody ahora usa los UID y GID definidos
por estas opciones.
10
Laboratorio de Sistemas Operativos
Ahora tenemos que iniciar los demonios rpc.mountd y rpc.nfs para tener
funcionando el servidor NFS. Comprobamos nuevamente que todo está
funcionando con el comando rpcinfo. Incluso podemos inicializar el servidor para
los protocolos nsm y nlm (rpc.statd y rpc.lockd, respectivamente). No hay
ninguna premisa para arrancar un servidor NFS... pero es altamente recomendable
que se reinicie por sí mismo, en caso de que la máquina falle, etc...
Cuando modificamos el fichero de configuración /etc/exports, debemos avisar a los
demonios implicados que se deben hacer los cambios. El comando exportfs
transmite esta información a nuestros servidores. La opción -r sincroniza el fichero
/etc/mtab con el fichero /etc/exports file. La opción -v muestra juntos todos los
sistemas de ficheros exportados junto con sus opciones.
Después de ponerse en marcha el servidor NFS, los siguientes ficheros contienen
información importante:
•
•
•
•
/var/lib/nfs/rmtab: cada línea muestra el nombre del cliente y el
sistema de ficheros importado desde este servidor
/var/lib/nfs/etab: el fichero /etc/exports sólo contiene una lista de
peticiones. etab está creado por exportfs. Contiene en cada línea
información detallada sobre las opciones usadas cuando se exporta un
sistema de ficheros a un solo cliente. Es el fichero de referencia usado por
rpc.mountd cuando es arrancado
/proc/fs/nfs/exports contiene la lista de clientes conocida por el
núcleo
/var/lib/nfs/xtab: Se usa por precisión cuando etab contiene
nombres de clientes y grupos de máquinas con comodines. Este fichero sólo
contiene nombres explícitos de máquinas.
Cuando un cliente quiere acceder a un sistema de ficheros, empieza haciendo una
petición mountd. Entonces se busca en etab si la petición está disponible. Se
comprueba el núcleo para saber si el cliente tiene permitida la petición
(comprobando hosts.{allow, deny}, reglas de cortafuegos, ...). El núcleo utiliza
exportfs para la comprobación, permitiendo actualizar el fichero
/var/lib/nfs/etab. Si, en este fichero, el sistema exportado tiene permitido ser
exportado al grupo al que pertenece el cliente, entonces mountd informa al núcleo
que actualice xtab con este nuevo host.
El cliente:
No hay que hacer nada ... normalmente. El acceso al sistema de ficheros exportado
por NFS está controlado directamente por el núcleo. Éste tiene que haber sido
compilado para soportar NFS. El fichero /proc/filesystems contiene una lista
con todos los sistemas de ficheros soportados directamente por el núcleo.
Entonces, lo único que tiene que hacer es decir al núcleo que quiere acceder a un
sistema exportado por NFS.
Memoria
11
Laboratorio de Sistemas Operativos
El comando mount permite acceder a diferentes sistemas de ficheros. Informa al
núcleo que está disponible un nuevo sistema de ficheros indicando su tipo, su
dispositivo y su punto de montaje. Se puede usar la opción -t para indicar el tipo
del sistema de ficheros a usar. Para NFS, escribimos: -t nfs.
mount tiene sus propias opciones para NFS. Por ejemplo, se pueden utilizar las
opciones rsize y wsize para cambiar el tamaño de los bloques para lectura o
escritura. Puede combinar opciones específicas de NFS con opciones más
generales como intr, noexec o nosuid. La página de manual mount muestra todas
esas opciones.
Quota:
Gestiona el espacio que un usuario (usrquota) o un grupo de usuarios (grpquota),
puede usar en un sistema de ficheros.
En nuestra estación no se han establecido Quotas.
Ejemplo:
/dev/hda1 / ext2 default 1 1 /dev/hda2 /usr ext2 default.usrquota 1 1
/dev/hda1 / ext2 default 1 1 /dev/hda2 /usr ext2 default.grpquota 1 1
Comprobación: /usr/sbin/quotacheck –avug
Activación: /usr/sbin/quotaon –avug
Touch /patition/quota.user
Touch /patition/quota.group
Chmod 600 /partition/quota/user
Chmod 600 /partition/quota/group
Memoria
12
Laboratorio de Sistemas Operativos
6. Servicio NIS
NIS es un sistema distribuido de información que nos permite compartir en varias
maquinas el conteniendo de ciertas bases de datos del sistema permitiéndonos que
desde cualquier máquina que está dentro del dominio NIS acceder a dichas bases
de datos.
Las bases de datos que más se suelen usar en NIS son los ficheros de password
/etc/password y /etc/shadow, el fichero /etc/hosts, es decir, aquellos ficheros de
configuración que tienen que ver con los usuarios o bien con la red.
Vamos a tener una serie de maquinas, donde una de ellas será el master o servidor
principal de NIS, otras serán esclavas, y mantendrán las bases de datos. Los
clientes realizaran peticiones a esos servers sobre las bases de datos de las cuales
se necesita información y a partir de ahí todo se supone que debe funcionar.
En nuestro caso no hemos montado mas que un servidor NIS, debido a que no
teníamos experiencia en montar redes con mas de un servidor NIS.
Los paquetes de Mandrake 9.0 necesarios en este caso son:
yp-clients-* yppasswd-* ypserv-* portmap-*
Se instalan a golpe de rpm los paquetes adecuados ( rpm -i ).
Una vez compilados e instalados los programas, pasamos a su configuración:
Configuración del software:
Lo primero, asegurarnos que el portmapper, ypserv e yppasswd se arranca en los
"runlevels" adecuados cuando se inicializa el sistema. Para el caso de Mandrake
9.0, basta con asegurarse desde el control-panel/runlevel editor, que estén ambos
demonios puestos para arrancar en los niveles adecuados. Concretamente el
portmapper debe de estar en los niveles 2, 3 y 5 mientras que el ypserv e yppasswd
deben de estar en los niveles 3 y 5.
Los dos siguientes pasos hay que realizarlos tanto en las máquinas clientes como
en las servidoras:
Vamos a /etc/sysconfig, editamos el fichero network y añadimos una línea del tipo
NIS_DOMAIN=. Por ejemplo:
NIS_DOMAIN=unavarra.es.
Ahora editamos el fichero /etc/yp.conf que es el que se encarga de decir cuales son
los servidores de NIS en la red. En él ponemos lo siguiente:
Memoria
13
Laboratorio de Sistemas Operativos
# # Configuración # labitig.unavarra.es <------ Este es nuestro nombre de dominio
NIS ypserver itigXX.labitig.unvarr.esa <------- Nuestro servidor de NIS
Por ultimo nos vamos al directorio /var/yp. Una vez ahí buscamos una línea de la
siguiente forma:
all: passwd hosts group netid networks protocols rpc services netgrp \ mail shadow
ypservers publickey ethers # amd.home bootparams
Y solo dejamos en ella los bases de datos que nos interese.
Una vez que hemos hecho ésto, ponemos el dominio de la maquina con
labitig.unavarra.es (solo habrá que hacerlo ahora), y tecleamos make. Esto nos
hará todas las bases de datos que nos interese. Es importante decir, que siempre
que se modifiquen en el server NIS una de estas bases de datos, se debe de
rehacer NIS, simplemente yendo a /var/yp y tecleando make.
Para evitar que todo el mundo tenga acceso a nuestras NIS, se hace un fichero
/var/yp/securenets, donde vamos a indicar quien nos interesa que acceda al server.
La sintaxis de ese fichero es:
host <ip_maquina> <netmask> <subred>
Por ejemplo:
host 127.0.0.1 255.255.255.0 192.168.192.0
Esto da acceso a la localhost y a todas la maquinas de la subred 192.168.192.0.
Por último reseteamos la máquina, y “cruzamos los dedos” esperando que todo
funcionara correctamente, y al parecer lo conseguimos.
Memoria
14
Laboratorio de Sistemas Operativos
7. Servicio DNS, Instalación de aplicaciones.
DNS es el Domain Name System (Sistema de Nombres de Dominio), las reglas
de nomenclatura de las máquinas y el software que asigna y/o relaciona los
nombres de maquina a direcciones IP.
Antes de empezar, debemos configurar el sistema convenientemente, de forma que
se pueda hacer telnet desde y hacia su máquina, efectuando satisfactoriamente toda
clase de conexiones de red, especialmente telnet 127.0.0.1 entrando en nuestra
propia máquina. También necesita que los archivos /etc/host.conf (o /etc/nsswitch.conf),
/etc/resolv.conf y /etc/hosts sean correctos)
El servicio de nombres en Unix es llevado a cabo por un programa, llamado named.
Éste forma parte del paquete bind, instalado como /var/named.
A continuación necesitamos el archivo /etc/resolv.conf, que será:
search labitig.unavarra.es
nameserver 127.0.0.1
La línea `search' especifica en qué dominios se buscaría para cualquier nombre de
máquina a la que quiera conectar. La línea `nameserver' especifica la dirección del
servidor de nombres.
Y el fichero /etc/host.conf.
Probablemente contendrá varias líneas, una de ellas debería comenzar con order y
tendría que parecerse a lo siguiente:
order hosts,bind
Si no hay una línea order debemos incluirla. Esto le indica a las rutinas de resolución
de nombres que busquen primero en /etc/hosts, y pregunte luego al servidor de
nombres (que especificamos en resolv.conf que está en 127.0.0.1).
Luego debemos configurar los archivos especificados en los apuntes acerca de
DNS y adaptarlos a nuestra máquina, estos archivos son:
named.conf,
named.local,
named.forward,
named.192.168.192, named.206.130 y named.ca
named.unavarra.es,
Una vez que tenemos todos los ficheros completos y modificados necesitamos
arrancar el servicio named y probar que funciona adecuadamente.
Para ello lo primero que tenemos que hacer es cambiar el propietario de directorio
/var/named con la orden chown.
Memoria
15
Laboratorio de Sistemas Operativos
A continuación arrancamos el servicio dns:
/etc/rc.d/init.d/named start
Si no hay problemas se arrancará el servicio y en principio tendremos configurado
el servidor DNS que tanto nos ha costado, pero para comprobarlo deberemos usar:
Named-checkconf: Para comprobar la configuración
Named-checkzone: Para comprobar la zona
Una vez realizadas las comprobaciones tenemos que pasar a la “prueba de fuego”,
esta se consigue con el comando nslookup:
$ nslookup
Si ésto es lo que obtenemos la maquina nos funcionará correctamente:
Default Server: localhost
Address: 127.0.0.1
Y terminaríamos la configuración de DNS pudiendo realizar las búsquedas
de maquinas que deseemos para asegurarnos del correcto funcionamiento.
Memoria
16
Laboratorio de Sistemas Operativos
8. Servidor HTTP. Servidor FTP.
Telnet:
Es el protocolo que permite conectar dos ordenadores, ejecutando los programas
sobre el remoto pero realizando las operaciones de entrada/salida sobre el local.
Permite hacer login sobre una maquina remota y hacer uso de todos sus recursos
de computación desde la maquina local.
La información enviada por telnet se envía en forma de texto plano, lo que supone
un problema de seguridad que se resuelve empleando SSH.
Puertos utilizados:
telnet: 23
ssh: 22
Comandos:
telnet 192.168.192.0
ssh 192.168.192.0
FTP:
File Transfer Protocol, es el protocolo de permite transferir ficheros entre dos
maquinas conectadas en red.
Podemos “subir” y “bajar” ficheros. De la maquina local a la remota y viceversa.
La versión segura se denomina sftp (secure FTP)
Puertos:
ftp: 20 y 21
sftp: 115
Comandos:
ftp dirección ip
Para coger un archivo: get nombre_archivo*
Para dejar un archivo: put nombre_archivo*
Nota: Si tenemos NIS activado no es necesario hacer logon, el propio sistema se
encarga de gestionar los accesos con la seguridad establecida.
Memoria
17
Laboratorio de Sistemas Operativos
Apache:
Es un servidor web portable, modular, fiable y open source(código abierto), es uno
de los servidores web más utilizados en todo el mundo.
Configuración:
Modificar fichero: httpd.conf
Modificar la página Index.shtml en la siguiente ubicación: /var/www/html para
la pagina de bienvenida.
Arranque: /etc/httpd/conf
Ficheros de configuración:
commonhttpd.conf
httpd.conf
Impresión:
Hay dos formas de impresión:
Lpd: Demonio que gestiona la cola de impresión en nuestra maquina
Cups: Es un equivalente al spooler de Windows.
Para la impresión necesitamos tener instaladas las herramientas de impresión, que
se obtienen del paquete Printtool.
Una vez instaladas las herramientas de impresión procedimos a configurar la
impresora en nuestra máquina, nosotros utilizamos el demonio de impresión Lpd en
lugar de Cups, para configurar la impresora ejecutamos la utilidad drakconf y lo
único que tuvimos que hacer fue decirle el tipo de impresora y poco mas, porque de
lo demás se encargo é, lo que también nos pidió fue la dirección IP de la impresora
que le dimos la 192.168.192.250 y una vez elegida la impresora y proporcionada la
dirección IP procedimos a la impresión de documentos.
Ver hoja anexa configuración impresora.
Nota: En nuestro laboratorio la impresora esta dentro de la red de la
universidad, por lo que estaba en una red de tipo B y nuestra red era una red de
tipo C, por lo que tuvimos que cambiarle la dirección IP para poder imprimir
desde nuestra red.
Memoria
18
Laboratorio de Sistemas Operativos
9. Servidores de BBDD
Mysql o postgres
Instalación de paquetes:
Interfaz:
Mysqlcc
Mysqladmin
Gasql
Consola:
/usr/bin/mysqladmin
safe_mysql & (salvar cambios y evitar bloqueos)
Directorio de BBDD:
Var/lib/mysql
Test (pruebas)
Mysql (configuración)
Directorio de bbdd
Var/lib/mysql
Lo primero que debemos hacer es arrancar MySQL :
•
•
Linux: ./mysqld start
Windows: mysqld-shareware.exe
Todo el sistema de permisos de acceso al servidor, a las bases de datos y sus
tablas, MySQL lo almacena en una tabla llamada mysql, que estará en el directorio
/data, a menos que hallamos especificado otro directorio.
En Windows esta tabla se crea con la instalación, pero en Linux/Unix debemos
crearla con:
/usr/local/mysql/bin/mysql_install_db
En la base de datos mysql es donde se guardarán todos los permisos y
restricciones a los datos de nuestras bases de datos. La principal herramienta de
MySQL es mysqladmin, la cuál como parece indicar su nombre es la encargada de
la administración.
MySQL crea por defecto al usuario root con todos los permisos posibles
habilitados, podemos utilizar este usuario como administrador o crear otro, por
ejemplo mysqladmi. Como el usuario root lo crea sin clave de acceso, lo primero
que debemos hacer es asignarle una:
mysqladmin -u root password "miclave"
Memoria
19
Laboratorio de Sistemas Operativos
A partir de ahora cualquier operación que hagamos como root deberemos
especifica la clave. Hay que destacar que entre el modificador -p y la clave no debe
haber espacios.
mysqladmin -u root -pmiclave
Pues bien, ya estamos preparado para crear una base de datos
mysqladmin -u root -pmiclave create mibasededatos
Para borrarla:
mysqladmin -u root -pmiclave drop mibasededatos
La estructura de MySQL
En el directorio /benc encontraremos ejemplos de script y SQL. En el directoio
/share están los mensajes de error del servidor para los distinos idiomas. Los
directorios /include y /lib contiene los fichero *.h y las librerías necesarias, en /bin
están los ficheros ejecutables y en /data encontraremos como subdirectorio cada
una de las bases de datos que hayamos creado.
Como hemos dicho, para cada base de datos que nosotros creamos, MySQL crea
un directorio con el nombre que le hemos asignado a la base de datos. Dentro de
este directorio, por cada tabla que definamos MySQL va ha crear tres archivos:
mitabla.ISD, mitabla.ISM, mitabla.frm
El archivo con extensión ISD, es el contiene los datos de nuestra tabla, el ISM
contiene información acerca de las claves y otro datos que MySQL utiliza para
buscar datos en el fichero ISD. Y el archivo frm contiene la estructura de la propia
tabla.
Dado que las bases de datos de MySQL son simples ficheros de un directorio, para
realizar copias de seguridad, podremos utilizar las herramientas de compresión que
habitualmente usamos en nuestro sistema y luego copiarlo a otro lugar, o
simplemente esto último.
Seguridad
Como comentamos anteriormente, todo el sistema de permisos MySQL lo guarda
en una base de datos llamada mysql, la cuál se componen de cinco tablas: host,
user, db, tables_priv, colums_priv.
La tabla user contiene información sobre los usuarios, desde que máquinas pueden
acceder a nuestro servidor MySQL, su clave y de sus diferentes permisos. La tabla
host nos informa sobre que máquinas podran acceder a nuestro sistema, así como
a las bases de datos que tendrán acesso y sus diferentes permisos. Finalmente, las
Memoria
20
Laboratorio de Sistemas Operativos
tablas db, tables_priv, columns_priv nos proveen de un control individual de las
bases de datos, tablas y columnas (campos).
Tabla user:
CAMPO
TIPO
POR DEFECTO
Host
char(60)
User
char(16)
Password
char(16)
Select_priv
enum('N','Y')
N
Insert_priv
enum('N','Y')
N
Update_priv
enum('N','Y')
N
Delete_priv
enum('N','Y')
N
Create_priv
enum('N','Y')
N
Drop_priv
enum('N','Y')
N
Reload_priv
enum('N','Y')
N
Shutdown_priv
enum('N','Y')
N
Process_priv
enum('N','Y')
N
File_priv
enum('N','Y')
N
Grant_priv
enum('N','Y')
N
References_priv
enum('N','Y')
N
Index_priv
enum('N','Y')
N
Alter_priv
enum('N','Y')
N
CAMPO
TIPO
POR DEFECTO
Host
char(60)
Db
char(32)
Select_priv
enum('N','Y')
N
Insert_priv
enum('N','Y')
N
Update_priv
enum('N','Y')
N
Delete_priv
enum('N','Y')
N
Create_priv
enum('N','Y')
N
Drop_priv
enum('N','Y')
N
Grant_priv
enum('N','Y')
N
References_priv
enum('N','Y')
N
Index_priv
enum('N','Y')
N
Tabla host:
Memoria
21
Laboratorio de Sistemas Operativos
Alter_priv
enum('N','Y')
N
CAMPO
TIPO
POR DEFECTO
Host
char(60)
Db
char(32)
User
char(16)
Select_priv
enum('N','Y')
N
Insert_priv
enum('N','Y')
N
Update_priv
enum('N','Y')
N
Delete_priv
enum('N','Y')
N
Create_priv
enum('N','Y')
N
Drop_priv
enum('N','Y')
N
References_priv
enum('N','Y')
N
Index_priv
enum('N','Y')
N
Alter_priv
enum('N','Y')
N
Tabla db:
He aquí una breve descripción de los diferentes permisos:
•
•
•
•
•
•
•
•
•
•
•
•
•
Memoria
Select_priv: Permite utilizar la sentencia SELECT
Insert_priv: Permite utilizar la sentencia INSERT
Update_priv: Permite utilizar la sentencia UPDATE
Delete_priv: Permite utilizar la sentencia DELETE
Create_priv: Permite utilizar la sentencia CREATE o crear bases de datos
Drop_priv: Permite utilizar la sentencia DROP o eliminar bases de datos
Reload_priv: Permite recargar el sistema mediante mysqladmin reload
Shutdown_priv: Permite parar el servidor mediante mysqladmin Permite
parar el servidor mediante mysqladmin shutdown
Process_priv: Permite manejar procesos del servidor
File_priv: Permite leer y escribir ficheros usando comando como SELECT
INTO OUTFILE y LOAD DATA INFILE
Grant_priv: Permite otorgar permisos a otros usuarios
Index_priv: Permite crear o borrar índices
Alter_priv: Permite utilizar la sentencia ALTER TABLE
22
Laboratorio de Sistemas Operativos
Si dejamos en blanco los campos user, host o db, haremos referencia a cualquier
usuario, servidor o base de datos. Conseguiremos el mismo efecto poniendo el
símbolo % en el campo.
Comparación:
•
MySQL:
o Su principal objetivo de diseño fue la velocidad. Se sacrificaron
algunas características esenciales en sistemas más "serios" con este
fin.
o Otra característica importante es que consume muy pocos recursos,
tanto de CPU como de memoria.
o Licencia GPL a partir de la versión 3.23.19.
o
Ventajas:
Mayor rendimiento. Mayor velocidad tanto al conectar con el
servidor como al servir selects y demás.
Mejores utilidades de administración (backup, recuperación de
errores, etc).
Aunque se cuelgue, no suele perder información ni corromper
los datos.
Mejor integración con PHP.
No hay límites en el tamaño de los registros.
Mejor control de acceso, en el sentido de qué usuarios tienen
acceso a qué tablas y con qué permisos.
MySQL se comporta mejor que Postgres a la hora de modificar
o añadir campos a una tabla "en caliente".
o Inconvenientes:
No soporta transacciones, "roll-backs" ni subselects.
No considera las claves ajenas. Ignora la integridad referencial,
dejándola en manos del programador de la aplicación.
•
PostgreSQL:
o Postgres intenta ser un sistena de bases de datos de mayor nivel que
MySQL, a la altura de Oracle, Sybase o Interbase.
o Licencia BSD.
o
Ventajas:
o
Inconvenientes:
Por su arquitectura de diseño, escala muy bien al aumentar el
número de CPUs y la cantidad de RAM.
Soporta transacciones y desde la versión 7.0, claves ajenas
(con comprobaciones de integridad referencial).
Tiene mejor soporte para triggers y procedimientos en el
servidor.
Soporta un subconjunto de SQL92 MAYOR que el que soporta
MySQL. Además, tiene ciertas características orientadas a
objetos.
Consume BASTANTES más recursos y carga más el sistema.
Memoria
23
Laboratorio de Sistemas Operativos
Límite del tamaño de cada fila de las tablas a 8k !!! (se puede
ampliar a 32k recompilando, pero con un coste añadido en el
rendimiento).
Es de 2 a 3 veces más lenta que MySQL.
Menos funciones en PHP.
En cuanto a consideraciones de estabilidad del servidor, en general parece que
MySQL es más estable (aunque también hay gente que opina lo contrario), y que
Postgres tiende a desperdiciar memoria y sobrecargar bastante el sistema (aunque
de nuevo, hay opiniones distintas).
Como conclusión a la comparación entre MySQL y Postgres, parece aceptado que
MySQL junto con Apache y PHP forman un buen equipo para servir páginas web
con contenido dinámico, discusiones, noticias, etc.,. en general, sistemas en los
que la velocidad y el número de accesos concurrentes sea algo primordial, y la
seguridad no sea muy importante (pueda bastar con hacer backups periódicos que
se restaurarán tras una caida del servidor). En cambio, para sistemas más serios
en las que la consistencia de la BD sea fundamental (BD con información
realmente importante, bancos, etc.) PostgreSQL es una mejor opción pese a su
mayor lentitud.
Memoria
24
Laboratorio de Sistemas Operativos
10.
•
•
•
•
•
•
Referencias
www.mandrakeuser.org
MySQL, www.mysql.org
Página principal de KSql ksql.sourceforge.net
http://www.marqueze.net/relatos/relatos/mvarios/linux3/nis.html
http://www.httpd.apache.org
www.wrox.com
Transparencias de teoría de la Asignatura.
11.
Anexos
Hoja de Descripción de maquinas
Hoja de Instalación de Software
Hoja de Configuración impresora
Memoria
25
Descargar