Nfs, Nis, DHCP

35
NFS / NIS / DHCP Miguel Ángel Nieto <[email protected]> Irontec – Internet y Sistemas sobre GNU/Linux

description

Vistar rápida a NFS, NIS y DHCP

Transcript of Nfs, Nis, DHCP

Page 1: Nfs, Nis, DHCP

NFS / NIS / DHCP

Miguel Ángel Nieto <[email protected]>Irontec – Internet y Sistemas sobre GNU/Linux

Page 2: Nfs, Nis, DHCP

Irontec – NFS y NIS

2

Introducción NFS

NFS son las siglas de Network File System

Nos permite compartir carpetas y ficheros entre distintos sistemas operativos a través de la red

De esta forma, accedemos a carpetas remotas como si en realidad fuesen locales, de forma transparente

Fué desarrollado en 1984 por Sun Microsystems.

Page 3: Nfs, Nis, DHCP

Irontec – NFS y NIS

3

Introducción NFS

● Sigue la estructura cliente/servidor● El servidor comparte unos datos que los clientes

acceden desde sus estaciones de trabajo● Es posible compartir carpetas, dispositivos físicos

(cd-rom, disquetera, usb stick) ya que en Unix, todo son carpetas :)

● Existen tres versiones de NFS, v2, v3 y v4● La última v4 tiene, entre otras cosas, soporte

kerberos y ACLs

http://www.nfsv4.org/

Page 4: Nfs, Nis, DHCP

Irontec – NFS y NIS

4

NFS

● Debian viene con el cliente NFS por defecto (nfs-common) Si no fuese así, será necesario instalaro

● Si queremos instalar un servidor NFS, este se encuentra en el paquete nfs-kernel-server

● Aún así, un equipo puede actuar tanto como servidor como cliente

Page 5: Nfs, Nis, DHCP

Irontec – NFS y NIS

5

NFS

● El primer paso será instalar nfs-kernel-server● Una vez hecho, podemos parar y arrancar el

servicio mediante el script /etc/init.d/nfs-kernel-server

● Para comprobar si está en funcionamiento es necesario usar el comando rcpinfo -p# rpcinfo -p

programa vers proto puerto

100000 2 tcp 111 portmapper

100000 2 udp 111 portmapper

100003 2 udp 2049 nfs

100003 2 tcp 2049 nfs

100005 1 udp 1018 mountd

100005 2 udp 1018 mountd

100005 1 tcp 1021 mountd

100005 2 tcp 1021 mountd

[....]

Tenemos que ver, como mínimo, portmapper, nfs y mountd.

Page 6: Nfs, Nis, DHCP

Irontec – NFS y NIS

6

NFS

● Por defecto no se permite el acceso a ningún recurso compartido

● Estos se configuran en el fichero /etc/exports● Se debe indicar que carpeta compartir y a que host● Ejemplo:

/tmp/ host.profesor.com(rw)● Se pueden indicar tanto host como Ips.● Si queremos dar solo lectura será (ro)● Una vez hecho el cambio se deben aplicar con el

comando:# exportfs -ra

Page 7: Nfs, Nis, DHCP

Irontec – NFS y NIS

7

NFS

● A la hora de indicar el host al que le permitimos el acceso se pueden usar comodines como * y ?

● Por ejemplo: – alumno?.com– Profesor.*– *.google.es– *.*.?ahoo.es

● En caso de usar Ips también podemos definir rangos completos

– 192.168.1.0/24– 192.168.1.111/32–

Page 8: Nfs, Nis, DHCP

Irontec – NFS y NIS

8

NFS

● Las opciones más importantes:– Secure: obliga a que el servicio escuche en un puerto

privilegiado (menor a 1024)– Nosecure: elimina la obligación de usar un puerto

privilegiado– Ro: solo lectura– Rw: lectura / escritura– Noaccess: Sin permisos de acceso– Anonuid: El uid de usuario con el que nos

conectaremos– Anongid: Es el gid de grupo con el que nos

coenctaremos

