Debe introducir al menos 3 caracteres en el buscador.
Inicio / Wikis / Tutoriales / Guía de Seguridad del Administrador de Linux - NFSD

Guía de Seguridad del Administrador de Linux - NFSD

 ***** (7 opiniones)
Creative Commons Tutorial de Kurt Seifried - 16 de Febrero de 2006
Temas Relacionados: Linux
30. NFSD
NFS significa Sistema de Ficheros de Red, Netork File System, y es sencillamente eso, una buena forma de distribuir sistemas de ficheros, de sólo lectura y lectura/escritura, mientas se conserva un grado de seguridad y de control suponiendo que la red está cerrada y es segura. El NFS se pensó para ser utilizado en entornos con un gran ancho de banda (p. ej., en una LAN), en la cual los riesgos de seguridad no son altos, o la información que se comparte no es sensible (p. ej., una LAN pequeña y fiable detrás de un cortafuegos intercambiando diagramas de CAD/CAM, o un gran laboratorio de una universidad, que utilice el nfs para montar el /usr/. Si se necesita un alto nivel de seguridad, tal como el cifrado de datos entre hosts, el NFS no es la mejor elección. Personalmente lo utilizo dentro de mi LAN interna (la máquina tiene 2 interfaces, adivina cuál es la que tiene los filtros del cortafuegos más severos), para compartir sistemas de ficheros que contienen rpm’s, este sitio web, etc. Alternativas más seguras incluyen el SAMBA (gratuito) y ahora IBM está portando el AFS a Linux (costoso, pero el AFS es un buen trozo de código).

El NFS tiene algunos controles de seguridad rudimentarios. El primero sería el filtrado mediante cortafuegos; en cualquier caso, utilizar NFS a través de una red grande, lenta y pública como Internet no una buena idea, de modo que hay que filtrar el puerto 2049, UDP. Puesto que el NFS se ejecuta como un conjunto de demonios, los TCP_WRAPPERS no son útiles, a menos que se haya compilado el NFS para soportarlos. El fichero de configuración del NFS tiene unas cuantas directivas, un montón de las cuales tratan de las configuraciones de id del usuario y grupo (mapear todo el mundo a nobody, quizás mapear todos los motores clientes a "motor", etc, etc.) pero no existen mecanismos de autentificación reales (que tu cliente diga tener UID 0, que es por lo que el id del root se limita por defecto a nobody). Las exportaciones del NFS de sólo lectura son bastante seguras, sólo hay que preocuparse de que la gente equivocada sea la que le eche un vistazo a tu información (si ésta es sensible) y/o creen ataques de negación de servicio (pongamos que tienes un directorio legible por el mundo/etc para compartir los fuentes del kernel, y algún tipejo empieza a succionar datos como un loco…).

Las exportaciones de escritura son harina de otro costal, y se deberían utilizar con extrema precaución, puesto que la única "autentificación" está basada en IP/nombre de host (ambas fácilmente sujetas a spoofing), y UID (tú mismo puedes ejecutar Linux y ser UID 0). Viene un cliente con un ataque DOS, toma su IP, monta el compartido con permiso de escritura y se va para casa. Te dices "pero tendría que haber conocido la IP y el UID", amigos, el sniffing de paquetes no es una ciencia aeroespacial, ni lo es el "showmount".

De modo que, ¿cómo se asegura el NFS? Lo primero que hay que hacer es filtrarlo con el cortafuegos, especialmente si la máquina es del tipo multi-homed, con un interfaz conectado a una red públicamente accesible (Internet, el laboratorio de estudiantes, etc.). Si se está pensando en ejecutar NFS sobre una red pública, es mejor que sea de sólo lectura, y definitivamente se estará mejor con un producto diferente a NFS.

Lo segundo y la parte más interesante es el fichero /etc/exports. Controla qué es lo que se les permite hacer a los clientes, y cómo lo hacen.

Un fichero exports de ejemplo:

# Permitir a una estación de trabajo editar el contenido web

/www 10.0.0.11(rw,no_root_squash)

#

# Otro compartido que permita a un usuario editar un sitio web

/www/www.bobo.org 10.0.0.202(rw,no_root_squash)

#

# directorio ftp público

/home/ftp *.ejemplo.org(ro,all_squash)

La estructura del fichero exports es bastante simple, el directorio que se quiere exportar, el cliente (utiliza siempre IP’s, los nombres de hosts se pueden falsear), y cualquier opción. El cliente puede tener una única IP (10.0.0.1), nombre de host (tipejo.poncho.net), una subred (10.0.0.0/255.255.255.0), o un wildcard (*.abuelito.mil). Algunas de las directivas más interesantes (y útiles) del fichero de configuración son: secure – la sesión nfs se debe originar desde un puerto privilegiado, es decir, el root TIENE que ser el que esté intentando montar el directorio. Esto es útil si el servidor que se está exportando también está asegurado.

ro – uno bueno, Sólo Lectura, ya se ha hablado lo suficiente.

noaccess – utilizado para cortar el acceso, p. ej. exportar /home/ pero poner como noaccess el /home/root

root_squash - limita el UID del root a la UID/GID del usuario anónimo (normalmente "nobody"), muy útil si se están exportando los directorios a servidores de administradores en los que no se confía al 100% (el root casi siempre puede leer cualquier fichero…PISTA)

no_root_squash – útil si se quiere perder el tiempo en directorios exportados como root para arreglar cosas (como los permisos del site www)

squash_uids y squash_gids – limitar ciertos UID(s) o GID(s) a los del usuario anónimo, en Red Hat un buen ejemplo sería 500-10000 (por defecto, Red Hat comienza a añadir usuarios y grupos en el 500), permitiendo a cualquier usuario con UID’s más bajas (p. ej. cuentas especiales) acceder a cosas en especial.

all_squash – uno bueno, todos los privilegios se eliminan y todo el mundo es guest.

anonuid y anongid – configuran específicamente el UID / GID del usuario anónimo (quizás se quiera algo especial como "anonnfs").

En realidad, la página man exports es bastante buena.

Más allá de esto no hay mucho que asegurar en NFS, aparte de eliminarlo y sustituirlo por algún otro producto (como AFS, Coda, etc). El NFS es relativamente robusto, casi cualquier sabor de Unix lo soporta, y suele ser fácil de configurar, trabajar y mantener. También es "un viejo conocido", que ha estado entre nosotros durante mucho tiempo. Échale un vistazo a "Practical Unix and Internet Security", también ponen en negrita que no se utilice NFS si la seguridad es de especial interés.

El NFS se debería restringir al mundo exterior, se ejecuta en el puerto 2049, udp, al igual que utiliza RPC en el puerto 111, udp/tcp, y hace uso del mountd, que se ejecuta en el puerto 635, udp. Cambia el 2049 por el 111, y pon el 635 y tcp para asegurar esos servicios (de nuevo, la mejor idea es una regla en blanco para denegar los puertos 1 al 1024, o mejor aún, una política por defecto de denegación).

ipfwadm –I –a accept –P udp –S 10.0.0.0/8 –D 0.0.0.0/0 2049

ipfwadm –I –a accept –P udp –S un.host.fiable –D 0.0.0.0/0 2049

ipfwadm –I –a deny –P udp –S 0.0.0.0/0 –D 0.0.0.0/0 2049

o

ipchains –A input –p udp –j ACCEPT –s 10.0.0.0/8 –d 0.0.0.0/0 2049

ipchains –A input –p udp –j ACCEPT –s un.host.fiable –d 0.0.0.0/0 2049

ipchains –A input –p udp –j DENY –s 0.0.0.0/0 –d 0.0.0.0/0 2049



tftp

El tftp (Protocolo Trivial de Transferencia de Ficheros, Trivial File Transfer Protocol) se utiliza en dispositivos que solicitan información desde un servidor de red, generalmente a la hora de arrancar. Es una forma extremadamente simple de ftp, con la mayoría de la seguridad y comandos avanzados eliminados, básicamente se utiliza casi en exclusiva por estaciones sin disco, datos de configuraciones de routers, y cualquier dispositivo que se arranque, y necesite información que no pueda almacenar permanentemente. Como tal, presenta un agujero de seguridad bastante grande, imagínate que alguien se conecta al servidor tftp y coge el fichero de arranque del router Cisco principal.
Tabla de contenidos
  1. 1 - Cómo determinar qué asegurar y cómo asegurarlo
  2. 2 - Instalación segura de Linux
  3. 3 - Conceptos generales, servidores versus estaciones de trabajo, etc
  4. 4 - Ficheros del sistema
  5. 5 - Seguridad de Ficheros / Sistema de ficheros
  6. 6 - PAM
  7. 7 - Seguridad Física / de Arranque
  8. 8 - Seguridad de contraseñas
  9. 9 - Almacenamiento de Contraseñas
  10. 10 - Seguridad basica de servicios de red
  11. 11 - Ficheros basicos de configuración de red
  12. 12 - TCP-IP y seguridad de redes
  13. 13 - Seguridad PPP
  14. 14 - Seguridad IP (IPSec)
  15. 15 - Cifrado de servicios / datos
  16. 16 - Rutado
  17. 17 - Software de Proxy
  18. 18 - Cortafuegos
  19. 19 - Telnet
  20. 20 - SSH
  21. 21 - FTP
  22. 22 - HTTP / HTTPS
  23. 23 - SMTP
  24. 24 - POP
  25. 25 - IMAPD
  26. 26 - DNS
  27. 27 - NNTP
  28. 28 - DHCPD
  29. 29 - RSH, REXEC, RCP
  30. 30 - NFSD
  31. 31 - TFTP
  32. 32 - BOOTP
  33. 33 - SNMP
  34. 34 - Finger
  35. 35 - Identd
  36. 36 - NTPD
  37. 37 - CVS
  38. 38 - rsync
  1. 39 - lpd
  2. 40 - Samba
  3. 41 - Servidores LDAP Linux
  4. 42 - Sistema X Window
  5. 43 - Conectividad SNA
  6. 44 - Software de Autoridad de Certificación para Linux
  7. 45 - El kernel de Linux
  8. 46 - Parches de seguridad del kernel y del compilador
  9. 47 - Herramientas administrativas
  10. 48 - Gestión de Software
  11. 49 - Herramientas de monitorización de Hosts
  12. 50 - Ficheros de Log y otros métodos de monitorización
  13. 51 - Limitación y monitorización de usuarios
  14. 52 - Lista de comprobación para la conexión a Internet
  15. 53 - Métodos de compartición de ficheros
  16. 54 - Lectores de correo basados en WWW
  17. 55 - Autentificación Basada en Red
  18. 56 - Software de Listas de correo
  19. 57 - Escaneo / herramientas de prueba de intrusos
  20. 58 - Herramientas de escaneo y detección de intrusos
  21. 59 - Sniffers de Paquetes
  22. 60 - Normas de comportamiento / integridad de ficheros
  23. 61 - Gestión de auditorías
  24. 62 - Copias de Seguridad
  25. 63 - Enfrentandose a los ataques
  26. 64 - Ataques de Negación de Servicio
  27. 65 - Ejemplos de ataques
  28. 66 - Virus, Caballos de Troya y Gusanos
  29. 67 - Distribuciones seguras de Linux
  30. 68 - Información específica por Distribuidor / Vendedor
  31. 69 - Información de contacto con vendedores
  32. 70 - Programación segura
  33. 71 - Apéndice A: Libros y Revistas
  34. 72 - Apéndice B: Otra documentación de seguridad sobre Linux
  35. 73 - Apéndice C: Documentación de seguridad en línea
  36. 74 - Apéndice D: Sitios de seguridad en general
  37. 75 - Apéndice E: Sitios de Linux en general
Autor y licencia de 'Guía de Seguridad del Administrador de Linux - NFSD'
Kurt Seifried Extraído de: http://es.tldp.org/Manuales-LuCAS/GSAL/gsal-19991128-htm/

Creative Commons License
Esta obra está bajo una licencia de Creative Commons.
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.

Wikis relacionados con 'Guía de Seguridad del Administrador de Linux - NFSD'

A lo largo de este trabajo se va a intentar hacer un repaso de los... Más »
En este documento se presenta la información acerca de la instalación, configuración, ejecución y mantenimiento... Más »
Esta es la primerísima edición del Linux en Castellano COMO. La audiencia a la que... Más »
Este documento pretende ser el punto de entrada de los hispanohablantes al mundo Linux, intentando... Más »
Este documento describe el soporte de sonido para Linux. Enumera el hardware de sonido soportado,... Más »
¿Estás seguro de que deseas eliminar este capítulo?