Openfiler como servidor de almacenamiento en un grupo de trabajo

Estos últimos fines de semana he estado dando un curso acerca de servidores de ficheros sobre Linux y ayer sábado, ultimo día, les he presentado esta distribución. Como el título indica, se llama OpenFiler y es una distribución basada en CentOS. La lista completa de características podéis leerlas aquí, aunque mencionaré las más interesantes.

  • Autenticación de usuarios mediante LDAP interno, externo, o contra un Active Directory
  • A golpe de click podemos montar RAID 0, 1, 5 y 10 mediante software.
  • Soporta iSCSI, que aunque jamás haya tocado ni hable más adelante acerca de él, ahí está.
  • Permite compartir mediante NFS, SMB/CIFS, HTTP/WebDAV y FTP, con listas de control de acceso a nivel de sistema de ficheros y por red.
  • Permite establecer cuotas por grupo y usuario individualmente o varios a la vez.
  • Soporte para Shadow Copy (Famosas instantáneas de disco de Windows 2003), que no he probado en OpenFIler aún, pero probaré

Como véis, cumple las espectativas, ¿O no? (Puede que no. No todas las solcuiones encajan en el entorno o tienen un bug que le imposibilitará ejercer su función). Podemos utilizar la autenticación LDAP local, remota, o aprovechar el Active Directory de la empresa. Podemos compartir mediante Samba hacia la red local. Disponemos además de NFS si lo necesitásemos, y WebDAV para los clientes remotos, por ejemplo. Por mi parte estoy mirandome el tema de WebDAV, pues evitaría tener que correr un servidor FTP. Las ventajas no solo son esas, sino que además de prescindir de un servicio, es más sencillo aprovechar el despliege del servidor web http-s para las transferencias de ficheros de forma segura (https). A día de hoy todos o casi todos los sistemas operativos soportan WebDAV. Windows XP lo soporta (No he probado en Windows 2000 y anteriores), Mac OS X seguro que tambien. Linux tiene un sistema de ficheros a nivel de usuario llamado davfs, o disponemos de fuse, que creo que hace maravillas. Pero si odiamos la consola disponemos de Konqueror que probablemente también lo soporte, al igual que hace con NFS, sftp, etc.

Este post no orientará al lector acerca de como instalarlo, pues para eso ya está documentado en la web, y dudo que se complique mucho la instalación. Para este artículo me he hecho con el appliance que porporcionan en la sección de descargas del proyecto. Este ya está preparado para cargarlo a VMWare y echarlo a andar.

En su sección de descargas podemos bajarnos la ISO para x86 o x86_64, o bien las imágenes para VMWare o XEN (Estas últimas solamente disponible para x86). Nos descargaremos el fichero openfiler-2.2-x86.vmware.zip y descomprimiremos. Abriremos entonces el fichero vmx con en VMWare y nos pondremos a editar la máquina virtual.

Yo por mi parte he quitado la tarjeta de sonido, el soporte para USB en la máquina virtual, floppy y CD-ROM. Además, le he añadido dos discos duros SCSI con las opciones por defecto, con la excepción de haber desmarcado las casillas de Allocate all disk space now y Split disk into 2GB files. La idea de añadir dos discos duros extras es montar un RAID 0 y crear a continuación los volúmenes. No voy a profundizar tampoco en creación de volúmenes con LVM ni sistemas de ficheros, pues hay información de sobra por la red al respecto.

Arrancamos la máquina y comenzará a cargar. Nos dará un error al intentar montar (De nuevo) /sys y luego intentará obtener una dirección IP mediante DHCP. Si no tenemos un servidor DHCP en la red la interfaz quedará sin dirección IP. Cuando nos aparezca el prompt de login entraremos como root. No necesitaremos contraseña, de modo que con la orden passwd introduciremos la nueva contraseña, una vez hayamos establecido el mapa de teclado castellano con loadkeys es. Ahora configuraremos la dirección IP de la interfaz (La cual, si instalamos desde CD podremos configurar mientras instalamos).

