NFS es el sistema que utiliza Linux para compartir carpetas en una red. Mediante NFS, un servidor puede compartir sus carpetas en la red. Desde los PCs de los usuarios se puede acceder a dichas carpetas compartidas y el resultado es el mismo que si estuvieran en su propio disco duro. NFS son las siglas en inglés de Network File System que podríamos traducir como Sistema de Archivos en Red. Básicamente NFS permite, a PCs que utilizan Linux, compartir y conectarse a carpetas compartidas entre sí. Es el sistema nativo que utiliza Linux para compartir y acceder a carpetas compartidas en la red. Para la instalación lo podemos hacer desde una consola de root: # yum -y install nfs-utils system-config-nfs nfs-utils El paquete nfs-utils proporciona un demonio para el servidor de NFS del núcleo y las herramientas relacionadas, lo que proporciona un nivel mucho más alto de rendimiento que el tradicional servidor Linux NFS utilizado por la mayoría de los usuarios. nfs-utils-libs bibliotecas de apoyo que son necesarios para los comandos y demonios de la RPM nfs-utils. system-config-nfs system-config-nfs es una interfaz gráfica de usuario para crear, modificar y eliminar NFSacciones. CONFIGURACIÓN DEL SERVIDOR NFS Hay tres archivos de configuración principales que se necesitan para editar para configurar un servidor NFS: / etc / exports , / etc hosts.allow / y / etc / hosts.deny . / Etc / exports , el archivo de configuración principal / Etc / hosts.allow , alcanza para permitir el acceso / Etc / hosts.deny , HOSTS para evitar el acceso Antes de arrancar el servicio NFS, es necesario indicar qué carpetas deseamos compartir y si queremos que los usuarios accedan con permisos de solo lectura o de lectura y escritura. También existe la posibilidad de establecer desde qué PCs es posible conectarse. Estas opciones se configuran en el archivo /etc/exports Una vez instalado el servidor NFS, editamos el archivo de configuración 'exports' en el que especificamos aquellos directorios a exportar y que usuarios pueden acceder a ellos. # nano /etc/exports La sintaxis del archivo es: <directorio a exportar> <máquina que puede acceder> (opciones) Ejemplo: /home/usuario/público 192.168.0.0/24 (rw) En éste caso, el directorio a exportar es '/home/usuario/público' y al cual podrán acceder todas las máquinas que se encuentren en el rango nuestra red, en modo lectura/escritura (rw). Para el modo sólo lectura, cambiamos (rw) por (ro). En cada línea del archivo de configuración del servidor NFS /etc/exports, se puede especificar: La carpeta que se quiere compartir El modo en que se comparte (solo lectura 'ro' o lectura y escritura 'rw' ) Desde qué PC o PCs se permite el acceso (nombre o IP del PC o rango de IPs) También podemos especificar las máquinas que tendrán acceso al servidor NFS, en vez de indicar un rango de direcciones. Ejemplo: /home/usuario/público 192.168.0.110 192.168.0.111 (rw) Para proporcionar un poco de seguridad, debemos editar y modificar los archivos de configuración siguientes: # nano /etc/hosts.deny portmap:ALL lockd:ALL mountd:ALL rquotad:ALL statd:ALL # nano /etc/hosts.allow rpcbind:IP_A_PERMITIR (192.168.0.0/24) portmap:IP_A_PERMITIR (192.168.0.0/24) lockd:IP_A_PERMITIR (192.168.0.0/24) mountd:IP_A_PERMITIR (192.168.0.0/24) rquotad:IP_A_PERMITIR (192.168.0.0/24) statd: IP_A_PERMITIR (192.168.0.0/24) SERVICIOS REQUERIDOS Linux utiliza una combinación de soporte a nivel del kernel y procesos demonio para proporcionar los archivos compartidos con NFS. NFSv2 y NFSv3 confía en las Llamadas de procedimientos remotos ((RPC)) para enrutar peticiones entre clientes y servidores. Los servicios RPC bajo Linux son controlados por el servicio portmap. Para compartir o montar sistemas de archivos NFS, los servicios siguientes funcionan juntos, dependiendo de cuál versión de NFS se tenga implementada: nfs — Inicia los procesos RPC apropiados para servir peticiones para los sistemas de archivos compartidos NFS. nfslock — Un servicio opcional que inicia los procesos RPC adecuados para permitir que clientes NFS bloqueen archivos en el servidor. portmap — El servicio RPC para Linux; responde a las peticiones para servicios RPC y configura las conexiones al servicio RPC solicitado. No se utiliza con NFSv4. Los siguientes procesos RPC facilitan los servicios NFS: rpc.mountd — Este proceso recibe las peticiones de montaje desde clientes NFS y verifica que el sistema de archivos solicitado esté actualmente exportado. Este proceso es iniciado automáticamente por el servicio nfs y no requiere de la configuración del usuario. No se utiliza con NFSv4. rpc.nfsd — Este proceso es el servidor NFS. Trabaja con el kernel Linux para satisfacer las demandas dinámicas de clientes NFS, tales como proporcionar hilos del servidor cada vez que se conecta un cliente NFS. Este proceso corresponde al servicio nfs. rpc.lockd — Un proceso opcional que permite a los clientes NFS bloquear archivos en el servidor. Esto corresponde al servicio nfslock. No se utiliza con NFSv4. rpc.statd — Este proceso implementa el protocolo RPC Network Status Monitor (NSM) el cual notifica a los clientes NFS cuando un servidor NFS es reiniciado luego de haber sido apagado abruptamente. Este proceso es iniciado automáticamente por el servicio nfslock y no requiere configuración por parte del usuario. No se utiliza con NFSv4. rpc.rquotad — Proporciona información de cuotas de usuario para los usuarios remotos. Este proceso se inicia automáticamente por el servicio nfs y no requiere configuración por parte del usuario. rpc.idmapd — Este proceso proporciona al cliente y servidor NFSv4 llamadas ascendentes (upcalls) que hacen corresponder los nombres NFSv4 (los cuales son cadenas en la forma usuario@dominio) y los UIDs y GIDs locales. Para que idmapd funcione con NFSv4, el /etc/idmapd.conf debe estar configurado. Se requiere este servicio para su uso con NFSv4. rpc.svcgssd — Este proceso proporciona al servidor los mecanismos de transporte para el proceso de autenticación con NFSv4. Se requiere este servicio para su uso con NFSv4. rpc.gssd — Este proceso proporciona al cliente los mecanismos de transporte para el proceso de autenticación. Se requiere este servicio para su uso con NFSv4 CONFIGURACION DE LOS CLIENTES El acceso a la carpeta compartida es exactamente igual que el acceso a cualquier otra carpeta de nuestro disco duro. Para que los usuarios puedan acceder desde sus clientes NFS a los directorios y archivos compartidos por el servidor NFS, debemos hacer lo siguiente en el cliente y como root ejecutando el comando: # mount -t nfs <máquina-servidor>:<directorio-compartido> <punto de montaje> # umount <punto de montaje>' (desmontar) Ejemplo: # mount -t nfs 192.168.0.100:/home/usuario/público /mnt' # umount /mnt' (para desmontar) Para que nos funcione correctamente es necesario indicarle al firewall "iptables" que nos deje pasar todo el tráfico que venga desde la IP_A_PERMITIR. iptables -A INPUT -s IP_A_PERMITIR -j ACCEPT iptables -A INPUT -s NUESTRA_IP -j ACCEPT iptables -A OUTPUT -s IP_A_PERMITIR -j ACCEPT iptables -A OUTPUT -s NUESTRA_IP -j ACCEPT VERSIÓN CON DROP POR DEFECTO Si queremos que nuestra maquina sea inexcrutable y que solo tenga abierto un puerto imprescindible para dar determinado servicio. Con DROP por defecto se protege la maquina perfectamente, aunque hay que añadir algunas reglas para que la propia máquina sea capaz de salir a internet. ## FLUSH de reglas iptables –F iptables –X iptables –Z iptables -t nat -F ## Establecemos politica por defecto: DROP iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP ## Debemos decir de manera explicita qué es lo que queremos abrir # A nuestra IP le dejamos todo iptables -A INPUT -s IP_A_PERMITIR -j ACCEPT