Mostrando entradas con la etiqueta Debian. Mostrar todas las entradas
Mostrando entradas con la etiqueta Debian. Mostrar todas las entradas

Como Instalar y configuar MySQL en Ubuntu o Debian

Instalación y configuración de MySQL

Introducción

MySQL es un SGBD (Sistema Gestor de Bases de Datos) relacionales muy completo y muy utilizado tanto en entornos Linux como en entornos Windows, principalmente para el desarrollo de aplicaciones web. Entre sus principales prestaciones destacamos:
  • Fácil instalación
  • Fácil administración
  • Rápido
  • Completo
  • Multiplataforma
Por éstas razones, casi todas las aplicaciones web desarrolladas en lenguaje php que requieran de base de datos, utilizan mysql.
Si disponemos de un servidor web con soporte php y base de datos mysql, tendremos la arquitectura ideal para crear un portal dinámico utilizando gestores de contenidos como PHPNuke, drupal o Tikiwiki y herramientas orientadas a crear sitio web para entornos educativos como Mambo o Claroline, así como aplicaciones web orientadas al trabajo colaborativo y al desarrollo rápido de contenidos como Wikis y Blogs.


Instalación de mysql

Para la instalación del servidor y el cliente de mysql, debemos instalar los paquetes mysql-server, mysql-common y mysql-client mediante apt-get. Se instalará la versión 5 de mysql:








// Instalación de mysql

# apt-get install mysql-server mysql-common mysql-client


Arranque y parada del SGBD mysql

El servidor de datos mysql, al igual que todos los servicios en Debian, dispone de un script de arranque y parada en la carpeta /etc/init.d.







// Iniciar o reiniciar el servidor mysql

# /etc/init.d/mysql restart

// Parar el servidor mysql

# /etc/init.d/mysql stop

Arranque automático del servidor MySQL al iniciar el sistema.








# update-rc.d mysql defaults

Configuración del SGBD mysql

El archivo de configuración de mysql es el archivo:
// Archivo de configuración de mysql

/etc/mysql/my.cnf
En dicho archivo se configuran aspectos generales como la contraseña, el puerto a utilizar y algún otro aspecto pero para hacer un uso normal de mysql, no es necesario realizar ninguna modificación del archivo original.

Administración del SGBD mysql

Mysql es un SGBD completo que permite crear usuarios y establecer permisos sobre bases de datos, tablas y campos deseados a dichos usuarios. Los permisos pueden ser de consulta, inserción, modificación y borrado de datos, creación, modificación y eliminación de tablas y bases de datos y de administración de usuarios y permisos, lo que hace a mysql ser un SGBD muy flexible y muy completo.
Quizás la primera acción que se debería hacer nada más arrancar el SGBD mysql sería poner una contraseña al usuario root ya que inicialmente no tiene contraseña. Para ello debemos iniciar mysql con el comando:



// Iniciar el servidor de bases de datos mysql

# /etc/init.d/mysql start




Posteriormente iniciamos el cliente de mysql como root y cuando aparezca el prompt de mysql (mysql>) ejecutamos una orden grant para establecer la contraseña de root:



// Ejecutar cliente de mysql y cambiar contraseña de root

# mysql -u root // Accedemos sin contraseña Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 5 to server version: 4.0.20-log Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> grant all privileges on *.* to root@localhost identified by 'secreta' with grant option; Query OK, 0 rows affected (0.00 sec) mysql> quit Bye




De ésta manera habremos puesto como contraseña de root la palabra 'secreta'. La próxima vez que entremos, debemos añadir la opción -p para que nos pida la contraseña ya que de lo contrario no nos dejará entrar:



// Entrando como root con contraseña

# mysql -u root -p




Ahora debemos introducir la contraseña para acceder y tener acceso global al SGBD mysql.

CopyPasteandoLink

Como Instalar Internet Explorer IE en Linux: Ubuntu, Debian, etc.



En algunas ocasiones deberemos emplear el navegador IE en nuestro Linux. Ya sea porque nos dedicamos al diseño web y necesitamos ver cómo queda nuestra página sobre dicho navegador o porque cierta aplicación está diseñada únicamente para el programa de Microsoft.

Un ejemplo de esto último podría ser, lo digo por mis compañeros docentes de Galicia, la aplicación Xade, que en el afán de la Xunta de promoción del software libre en la educación, todavía no ha contemplado su funcionamiento en firefox (ni en ningún otro navegador que no sea IE).

Para facilitar la instalación del mismo, lo único que vamos a hacer es instalar la última versión disponible de wine (recordar que es un entorno en el que se sustituyen librerías comerciales por otras libres, es decir, no se virtualiza nada, sino que se han codificado las dll necesarías con lo que el rendimiento es similar a las originales).

Una vez hecho esto, bajaremos un script que nos ayudará en la tarea de instalación del programa IE, que lo que hará será bajar el programa de la página oficial de microsoft e instalarlo.

Instalación de Wine.


Esta aplicación puede funcionar en cualquier distribución de Linux, pero en este artículo trataré la instalación de la misma en Ubuntu 8.04.

Lo primero que haremos será añadir los repositorios para nuestra versión de Ubuntu.Si se quisiera realizar la instalación en cualquier otra versión podría consultar los repositorios en el siguiente enlace.

En primer lugar, abra una ventana de terminal (Aplicaciones-> Accesorios-> Terminal). Entonces añada la clave de repositorio a su sistema APT de lista de claves de confianza por copia y pegue el texto siguiente:




wget -q http://wine.budgetdedicated.com/apt/387EE263.gpg -O- | sudo apt-key add -




A continuación, añada el repositorio al sistema de listado de fuentes APT:
Para Ubuntu Hardy (8.04):




sudo wget http://wine.budgetdedicated.com/apt/sources.list.d/hardy.list -O /etc/apt/sources.list.d/winehq.list




Luego actualice el paquete de información de APT ejecutando



$ sudo apt-get update




…e instalamos Wine y un extractor que usa Windows:



$ sudo apt-get install wine cabextractl




Eso es todo lo que necesitamos de base para el script y la ejecución de IE
.
Instalación de IE en Linux
Ahora necesitamos el script que os comentaba que realizará la descarga del navegador y lo que necesitamos de forma automática. Para ello descargaros este archivo, lo descomprimís y ejecutáis el fichero “ies4linux“. Si queréis hacerlo todo por consola, estos serían los pasos:



$ wget http://www.tatanka.com.br/ies4linux/downloads/ies4linux-latest.tar.gz
$ tar zxvf ies4linux-latest.tar.gz
$ cd ies4linux-*
$ ./ies4linux




Se os abrirá un instalador como este:


Como podéis ver, en él podéis configurar la o las versiones que queréis instalar, el idioma, si queréis el plugin para flash y los accesos directos. Pero antes de darle a “Aceptar” vayamos a la configuración avanzada. Pulsemos sobre el botón “Advanced” y se nos mostrará lo siguiente.


Aquí podemos definir las rutas de instalación, el acceso directo del ejecutable, las descargas que necesitará para funcionar y las “flags“. Personalmente sólo cambié la ruta del ejecutable pues tengo una carpeta para otros programas instalados en mi home. La podéis ver en la captura. Sin embargo podéis dejar la que esté por defecto o poner otra.
En la parte inferior de la imagen podéis ver el soporte para IE7 en fase beta tal y como os dije. Podéis habilitarlo o dejarlo deshabilitado según lo que queráis. Visto esto, pulsamos sobre “Aceptar” y de nuevo saldrá la primera captura. Volvemos a pulsar “Aceptar” y comenzará el proceso de descarga e instalación de Internet Explorer.
Importante: Es probable que a más de uno se le cierre el instalador él sólo. Si os sucede, simplemente volved a ejecutarlo (volviendo a cambiar las rutas que hayáis cambiado) hasta que se instale finalmente.
Durante la instalación nos informará de todo el proceso debidamente y nos dirá cómo podemos ejecutarlo:

Con ésto ya estaría todo listo para ejecutarse.
Si ejecutamos:



/home/profe/bin/ie6




nos aparecerá la siguiente pantalla:



Esta captura es meramente demostrativa en la que se ve IE en mi escritorio:

En cualquier caso, usad siempre que podáis un navegador libre
CopyPasteandoLink

Autenticación en un sistema LDAP (OpenLDAP) Ubuntu o Debian

Introducción

Como ya hemos comentado anteriormente, una de las utilidades más importantes de un servidor LDAP es como servidor de autentificación. Autentificarse es necesario para entrar en un sistema linux. También para acceder a algunos servicios como un servidor FTP o a páginas privadas en un servidor web. En otros apartados veremos como utilizar un servidor LDAP para permitir el acceso a páginas web privadas y para autentificar a usuarios del servidor de ftp Proftpd. Aquí veremos las modificaciones que hay que realizar en un sistema Linux para que autentifique a los usuarios en un servidor LDAP en lugar de utilizar los clásicos archivos /etc/passwd, /etc/group y /etc/shadow. Para ello es necesario instalar y configurar los paquetes libpam-ldap y libnss-ldap.

Librerías de autentificación pam-ldap y nss-ldap

La librería pam-ldap permite que las aplicaciones que utilizan PAM para autentificarse, puedan hacerlo mediante un servidor LDAP. Para que el sistema linux se autentifique mediante un servidor LDAP es necesario instalar esta librería ya que utiliza PAM. El archivo de configuración de ésta librería es /etc/ldap.conf. Hay otras aplicaciones o servicios que utilizan PAM para la autentificación y por tanto podrían, gracias a la librería pam-ldap, autentificarse ante un servidor LDAP.
Para especificar el modo de autentificación de cada servicio es necesario configurar los archivos que se encuentran en la carpeta /etc/pam.d/. Al final de este documento se indican los cambios necesarios en éstos archivos.
La librería nss-ldap permite que un servidor LDAP suplante a los archivos /etc/passwd, /etc/group y /etc/shadow como bases de datos del sistema. Su archivo de configuración se encuentra en /etc/libnss-ldap.conf (o /etc/ldap.conf en versiones recientes). Posteriormente deberemos configurar el arhivo /etc/nsswitch.conf para que se utilice LDAP como base de datos del sistema en lugar de los archivos passwd, group y shadow.
La instalación de ambas librerías se puede realizar mediante apt-get.

Instalación y configuración de libpam-ldap

La instalación de la librería libpam-ldap se puede realizar ejecutando el comando:

// Instalación de la librería libpam-ldap


# apt-get install libpam-ldap
Nos aparecerán las pantallas del asistente de configuración cuyas pantallas podéis ver un poco más abajo, en las versiones más recientes de Ubuntu. Deberemos comprobar al finalizar:
El archivo de configuración de la librería es el archivo /etc/ldap.conf . Únicamente hay que configurar los siguientes parámetros:
  1. Quién es el servidor LDAP (nombre o IP)
  2. Cuál es la base de nuestro directorio LDAP (base DN)
  3. Cuál es la versión de LDAP a utilizar
  4. Quién es el administrador del directorio
  5. En qué unidad organizativa se encuentran los usuarios (sustituto de /etc/passwd)
  6. En qué unidad organizativa se encuentran las contraseñas (sustituto de /etc/shadow)
  7. En qué unidad organizativa se encuentran los grupos (sustituto de /etc/group)
Para ello las líneas que hay que modificar en el archivo de configuración son las siguientes (el valor de los parámetros es un ejemplo):

// Configurar en /etc/ldap.conf


host 172.16.15.1 //nombre o IP del servidor LDAP base dc=iesacarballeira,dc=com ldap_version 3 rootbinddn cn=admin,dc=iesacarballeira,dc=com nss_base_passwd ou=users,dc=iesacarballeira,dc=com?one nss_base_shadow ou=users,dc=iesacarballeira,dc=com?one nss_base_group ou=groups,dc=iesacarballeira,dc=com?one

Instalación y configuración de libnss-ldap

En las versiones más recientes al instalar la librería libpam-ldap ya nos instala ésta y nos habrá ejecutado el asistente de instalación, sino:

Para instalar la librería libnss-ldap debemos ejecutar el comando:

// Instalación de la librería libnss-ldap


# apt-get install libnss-ldap
Acto seguido se iniciará el asistente de configuración de dicha librería. Se puede lanzar dicho asistente más adelante mediante el comando:

// Lanzar asistente de configuración de libnss-ldap


# dpkg-reconfigure libnss-ldap
Dicho asistente modificará el archivo /etc/libnss-ldap.conf (o /etc/ldap.conf en versiones recientes) que es donde se almacena la configuración de la librería. Posteriormente tendremos que editar dicho archivo manualmente para introducir algún cambio que no realiza el asistente.

Asistente de instalación
La primera pregunta que nos hace el asistente es quién es el servidor LDAP. Podemos poner la IP o el nombre:



Luego nos preguntará por la base del directorio LDAP (base DN):
dc=iesacarballeira,dc=com



Acto seguido tendremos que indicar la versión de LDAP a utilizar:
la más actual -la 3- por defecto.



En el siguiente paso nos pregunta si necesitamos autentificarnos en el servidor LDAP o no. Como la librería únicamente va a realizar consultas, no es necesario autentificarse por lo tanto debemos responder 'No':



Posteriormente nos preguntará si el archivo /etc/libnss-ldap (o /etc/ldap.conf en versiones recientes) debe solamente tener permisos de lectura y escritura para el usuario (root que es quién instala) o no. Como en el paso anterior hemos indicado que no necesitamos autentificación, no se almacenarán contraseñas en el archivo de configuración, por tanto podemos responder 'No':



Finalmente nos advierte que debemos modificar el archivo /etc/nsswitch.conf para que el sistema utilice el directorio LDAP como base de datos del sistema, al igual que hace con los archivos passwd, group y shadow:



Con el asistente se habrá configurado casi todo lo necesario aunque para que nuestro sistema se autentifique por LDAP, aún hay que configurar dos parámetros más:
  1. En qué unidad organizativa se encuentran los usuarios (sustituto de /etc/passwd - en nuestro caso ou=users)
  2. En qué unidad organizativa se encuentran los grupos (sustituto de /etc/group - en nuestro caso ou=groups)
Para ello hay que modificar dos líneas en el archivo de configuración. Son las siguientes:

// Configurar en /etc/ldap.conf


nss_base_passwd ou=users,dc=iesacarballeira,dc=com nss_base_group ou=groups,dc=iesacarballeira,dc=com

Configuración de NSS

Para que el servidor LDAP actúe como si se tratara de los archivos passwd, group y shadow, además de instalar las dos librerías anteriores, debemos indicar que se utilice LDAP como alternativa para autentificar usuarios. Para ello hay que añadir en las líneas que hacen referencia a passwd, group y shadow en el archivo /etc/nsswitch.conf, la palabra 'ldap' tras la palabra 'compat' quedando el archivo /etc/nsswitch.conf así:

// Archivo /etc/nsswitch.conf


# /etc/nsswitch.conf # # Example configuration of GNU Name Service Switch functionality. # If you have the `glibc-doc' and `info' packages installed, try: # `info libc "Name Service Switch"' for information about this file. passwd: compat ldap group: compat ldap shadow: compat ldap hosts: files dns networks: files protocols: db files services: db files ethers: db files rpc: db files netgroup: nis

Configurar servicios PAM

Nuestro sistema ya estaría preparado para autentificarse por LDAP. Editando los archivos que hay en la carpeta /etc/pam.d, podemos configurar la forma en la que se autentifica cada uno de los servicios que requieren autentificación.
Para no tener que configurar de cada uno de los servicios, existen unos archivos comunes cuyo nombre empieza por common que afectan a la mayoría de ellos y sus archivos de configuración los referencian mediante una línea @include a los archivos comunes causando el mismo el efecto que si el contenido de los archivos comunes estuviera copiado en el lugar de la línea @include. Los archivos comunes son:
  • /etc/pam.d/common-auth (para autentificarse)
  • /etc/pam.d/common-account (para disponer de una cuenta)
  • /etc/pam.d/common-session (para poder iniciar sesion)
  • /etc/pam.d/common-password (para poder cambiar password)
Estos archivos contienen una línea que hace referencia a la librería pam_unix.so que corresponde a la autentificación contra los archivos UNIX. Para que los servicios de nuestro sistema utilicen primero las librerías pam_ldap.so para autentificar al usuario, debemos añadir la línea correspondiente a pam_ldap.so por encima de la línea correspondiente a la librería pam_unix.so en los archivos common. Así, auntentificará primero contra el servidor LDAP, y si la autentificación falla, probará despues con los archivos UNIX.

Configuración archivo common-auth

Para que los servicios de nuestro sistema utilicen las librerías pam-ldap para autentificar al usuario, debemos añadir en el archivo /etc/pam.d/common-auth la siguiente línea:


// Añadir en /etc/pam.d/common-auth encima de la línea pam_unix.so


auth sufficient pam_ldap.so

Además de ello, hemos de modificar la línea -añadiendo al final use_first_pass:

auth       required   pam_unix.so use_first_pass
// en caso contrario cuando hagamos su para un usuario dado de alta en ldap nos pedirá la contraseña dos veces

Configuración archivo common-account

Para permitir que los servicios de nuestro sistema comprueben la cuenta del usuario mediante las librerías pam-ldap, debemos añadir en el archivo /etc/pam.d/common-account la siguiente línea:

// Añadir en /etc/pam.d/common-account encima de la línea pam_unix.so


account sufficient pam_ldap.so nullok_secure

Configuración archivo common-session

Para permitir que los servicios de nuestro sistema obtengan los parámetros de la sesión de usuario mediante las librerías pam-ldap, debemos añadir en el archivo /etc/pam.d/common-session la siguiente línea:

// Añadir en /etc/pam.d/common-session encima de la línea pam_unix.so


session sufficient pam_ldap.so

Configuración archivo common-password

Para permitir que los servicios de nuestro sistema puedan modificar la contraseña del usuario mediante las librerías pam-ldap, debemos añadir en el archivo /etc/pam.d/common-password la siguiente línea:

// Añadir en /etc/pam.d/common-password encima de la línea pam_unix.so


password sufficient pam_ldap.so

Configuración particular para cada servicio

Si deseamos que algún servicio se autentifique de forma diferente, podemos editar el archivo del servicio (ej: /etc/pam.d/su, /etc/pam.d/ssh, /etc/pam.d/ftp, etc...), eliminar la línea que comienza por @include e introducir la configuración particular que deseemos.

Probar la autentificación

Nuestro servidor LDAP ya debería autentificar correctamente . Podemos probar la autentificación de los servicios mediante el comando pamtest que se encuentra en el paquete libpam-dotfile, por lo tanto debemos instalarlo:

// Instalación del comando pamtest


# apt-get install libpam-dotfile
Si deseamos probar que funciona el servicio passwd (cambiar contraseña) sobre un usuario del directorio LDAP (ejemplo jessica) , podemos ejecutar:

// Probando el cambio de contraseña


root@cnice-desktop:/etc/pam.d# pamtest passwd jessica Trying to authenticate for service . Password: // Introducimos el password de jessica Authentication successful. // La autentificación ha sido satisfactoria
También podemos utilizar el comando finger sobre usuarios que estén solamente en el directorio LDAP, por ejemplo joel:

// Probando finger


root@cnice-desktop:/etc/pam.d# finger joel Login: joel Name: Joel Javier Directory: /home/www/alumnos Shell: /bin/sh Last login Tue Sep 27 18:02 (CEST) on pts/3 from 192.168.0.213 No mail. No Plan.
Podemos por ejemplo, desde una consola de root, cambiar mediante el comando 'su' (su=Switch User - cambiar de usuario) a un usuario que esté en el directorio LDAP, para lo cuál no nos pedirá contraseña ya que root tiene permiso para cambiar a cualquier usuario. Si posteriormente cambiamos a otro usuario del directorio, ahora sí que nos pedirá contraseña. Deberemos introducir la contraseña que esté almacenada en el directorio LDAP para dicho usuario:

// Cambiando de usuario
root@cnice-desktop:/etc/pam.d# su joel     // Somos root y cambiamos a joel
joel@cnice-desktop:                         // No nos pide password
joel@cnice-desktop:/etc/pam.d$ su jessica  // Somos joel, y cambiamos a jessica
Password:                               // Nos pide password, le introducimos
jessica@cnice-desktop:/etc/pam.d$           // Ha cambiado correctamente
Las opciones de configuración de PAM son muy variadas. Para obtener más información se puede instalar el paquete libpam-doc que instala bastante documentación al respecto bajo la carpeta /usr/share/doc/libpam-doc/
Crea un usuario de prueba:
smbldap-useradd -a -m -M cuenta_de_correo -c "Nombre Completo" nombre_usuario


Luego dale una password:
smbldap-passwd nombre_usuario


Y debieras poder conectarte al servidor como ese usuario, ya sea por la consola o por SSH. También debes arreglar algunos ajustes de la cuenta root en el servidor, o te quedarás sin poder usarla:


smbldap-usermod -u 0 -d /root -s /bin/bash root


Para información sobre cómo instalar el servidor LDAP pulsa en el enlace



CopyPasteandoLink

Como Configurar y activar un equipo como enrutador en Ubuntu o Debian

Activación del enrutamiento en Linux


Las funciones de enrutamiento mediante NAT son realizadas por el cortafuegos que analizará los paquetes provenientes de la red local interna cuyo destino sea Internet y los modificará convenientemente para que salgan hacia Internet como si fueran emitidos por el servidor. A partir del nucleo 2.4 de Linux, el cortafuegos empleado es iptables.
Para posibilitar que nuestro servidor Linux sea capaz de comportarse como un router y hacer de puerta de enlace para los PCs de nuestra red local, será necesario crear un script que configure el cortafuegos iptables para que realice NAT desde dentro de la red local hacia Internet.


Creación del script para activar enrutamiento

Para activar el enrutamiento en un sistema Linux, tan solo basta con poner a '1' la variable ip_forward del sistema, es decir, basta con ejecutar desde una consola de root:



echo "1" > /proc/sys/net/ipv4/ip_forward




Posteriormente tendríamos que configurar el filtrado de paquetes para que acepte el redireccionamiento de paquetes desde dentro hacia fuera de nuestra red y mediante NAT permita que los PCs de la red interna naveguen con la dirección IP 'publica' del servidor. Supongamos que el router Linux tiene una tarjeta (eth0) conectada a la red local (172.16.15.1/255.255.255.0) y que tenemos una tarjeta (eth1) conectada al router, con la ip 192.168.36.140, los comandos a ejecutar serían: 



// Haciendo NAT en el servidor
# iptables -A FORWARD -j ACCEPT

# iptables -t nat -A POSTROUTING -s 172.16.15.0/24 -o eth1 -j SNAT --to 192.168.36.140






Podríamos realizar un script que activara el enrutamiento y el NAT y otro para desactivarlo:



// activar-enrutamiento.sh
echo "1" > /proc/sys/net/ipv4/ip_forward

iptables -A FORWARD -j ACCEPT

iptables -t nat -A POSTROUTING -s
172.16.15.0/24 -o eth1 -j SNAT --to 192.168.36.140








// desactivar-enrutamiento.sh
echo "0" > /proc/sys/net/ipv4/ip_forward






Activación automática del enrutamiento al arrancar el equipo

Si hemos creado el script de enrutamiento lo único que tenemos que hacer es dar permisos de ejecución y:



update-rc.d activar-enrutamiento.sh defaults
 

CopyPasteandoLink

Servidor LDAP en Ubuntu o Debian con OpenLDAP

¿Qué es un servidor LDAP?

Un servidor LDAP es un servidor de datos optimizado para la realización rápida de consultas de lectura y orientado al almacenamiento de datos de usuarios a modo de directorio.

La principal utilidad de un directorio LDAP es como servidor de autentificación para los distintos servicios de un sistema informático como puedan ser: autentificación para entrar en un PC, para entrar en una aplicación web, para acceder a un servidor ftp, para acceder a servidores de correo entrante POP3 y saliente SMTP, etc...

Si en nuestra red disponemos de un servidor LDAP y configuramos todos los PCs y todos los servicios de la red para que se autentifiquen en él, bastará con crear las cuentas de usuario y grupos de usuarios en nuestro servidor LDAP para que los usuarios puedan hacer uso del sistema y de sus servicios desde cualquier puesto de la red. Es un sistema ideal para centralizar la administración de usuarios en un único lugar.

En el curso veremos cómo poner en marcha un servidor LDAP y cómo configurar el resto de PCs clientes de la red para que se autentifiquen en él. También utilizaremos OpenSSL para que durante el proceso de autentificación los datos viajen encriptados por la red, así ningún curioso podrá averiguar nuestras contraseñas. Además utilizaremos LDAP para que autentifique el acceso al servidor ftp y el acceso a páginas restringidas en el servidor web.

Instalación y configuración de OpenLDAP

Para simplificar la administración de los usuarios del sistema es ideal utilizar una base de datos accesible mediante LDAP. Almacenar las cuentas de usuario de forma centralizada en un único repositorio facilitará la creación, modificación y eliminación de cuentas de usuario y grupos de usuarios. Será necesario configurar los PCs de la red para que utilicen el servidor LDAP como servidor de autentificación.

Instalación de OpenLDAP

El servidor OpenLDAP está disponible en el paquete slapd por tanto, lo instalaremos utilizando apt-get. También nos conviene instalar el paquete db4.2-util que son un conjunto de utilidades para la base de datos dbd que es la que utilizaremos para nuestro servidor ldap y el paquete ldap-utils que contiene utilidades adicionales:
// Instalación del servidor LDAP


# apt-get install slapd db4.2-util ldap-utils
Durante la instalación, nos pedirá que introduzcamos la contraseña de administrador del servidor ldap. Podemos configurar cualquier contraseña, como por ejemplo 'ldapadmin'

Configuración de OpenLDAP

La configuración del servidor LDAP se almacena en el archivo /etc/ldap/slapd.conf. Podemos editar manualmente dicho archivo, pero es mejor lanzar el asistente de configuración de slapd. Para ello debemos ejecutar el siguiente comando:

(para aquellos a los que no os aparezca, os recomiendo que le echéis un vistazo a este otro artículo: http://tecnoloxiaxa.blogspot.com/2008/11/autenticacin-en-un-sistema-ldap.html )
//Lanzar el asistente de configuración de slapd


# dpkg-reconfigure slapd
  • Lo primero que nos pregunta el asistente es si deseamos omitir la configuración del servidor LDAP. Obviamente responderemos que no, ya que precisamente lo que queremos es configurar el servidor LDAP.
  • Nuestro directorio LDAP debe tener una base, a partir de la cual cuelgan el resto de elementos. Como nombre de la base, habitualmente se utiliza el nombre del dominio. Ejemplo, si nuestro dominio es iesacarballeria.com, lo normal es que la base para nuestro directorio LDAP sea: dc=iesacarballeira,dc=com.
  • La siguiente pregunta que nos hace el asistente es el nombre de nuestro dominio. Éste nombre lo utilizará para crear el nombre distinguido (DN) o dicho más claramente, nombre identificativo de la base de nuestro directorio LDAP. 


  • Posteriormente nos preguntará por el nombre de nuestra organización: iesacarballeira.

  • Después nos preguntará por la contraseña que deseamos poner al usuario admin (administrador) del servidor LDAP. Dicha contraseña nos la pedirá dos veces para evitar errores de tecleo. Podemos poner cualquier contraseña, por ejemplo 'root'.

  • Acto seguido nos informará sobre los posibles gestores de datos para almacenar el directorio y en la siguiente ventana nos preguntará qué sistema utilizar. Lo recomendable es utilizar el sistema BDB.

  • Después nos preguntará si queremos que se elimine la base de datos cuando quitemos slapd. Por si acaso, lo mejor es responder que no:

  • En el caso de que exista una base de datos LDAP previa, nos preguntará si deseamos moverla. Lo mejor es responder Sí, para evitar que interfiera en la nueva base de datos:
  • Luego nos preguntará si deseamos utilizar LDAP versión 2, respondemos que no ya que apenas se utiliza.

  • Finalmente nos da la oportunidad de omitir la configuración. Si respondemos que sí, será como que no hemos ejecutado el asistente, por lo tanto si nuestra intención es configurar el servidor LDAP responderemos no:


Ya tendríamos nuestro servidor LDAP listo para trabajar con él.

Arranque y parada manual del servidor LDAP

El servidor LDAP, al igual que todos los servicios en Debian, dispone de un script de arranque y parada en la carpeta /etc/init.d.
// Arrancar o reiniciar el servidor LDAP


root@cnice-desktop:# /etc/init.d/slapd restart

// Parar el servidor LDAP


root@cnice-desktop:# /etc/init.d/slapd stop

Arranque automático del servidor LDAP al iniciar el sistema.

update-rc.d slapd defaults

Administración de OpenLDAP


Introducción

Una vez instalado y configurado el servidor LDAP, la siguiente tarea es la del diseño de la estructura y la introducción de datos en el directorio. Puesto que la finalidad de nuestro servidor LDAP es que sirva de almacen de usuarios y grupos para autentificar sistemas linux y servicios como ftp y web, deberemos crear una estructura que parta de la base de nuestro directorio, para almacenar dicha información. Tal y como se explica más abajo, crearemos una unidad organizativa (ou) llamada groups, para almacenar los grupos de usuarios y crearemos otra unidad organizativa llamada users para almacenar a los usuarios.

Explorador de directorios LDAP

Para acceder al directorio LDAP y poder crear y modificar elementos en dicho directorio, es necesario disponer de un explorador de directorios LDAP (LDAP browser). Existen muchos exploradores LDAP tanto de pago como libres. Entre las aplicaciones libres destacamos gq, phpldapadmin (aplicación web) y JXplorer. Para instalar gq, podemos utilizar apt-get. Una vez instalada, para ejecutar gq tan solo debemos pulsar alt+f2 y escribir gq.
Para instalar phpldapadmin podemos:
  • Simplemente ejecutar: apt-get install phpldapadmin
  • Si se produce el error :


    Memory Limit low.
    Your php memory limit is low - currently 16M



Deberemos aumentar la memoria, por ejemplo a 64M, en el fichero /etc/php5/apache2/php.ini
//editamos el fichero /etc/php5/apache2/php.ini memory_limit = 64M ; Maximum amount of memory a script may consume (16MB)
y reiniciamos el servidor apache:

/etc/init.d/apache restart
Si estamos en el servidor, simplemente teclearemos en la barra de direcciones de nuestro explorador web:

http://localhost/phpldapadmin/

  • Otra posibilidad y al igual que otras aplicaciones web, podremos descargarla desde http://phpldapadmin.sourceforge.net/ y descomprimirla dentro del DocumentRoot de apache, es decir, dentro de la carpeta /var/www, por ejemplo en /var/www/phpldapadmin. Para ejecutarla, si la hemos descomprimido en la carpeta anterior, debemos ir a http://ip_del_servidor_web/phpldapadmin/ con el navegador y veremos la página principal de la aplicación (deberemos asegurarnos de que existe el fichero config.php, ya que por defecto sólo trae un config.php.example, ya que sino con cada actualización, en caso de existir ya nos machacaría la configuración previa. 



JXplorer - Explorador LDAP en java.

Por su calidad superior, en este curso utilizaremos JXplorer para administrar el directorio LDAP.

Instalación de JXplorer

Previo a instalar jxplorer, es necesario instalar la máquina virtual java de Sun.
Aunque en estos momentos está disponible la versión 1.6 de la máquina virtual de java, por problemas con la versión 3.2 de jxplorer he instalado la 1.5:

# apt-get install sun-java5-bin sun-java5-jre

Lo cierto es que la versión 3.2, de momento me ha dado muchos problemas en su instalación, por ello finalmente he decidido bajarme la versión 3.1 ( http://sourceforge.net/project/downloading.php?groupname=jxplorer&filename=JXv3.1deploy.tar.bz2&use_mirror=ovh) y ejecutarla tecleando:

# sh ./jxplorer.sh

Pasos para la instalación de jxplorer3.2 - DE MOMENTO CON SERIOS PROBLEMAS DE INSTALACIÓN
Para ello debemos ir a http://www.java.com/es/ y descargar la última versión del JRE (Java Runtime Enviroment). Puesto que no existe una versión específica para sistemas debian, debemos descargar la versión Linux (genérica), ejecutar el archivo 'bin' para que se descomprima el paquete y mover el directorio que se ha creado (ejemplo, jre1.6.0_10), a la carpeta /usr/lib. Posteriormente tendremos que editar el archivo /root/.bashrc y añadir las variables que permitan al shell encontrar el JRE: // Añadir en /root/.bashrc (sustituir jre1.6.0_10 por la versión descargada) CLASSPATH=/usr/lib/jre1.6.0_10/bin/ JAVA_HOME=/usr/lib/jre1.6.0_10/bin/ PATH=/usr/lib/jre1.6.0_10/bin/:/usr/lib/jre1.6.0_10/bin/java/:/sbin:/bin :/usr/sbin:/usr/bin:/usr/bin/X11:/usr/local/sbin:/usr/local/bin cargamos las variables del entorno: # source /root/.bashrc Después, debemos abrir un terminal y ya estamos en condiciones de instalar JXplorer. JXplorer no está disponible en los repositorios de paquetes de debian, por ello debemos ir a http://pegacat.com/jxplorer/downloads/users.html y descargarnos la versión para linux. En el momento de escribir estas líneas, la última versión es la 3.2 y por tanto el archivo descargado se llama JXv3.2_install_linux.bin. Para instalar la aplicación debemos dar permisos de ejecución al archivo y ejecutar:

// Instalar JXplorer


# sh ./JXv3.1_install_linux.bin
Se iniciará un sencillo asistente de instalación que al finalizar habrá creado un enlace en nuestra carpeta home, por lo tanto para ejecutarlo debemos escribir:

// Ejecutar JXplorer 

# ./JXplorer_LDAP_Browser
Veremos la pantalla principal de JXplorer:




Conexión con el servidor LDAP

La conexión con el servidor LDAP podemos hacerla como usuario anónimo o como usuario administrador. Si conectamos de forma anónima solo podremos visualizar los elementos pero no podremos hacer cambios. Si conectamos como administrador, podremos crear, modificar y eliminar elementos de cualquier tipo. Para conectar al servidor LDAP como administrador necesitamos la siguiente información:
  • Dirección IP del servidor LDAP
  • Protocolo del servidor (LDAP v3 en nuestro caso)
  • Base del directorio (dc=iesacarballeira,dc=com en nuestro caso)
  • Nombre de usuario administrador (cn=admin,dc=iesacarballeira,dc=com en nuestro caso)
  • Contraseña (root en nuestro caso)
La base del directorio se suele denominar en inglés 'base DN' o 'Nombre Distinguido de la base del directorio'. Se corresponde con el parámetro 'suffix' del archivo de configuración del servidor LDAP /etc/ldap/slapd.conf.
El nombre del usuario con el que nos conectamos se suele denominar en inglés 'user DN' o también 'bind DN'
El nombre de usuario administrador por defecto suele ser admin y a menudo hay que proporcionar nombre y base del directorio: cn=admin,dc=ieacarballeira,dc=com
Al hacer clic en el botón 'conectar' (marcado con círculo rojo en la figura) nos aparecerá el diálogo de conexión para que introduzcamos los datos de la conexión. Para no tener que introducir dicha información cada vez que conectemos, podemos grabar los datos pulsando 'Save'.



Si pulsamos OK, JXplorer conectará con el servidor LDAP y mostrará el directorio:



Vemos que en nuestro directorio solamente hay dos elementos: una organización llamada 'iesacarballeira' y el usuario administrador llamado 'admin'.

Organización del directorio LDAP


Creación de las unidades organizativas

Puesto que nuestro directorio va a almacenar usuarios y grupos, vamos a crear sendas unidades organizativas (en inglés organizational unit - ou) llamadas 'users' y 'groups' que nos servirán para organizar los usuarios y los grupos por separado. Dentro de la unidad organizativa 'users' crearemos todos los usuarios del sistema. Dentro de la unidad organizativa 'groups' crearemos todos los grupos del sistema.
Para crear una unidad organizativa dentro de nuestra organización, haremos clic con el derecho sobre la organización 'iesacarballeira' y en el menú contextual elegiremos 'New':



Nos aparecerá la ventana 'Set Entry Object Classes' que podríamos traducir por 'Seleccione las clases objeto de la nueva entrada' o mejor, 'Seleccione las tipologías'. En ella podremos elegir los 'tipos' que tendrá nuestro nuevo elemento. Como se trata de una unidad organizativa (en inglés organizational unit - ou) debemos seleccionar el tipo organizationalUnit en la lista de la izquierda y pulsar el botón añadir (Add). Los otros dos tipos que aparecen por defecto (organizationalRole y simpleSecurityObjet) no los necesitaremos, por lo tanto podemos seleccionarlos de la lista de la derecha y pulsar el botón quitar (remove). En la casilla 'Enter RDN' (introducir Nombre Distinguido Relativo) debemos poner el nombre de nuestro elemento. Escribiremos ou=users. Estaremos en la situación de la siguiente figura:




Tan solo debemos pulsar el botón OK y el botón "Submit" en la pantalla que nos aparece, ya se habrá creado nuestra unidad organizativa 'users'. Repetiremos los pasos para crear otra unidad organizativa llamada 'groups'.



Usuarios y grupos

Ahora solamente nos queda crear los usuarios, crear los grupos y asignar los usuarios a sus grupos. Dentro de nuestra unidad organizativa 'groups' crearemos los siguientes grupos:
  • profesores (gid=1001)
  • alumnos (gid=1002)
Dentro de nuestra unidad organizativa 'users' crearemos los siguientes usuarios:
  • javier (uid=1001, profesor)
  • joaquin (uid=1002, profesor)
  • miguel (uid=1003, profesor)
  • jessica (uid=1004, alumno)
  • joel (uid=1005, alumno)

Creación de grupos

Para crear los grupos, haremos clic con el derecho en la unidad organizativa 'groups' e igual que antes haremos clic en 'New'. Nuestro nuevo elemento será un nuevo grupo posix, por lo tanto debemos agregar el tipo 'posixGroup' de la lista de la izquierda. El nombre (RDN) será profesores, por tanto debemos escribir 'cn=profesores' (cn= Common Name - Nombre Común):




Al pulsar OK nos apacererá la siguente figura, en la cual observamos los atributos clásicos de un grupo posix. Debemos rellenar al menos el campo gidNumber. También podemos introducir miembros al grupo. En el parámetro memberUid añadimos javier. Luego, haciendo clic con el derecho en javier > Add another value, podemos añadir otro valor: joaquin. De igual manera añadiremos a miguel. No importa que todavía no hayamos creado a dichos usuarios:




Creación de usuarios

Para crear los usuarios, haremos clic con el derecho en la unidad organizativa 'users' e igual que antes haremos clic en 'New'. Nuestro nuevo elemento será un nuevo usuario posix, por lo tanto debemos agregar el tipo 'posixAccount' de la lista de la izquierda. Pero nuestro usuario también será una persona, por eso nos interesará agregar el tipo 'person' para disponer de los atributos de dicho tipo (nombre, apellidos, ...), además como será usuario de Internet nos interesará agregar también el tipo 'inetOrgPerson' para poder almacerar el e-mail y otros valores. Si su nombre es Francisco Javier, podemos escribir en la casilla RDN 'cn=Francisco Javier' (cn= Common Name - Nombre Común):




Al pulsar OK nos apacererá la siguente figura, en la cual observamos los atributos de las tres tipologías de nuestro elemento: persona, usuario de internet y cuenta posix. Debemos rellenar al menos los campos gidNumber (grupo primario que será el 1001), homeDirectory, uid (identificador), uidNumber, loginShell y sn (surname - apellidos). También añadiremos el e-mail aunque en la figura no se vea ya que está más abajo:



Lo mismo haremos con el resto hasta que tengamos creados los cinco usuarios.


Ya tendríamos creada la estructura, los grupos y los usuarios que necesitamos para nuestro sistema.

Autenticación de usuarios con LDAP
Para seguir viendo cómo configurar y autenticar LDAP (sin encriptar y usando openssl para encriptación) pulsa aquí


CopyPasteandoLink

VNC: Visor de Escritorios Remotos en Ubuntu o Debian

Definición de VNC

VNC es un servicio que crea servidores gráficos sobre pantallas o displays virtuales y permite establecer conexiones remotas desde otros PCs de la red al servidor, de forma gráfica de manera similar a si fuera un servidor de terminales. La diferencia más significativa con respecto a un servidor de terminales Xwindow como el que hemos visto en el artículo anterior es que mientras cuando hacemos una conexión Xwindow el cliente debe disponer de un servidor gráfico, cuando hacemos la conexión con VNCServer, la imagen gráfica se genera en el servidor y básicamente lo que fluye por la red son pantallazos jpg, de esa forma el cliente puede ser más ligero pero la carga del servidor es mucho mayor.
Para que pueda funcionar es necesario instalar y ejecutar el servidor VNC. Este servidor atenderá las peticiones de los clientes. El terminal deberá disponer del cliente de VNC llamado vncviewer del que hay versiones para todos los sistemas operativos incluidos MS-DOS, Linux y Microsoft Windows. En PCs obsoletos que se deseen utilizar como terminales, se podría instalar la versión para MS-DOS del cliente VNC. En http://www.veder.com/nwdsk/index.html existen imágenes de disquetes basadas en Free-DOS que configuran la tarjeta de red y dispone de un cliente VNC para DOS. También se podría instalar una versión de linux reducida como DSL.
Cuando ejecutamos el servidor de VNC, se crea un nuevo escritorio (nuevo display X) al cual se puede acceder de forma remota con el cliente de VNC. Se pueden ejecutar tantos servidores VNC como permita la memoria del sistema, pudiendo varios usuarios acceder de forma simultánea, cada uno a su escritorio independiente, al contrario que la versión del servidor VNC para Windows que sólo permite acceder al escritorio principal. Podemos forzar la introducción de una contraseña para permitir el acceso vía VNC al servidor.
En la estación de trabajo donde se ejecute el visor de VNC, éste aparece como una ventana en el entorno de escritorio local, presentando la interfaz de usuario; todas las funciones del S.O., así como las aplicaciones, se ejecutan en el servidor.

Servidor De escritorios remotos de Ubuntu
Ubuntu por defecto dispone de un servidor y de un cliente de vnc (vncviewer) nada más realizar la instalación normal del sistema. Para habilitar el servidor (es decir, el equipo al que nos querremos conectar de modo remoto), tan sólo tenemos que ir mediante el menú a Sistema - Preferencias - Escritorio Remoto:


Dónde debemos habilitar la pestaña de verificación de permitir a otros usuarios ver mi escritorio y si lo deseamos también la de controlarlo. Podemos solicitar una contraseña, cuestión recomendable, que configuraremos aquí mismo. Si pulsamos en la pestaña de propiedades avanzadas, podremos configurar cuestiones como el puerto en el que escucharemos las peticiones (por defecto el 5900) o habilitar el cifrado de las comunicaciones (siempre deberíamos hacerlo)
Para conectarnos desde el cliente, también disponemos del cliente en Aplicaciones - Internet - Visor de Escritorios Remotos:


Tan sólo deberemos introducir el nombre o IP del servidor (o pulsando en el botón buscar seleccionamos el equipo al que nos deseamos conectar) y pulsar el botón "Conectar" y nos aparecerá en la ventana el escritorio remoto permitiéndonos manejarlo como si estuviésemos en el mismo:


Otros servidores VNC

Instalación y configuración del servidor VNC

A pesar de que disponemos de otras aplicaciones de acceso remoto al servidor (ssh, free nx server), nos han comentado las bondades del programa VNC, que puede ser ejecutado en sistemas Windows y Linux. Sabemos que para el servicio que necesitamos sus funcionalidades son similares; más aun, pues con VNC podemos conectarnos al servidor mediante el cliente VNC o mediante el navegador de nuestro sistema operativo.

Instalación del servidor VNC

Para disponer de servidor VNC, instalaremos el paquete tightvncserver. Dicho paquete se encuentra en el repositorio 'universe' de Ubuntu. Una vez activado el repositorio 'universe', para instalar la última versión del servidor vnc debemos ejecutar desde una consola de root el siguiente comando: 
 



// Instalación de vncserver
# apt-get install tightvncserver






Puesta en marcha del servidor VNC

Para que se pueda acceder al servidor de forma remota mediante un cliente VNC, primero es necesario que en el servidor se está ejecutando tightvncserver.
Al ejecutar tightvncserver, se crea un servidor gráfico en un display virtual al que se puede acceder remotamente desde otros PCs de la red que dispongan del cliente VNC.
La primera vez que ejecutemos tightvncserver en el servidor, nos pedirá que proporcionemos una contraseña que será la contraseña que deberín utilizar los clientes para conectarse. Ésta contraseña se puede cambiar en cualquier momento ejecutando el comando 'vncpasswd' en el servidor.
Vamos a crear un servidor gráfico, para ello podríamos ejecutar por ejemplo:




// Creación de un servidor grafico
# tightvncserver :1 -geometry 800x600 -depth 24





Con el comando anterior estaríamos creando un nuevo servidor gráfico en un display virtual cuyo número de display será el :1, su tamaño será de 800 x 600 pixels y una profundidad de color de 24 bits/pixel (true color).
Si hemos lanzado el comando tightvncserver con el usuario root, cuando alguien se conecte de forma remota, accederá como root. Si hubieramos lanzado el comando con el usuario pepe (por ejemplo), cuando alguien se conecte de forma remota, lo hará como usuario pepe.

Destrucción de un servidor gráfico VNC

Cada vez que ejecutamos el comando tightvncserver, se crea un nuevo escritorio que puede ser accedido remotamente. Dichos escritorios consumen una cantidad considerable de memoria en el servidor, por lo que solo debemos crear los que necesitemos. Si hemos creado más de los necesarios, podemos destruirlos mediante el comando tightvncserver indicando el número del servidor a destruir, precedido por dos puntos:


// Destrucción de un servidor gráfico VNC
# tightvncserver -kill :1




Conectando al servidor VNC

Conexión con cliente vnc

Para conectar al servidor VNC necesitamos un cliente VNC, como por ejemplo vncviewer. En debian podemos instalarlo directamente con apt-get ejecutando: 
 



// Instalación del cliente VNC
# apt-get install xtightvncviewer





Una vez instalado el cliente, tan solo debemos ejecutarlo y proporcionarle la IP del servidor, seguido de dos puntos ':' y seguido del número de display, ejemplo 192.168.1.239:1 si la dirección IP del servidor fuera la 192.168.1.239 y el número de display fuera 1. Acto seguido nos pedirá la contraseña de acceso que pusimos al instalar el servidor. Dicha contraseña se puede especificar ejecutando el comando 'vncpasswd' en el servidor.



Ejecución del cliente de VNC

Conexión vía web

Otra forma más sencilla de conectar a un servidor vnc es utilizando un navegador web que disponga de máquina virtual java. Con éste método de conexión no es necesaria la instalación del cliente vnc ya que yendo a la dirección http://ip_del_servidor:580x (x = display) podremos acceder al display desde el navegador.
Para que sea posible acceder al servidor vnc por web es necesario instalar el componente java en el servidor ejecutando el siguiente comando:




// Instalación de tightvnc-java
# apt-get install tightvnc-java





Ejemplo, supongamos que hemos creado el display nº 1. Si vamos a http://ip_del_servidor:5801 podremos acceder. Primero deberemos introducir la contraseña.



Acto seguido accederemos al escritorio de igual forma que si utilizáramos el cliente vnc.




CopyPasteandoLink