Por mi parte, lo haré a mano con ifconfig eth0 192.168.1.200. Sin más, no necesitamos gateway pues conectaremos desde la misma red supuestamente.

¡Vamos allá!. Accederemos a la interfaz web mediante https://192.168.1.200:446. Lo primero que visualizaremos, tras aceptar certificados SSL firmados por sí mismo, será la licencia GPLv2, la cual deberíamos leer, pero si tenemos prisa correremos la barra de desplazamiento hasta abajo y haremos click en el botón. Acto seguido nos mandará a la pantalla de login donde iniciaremos sesión como usuario openfiler y contraseña password.

A continuación veremos la configuración de la autenticación de LDAP o de Active Directory. EN este artículo trataremos la autenticación con el LDAP de nuestra máquina, y quizá si me encuentro con ganas monte un LAB con un Windows 2003, OpenFiler y un cliente Windows XP para probar la autenticación contra Active Directory.

Mis conocimientos de LDAP son básicos, por lo que lo referente al mismo no está exento de errores. De hecho, nada está exento de errores. Antes de configurar la autenticación iremos a Services > LDAP Settings. En esta sección configuraremos nuestro LDAP. Es bien sencillo: Configuraremos el Base DN como DC=openfiler,DC=local. Como Root Bind DN estableceremos CN=Admin,DC=openfiler,DC=local y como contraseña, la que más os guste. Eso indicará que el usuario Admin tendrá como contraseña la establecida. Este usario será el que utilicemos para conectar a LDAP y hacer consultas de usuarios.

Acto seguido visitaremos Accounts > Authentication. En esta sección configuraremos lo siguiente: Marcaremos la casilla Use LDAP. En el apartado Server escribiremos 127.0.0.1, nuestro LDAP local vaya. Como Base DN estableceremos DC=openfiler,DC=local, y como Root Bind DN, CN=Admin,DC=openfiler,DC=local. No marcaremos nada más. Solamente completaremos el apartado Domain/Workgroup, donde estableceremos éste como GRUPO_TRABAJO o el que corresponda.

Para comprobar que todo ha ido bien nos basta con visitar Accounts > Account Administration > Group Administration. Si ha fallado la conexión con LDAP veremos el error el rojo. Revisad lo anterior, que en la configuración y en la autenticación los datos coincidan.

A continuación crearemos un grupo llamado grupo1, grupo2 y grupo3. Cmo podéis comprobar el GID que asigna comienza en 500. Si queremos establecerlo nosotros mismos basta con marcar la casilla Override… y establecer el GID deseado. Ahora iremos a Accounts > Account Administration > User Administration y crearemos user1 en grupo1, user2 en grupo2 y lo mismo con user3. Una vez creados los usuarios podemos eliminarlos o cambiarles la contraseña con los iconos que aparecen a su izquierda. Para comprobar que todo es correcto visitaremos List of groups y List of users.

Hasta ahora hemos configurado la autenticación, creado tres grupos y tres usuarios. Vamos a crear el RAID 0 y a crear 2 volúmenes sobre él. Lo primero que debemos hacer es particionar. En este momento es en el que decidimos si nuestros discos serán volúmenes físicos o futuros miembros de un RAID. Para ello vamos a Volumes > Physical Volume Management. Una vez aquí pinchamos sobre el disco sdb (El sda ni lo tocamos) y en Partition type escogemos RAID array member. Yo ne mi caso crearé la partición ocupando todo el disco, pero podemos asignarle menos tamaño. Una vez decidido como vamos a particionar ese disco duro pincharemos en Create. A continuación pinchamos en Back to the list of physical storage devices y hacemos lo mismo con sdc. Una vez hayamos creado en los discos unas particiones que terán miembros de un RAID, vamos a Volumes > Software RAID Management. Una vez aquí seleccionamos que tipo de RAID vamos a crear. En mi caso será un RAID 0. En la lista de debajo aparecerán los dos discos de antes, marcamos las casillas de su izquierda, seleccionamos el tamaño de cluster (Aquí cada uno que lo adapte a sus necesidades en función de los ficheros con los que va a trabajar). Una vez terminado hacemos click en Add array. Esto ya estaría, ya tendríamos un RAID 0, en el dispositivo /dev/md0. Solamente nos queda crear los volumenes en el array. Si os fijáis en el apartado donde marcáis que discos van a ser miembros de determinado array podemos configurar el disco como Member o como Spare. En nuestro caso no se aplica, pero el tipo Spare deberíamos utilizarlo para, en un RAID 5 (No estoy seguro en el RAID 1), por ejemplo, definir cual será el disco que se ocupa de la paridad (O replica). Si creamos un RAID 1 lo que tiene un disco está replicado en el otro. Si por el contrario creamos un RAID 5, utilizaremos 3 discos, 2 harán como de RAID 0, y el otro será el disco de paridad. Mediante operaciones AND se puede obtener la información del disco que ha fallado. Estaríamos jodidos si cascasen dos discos.

