Nfsnis

862 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
862
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
88
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Nfsnis

  1. 1. NFS / NIS / DHCP Miguel Ángel Nieto <miguelangel@irontec.com> Irontec – Internet y Sistemas sobre GNU/Linux
  2. 2. Irontec – NFS y NIS 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. 2
  3. 3. Irontec – NFS y NIS 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/ 3
  4. 4. Irontec – NFS y NIS 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 4
  5. 5. Irontec – NFS y NIS 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. 5
  6. 6. Irontec – NFS y NIS 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 6
  7. 7. Irontec – NFS y NIS 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 – 7
  8. 8. Irontec – NFS y NIS 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 8
  9. 9. Irontec – NFS y NIS 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 9
  10. 10. Irontec – NFS y NIS 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 10
  11. 11. Irontec – NFS y NIS 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 11
  12. 12. Irontec – NFS y NIS 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 12
  13. 13. Irontec – NFS y NIS 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! 13
  14. 14. Irontec – NFS y NIS Optimizar la transferencia NFS ● Más opciones: http://web.mit.edu/rhel-doc/4/RH-DOCS/rhel-rg-es-4/s1-nfs-client man mount man fstab man nfs man exports 14
  15. 15. Irontec – NFS y NIS 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” 15
  16. 16. Irontec – NFS y NIS 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 16
  17. 17. Irontec – NFS y NIS 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 17
  18. 18. Irontec – NFS y NIS 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 18
  19. 19. Irontec – NFS y NIS 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 19
  20. 20. Irontec – NFS y NIS 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 20
  21. 21. Irontec – NFS y NIS 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. 21
  22. 22. Irontec – NFS y NIS 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 22
  23. 23. Irontec – NFS y NIS 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 23
  24. 24. Irontec – NFS y NIS 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. 24
  25. 25. Irontec – NFS y NIS 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.conf ypserver 192.168.144.111 ● Reiniciamos el servicio Nis para aplicar los cambios. 25
  26. 26. Irontec – NFS y NIS NIS ● Ahora será necesario configurar nuestros ficheros passwd, shadow y groups para que admitan datos del NIS: – Passwd: +:::::: – Shadow: +:::::::: – Group: +::: 26
  27. 27. Irontec – NFS y NIS 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) 27
  28. 28. Irontec – NFS y NIS 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 :) 28
  29. 29. Irontec – NFS y NIS 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 29
  30. 30. Irontec – NFS y NIS 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 30
  31. 31. Irontec – NFS y NIS 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 31
  32. 32. Irontec – NFS y NIS 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 } 32
  33. 33. Irontec – NFS y NIS 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 33
  34. 34. Irontec – NFS y NIS 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 34
  35. 35. Irontec – NFS y NIS 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 35

×