Home Linux Taller Linux – iSCSI Server con Webmin en Ubuntu server 16.04

Taller Linux – iSCSI Server con Webmin en Ubuntu server 16.04

by José Luis Sánchez Borque

Internet SCSI (iSCSI)

El protocolo iSCSI es un protocolo de cada de transporte, que utiliza TCP/IP para la transferencia de datos. Es un protocolo SAN (Storage Area Network) que permite a los clientes (llamados inciadores), enviar comandos SCSI a dispositivos de almacenamiento (llamados targets) en servidores remotos.

Resultat d'imatges de iscsi target initiator

Normalmente la configuración es 1 a 1 (1 server – 1 cliente). La configuración 1 server – N clientes se utiliza para sistemas de cluster o alta disponibilidad, como por ejemplo en VMWARE.

En dicho tipo de arquitectura diversos clientes comparten un espacio común de almacenamiento. En entornos de virtualización normalmente almacenamos las VM, o máquinas virtuales.

Se pueden compartir discos duros enteros o bien particiones. Cada uno de estos espacios compartiros, que los clientes ven como discos virtuales, se denominan LUN ().

Es poden compartir discs sencers o bé particions. Cadascun d’aquests espais compartits, que els clients veuran com a discs virtuals, s’anomenen LUN (Logical Unit Number).

Para nuestro taller contaremos con dos máquinas virtualizadas:

Servidor – target

  • Ubuntu Server 16.04.
  • 2 discos virtuales (uno de sistema y el otro para compartir via iSCSI).
  • Acceso via Webmin.

Cliente – iniciador

  • Windows 10 o Windows 2012.

Configuración del target

El primer paso será instalar Webmin en nuestro servidor Ubuntu. Para ello podemos recurrir al siguiente enlace donde nos explican como podemos instalarlo:

How To Install Webmin on Ubuntu 16.04

Podemos ver si Webmin está funcionando de muchas maneras. Una sería ver si el servicio Webmin está activo con el comando:

#service webmin status

La otra es abrir nuestro navegador favorito y escribir lo siguiente:

https://ip_servidor:10000

El siguiente paso es  Habilitar el mòdul iSCSI Target al Webmin

Para tener disponible el módulo de “iSCSI Target” en webmin solo hay que instalarlo:

# apt-get –y install iscsitarget iscsitarget-dkms

El siguiente paso es habilitar el Target editando el archivo /etc/default/iscsitarget:

# nano /etc/default/iscsitarget

Hay que cambiar el ISCSITARGET_ENABLE a true, si estaba con valor false.

Refrescaremos los módulos:

El módulo “iSCSI Target” que aparecía inicialmente en el listado de “Un-used Modules” de Webmin, lo tendremos ahora en el apartado de Hardware.

Configuración de los discos y/o particiones

Como hemos indicado anteriormente, podemos utilizar todo el disco, o bien una partición. Para nuestro taller utilizaremos todo el disco.

En el servidor Webmin, accederemos a la opción “Hardware – Partitions on Local Diskspara ver el estado de los discos de la máquina. Desde esta opción veremos que tenemos dos discos SATA ( previamente configurados en nuestro sistema de virtualización VirtualBox)

  • Disco A: disco de sistema, con 3 particiones.
  • Disco B: disco que compartiremos via iSCSI. Como podemos comprobar, el disc B no está particionado:

Para poder compartir este dísco duro vís iSCSI se requiere crear la tabla de particiones. Lo haremos accediento a la configuración del disco B (clicando sobre “SATA device B”), y crearemos la tabla de particiones mediante la opción “Wipe Partitions”, seleccionando el formato estandar de MS-DOS ( esto puede cambiar evidentemente, pero para nuestro taller lo haremos de esta forma)

Como resultado tendremos un disco con la table de particiones en formato MS-DOS, pero sin particiones:

En este punto, podemos elegir si queremos añadir una partición primario (opcióm “Add primary partition”), o dejarlo tal y como está y que sea el cliente quien le de formato al disco. Esta opción lo explicamos más adelante. Si elegimos la primera, añadiremos una partición primario con formato NTFS.