Page 9: Nfs, Nis, DHCP

Irontec – NFS y NIS

9

NFS

● Para montar un dispositivo nfs habrá que hacer uso del comando mount

mount -t nfs 192.168.1.111:/var/log /mi/directorio/local● El comando root debe ejecutarse como root

● Ahora en /mi/directorio/local tendría que ver el contenido de la carpeta /var/log remota

● ¡Vamos a probadlo! Uno será servidor y otro cliente

Page 10: Nfs, Nis, DHCP

Irontec – NFS y NIS

10

NFS

● Se debe compartir:– /var/log con permisos de acceso total solo para tu

compañero. Los demas solamente lectura

● Se debe montar:– El /var/log de tu compañero en tu /var/nuevolog– Probad a escribir, mover, etc.

● Suerte! :D

Page 11: Nfs, Nis, DHCP

Irontec – NFS y NIS

11

NFS

● Se puede configurar para que NFS se monte al arrancar el sistema

● Para ello se debe configurar en /etc/fstab

● Gracias a esto podemos, por ejemplo, montar nuestra home en un NAS remoto

Page 12: Nfs, Nis, DHCP

Irontec – NFS y NIS

12

Optimizar la tranferencia NFS

● A la hora de montar disponemos de unos valores que nos ayudaran a mejorar el rendimiento:

– Rsize: indica el tamaño en bytes de los bloques en la lectura

– Wsize: indica el tamaño en bytes de los bloques en la lectura

– Cache/nocache: habilita o deshabilita la cache– Noatime: no actualiza la fecha de acceso– Noacl: no hace uso de las acl

Page 13: Nfs, Nis, DHCP

Irontec – NFS y NIS

13

Optimizar la tranferencia NFS

● Sin cambiar opciones:dd if=/dev/zero of=/media/log/kk bs=16k count=16k

16384+0 records in

16384+0 records out

268435456 bytes (268 MB) copied, 41,9188 s, 6,4 MB/s

● Cambiando opciones (ejemplo):$ mount 10.10.0.118:/var/log/ /media/log/ -o wsize=1024,noatime

¡Probad a mejorar los tiempos!

Page 14: Nfs, Nis, DHCP

Irontec – NFS y NIS

14

Optimizar la transferencia NFS

● Más opciones:

http://web.mit.edu/rhel-doc/4/RH-DOCS/rhel-rg-es-4/s1-nfs-client-config.html

man mount

man fstab

man nfs

man exports

Page 15: Nfs, Nis, DHCP

Irontec – NFS y NIS

15

NIS

● Cada equipo tiene sus usuarios, su fichero host... ¡se puede compartir la información!

● Gracias al servicio NIS es posible que los usuarios y hosts definidos en un servidor sean usables en cualquier sistema que actue como cliente.

● NIS (network information server) fué un protocolo creado por Sun Microsystems.

● Originalmente se llama YeloPages, de ahí que todos los comandos de NIS empiezen por “yp”

Page 16: Nfs, Nis, DHCP

Irontec – NFS y NIS

16

NIS

● Está ideado para redes Unix pequeñas donde la configuración de un DNS y LDAP supone más un problema que una solución por el trabajo que conlleva

● Los elementos que compartiremos son:– Usuarios– Grupos– Hosts

● Al igual que con NFS, es necesario una estructura cliente/servidor

Page 17: Nfs, Nis, DHCP

Irontec – NFS y NIS

17

NIS

● El paquete Debian que incluye Nis se llama.... “nis”, por lo que habrá que instalarlo con apt-get

● Es importante tener en cuenta que NIS no hace uso del Dns, por lo que en nuestro host debemos definir nuestro nombre de dominio:

– 192.168.145.111 profesor.com● Una vez que tengamos el dominio, debemos

definirlo en /etc/defaultdomain● El dominio SI es sensible a mayúsculas/minúsculas.

No es lo mismo Profesor.com que profesor.com

Page 18: Nfs, Nis, DHCP

Irontec – NFS y NIS

18

NIS

