Archive for the 'Otras distros' Category

Openfiler: Cuotas de disco

Con el esquema de particionamiento del artículo anterior explicaré como gestionar las cuotas de disco. El realidad el particionadolab que estoy utilizando ahora mismo difiere del del artículo pero eso es lo de menos.

Bien, las cuotas de disco en Linux se pueden aplicar a grupos o a usuarios, aunque en la interfaz web se puede aplicar a grupos, usuarios y a invitado. Este último es una quota de grupo, sin más. Si creamos un directorio por SMB/CIFS (Por ejemplo) y comprobamos quién es el usuario y grupo propietarios del fichero leeremos “ofguest”. Tambien hay que tener en cuenta que las cuotas se aplican a un volumen, no a directorios.

En Quota > Group Quota configuramos la cuota por grupo, en User Quota la cuota de usuarios y en Guest Quota la quota del usuario invitado que se utiliza cuando se permite el acceso anónimo.

Lo primero que haremos será decidir en qué volumen vamos a asignar las cuotas de disco, y tenerlo siempre presente ya que he visto que es un error muy común el aplicarle las cuotas a un volumen diferente del deseado. Si queremos cambiar de volumen seleccionamos el deseado en la lista desplegable situada bajo Select Volume y pinchamos en Change.

Como podemos comprobar cada grupo/usuario tiene una fila dedicada para él donde podemos configurar la quota máxima mediante control deslizante o escribiéndolo a mano, así como el número máximo de ficheros permitidos. Además podemos visualizar el ID de grupo, su nombre, el espacio en disco utilizado, el espacio libre, y lo mismo pero con el número máximo de ficheros.
Para un caso puntual puede ser buena idea asignar la quota a un grupo en particular pero es un coñazo asignar las cuotas grupo a grupo cuando tenemos varios. Para ello disponemos del control central situado bajo Edit group quota que configurará del tirón la cuota de los grupos que hayamos marcado con la casilla que tienen a su izquierda.
Las cuotas por usuario son identicas a las cuotas de grupo.
La cuota del usuario invitado tampoco tiene nada especial.

Un atajo a la hora de asignar cuotas de disco de forma global (A todos los usuarios/grupos), es pinchar en la X que aparece encima de las casillas, a la izquierda del todo, a la derecha de GID o UID.

Ahora voy a explicar el concepto de las cuotas pues aún tendréis muchas dudas al respecto. Las cuotas de disco se aplican en los volumenes, a los usuarios y grupos, y solo se marca el espacio utilizado a un usuario/grupo cuando él es el propietario del fichero. Un ejemplo: Si creamos el fichero como usuario anónimo ese espacio utilizado se le asignará al grupo/usuario ofguest. Si lo creamos como usuario user ese espacio se le marcará como ocupado a ese determinado usuario.

Pero… ¿Y el grupo? El tema de los grupos es algo mas tedioso porque cuando nos autenticamos contra el servidor para tener acceso y crear ficheros nos identificamos con un usuario y una contraseña. Además un usuario puede pertenecer a varios grupos, etc. Volviendo a la creación de recursos compartidos (Shares > Edit Shares) podemos ver bajo Group access configuration la lista de grupos con sus respectivos permisos sobre ese recurso. Es ahí donde se configuran las ACL del sistema de ficheros y tenemos una maravillosa columna denominada PG (Primary Group). Marcando el botón para el grupo que deseemos conseguiremos que todos los ficheros que se escriban en ese recurso compartido tengan como usuario propietario al usuario que se autenticó, y como grupo propietario al que hayamos definido en la columna PG. Si establecemos un grupo como grupo propietario y luego se cambia de opinión, y se le asigna este privilegio a otro grupo, el sistema al pinchar en Update lo que hará será actualizar todos los ficheros que cuelgan de ese directorio con el nuevo grupo. Una especie de chgrp -R nuevogrupo /mnt/raid/volumen1/recurso1, pero en vez de utilizar el método UGO, mediante ACL, de cuya sintaxis ahora mismo no me acuerdo exactamente, por lo que para no meter la pata, os recomiendo mirar el man de setfacl y getfacl.

Si tenéis algún problema con las cuotas como por ejemplo que al subir ficheros no os tenga en cuenta el espacio utilizado comprobar lo siguiente:

  • ¿Estás aplicando las cuotas en el volumen apropiado?
  • ¿Como qué usuario/grupo estás creando los ficheros?
  • Comprueba que el servicio de quota esté supervisando ese volumen. No suele ocurrir pero puede darse el caso. Ejecuta quotaon /dev/raid/volumen1. Si el servicio no supervisa el volumen en busca de cambios tendríamos que actualizar los índices de cuota manualmente con quotacheck -avug
Anuncios

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.

Pentoo Linux

Hoy mientras leía el boletín semanal de Gentoo me llamó la atención una minidistro llamada Mini-Pentoo la cual ocupa sobre 189 MB según leo. La lista de paquetes es del todo interesante, sobretodo si se tiene un portatil o desde la ventana se alcanzan muchas redes wifi xD. Yo me voy a bajar por el momento el CD “grande” (Aunque no tenga ni tatil ni wifi cerca).

Agur


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