Aprenda Linux, 302 (Entornos mixtos): Configuración de SWAT

Gestionando Samba mediante una interfaz basada en web

Samba Web Administration Tool (SWAT) es una herramienta de administración basada en web para Samba, permitiendo la configuración de GUI desde cualquier computadora con un navegador web. SWAT es un servidor en su propio derecho y, como todos los servidores, requiere al menos una configuración mínima. En este artículo, aprenda cómo instalar y configurar SWAT mismo y cómo usar SWAT para gestionar Samba.

Roderick W. Smith, Consultant and author

Roderick Smith author photoRoderick W. Smith is a consultant and author of over a dozen books on UNIX and Linux, including The Definitive Guide to Samba 3, Linux in a Windows World, and Linux Professional Institute Certification Study Guide. He is also the author of the GPT fdisk partitioning software. He currently resides in Woonsocket, Rhode Island.



09-04-2012

Sobre esta serie

Esta serie de artículos le ayuda a aprender las tareas de administración de sistemas Linux. También puede usar el material en estos artículos para prepararse para los exámenes de Linux Professional Institute Certification nivel 3 (LPIC-3).

Vea nuestro roadmap de developerWorks para LPI-302 para obtener una descripción y un enlace de cada artículo en esta serie. El roadmap está en progreso y refleja los objetivos actuales (marzo de 2011) para los exámenes de LPIC-3. A medida que cada artículo es completado, es añadido al roadmap.

Visión General

En este artículo, aprenda sobre estos conceptos:

  • Visión general de los dispositivos de Samba Web Administration Tool (SWAT)
  • Instalando y configurando SWAT
  • Usando SWAT para configurar Samba

Este artículo le ayuda a prepararse para el Objetivo 312.5 en el Tema 312 del examen de Especialidad en Entorno Mixto de Linux Professional Institute (302). El objetivo tiene un peso de 4.


Requisitos Previos

Sobre el examen optativo LPI-302

Linux Professional Institute Certification (LPIC) es como muchas otras certificaciones en las que se ofrecen distintos niveles, con cada nivel requiriendo más conocimiento y experiencia que el anterior. El examen LPI-302 es un examen de especialidad optativo en el tercer nivel de la jerarquía de LPIC y requiere un nivel avanzado de conocimiento de administración de sistemas Linux.

Para obtener su certificación de LPIC-3, debe pasar los dos exámenes de primer nivel (101 y 102), los dos exámenes de segundo nivel (201 y 202) y el examen principal de LPIC-3 (301). Después de que haya obtenido este nivel, puede tomar los exámenes de especialidad optativos, tales como LPI-302.

Este artículo asume que tiene un conocimiento práctico de las funciones de línea de comandos de Linux y que entiende las bases de la configuración de Samba. Debe estar familiarizado con la estructura general del archivo de configuración smb.conf. También debe entender cómo son ejecutados los servidores en general, incluyendo el uso de scripts de inicio de System V (SysV) y super servidores.


Instalando y ejecutando SWAT

En Samba versión 3.x, SWAT es un servidor separado de los dos servidores principales de Samba, smbd y nmbd. Por lo tanto, debe configurarlo para que se ejecute por separado del servidor principal de Samba. Dependiendo de cómo instaló Samba, tal vez también necesite instalar SWAT por separado. Para seguridad añadida, tal vez quiera configurar SWAT para que se ejecute usando el cifrado de Capa de Sockets Seguros (SSL).

Nota: Samba 4, que sigue en desarrollo, hace algunos cambios importantes en la arquitectura, incluyendo grandes cambios en SWAT. Este artículo describe el estado de SWAT en Samba 3.x, que es la versión de Samba recomendada actualmente para entornos de producción.

Construya su propio feed

Puede construir un feed personalizado de RSS, Atom o HTML, de forma que sea notificado a medida que añadimos nuevos artículos o actualizamos el contenido de esta serie. Vaya a los feeds RSS de developerWorks. Seleccione Linux para la zona y Articles para el tipo, y escriba Linux Professional Institute para las palabras clave. Después, elija su tipo de feed preferido.

Instalando SWAT

Si compila Samba desde el código de origen, como se describe en el Objetivo 311.1, SWAT debe ser compilado de forma predeterminada e instalado junto con otros componentes de Samba. La opción --disable-swat para configure causa que SWAT no sea compilado. Si desea habilitar explícitamente a SWAT, en lugar de aceptar lo predeterminado, puede pasar --enable-swat a configure.

Si instala Samba usando un paquete binario proporcionado por su mantenedor de distribución, verifique sus paquetes para determinar cómo instalar SWAT. Muchas distribuciones proporcionan un paquete llamado swat o samba-swat que incluye el servidor de SWAT. Este paquete debe ser instalado por separado de los paquetes básicos de Samba; sin embargo, puede ser instalado automáticamente. Use sus herramientas de empaquetado para ver qué paquetes existen en su sistema.

Si no puede encontrar un paquete de SWAT separado, tal vez haya sido instalado como parte de otro paquete de Samba. El binario de SWAT es llamado, como era de esperarse, swat, así que puede buscar ese archivo de programa para ver si SWAT está disponible en su computadora. Si está usando Gentoo Linux, tenga en cuenta que debe establecer swat como un distintivo USE cuando fusione el paquete samba para compilar SWAT.

Con SWAT instalado, puede seguir avanzando para ejecutarlo. SWAT está diseñado para ser ejecutado mediante un super servidor, tal como xinetd o inetd. Ya que las configuraciones de estos super servidores son tan diferentes, las describo por separado.

Ejecutando SWAT con xinetd

La mayoría de las distribuciones de Linux actualmente usan xinetd como un super servidor. Sino está seguro de qué super servidor usa su computadora, intente usar ps para buscar la cadena de caracteres inetd:

$ ps ax | grep inetd
17996 ?        Ss     0:00 /usr/sbin/xinetd -pidfile /var/run/xinetd.pid -stayalive -reuse

En este ejemplo, xinetd se está ejecutando. Si la salida de ps muestra un proceso llamado inetd, debe seguir las direcciones en la siguiente sección, Ejecutando SWAT con inetd. Si ningún proceso de super servidor se está ejecutando, tal vez necesite instalar xinetd o inetd.

El servidor xinetd usa un archivo de configuración llamado /etc/xinetd.conf. En la mayoría de las instalaciones, este archivo contiene valores globales y depende de archivos específicos del servidor en el directorio /etc/xinetd.d. El archivo de configuración de SWAT probablemente se llama /etc/xinetd.d/swat y probablemente se vea parecido al Listado 1.

Listado 1. Archivo de configuración de SWAT de ejemplo
service swat
{
        port            = 901
        socket_type     = stream
        protocol        = tcp
        wait            = no
        only_from       = localhost
        user            = root
        server          = /usr/sbin/swat
        log_on_failure += USERID
        disable         = yes
}

Su archivo predeterminado puede variar en algunos detalles, pero los puntos clave deben ser similares. Si su sistema carece de dicho archivo, puede crear uno o añadir una entrada definiendo el servicio de SWAT para /etc/xinetd.conf. Debe dejar la mayoría de las opciones en sus valores predeterminados (ya sea en el archivo proporcionado por su distribución o como se muestra en el ejemplo anterior); sin embargo, tal vez necesite cambiar algunas entradas:

  • La línea only_from define una restricción de acceso. En este ejemplo, xinetd permite el acceso sólo desde la computadora en la que se ejecuta SWAT. Esta es una precaución de seguridad útil, pero si necesita administrar su servidor de Samba desde otra computadora o un conjunto de computadoras, puede especificar otras direcciones. Muchos tipos de direcciones son aceptadas; consulte la man page de xinetd.conf para obtener más detalles.
  • La línea server especifica la ruta completa hacia el binario de SWAT. Asegúrese de que su binario swat reside ahí.
  • La línea disable = yes le dice a xinetd que no debe iniciar SWAT. Debe cambiar esta línea para leer disable = no para usar SWAT.

El último punto es de importancia crítica: muchas distribuciones envían sus archivos de configuración de /etc/xinetd.d/swat para inhabilitar SWAT de forma predeterminada como una precaución de seguridad. Los servidores también pueden ser inhabilitados por una línea en /etc/xinetd.conf:

disabled = swat

Si ve swat en dicha línea, debe eliminarlo para lanzar el servidor.

Una vez que ha hecho los cambios deseados en /etc/xinetd.d/swat, debe decirle a xinetd que recargue su archivo de configuración. Con la mayoría de las distribuciones, puede hacer esto al presionar la opción reload para el script de inicio de SysV de xinetd:

# /etc/init.d/xinetd reload

Una vez que ha hecho esto, puede comenzar a utilizar SWAT. Sin embargo, si desea habilitar la seguridad de SSL, debe leer la sección Habilitando el cifrado de SSL.

Ejecutando SWAT con inetd

Si está usando inetd, el proceso de configuración es similar al de xinetd, pero muchos detalles críticos difieren. Como podría esperar, el archivo de configuración de inetd es llamado /etc/inetd.conf. Versiones recientes de inetd soportan la división de archivos de configuración por servidor separados, parecido a lo que hace xinetd así que puede encontrar un directorio /etc/inetd.d con archivos de configuración separados.

Ya sea usando un solo archivo /etc/inetd.conf o un archivo de configuración /etc/inetd.d/samba, la entrada de Samba consiste en una sola línea:

swat  stream  tcp  nowait  root  /usr/sbin/tcpd  /usr/sbin/swat

Esta línea contiene prácticamente la misma información que una entrada de xinetd . Usted determina el número de puerto al observar el nombre en el inicio de la línea (swat) en /etc/services. La entrada de /usr/sbin/tcpd en este ejemplo no tiene equivalente en la configuración de xinetd , ya que esta entrada especifica el programa que inetd ejecuta cuando un cliente intenta contactar al servidor. En este ejemplo, inetd lanza Derivadores de TCP (usando un nombre de archivo de programa de /usr/sbin/tcpd). Los Derivadores de TCP entonces realizan sus propias verificaciones de seguridad y lanzan SWAT—es decir, el programa especificado en la entrada final de la línea (/usr/sbin/swat).

Tal vez encuentre una entrada para SWAT en su archivo /etc/inetd.conf que está comentado por una marca de hash líder (#). Si es así, tendrá que dejar de comentar la entrada para activar SWAT. Una vez que haya hecho esto y modificado la entrada en cualquier otra forma que desee, dígale a inetd que recargue su archivo de configuración. Puede hacer esto en la misma forma que recarga una configuración de xinetd , como se describió anteriormente.

Habilitando el cifrado de SSL

Como se acaba de describir, una configuración estándar de SWAT no soporta el cifrado. Esto está bien si ha restringido el acceso para localhost, como en la configuración de xinetd mostrada anteriormente, o si implementa restricciones similares usando Derivadores de TCP. Sin embargo, si usa SWAT para acceso remoto, ejecutarlo sin cifrado significa que su contraseña de raíz recorrerá su red sin estar cifrada. Este riesgo puede ser inaceptable, particularmente si necesita usar SWAT para configurar Samba desde una computadora en Internet en general en lugar de desde una computadora en la misma subred que el servidor de Samba.

Para mejorar la seguridad, puede añadir cifrado de SSL a su configuración de SWAT. Para hacerlo, necesita instalar software adicional y hacer cambios de configuración. El software requerido es OpenSSL y stunnel. La mayoría de las distribuciones tienen ambos paquetes disponibles en sus bases de datos de paquetes, así que la instalación debe ser fácil.

Nota: Probablemente es mejor configurar y probar SWAT sin cifrado de SSL primero. De esa forma, sabrá que el servidor funciona como se espera en su configuración más simple posible. Si tiene problemas, puede depurarlos y asegurarse de que la configuración de SSL no está fallando. Cuando todo funcione, modifique su configuración para usar cifrado.

Después de que ha instalado los programas OpenSSL y stunnel , complete estas etapas:

  1. Si es necesario, cree un usuario y un grupo para stunnel.

    Su paquete de stunnel pudo haber hecho esto en la instalación, así que esta etapa tal vez no sea necesaria.

  2. Genere un certificado de SSL y una clave privada al escribir lo siguiente (en una sola línea) como raíz:
    # openssl req -new -x509 -days 365 -nodes -out 
       /etc/stunnel/stunnel.pem -keyout /etc/stunnel/stunnel.pem

    Se le solicitará información diversa, tal como su nombre de host y dirección de e-mail. Tome en cuenta que este comando crea un certificado que expira en 365 días, así que necesitará repetir esta etapa en un año.

  3. Modifique la propiedad en el archivo /etc/stunnel/stunnel.pem, de forma que sea propiedad del usuario y grupo stunnel que creó en la etapa 1.
  4. Cree y modifique el archivo /etc/stunnel/stunnel.conf.

    El Listado 2 muestra un archivo de configuración de muestra. Si su sistema ya contiene dicho archivo, deje la mayoría de las opciones como están, pero asegúrese de que el archivo tiene las tres líneas finales mostradas en el Listado 2, comenzando con [swat]. Estas líneas le dicen a stunnel cómo manejar conexiones de SWAT—específicamente, stunnel escucha en el puerto 901 y pasa el tráfico descifrado al puerto 902. También, asegúrese de que las líneas cert y key apuntan al archivo de certificado que generó anteriormente.

    Listado 2. La utilidad stunnel requiere su propio archivo de configuración
    chroot  = /var/lib/stunnel/
    pid     = /stunnel.pid
    setuid  = stunnel
    setgid  = stunnel
     
    debug   = 7
    output  = /var/log/messages
     
    client  = no
    cert    = /etc/stunnel/stunnel.pem
    key     = /etc/stunnel/stunnel.pem
    
    # Accept SSL connections on port 901 and funnel it to
    # port 902 for swat. 
    [swat]
    accept   = 901
    connect  = 902
  5. Cree una nueva entrada de SWAT en su configuración de xinetd o inetd .

    Esta configuración debe ser igual que una configuración descifrada regular, excepto que debe escuchar en el puerto 902 y usar el nombre de swat-stunnel en lugar de swat. Debe aceptar conexiones sólo en la interfaz de localhost.

  6. Inhabilite su configuración de SWAT original en xinetd o inetd.
  7. Edite /etc/services:
    1. Duplique la entrada de swat .
    2. Renombre el duplicado swat-stunnel.
    3. Cambie el número de puerto a 902.
  8. En algunas distribuciones, tal vez necesite editar /etc/default/stunnel4 para habilitar stunnel para iniciar. Específicamente, cambie la línea ENABLED de 0 a 1.
  9. Reinicie su super servidor.
  10. Lance stunnel.

    Normalmente puede hacer esto temporalmente al escribir /etc/initd.d/stunnel start como raíz, pero para ejecutar stunnel permanentemente, tal vez necesite ajustar su configuración de SysV.

Con estos cambios en su lugar, debe poder acceder a SWAT usando una conexión descifrada al especificar https:// en lugar de http:// como el protocolo en su navegador web. Tome en cuenta que la primera vez que se conecta, su navegador probablemente se queje sobre un certificado no confiable, ya que generó su certificado usted mismo. Acepte este certificado.


Usando SWAT

Una vez que ha configurado SWAT, puede comenzar a usarlo. Puede accederlo usando cualquier navegador web. Cuando esté dentro, puede comenzar a usar SWAT para gestionar su servidor de Samba.

Accediendo a SWAT

Usando su navegador web favorito en la computadora del servidor de Samba, escriba http://localhost:901 como el Localizador Universal de Recursos (URL); o, si ha configurado SWAT para que sea accesible para otros computadores, sustituya el nombre de host por localhost en el URL usando cualquier computadora que pueda acceder al servidor. Si ha configurado el cifrado de SSL, sustituya https:// por http:// al principio del URL. Si ha configurado SWAT para aceptar inicios de sesión de otros además de localhost, puede usar un navegador web o cualquier sistema operativo que desee—Linux, Mac OS X, Windows y más. Incluso puede usar un navegador en un teléfono móvil.

La primera vez que accede al servidor, su navegador web le solicitará un nombre de usuario y contraseña. Ingrese root como el nombre de usuario y la contraseña de raíz como la contraseña. Entonces se le mostrará la página principal de SWAT, como se muestra en la Figura 1.

Figura 1. La página principal de SWAT le permite elegir de entre las opciones de SWAT
La página principal de SWAT le permite elegir de entre las opciones de SWAT

Los botones justo debajo del logotipo de Samba le permiten configurar dispositivos específicos de Samba—la sección [global] intercambios de archivo, intercambios de impresora, etc. En su mayoría, la configuración de Samba mediante SWAT se explica a sí misma si está familiarizado con la configuración de Samba mediante el archivo smb.conf.

Si se desplaza hacia abajo en la página de inicio de SWAT, encontrará enlaces a la documentación de Samba. Esta documentación consiste en las páginas de man para los diversos daemons de Samba, archivos de configuración, utilidades, etc.

Examinando los dispositivos de SWAT

Como un ejemplo de la configuración de SWAT, haga clic en GLOBALS. La página se renueva, mostrando las opciones que puede establecer en la sección [global] de smb.conf, como se muestra en la Figura 2. Haga clic en Advanced si desea ver opciones más obscuras; la vista Basic predeterminada muestra sólo las opciones más comunes.

Figura 2. Puede establecer opciones usando formularios web en muchos de los menús de SWAT
Puede establecer opciones usando formularios web en muchos de los menús de SWAT

Lea detenidamente las opciones disponibles en esta página e intente cambiar algunas. Debe hacer clic en Commit Changes para ingresar sus cambios en el archivo smb.conf y recargar la configuración.

Si hace clic en SHARES o PRINTERS, se le dará la oportunidad de editar los intercambios de archivo e impresora, respectivamente. La interfaz es similar a la de la sección [globals] , pero debe seleccionar el intercambio que desea editar desde un menú desplegable, después haga clic en Choose Share. También puede crear un nuevo intercambio al escribir su nombre en un campo de texto junto al botón Create Share y después hacer clic en ese botón.

Los botones adicionales le permiten realizar otras acciones:

  • El botón WIZARD lo lleva a una página que le permite hacer rápidamente algunos cambios comunes de configuración, tales como establecer configuraciones comunes de dominio.
  • El botón STATUS le muestra el estado actual del servidor de Samba, tal como cuántas conexiones activas está gestionando y qué archivos está accediendo. También puede iniciar, detener y reiniciar los servidores smbd, nmbd y winbindd .
  • El botón VIEW le muestra el archivo de configuración smb.conf actual.
  • El botón PASSWORD le permite gestionar usuarios—cambiar contraseñas, añadir usuarios, suprimir usuarios, etc. Puede hacer esto en la máquina local o en otro servidor de Server Message Block (SMB)/Common Internet File System (CIFS).

La mayoría de estos dispositivos son accesibles sólo para la raíz. Las páginas HOME, STATUS, VIEW y PASSWORD pueden ser accedidas por usuarios ordinarios, aunque algunas opciones no están disponibles para ellas. Es más probable que los usuarios ordinarios usen la página PASSWORD , ya que pueden usarla para cambiar sus propias contraseñas.


Advertencias de SWAT

SWAT es una herramienta útil; sin embargo, tiene sus limitaciones y problemas. La limitación más grande de SWAT es que no soporta la directiva include , la cual puede usar en smb.conf para dividir una configuración en múltiples archivos, posiblemente incluso incluyendo distintos archivos de configuración para distintos clientes. Si depende de dichas configuraciones, encontrará inadecuado a SWAT—al menos para la configuración de Samba. (Aún podría emplear SWAT para permitir a los usuarios cambiar sus contraseñas.)

La otra advertencia principal de SWAT es que es un riesgo de seguridad. Puede minimizar este riesgo al hacer que acepte sólo inicios de sesión de localhost y, si debe iniciar sesión en forma remota, al configurarla para usar cifrado de SSL, como se describió anteriormente. Sin embargo, aún con dichas medidas en su lugar, cualquier servidor es un riesgo de seguridad potencial: el software pudo haber descubierto errores o estar mal configurado en alguna manera. Debe estar consciente de estos riesgos y tomar las precauciones apropiadas, tales como usar Derivadores de TCP, opciones de xinetd o normas de firewall de iptables para limitar el acceso a la computadora. Mientras más expuesto esté el servidor a Internet, la configuración será más riesgosa.


Avanzando

El siguiente tema en esta serie, LPIC-3 objetivo 312.6, cubre problemas de internacionalización de Samba, incluyendo el uso de páginas de código y otras opciones de samba para soportar nombres de archivo que no estén en inglés en un servidor de Samba.

Recursos

Aprender

Obtener los productos y tecnologías

  • El web site de stunnel proporciona descargas y documentación sobre este programa.
  • El web site de OpenSSL proporciona descargas y documentación sobre este software.

Comentar

  • Participe en la Comunidad My developerWorks. Conéctese con otros usuarios developerWorks mientras explora los blogs, foros, grupos y wikis dirigidos a desarrolladores.

Comentarios

developerWorks: Ingrese

Los campos obligatorios están marcados con un asterisco (*).


¿Necesita un IBM ID?
¿Olvidó su IBM ID?


¿Olvidó su Password?
Cambie su Password

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


La primera vez que inicie sesión en developerWorks, se creará un perfil para usted. La información en su propio perfil (nombre, país/región y nombre de la empresa) se muestra al público y acompañará a cualquier contenido que publique, a menos que opte por la opción de ocultar el nombre de su empresa. Puede actualizar su cuenta de IBM en cualquier momento.

Toda la información enviada es segura.

Elija su nombre para mostrar



La primera vez que inicia sesión en developerWorks se crea un perfil para usted, teniendo que elegir un nombre para mostrar en el mismo. Este nombre acompañará el contenido que usted publique en developerWorks.

Por favor elija un nombre de 3 - 31 caracteres. Su nombre de usuario debe ser único en la comunidad developerWorks y debe ser distinto a su dirección de email por motivos de privacidad.

Los campos obligatorios están marcados con un asterisco (*).

(Por favor elija un nombre de 3 - 31 caracteres.)

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


Toda la información enviada es segura.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=90
Zone=Linux
ArticleID=808749
ArticleTitle=Aprenda Linux, 302 (Entornos mixtos): Configuración de SWAT
publish-date=04092012