● Una vez que tenemos configurado el acceso será necesario definir quien puede acceder a nuestros servicios

● Se hace en el fichero /etc/default/nis

255.255.255.0 192.168.144.0

255.255.255.0 192.168.145.0

● Solo los equipos de esa red podrán trabajar como clientes de nuestro servidor NIS

Page 19: Nfs, Nis, DHCP

Irontec – NFS y NIS

19

NIS

● Resumiendo, hemos configurado:– Defaultdomain– Redes a las que permitimos acceso

● Ahora solamente queda configurar NIS para que actue como servidor y no como cliente

● Dicho cambio se hace en /etc/default/nis● Una vez hecho el cambio, inicializaremos nuestra

base de datos:

/usr/lib/yp/ypinit -m

Page 20: Nfs, Nis, DHCP

Irontec – NFS y NIS

20

NIS

debian-servidor:~# /usr/lib/yp/ypinit -m

At this point, we have to construct a list of the hosts which will run NIS

servers. debian-servidor is in the list of NIS server hosts. Please continue to add

the names for the other hosts, one per line. When you are done with the

list, type a <control D>.

next host to add: debian-servidor

next host to add: profesor.com

next host to add:

The current list of NIS servers looks like this:

debian-servidor

profesor.com

Is this correct? [y/n: y] y

Page 21: Nfs, Nis, DHCP

Irontec – NFS y NIS

21

NIS

We need a few minutes to build the databases...

Building /var/yp/profesor.com/ypservers...

Running /var/yp/Makefile...

make[1]: se ingresa al directorio `/var/yp/profesor.com'

Updating passwd.byname...

Updating passwd.byuid...

Updating group.byname...

[...]

make[1]: se sale del directorio `/var/yp/profesor.com'

debian-servidor has been set up as a NIS master server.

Now you can run ypinit -s debian-servidor on all slave server.

Page 22: Nfs, Nis, DHCP

Irontec – NFS y NIS

22

NIS

● Cada vez que se añada un usuario o un host al equipo se debe reconstruir la base de datos, para que los nuevos elementos estén disponibles a todo el mundo

● Estas bases de datos se guardan en:– /var/yp

● La comunicación entre cliente y servidor se hace a través del puerto 111 TCP (portmap) por lo que deberá estar abierto y sin firewall de por medio

Page 23: Nfs, Nis, DHCP

Irontec – NFS y NIS

23

NIS

● Es posible jugar con la seguridad del servidor, definiendo que datos deseamos exportar a los clientes y cuales no

● Dicha política se configura en:– /etc/ypserv.conf

# Host : Domain : Map : Security

* : * : passwd.byname : port/mangle

Page 24: Nfs, Nis, DHCP

Irontec – NFS y NIS

24

NIS

● host: dirección IP con comodines opcionales● domain: nombre del dominio NIS para el que se

aplica la regla; un asterisco sirve como comodín.● map: nombre del mapa al que se accede;

igualmente un asterisco sirve como comodín.● security: tipo de seguridad aplicable

– none: donde siempre se permite el acceso– port: sólo se permite el acceso si la petición se origina en un puerto

privilegiado (por debajo de 1024)– deny: acceso denegado en cualquier caso

● A port y none es posible añadirle mangle[:field] donde “field” es un campo que será sustituido por una “x”. El valor por defecto es 2.

Page 25: Nfs, Nis, DHCP

Irontec – NFS y NIS

25

NIS

● ¡Una vez configurado el servidor, queda configurar los clientes!

● Por defecto la busqueda la hace mediante broadcast, lo que en nuestro caso puede ser una locura ya que tendremos varios servidores NIS

● Por lo tanto, indicaremos el servidor NIS a mano en el fichero

– /etc/yp.confypserver 192.168.144.111

● Reiniciamos el servicio Nis para aplicar los cambios.

Page 26: Nfs, Nis, DHCP

Irontec – NFS y NIS

26

NIS

● Ahora será necesario configurar nuestros ficheros passwd, shadow y groups para que admitan datos del NIS:

