NFS: compartir con todos los clientes excepto uno

NFS: compartir con todos los clientes excepto uno

Quiero compartir una carpeta con todos los clientes de la red excepto solo uno. Este es mi /etc/exportsarchivo actual:

/opt/resources     *(rw,async)

¿Qué debo agregar para evitar que el cliente 192.168.1.24tenga la necesidad de mencionar las direcciones de todos los demás clientes autorizados?

Respuesta1

No conozco ningún servidor NFS que acepte patrones negativos en el exportsarchivo.

Puede usar máscaras de red para cubrir varios clientes a la vez si enumera direcciones IP (no puede usar patrones comodín para direcciones IP). Por ejemplo, la siguiente línea coincide con 192.168.1.* excepto 192.168.1.24. Sí, es tedioso.

/opt/resources 192.168.1.0/28(rw,async) 192.168.1.16/29(rw,async) 192.168.1.25(rw,async) 192.168.1.26/31(rw,async) 192.168.1.28/30(rw,async) 192.168.1.32/27(rw,async)  192.168.1.64/26(rw,async) 192.168.1.128/25(rw,async)

Puede evitar saturar el exportsarchivo y posiblemente duplicarlo utilizando ungrupo de red NIS. Sin embargo, en el archivo netgroup deberá enumerar todos los hosts en todas las listas.

Si no puede encontrar una manera satisfactoria de describir las listas de acceso para cada árbol exportado, es posible que desee generar automáticamente el archivo hostso netgroup.

Respuesta2

AFAIK, NFSno tiene ninguna opción para negar a un cliente específico (porque si el cliente no figura en la exportsentrada, no puede acceder al recurso compartido).

En su caso, creo que puede utilizar host.denypara negarle a un cliente el acceso a NFScompartir. Añade una línea a /etc/host.deny:

portmap:192.168.1.24

Esto, por supuesto, no es una solución perfecta, porque el cliente que figura en la lista /etc/host.denyno puede acceder a ningún otro recurso compartido en NFSel servidor.

Respuesta3

Otra forma sería utilizaripsetcon iptables. ipset está disponible en la mayoría de los repositorios básicos de Linux.

Puede crear un ipset de direcciones IP utilizando, por ejemplo,

ipset create serverblacklist hash:net
ipset -A serverblacklist 192.168.1.24

...y agregue dicha regla para bloquear las direcciones IP 'serverblacklist' de la tabla ipset.

iptables -A INPUT -p tcp -m set --match-set serverblacklist src -j DROP

De manera similar, también puede crear una lista blanca de IP para permitir y una entrada de IPtables para permitirlas explícitamente, dependiendo de lo que sea más conveniente.

información relacionada