Vamos a crear ahora los volúmenes en el array. Visitamos Volumes > Volume Group Management y creamos un grupo de colúmenes (Esto es tema de LVM – Linux Volume Manager). En el apartado Volume group name escribiremos, por ejemplo RAID y marcamos la casilla corresponciente al único de la lista, md0. Iremos a Create new volume. Nos ha costado llegar, pero lo que vamos a crear ahora es lo que conocemos comunmente como particiones. En el apartado Volume Name introduciremos el nombre del volumen. Si escogemos como nombre software, este volumen será montado en /mnt/raid/software. Si al grupo de volumenes le hubiesemos llamado array el volumen sería montado en /mnt/array/software. ¿Se entiende no? En el campo de descripción escribiremos una descripción de verdad, que nos sirva para identificar el disco a simple vista, sin ambiguedades (Es un consejo). Indicaremos el espacio utilizado por el volumen en el grupo de volumenes, el cual podemos escribir o arrastrar el indicador. En mi caso lo he establecido en 5000, que serán 5 gigabytes. Como sistema de ficheros podemos escoger el que queramos. Todos los listados ahí soportan ACL (Listas de Control de Acceso) hasta donde yo se. Me gusta ext3, y ha sido el que he escogido, pero en tu entorno quizá requieras otros sistema de ficheros como XFS, o reiserfs. Una vez hagamos click en Create tardará un poco, el tiempo que tarda en dar formato al volumen. Nos enviará a la sección de List os existing volumes. Volvemos a Create new volume y creamos otro volumen, esta vez con formato XFS, de 5 GB cuyo nombre será pub y cuya descripción será Volumen de ficheros publicos. No vamos a crear más discos, pues dejaremos espacio sin asignar para las instatáneas de disco que veremos más adelante (Otro artículo, por supuesto). Nos volverá a mandar a la página donde veremos los volumenes existentes, el espacio libre, el espacio utilizado por snapshots, etc, con una bonita gráfica.

Ya disponemos de dos volúmenes montados donde podemos crear directorios, compartirlos, etc. Vamos pues a la sección Shares > List of current shares. Si pinchamos sobre la descripción del volumen nos aparecerá una ventana donde podemos crear un directorio, que en mi caso llamaré test. Si ahora pinchamos sobre test nos aparecerá una ventana con diferentes opciones. Crear un subdirectorio dentro del directorio test, renombrar el directorio, eliminarlo, modificar su descripción, y lo más relevante en este momento, compartirlo mediante la opción Make share.

Tenemos la configuración del recurso compartido delante de las naricesy podemos ver el nombre del recurso compartido (Mediante todos los protocolos), su descripción y el nombre, si lo deseamos, con el cual se compartirá este recurso mediante SMB/CIFS (De ahora en adelante Samba). Una manía que tengo es la de no dejarlo en blanco para asegurarme de que la vagancia no me lleve al error, por lo que he escrito test como en los campos de encima.