– Passwd: +::::::– Shadow: +::::::::– Group: +:::

Page 27: Nfs, Nis, DHCP

Irontec – NFS y NIS

27

NIS

● Ahora haremos uso de los comandos yp* para comprobar que todo funciona:

– ypdomainname (averiguar nuestro dominio)– ypwhich (averiguar nuestro servidor NIS)– ypwich -m passwd (que servidor dispone el mapa

passwd)– ypcat -x (ver todos los servicios que ofrece el servidor)– ypcat passwd (ver las entradas del mapa passwd)

Page 28: Nfs, Nis, DHCP

Irontec – NFS y NIS

28

NIS

● Tendriamos que poder ver los hosts y passwd del servidor

● Probad a actualizar los datos en el servidor y que estos sean visibles en el cliente

● Intentad hacer login con un usuario NIS● Cambiad los roles, el servidor pasa a ser cliente y el

cliente servidor :)

Page 29: Nfs, Nis, DHCP

Irontec – NFS y NIS

29

DHCP

● DHCP: Dynamic Host Configuration Protocol● Nos permite autoconfigurar la interfaz de red de los

equipos● El demonio que usaremos en Debian es dhcpd,

aunque existen más● apt-get install dhcpd :)● A parte de IP, Gateway y Máscara de red pueden

enviar más opciones al cliente

Page 30: Nfs, Nis, DHCP

Irontec – NFS y NIS

30

DHCP

● Otras opciones disponibles:– http://www.ietf.org/rfc/rfc2132.txt

● Las más importantes:– Dirección DNS– MTU (Unidad de transferencia máxima)– Servidores NIS– Servidores NTP– Servidor TFT– Servidor WINS

Page 31: Nfs, Nis, DHCP

Irontec – NFS y NIS

31

DHCP

● Los manuales imprescindibles están en vuestro propio equipo

– man dhcpd.conf– man dhcp-options

● El fichero de configuración ya incluye unas opciones de ejemplo que nos pueden ayudar a montar nuestro servidor

Page 32: Nfs, Nis, DHCP

Irontec – NFS y NIS

32

DHCP

● Ejemplo DHCP:subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.10 192.168.1.50; option broadcast-address 192.168.1.255; option routers 192.168.1.1; option domain-name-servers 192.168.1.2; option ntp-servers 192.168.1.2; option domain-name irontec.com; option lpr-servers 192.168.1.3; option static-routes 10.10.0.31 10.10.0.1}

Page 33: Nfs, Nis, DHCP

Irontec – NFS y NIS

33

DHCP

● Si por alguna razón nos parecen pocas las opciones, podemos definir nuestras propias opciones:

– option sql-server-address code 193 = ip-address;option sql-server-address 192.168.3.1;

– option libro code 195 = text;option libro “the catcher in the rye”

● Lista de posibles valores:– Ip-address: Una dirección IP– Text: Una cadena de texto– Boolean: On/Off– Integer: 1536– …

● El código puede ser un valor entre 128 y 254

Page 34: Nfs, Nis, DHCP

Irontec – NFS y NIS

34

DHCP

● El tiempo de asignación de Ips se puede controlar (aunque en la práctica, si no apagas el ordenador es casi infinito)

– default-lease-time 600: la asignación de la IP al equipo tendrá una duración de 600 segundos. El cliente dhcp puede modificar este valor y pedir otro lease time

– Max-lease-time 7200: si el cliente pide otro lease time diferente del default, como máximo podrá indicar el valor aquí especificado

Page 35: Nfs, Nis, DHCP

Irontec – NFS y NIS

35

DHCP

● El cliente de dhcp se configura en /etc/dhcp3/dhcpclient.conf

● En el, entre otras cosas, podemos configurar que options se reciben

● Los leases recibidos podemos consultarlos en /var/lib/dhcp3

● Si por ejemplo tenemos nuestros propios DNS y no queremos que el DHCP nos cambie el resolv.conf, eliminariamos “domain-name-servers” de la lista de options a pedir