Una vez creada la partición primaria, ya podemos cear el iSCSI Target.

Creación del Target iSCSI de de Webmin

Para crear el target iSCSI, iremos a la opción “Hardware – iSCSI Target” de Webmin, y seleccionaremos la opción “Add a new iSCSI target”:

Como hemos comentado anteriormente, nuestro target compartirá la totalidad del disco, no solo una partición. Por lo tanto seleccionaremos la opción “Other file or device” y escribiremos “/dev/sdb”, que corresponde al disco B:

En este punto no habilitaremos la autentiación. Por lo tanto, podemos guardar y comprobar que el target se ha creado.

Verificación de funcionamento del Target iSCSI

Pera verificar que el servicio iSCSI está disponible en el servidor podemos utilizar (para cambiar un poco) el siguiente comando:

lsof –i :3260

Como podemos ver en la imagen, en el puerto TCP/3260 hay un proceso activo que corresponde con el iSCI target.

Arxivo de configuración del Target iSCSI

La configuración del target la encontramos en el archivo “/etc/iet/ietd.conf”. Al final del documento hemos de ver algo similar a lo siguiente:

Hay que tener en cuenta que siempre que se haga alguna modificación, hay que reiniciar el servicio con el botón “Restart iSCSI Target” de Webmin.

Configuración del Inicializador.

 

Desde de la máquina que tiene instalado el Windows 10, iremos al botón “Inicio” y buscamos “Iniciador iSCSI”.Si el servicio no está activo nos pedirá si lo queremos arrancar o no (lógicamente respondemos que sí)

Una vez conectado el destino, conectamos con el disco mediante el botón “Conectar”.  Se detectará que no tiene formato, y nuestro Windows nos propondrá darle el formato en ese momento.

Elegimos NTFS y formato rápido al ser un laboratorio. En entornos reales se recomiendo NUNCA realizar formato rápido.

Una vez finalizado el formato, el procedimiento será el mismo que si el disco hubiera estado formateado previamente. De manera automático el sistema le asignará una letra de unidad, y el sistema abrirá el Explorador de Archivos mostrando el contenido. En este caso vacío.

Si vamos al administrador de discos, veremos que nos aparece el nuevo disco como si lo tuvieramos conectado localmente.  Es MUY IMPORTANTE en nuestro entorno de laboratorio hacer pruebas de perdida de conexión, reconexión, etc…, documentando como actuar en cada uno de esos casos.

Control de accesos mediante el uso del protocol CHAP.

Añadiremos un nuevo disco duro al servidor, para crear un nuevo Target iSCSI. En este disco requeriremos autenticación por parte del cliente para poder acceder. El procedimiento para crear el iSCSI es el mismo que hemos detallado anteriormente.

Siempre hay que requerir autenticación en un Target, o el disco será accesible por cualquier máquina, nuestra o no, que disponga de un inicializador.

Para limitar el acceso mediante usuario y contrañeña, al crear el target hay que seleccionar la opción “Allow logins bellow…” y rellenar los datos adecuadamente.

Tener presente que el password debe tener un mínimo de 12 caracteres y un máximo de 16.

Desde el cliente, una vez le damos al botón Conectar, tendremos que pulsar el botón de “Opciones avanzadas” y habilitar el inicio de sesión CHAP, indicando el nombre de usuario y contraseña que previamente hemos introducido en el servidor.

 

Una vez introducidos, el disco estará disponible desde el inicializador.

Control de acceso limitanto las IPs

Podemos aumentar un nivel la protección limitando el acceso a los clientes solo desde determinadas IP’s. Para ello basta con acceder a la opción  “iSCSI Target” – “Allowed Client Addresses” y acceder a “Add a new target and addresses to allow”:

Pera comprobar el funcionamento:

  1. Dar acceso a un cliente determinado:

Seleccionamos el segundo target que hemos crado e indicamos que solo es posible acceder desde la IP del cliente. En nuestro caso la IP 172.17.4.201

El archivo donde se guarda la información de los clientes (inicilizadores) que tienen permiso es el “etc/iet/initiators.allow”.

You may also like

Leave a Comment