En la sección Group access configuration podemos configurar las ACL del sistema de ficheros. La política es denegado por defecto para todos los grupos. Podemos hacer que el recurso sea accesible anónimamente, algo que puede ser interesante, o dar permiso a determinados grupos. No podemos establecer el acceso por grupos, pero tiene su lógica, la escalabilidad. Algo que he aprendido en base a un ejemplo en la MCSA es que es muy cómodo ofrecer permisos sobre un recurso a un usuario, pero si llega el bitch boss y te manda dar ese mismo permiso a 500 usuarios… es conveniente meterlos a todos en el mismo saco y aplicar los permisos al grupo. Por defecto esos grupos no son NADIE, no tienen acceso. Podemos ver las siglas que encabezan las columnas:

  • PG: Establece este grupo como grupo primario de los ficheros que se escriben en este recurso mediante algún protocolo. Será este grupo el que, cuando user1 (Que pertenece al grupo grupo1) cree un directorio/fichero mediante Samba, sea dueño del directorio/fichero. Lo podremos comprobar con un simple ls -la.
  • NO: Sin acceso
  • RO: Acceso de solo lectura
  • RW: Acceso de lectura/escritura

Una aclaración muy importante, que es tan obvia que puede pasar desapercibida: Si establecemos un grupo como grupo primario del recurso, los usuarios de ese grupo siempre tendrán acceso de lectura/escritura. Un ejemplo práctico es que si definimos a grupo1 como grupo primario, aunque todos los grupos estén marcados como NO: Sin acceso, al actualizar con el botón Update ese grupo aparecerá con permisos de lectura/escritura.

Podría darse como terminado, pero nos quedan los controles de acceso no solamente por usuario, sino por red, que si no configuramos al menos una regla de acceso los recursos no estarán disponibles. Supongamos que tenemos varios departamentos en la empresa, cada departamento en una VLAN diferente y queremos controlar los accesos mediante su dirección de origen. Pues bien, definiremos una red para cada VLAN en el panel wen de administración. No nos vamos a complicar un pelo, las redes serán 192.168.1.0/24 y 10.0.0.0/24. Vamos a General > Local Networks y definimos una nueva red cuyo nombre será Diez, cuya dirección será 10.0.0.0 y cuya máscara será 255.255.255.0. Luego click en Update. Creamos otra llamada UnoNueveDos cuya dirección es 192.168.1.0 y 255.255.255.0 como máscara.

Volvemos ahora al recurso compartido y veremos que debajo del todo, disponemos de Host access configuration. Aquí especificamos si la red/equipo (Podemos definir equipos si indicamos una dirección de host con máscara 255.255.255.255) puede tener acceso o no, y con que permisos, al recurso compartido. Otra cosa a tener muy en cuenta son los permisos. Se aplica el permiso más restrictivo. Con un ejemplo se ve mejor:

  • El grupo1 tiene acceso de lectura/escritura, pero mediante Samba le hemos especificado un permiso de solo lectura y mediante http, de lectura/escritura. Cuando algún usuario perteneciente a este grupo acceda mediante Samba al recurso compartido podrá leer datos nada más (Aunque en el sistema de ficheros mediante ACL, tenga acceso de lectura/escritura)
  • En cambio al acceder mediante WebDAV puede escribir

Es bien sencillo, aplica los permisos más restrictivos para ese acceso. Una especie de operación AND :). Si en el sistema de ficheros tienes permiso para escribir pero mediante acceso FTP no, no podrás escribir.

Para terminar despues de toda esta parrafada teorico-práctica deciros que hay que habilitar los servicios que vayamos a utilizar. Para ello vamos a Services > Enable/Disable y ahí habilitamos o deshabilitamos los servicios que deseemos. Si en nuestra red solo vamos a utilizar Samba, habilitaremos SMB/CIFS, y por supuesto se mantendrá habilitado LDAP, ya que autenticamos contra él. En Services > SMB Settings podemos configurar algunos aspectos de Samba, pero solamente modificaremos el nombre del servidor en la red y el server string, que es una especie de descripción de la máquina. Para que estos cambios se apliquen deberemos de reiniciar Samba, llendo a la sección Enable/Disable y parandolo y volviendolo a arrancar. Como cliente utilizo un Windows XP y comprobé que todo era correcto del siguiente modo:
# nbtstat -RR
# nbtstat -a 192.168.1.200
# net view

