Sistema de archivos en red con seguridad de nivel de usuario para Linux

8

Quiero habilitar el intercambio de archivos entre servidores y clientes, ambos linux. No quiero confiar en la confianza de la máquina como en NFSv4 porque los usuarios del cliente tendrán privilegios de root. ¿Cuáles son mis opciones además de SMB (SAMBA)? ¿OpenAFS admite autenticación y acceso a nivel de usuario? El uso de WebDAV / ftp / sshfs montado parece una tontería para LAN.

Konrads
fuente
¿Quiere decir que tienen acceso raíz a los servidores o simplemente a sus propias máquinas cliente?
wag2639

Respuestas:

14

No estoy seguro de entender completamente:

"No quiero confiar en la confianza de la máquina como en NFSv4 porque los usuarios del cliente tendrán privilegios de root".

Si quiere decir que los usuarios del cliente tendrán privilegios de root en el cliente y no desea que tengan root en el host, simplemente no use la opción "no_root_squash". También puede hacer cosas como deshabilitar setuid para ayudar a reducir el riesgo para el cliente del servidor también.

También tiene la opción de usar kerberos con NFSv4, consulte este enlace .

En otras palabras, NFSv4 puede brindarle la seguridad que necesita mientras es un poco más ... (¿escalable?) ... el uso de sshfs en todas partes. Puede que todavía no sea lo que quieres, pero no me rendiría demasiado pronto.

Kyle Brandt
fuente
Por ejemplo, tengo dos proyectos / joeisworking y / mattisworking. Incluso si hago squash root, Matt desde su estación de trabajo puede acceder a Joe's.
Konrads
2
@Konrads: No si usa kerberos, como mencionó el Sr. Brandt. Incluso si Matt tiene raíz en su propia estación de trabajo, no puede obtener el TGT de Joe.
Janneb
Estoy pensando que Konrads simplemente no está seguro de cómo configurar NFS, o ha experimentado una red mal configurada anteriormente. NFS puede ser muy seguro y puede lograr exactamente lo que se describe en la pregunta. Yo diría que NFSv4 es uno de (si no el más) sistema de archivos de red seguro (cuando está configurado correctamente).
Chris S
3

Con Kerberos, solo el servidor kdc otorga tokens de autenticación. Una máquina cliente por sí sola solo puede autenticarse como un host (y eso es si le da la tabla de claves a un principal nfs / client-hostname @ REALM principal), y eso solo le da derecho a hablar con el servidor nfs. Son los usuarios los que tienen la capacidad de autenticarse, y el servidor nfs solo los autoriza a acceder a sus propios archivos. Con sec = krb5p, el servidor también evita la indagación y la alteración.

Ser root no dará a sus usuarios privilegios inapropiados. La única forma en que tendrían acceso a más archivos es pirateando las máquinas de los demás, pirateando el servidor nfs o el kdc. NFSv4 con Kerberos se adapta bien a sus requisitos de seguridad.

Aquí hay más sobre el modelo de seguridad:

Si está buscando una implementación, aquí hay algunos tutoriales centrados en Debian / Ubuntu. Elegí configuraciones simples sin LDAP. Estas distribuciones tienen una configuración basada en debconf que te ayuda a llegar.

Mis adiciones: no necesita especificar un enctype des-cbc-crc, pero necesita allow_weak_crypto en krb5.conf para que el protocolo de comunicación pueda usar des-cbc-crc para el cifrado de flujo. Esto será innecesario en los núcleos 2.6.35.

Si está buscando algo similar a un dispositivo, hay FreeIPA .

Tobu
fuente
Esto es interesante, hasta ahora entendí que solo hay autenticación de servidor a servidor en NFSv4 y luego el sistema que monta el volumen exportado es responsable de ordenar los permisos (squash_root_fs es la excepción). ¿Puedes proporcionar algunos enlaces a documentos?
Konrads
2

sshfs es el camino a seguir. En el cliente:

sshfs -o idmap=user,workaround=rename user@server:/home/user/share /home/user/share

Permisos iguales a ssh ... ¡porque estás usando ssh! Lo bueno es que no tiene que tocar nada en el servidor, suponiendo que sshd esté instalado y funcionando correctamente. Puede que no tenga el rendimiento como las otras sugerencias, pero es muy simple.

SuperJames
fuente
0

samba realmente suena como tu mejor apuesta. Samba tiene extensiones de Unix, por lo que cuando se monta como cifs en Linux, debe mostrar los permisos de Unix adecuados y todo eso. Creo que esa será la mejor opción para sus limitaciones. si eso no funciona, sshfs podría usarse en un apuro, pero no tendrá un rendimiento o integración tan buena en el sistema operativo como samba.

mtinberg
fuente
0

¿OpenAFS admite autenticación y acceso a nivel de usuario?

Sí, parece que OpenAFS satisfaría sus requisitos aquí, pero también Kerberized NFSv4. En ambos entornos, no necesita "confiar" en los clientes; El control de acceso es impuesto por los servidores. Las versiones anteriores de NFS requerían que efectivamente "confiara" en los clientes, pero Kerberized NFSv4 no. OpenAFS nunca ha requerido clientes "confiables", y también se basa en Kerberos para la autenticación y la seguridad.

adeason
fuente