Lección 1.6 - Configuración de servidor Linux+MySQL+Samba

Objetivo: Conocer los detalles a tomar en cuenta para la utilización de un servidor basado en Linux.


Introducción

Para esta lección se da por entendido que el participante tiene acceso a un equipo de cómputo con el sistema operativo GNU/Linux instalado, por lo cual no se darán mayores explicaciones en cuanto a la instalación del mismo.

La explicación de la instalación y configuración de MySQL y Samba se hará en una distribución Debian, sin embargo, es similar para cualquier otra distribución.


Conceptos clave

* GNU/Linux: Linux es un clon del sistema operativo Unix, escrito desde cero por Linus Torvalds. Su desarrollo es uno de los ejemplos más prominentes de software libre, todo su código fuente puede ser utilizado, modificado y redistribuido libremente por cualquiera bajo los términos de la GNU GPL (Licencia Pública General de GNU) y otra serie de licencias libres. * Distribución: Coloquialmente llamada distro, es una distribución de software basada en el núcleo Linux que incluye determinados paquetes de software para satisfacer las necesidades de un grupo de usuarios. Por ejemplo: Debian, Gentoo, Red Hat, openSUSE, entre otros. * MySQL: Es un Sistema de Gestión de Bases de Datos (SGBD) relacional, multihilo y multiusuario, utiliza un esquema Cliente-Servidor, el cual permite administrar bases de datos SQL. Fue creado en 1995 por MySQL AB, que fue comprada en 2008 por Sun Microsystems, actualmente subsidiaria de Oracle Corporation. MySQL es software libre pero se distribuye bajo un esquema de licenciamiento dual: GPL y Comercial. * Samba: Es una implementación libre del protocolo SMB (Server Message Block, el protocolo que utilizan los equipos Windows para compartir sus directorios) que nos permitirá comunicarnos con equipos Windows desde Linux, con lo cual podremos compartir directorios e impresoras. Samba permite que los equipos Windows puedan acceder a los recursos compartidos (directorios e impresoras) de un equipo Linux, pero también permite a un equipo Linux acceder a los recursos compartidos de un equipo Windows.

Instalación de MySQL en Debian

La instalación de MySQL puede realizarse descargando y compilando los archivos fuente (para más información consultar el siguiente enlace https://dev.mysql.com/doc/refman/8.4/en/installation-layouts.html), o bien, de forma más sencilla, utilizando la herramienta de administración de paquetes aptitude para Debian, lo cual veremos a continuación.

Para instalar los programas hay que ejecutar los comandos descritos en cada caso dentro de un intérprete de comandos (es necesario ingresar con un usuario con privilegios suficientes para realizar esta acción, por lo general se utiliza el usuario root).

* Paquetes necesarios a instalar: mysql-server. Instala el software servidor y el software cliente de MySQL y sus dependencias necesarias. aptitude install mysql-server * Paquetes opcionales a instalar: mysql-admin. Instala una herramienta gráfica que permite administrar MySQL de forma gráfica. aptitude install mysql-admin

Cuentas de usuario en MySQL

* Establecer contraseña para el usuario root por primera ocasión:

Después de la instalación de MySQL, es muy importante crear una nueva contraseña para el usuario root. Esto se puede hacer a través del siguiente comando:

mysqladmin –u root password micontraseña * Crear un nuevo usuario:

Por cuestiones de seguridad, es recomendable no utilizar el usuario root para conectarse a la Base de Datos, a menos que sea con fines de administrar las Bases de Datos y/o usuarios. Por lo cual, también se sugiere crear un usuario que sea el que se conecte a la Base de Datos de MaxiComercio. Hay que teclear el siguiente comando en la consola de MySQL:

GRANT ALL PRIVILEGES ON basededatos.* TO 'usuario'@'%' IDENTIFIED BY 'contrasenia' WITH GRANT OPTION; Dónde: basededatos.* indica que se le están otorgando los permisos a todas las tablas de la base de datos llamada basededatos. usuario es el nombre de usuario que se está creando con ese comando % indica que ese usuario podrá conectarse a la base de datos indicada desde cualquier equipo que tenga acceso al servidor. contrasenia es la contraseña con la cual se identificará el usuario cuando se requiera.

Para crear un nuevo usuario y asignarle permisos a una Base de Datos en específico, debe estar previamente creada la Base de Datos.

Configuración de MySQL en Debian

El archivo de configuración de MySQL en Debian se encuentra en la siguiente ruta /etc/mysql/my.cnf. Todas las líneas que empiezan con el caracter # no son tomadas en cuenta para la configuración, solamente son comentarios y sugerencias de configuración.

* Permitir conexiones remotas:

De forma predeterminada, MySQL permite solamente las conexiones locales al servidor. Para configurar el servidor de modo que acepte las conexiones desde cualquier equipo hay que abrir el archivo my.cnf con un editor de textos y cambiar la siguiente línea:

bind-address = 127.0.0.1 Por: bind-address = 0.0.0.0 O bien, si solamente se desea permitir las conexiones desde un rango de ip’s limitado, la línea debería de quedar de la siguiente forma: bind-address = 192.168.1.1-192.168.1.100 Después de establecer el valor deseado hay que guardar los cambios en el archivo y cerrarlo. · Establecer el motor predeterminado:

De forma predeterminada, el motor de almacenamiento en Linux es MyISAM. Para MaxiComercio es necesario cambiar este valor por InnoDB que es el que se requiere debido al uso de las transacciones y la integridad referencial. Para cambiar esta configuración hay que abrir el archivo my.cnf con un editor de textos y agregar la siguiente línea:

default-storage-engine=InnoDB Después de establecer el valor deseado hay que guardar los cambios en el archivo y cerrarlo. · Sensibilidad a mayúsculas y minúsculas:

De forma predeterminada en Linux, los nombres de tablas y bases de datos se almacenan en disco usando el esquema de mayúsculas y minúsculas especificado en las sentencias CREATE TABLE o CREATE DATABASE, esto se especifica en la variable del sistema llamada lower_case_table_names, la cual está predefinida con el valor 0.

Si se utilizan tablas InnoDB, como en nuestro caso, se debería establecer lower_case_table_names en 1 en todas las plataformas para forzar a que los nombres sean convertidos a minúsculas. Por lo cual hay que abrir el archivo my.cnf con un editor de textos y agregar la siguiente línea:

lower_case_table_names=1 Después de establecer el valor deseado hay que guardar los cambios en el archivo y cerrarlo.

Esta consideración es vital ya que de lo contrario MaxiComercio podría tener problemas para identificar objetos de la base de datos por la sensibilidad a mayúsculas/minúsculas.

Para que los cambios al archivo my.cnf se vean reflejados en el servidor MySQL hay que reiniciar el servicio con el siguiente comando:

/etc/init.d/mysql restart

Instalación de Samba en Debian

La instalación de Samba puede realizarse descargando y compilando los archivos fuente (para más información consultar el siguiente enlace http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/compiling.html), o bien, de forma más sencilla, utilizando la herramienta de administración de paquetes aptitude para Debian, lo cual veremos a continuación. Para instalar los programas hay que ejecutar los comandos descritos en cada caso dentro de un intérprete de comandos (es necesario ingresar con un usuario con privilegios suficientes para realizar esta acción, por lo general se utiliza el usuario root). · Paquetes necesarios a instalar: samba. Instala el software servidor de archivos e impresión. aptitude install samba En el proceso de instalación, aparecerá la siguiente pregunta: Run Samba as daemons or from inetd? Press 'D' for to run as daemons or 'I' to run from inetd: [I] Hay que pulsar la tecla D para que Samba inicie como demonio, lo cual quiere decir que iniciara siempre que se reinicie el equipo donde se encuentra instalado y siempre estará funcionando. · Paquetes opcionales a instalar: smbfs. Instala el sistema de archivos Samba aptitude install smbfs

Configuración de Samba en Debian

El archivo de configuración de Samba en Debian se encuentra en la siguiente ruta /etc/samba/smb.conf. Todas las líneas que empiezan con el caracter “#” no son tomadas en cuenta para la configuración, solamente son comentarios. Cuando algunas de las opciones están comentadas con el caracter “;” se refiere a una configuración propuesta pero que difiere del comportamiento predeterminado. Cuando algunas opciones están comentadas con el caracter “#” se refiere a la configuración predeterminada de Samba, y se considera de suficiente importancia como para comentarse en el archivo de configuración. · Definir el grupo de trabajo: Hay que establecer el nombre del grupo de trabajo o de dominio de Windows de donde será parte el servidor Samba. El valor predeterminado es WORKGROUP. Para cambiar esta configuración hay que abrir el archivo smb.conf con un editor de textos y cambiar la siguiente línea: workgroup = WORKGROUP Por: workgroup = Migrupodetrabajo Donde Migrupodetrabajo es el mismo nombre del grupo de trabajo en los equipos con Windows. Después de establecer el valor deseado hay que guardar los cambios en el archivo y cerrarlo. · Interfaces de red que serán escuchadas Es necesario establecer las interfaces desde las que Samba escuchará las peticiones, de lo contrario no atenderá las peticiones. Los valores que puede establecer en el parámetro son: un nombre de interfaz de red (por ejemplo: eth0), una dirección IP, o una máscara de red. Por default, el parámetro interfaces está vacío, por lo cual hay que configurarlo cambiando la siguiente línea del archivo smb.conf: interfaces = Por: interfaces = eth0 En general eth0 es la interfaz de red, para comprobar qué interfaces de red está utilizando actualmente, debe teclear el siguiente comando en una consola con privilegios de root: ifconfig De esta forma sabrá qué interfaces de red tiene conectadas y elegirá cuál o cuáles poner en el parámetro interfaces para que sean escuchadas. Después de establecer el valor deseado hay que guardar los cambios en el archivo y cerrarlo. · Directorios a compartir: Para compartir directorios que se encuentran en el servidor Linux con equipos Windows a través de Samba, hay que agregar los siguientes parámetros al final del archivo smb.conf: #Nombre de la carpeta compartida [Maxicomercio] #Ruta en donde se encuentra la carpeta a compartir path = /home/usuario/Maxicomercio #Establecer que el directorio se muestre en la lista de recursos compartidos browsable = yes #Permitir la escritura dentro de esta carpeta writable = yes #Permitir el acceso como usuario invitado a esta carpeta public = yes #Definir el permiso que tendrán los archivos creados dentro de esta carpeta create mask = 0775 #Definir el permiso que tendrán los subdirectorios creados dentro de esta carpeta directory mask = 0775 La carpeta ya debe estar creada en el equipo Linux. Después de establecer la configuración deseada hay que guardar los cambios en el archivo y cerrarlo. Para iniciar el servicio por primera ocasión hay que ejecutar el siguiente comando en una consola con privilegios de root: /etc/init.d/samba start · Creación de cuentas de usuario : Después de haber configurado los parámetros del servidor Samba, lo siguiente que hay que hacer es crear las cuentas de usuario que se conectarán desde equipos Windows a las carpetas que estén compartidas a través de Samba. Para esto, primero se creará el usuario en Linux a través del siguiente comando: useradd –s /sbin/nologin nombre_usuario Con esto, se agregará a un usuario en Linux pero sin acceso al intérprete de comandos. Después de esto, hay que dar sincronizar a ese usuario con el de Samba con el siguiente comando: smbpasswd –a nombre_usuario Al escribir ese comando, el sistema solicitará la contraseña con la cual se autenticará ese usuario, después de escribirla solicitará una confirmación de esa contraseña. Para que el servidor Samba tome en cuenta los usuarios agregados hay que reiniciar el servicio con el siguiente comando: /etc/init.d/samba restart

Crear Base de Datos y Carpeta de Subprogramas

Hasta este punto, se ha configurado un servidor MySQL y un servidor Samba en un equipo con Linux como sistema operativo. Por lo cual, se puede realizar una instalación de MaxiComercio en un equipo Windows configurando el Servidor de Base de Datos y Servidor de Subprogramas en un equipo Linux. Para realizar esto hay que seguir el procedimiento mostrado a continuación: 1. Debe estar MaxiComercio y el Conector ODBC 3.51 instalado en el equipo Windows. 2. Ir al menú Inicio de Windows, desplegar la lista de programas instalados, seleccionar la carpeta MaxiComercio ERA 2010, luego seleccionar la carpeta Herramientas y dar clic en “Configurar o conectar a servidor”. 3. Seleccionar la opción “Configurar servidor y base de datos”. 4. Seleccionar la unidad de disco y el nombre de la carpeta donde se instalará el Repositorio de Subprogramas (La carpeta debe crearse primero en el equipo local en Windows). 5. Seleccionar MySQL como servidor de Base de Datos y dar clic en Aceptar. 6. En la pantalla del asistente de configuración del servidor ingresar los siguientes datos: a. En “Servidor”: Puede escribir el nombre del equipo Linux donde tiene configurado el servidor MySQL o la dirección IP, en caso de ser estática. b. En “Nombre de usuario”: Escribir “root” (sin las comillas). El usuario con el que se crea la base de datos debe ser root, debido a que en el proceso se crean procedimientos almacenados y triggers. c. En “Contraseña”: Escribir la contraseña del usuario root configurado anteriormente en el servidor MySQL en Linux. d. En “Nombre del origen ODBC (DSN)”: Escribir el nombre que deseen, ese nombre será el del Data Source Name (Nombre de Origen de Datos) y también será el nombre de la Base de Datos. e. Dar clic en Siguiente en las demás pantallas del asistente hasta finalizar. 7. Mover la carpeta del equipo local en Windows al servidor Linux en la carpeta que se haya configurado como compartida. 8. Cambiar la ruta de acceso al repositorio de subprogramas en el archivo Maxicomercio.inf, indicando la ruta hacia la carpeta compartida que se encuentra en el servidor Linux. 9. Registrar la ubicación de confianza del repositorio localizado en la carpeta del servidor Linux. Temas Relacionados Lección 1.6 - Configuración de servidor Linux+MySQL+Samba Copyright; 2014 www.grupoexecom.com, All rights reserved.