Hemos echado a andar una distribución que nos servirá como almacenamiento centralizado en un entorno de grupo de trabajo. Podemos ofrecer acceso mediante Samba para los usuarios de la red que utilizan Windows, NFS para algún caso especial donde sea estrictamente necesario el rendimiento (¿Alguien conoce algo más rapido y transparente que NFS cuando hablamos de sistema de ficheros por red en *NIX?), y WebDAV para la comercial que conecta remotamente para actualizar la agenda o algún fichero.

Por aquí también lo han probado, pero con discos iSCSI. Recomendable leer su opinión.

Si encontráis algún fallo o errata podéis dejarme un comentario.

Queda:

  • Documentar los métodos de acceso mediante WebDAV, FTP, RSync y NFS.
  • Quotas de disco.
  • Como extender los volúmenes aprovechando todo lo que LVM nos ofrece (Una especie de volúmenes dinámicos extendidos de Windows).
  • Crear instantáneas de disco, programarlas y ofrecerlas compartidas para dar un servicio similar al de Windows 2003 y la instatáneas de disco.
  • Autenticación contra un Windows 2003 Server con Active Directory
  • Ya se me ocurrirá algo, como montar un RAID 5 y romper un disco para ver como se recupera, etc.
Anuncios

14 Responses to “Openfiler como servidor de almacenamiento en un grupo de trabajo”


  1. 1 J. L. Medina 11 marzo 2007 en 14:48

    Esto va a ser amor…. Ya incluiré la parte de iSCSI. Mañana pongo el SQL dentro de este invento, así que ya te contaré.

    Un abrazo… y unas cervezas frías, que ya va haciendo tiempo.

  2. 2 Rastreador 11 marzo 2007 en 20:09

    Muy bueno. Me ha gustado mucho tu artículo.
    ¿Has probado freenas?

  3. 3 Gura 11 marzo 2007 en 20:46

    Ahora que lo mencionas se me ha olvidado comentarlo en el artículo. Si, he probado FreeNAS por encima y me he llevado una decepción.

    Permite autenticación local, LDAP y contra un AD, a diferencia de Openfiler soporta AFS (Apple FileSystem) y algún cambio más habrá, pero cuando he ido a actualizar firmware y me ha petado flipé. Sección a la que fuese me daba un error de PHP referente al fichero firmware.php. FreeNAS está basada en m0n0wall, tu queridísima distribución, pero me ha parecido que le queda mucho por rodar para llegar a la altura de Openfiler.

  4. 4 Alex Casanova 12 marzo 2007 en 17:39

    Gura, me ha encantado tu artículo, al igual que J.L Medina, tú también me recomendaste OpenFiler y tenía previsto probarlo en cuanto tuviese tiempo para analizarlo en el blog, pero te me has adelantado con este estupendo artículo.

    Tomo nota de lo que pones y lo probaré, gracias por el artículo.

    Ei, yo también me apunto a esas cervezas…..

  5. 5 Gura 13 marzo 2007 en 09:37

    Creo que me he equivocado, y la operación utilizada para la paridad en un RAID es XOR.

  6. 6 El Elegido 14 marzo 2007 en 16:09

    Vaya peazo artículo que tas curraó, tronkete.

    Parece guapo el OpenFiler este….

    No es por dar por saco, pero Windows 2003 ofrece exactamente todas las mismas funcionalidades que OpenFiler: DFS, Active Directory, ADAM, Administración de discos, SMB, HTTP/WebDAV por supuestísimo y FTP con nuestro queridísimo amigo IIS, cuotas también, y Shadow Copy evidentemente.

    Además de todo eso, Windows 2003 ofrece muchísimas funcionalidades más que OpenFiler, sobre todo con su R2: ADFS (basado en WS-Security), Servicios de integración para Unix, IPP, …. y muchísimos más…

    En fin, simplemente para que se sepa.

    Saludos Gura, y a seguir con artículos así de guapos!!

    http://elmundodejavi.blogspot.com

  7. 7 Gura 14 marzo 2007 en 18:58

    Si, claro que lo provee, e incluso se integrará mejor, pero supongo que habrá empresas donde un servidor Windows 2003 se sale de presupuesto y quizá lo que ofrece Openfiler les sirva. Además Openfiler me ha gustado, da la impresión de ser un proyecto cuidado y fácil de implemenar sabiendo cuatro cositas. Eso sí, Openfiler creo que no soporta DFS, y ADFS seguro que no. Lo que sí que me llamó la atención fue la implementación de las Shadow Copy, algo que no conocía en *NIX, tan solo el W2k3.

    Me queda documentar el resto, aunque no consigo meterlo al AD. Ya en su día conseguí autenticar una Debian contra el AD de 2k3, pero con OpenFiler vía web no lo consigo.

    Gracias por los comentarios.

  8. 8 Raid 18 marzo 2007 en 20:32

    El elegido, no es por dar por saco 😉 pero un sistema operativo de servidor que necesita antivirus e interfaz gráfica para configurarlo … no me parece muy serio.

    Mucho mejor una interfaz web integrada como la de Openfiler.
    Ademas 600€ + 30€/cal son una buena razón para pasar de w2003, incluso si te lo puedes permitir!!

  9. 9 Gura 19 marzo 2007 en 00:47

    Bueno, tampoco es por dar pol saco, pero Longhorn Server Core ahí estará, luego la interfaz ya la quitas.

  10. 11 Dehylus 6 septiembre 2007 en 19:04

    no funciona correctamente con autentificacion a un ldap externo, aunque se conecta y muestra los usuarios, tiene un bug que no autenfica correctamente al usuario para acceder a carpetas compartidas con samba. Es una pena ya que el sistema se ve muy bien, y parece estar estancado porque no han salido nuevas versiones. Poseo un controlador de dominio con linux y que maneja los usuarios en base a ldap, la idea es que openfiler utilizara esta base de datos.

    Bueno solo a esperar alguna actualizacion del software, en todo caso muy bueno tu articulo Gura, saludos.-

  11. 12 Gura 7 septiembre 2007 en 08:38

    Con razón a mi no me tiraba bien, probase lo que probase. Desde entonces no la he vuelto a tocar, no se si habrár resuelto el fallo (Indispensable en muchos escenarios, por cierto).

  12. 13 erikita 12 septiembre 2007 en 08:18

    Ok me encuentro usando esta distro, la pregunta es… quiero hacer una modificacion a la presencaión en la interfase web cambio de colores…. en fin un customize, pero no le hayo como hacerle todo fuera como modificar el htdocs pero segun esto no es presicamente apache el webserver..alguien podría ayudarme o asesorarme o ya de perdida mandarme a rfm en donde pudiera leerlo.

  13. 14 2003... 18 septiembre 2008 en 19:18

    para los que afirman que win2003 server ofrece la misma funcionalidad…
    ye me direis como ofrece una raw lun por iscsi a otro sistema para utilizarlo cono san y no como nas…

    puedes descargar uniniciador iscsi para ser cliente de iscsi pero lo otro…nanai de la china…

    bye


Comments are currently closed.



Las opiniones reflejadas en este blog son personales o ni siquiera son opiniones, y bajo ningún concepto representan las estrategias, opiniones o posturas de mi empresa actual, ni de ninguna en las que he trabajado, así como tampoco de ninguno de los clientes o proveedores de todas ellas.
La información se proporciona como está, sin garantías de ninguna clase, y no otorga ningún derecho. Los comentarios pertenecen a sus autores y bajo ningún concepto el autor del blog se hará responsable de los mismos.

Categorías

Archivos


A %d blogueros les gusta esto: