sábado, 15 de noviembre de 2008

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.

Fuentes:


Servidor de terminales en Ubuntu o Debian

Servidor de terminales

Introducción y antecedentes

Un servidor de terminales es un servidor que ejecuta un software que permite a los usuarios acceder al mismo remotamente desde otros PCs (que hacen de terminales) y manejarlo como si estuvieran sentados frente al servidor.

En los sistemas Unix esto ha existido prácticamente desde siempre ya que los usuarios se conectaban al servidor mediante telnet y lanzaban procesos de forma remota. El telnet es una aplicación cliente de terminal que permite desde cualquier PC de la red conectarse a un servidor. Para que la conexión remota sea posible, el servidor deberá tener instalado el software de servidor de telnet que en Debian es el paquete telnetd. Al comenzar la conexión el usuario debía identificarse con nombre (login) y contraseña (password) para poder utilizar el sistema, de la misma forma que lo haría si se sienta en la consola principal del servidor. El telnet está prácticamente en desuso ya que la información que se envía desde el cliente al servidor y viceversa está sin encriptar y cualquier usuario que pinche la red podrá averigurar el nombre del usuario y su contraseña fácilmente.

El sustituto del telnet es el ssh (Secure SHell) que permite conectarse a un servidor remoto pero de forma segura ya que las comunicaciones en todo momento van encriptadas con algoritmos muy seguros de forma que es prácticamente imposible descifrar la información. Para más información sobre ssh, haga clic aquí.

En todo momento estamos hablando de accesos remotos en modo texto, es decir, mediante un símbolo del sistema introduciendo comandos como si se tratara de una ventana de ms-dos o un terminal en modo texto de unix. En los años 80-90 era impensable que múltiples usuarios pudieran conectarse a un sistema remoto con terminales gráficos ya que requieren de una gran cantidad de memoria.

En la actualidad, debido al abaratamiento de la memoria RAM, esto se ha convertido en una realidad que ha llegado a los centros educativos y a las pequeñas y medianas empresas.

Servidor de terminales en Linux

Servidor de terminales mediante X-Window

Linux por sí solo es un servidor de terminales ya que es un sistema operativo multiusuario (varios usuarios pueden ejecutar aplicaciones simultaneamente en el servidor) y utiliza para las aplicaciones gráficas el sistema X-Windows.

El sistema X-Window es un sistema gráfico cliente-servidor orientado a red que se compone de servidor gráfico X (que es quien dibuja las ventanas) y clientes X (que son las aplicaciones gráficas), con lo cual resulta ideal si se quiere utilizar de forma remota. Cuando ejecutamos aplicaciones gráficas directamente sentados en la consola principal del servidor, las aplicaciones dirigen su salida hacia el servidor grafico local cuya dirección IP es 127.0.0.1, pero cuando ejecutamos aplicaciones gráficas desde un terminal, la salida se dirigirá hacia el servidor gráfico del terminal.

Para disfrutar de un terminal remoto en modo gráfico con X-Window, debemos disponer en nuestro terminal remoto de un servidor grafico X. Los clientes de nuestro servidor gráfico X serán las aplicaciones que lancemos en el servidor y que redigirán la salida hacia nuestro servidor gráfico para que podamos visualizar en nuestro terminal las ventanas generadas por las aplicaciones. Las aplicaciones se ejecutan en el servidor pero las ventanas se visualizan en el terminal.

Para realizar esto de forma sencilla y segura, podemos utilizar ssh. Si en el servidor disponemos de un servidor ssh con la opción de 'redirección X' activada, desde el cliente podemos conectarnos al servidor con un cliente ssh y ejecutar aplicaciones gráficas ya que el servidor ssh se encarga de redireccionar la salida gráfica de las aplicaciones que ejecutemos, hacia nuestro terminal, y además las comunicaciones irán encriptadas. También es posible conectarse por telnet y redirigir la salida gráfica hacia el servidor X de nuestro terminal pero en este caso las comunicaciones viajarán sin encriptar.

Conexión remota mediante ssh

SSH es un protocolo que, entre otras cosas, permite establecer una conexión en modo texto desde un terminal hacia un servidor, pero si en el terminal disponemos de un servidor gráfico X, será posible incluso ejecutar aplicaciones gráficas en el servidor y redirigir la salida hacia el servidor grafico de nuestro terminal, logrando una conexión gráfica remota.

Para realizar una conexión gráfica remota mediante ssh necesitamos tan solo dos elementos:
  • Un servidor con el servicio ssh corriendo.
  • Un terminal que disponga de servidor grafico X y de cliente ssh.
Como terminal gráfico X sirve un PC que tenga cualquier distribución de linux en modo gráfico. Incluso existe la posibilidad de conectar desde sistemas operativos Microsoft Windows si instalamos cygwin. Los pasos a realizar son dos:

  • Establecer la conexión con SSH desde el terminal al servidor.
  • Ejecutar una aplicación gráfica.

El servidor ssh deberá tener activada la redirección del protocolo X (lo está por defecto), es decir, deberá tener el siguiente parámetro en el archivo de configuración /etc/ssh/sshd_config:

// Habilitar la redirección X en /etc/ssh/sshd_config
X11Forwarding yes


Para tener más información sobre cómo instalar y configurar el servidor ssh para permitir accesos remotos usando el entorno gráfico pulsar aquí.

Gimp ejecutándose de modo remoto mediante ssh

Fuente:
Página del isftic :
Curso Redes de Área Local. Aplicaciones y servicios en Linux. del isftic http://www.isftic.mepsyd.es/formacion/materiales/85/cd/REDES_LINUX/indice.htm

viernes, 14 de noviembre de 2008

Simulador de dispositivos de Red

La mejor manera de aprender cuáles son las posibilidades de configuración de un dispositivo de red, ya sea un switch (conmutador), enrutador (router), punto de acceso,... no cabe duda de que es conectándolo a la red y "jugando" un poco con él, pero esto no siempre es posible.

A ésto debemos añadirle que lo más probable es que nos pasemos más tiempo buscando opciones y asignando configuraciones erróneas, que más tarde deberemos resetear, que empleándolo para lo que finalmente será su destino.

Además no siempre dispondremos de todo tipo de dispositivos para explicar a nuestros alumnos el funcionamiento de los mismos. Otras veces nos sería muy cómodo y rápido, poder acceder a los menús de configuración de estos aparatos para aclararle al "amigo" o cliente de turno ,cuál y dónde está esa opción que debe modificar para que todo funcione adecuadamente.

Pues bien, desde este enlace podrás acceder a la página dónde encontrarás todos los dispositivos linksys para probar cuáles son las opciones de configuración de las que dispone. Para ello simplemente debes seleccionar el modelo que quieres probar, a continuación pulsar en la versión de firmware con la que deseas trabajar para inmediatamente visualizar el software de configuración del que dispone el aparato, en el mismo entorno web que incluye el mismo.

Por supuesto, no se me ocurre una posibilidad mejor de prueba, para saber si el dispositivo se adapta a tus necesidades con anterioridad a la compra del aparello.

Si quieres, en este enlace puedes ver el software de configuración del router inhalámbrico WRT54GX4.
Página de los dispositivos: http://ui.linksys.com/

Backup: Copias de Seguridad en Ubuntu o Debian

Tipos de copia de seguridad

En función de la cantidad de archivos que se salvaguardan a la hora de realizar la copia de seguridad, podemos distinguir tres tipos de copia:
  • Copia de seguridad total o íntegra
  • Copia de seguridad incremental
  • Copia de seguridad diferencial

Copia normal o copia total

Una copia de seguridad normal, es una copia de seguridad total de todos los archivos y directorios seleccionados.

Copia incremental

En un proceso de copia de seguridad incremental, se hace una copia de seguridad sólo de los archivos que han cambiado desde la última copia de seguridad realizada. Ejemplo, si hacemos copia de seguridad total el día 1 de cada mes y copia de seguridad incremental el resto de los días, cada copia incremental solo guardará los archivos que se hayan modificado ese día. Si tenemos que realizar la restauración de archivos ante un desastre, debemos disponer de la copia total y de todas las copias incrementales que hayamos realizado desde la copia total.


Copia diferencial

Una copia de seguridad diferencial es una copia de todos los archivos que han cambiado desde la última copia de seguridad total que hayamos hecho. Ejemplo, si hacemos copia de seguridad total el día 1 de cada mes y copia de seguridad diferencial el resto de los días, cada copia diferencial guardará los archivos que se hayan modificado desde el día 1. La ventaja es que se requiere menos espacio que la copia total y que en el proceso de restauración únicamente necesitaremos la última copia total y la última copia diferencial. Una copia diferencial anula a la copia diferencial anterior. Por el contrario, se consume más tiempo en realizar la copia y también más espacio que en el caso de copia incremental.


Recomendación sobre el tipo de copia a efectuar

Si el volumen de datos de nuestra copia de seguridad no es muy elevado (menos de 100 MB), lo más práctico es realizar siempre copias totales ya que en caso de desastre, tan solo debemos recuperar la última copia.

Si el volumen de datos de nuestra copia de seguridad es muy elevado (varios GB) pero el volumen de datos que se modifican no es elevado (menos de 500 MB), lo más práctico es realizar una primera copia total y posteriormente realizar siempre copias diferenciales. Así, en caso de desastre, tan solo debemos recuperar la copia total y la última diferencial. Periódicamente debemos realizar una copia total y así empezar de nuevo.

Si el volumen de datos de nuestra copia de seguridad es muy elevado (varios GB) y el volumen de datos que se modifican también lo es, las copias diferenciales ocuparán mucho espacio, por lo tanto en este caso lo más práctico será realizar una primera copia total y posteriormente realizar siempre copias incrementales ya que son las que menos espacio ocupan. El problema es que en caso de desastre debemos recuperar la última copia total y todas las incrementales realizadas desde que se hizo la última copia total. En estos casos, conviene hacer copias totales más a menudo para no tener que mantener un número muy elevado de copias incrementales.

En grandes compañías donde la realización de copias de seguridad está perfectamente planificada, se suelen utilizar sistemas mixtos. Por ejemplo en un caso típico se realizarían las siguientes tareas:

  • Todos los días 1 de cada més, a las 23:00 horas: copia de seguridad total
  • Todos los viernes a las 23:00 horas: copia de seguridad diferencial desde la copia de día 1
  • Todos los días (excepto los viernes y el día 1) a las 23:00 horas: copia de seguridad incremental desde la copia del día anterior.
Con ésta planificación nos aseguramos disponer de copia de seguridad diaria. En caso de desastre deberíamos recuperar la copia total, la última diferencial y todas las incrementales desde la última diferencial.

En una política de este tipo se pueden utilizar por ejemplo 5 juegos diferentes de cintas de forma que se almacenen las copias de seguridad diarias de los últimos 3 meses. Luego se van reutilizando pero no más de 20 veces ya que las cintas se deterioran y la fiabilidad disminuye.

Creación de copias de seguridad

Elección de las carpetas a salvaguardar

Lo primero que debemos determinar son las carpetas que queremos salvaguardar en nuestro proceso de copias de seguridad.

En un sistema informático que da servicio a usuarios, la información más importante es precisamente la información de los usuarios, por lo tanto, la carpeta /home es una de las carpetas que debemos salvaguardar.

El objetivo de la realización de copias de seguridad es el reestablecimiento del servicio en el mínimo tiempo posible, por eso es conveniente realizar una copia de seguridad de los archivos de configuración del servidor, los cuales se encuentran en la carpeta /etc.

Otras carpetas de cierta importancia que se pueden salvaguardar son la carpeta /root y la carpeta /var/log. La primera es la carpeta personal del usuario root y la segunda es la carpeta donde se almacenan las incidencias del sistema (archivos de log del sistema). Resumiendo, deberíamos salvaguardar las siguientes carpetas:

  • /home (Carpetas personales de los usuarios)
  • /etc (Archivos de configuración del sistema)
  • /root (Carpeta personal del usuario root)
  • /var/log (Carpeta de logs del sistema)
  • /var/www (Web de la intranet)

Por qué se debe comprimir la copia de seguridad

Cuando realizamos copias de seguridad, los datos deben comprimirse siempre por tres razones:
  • La copia se realiza más rápidamente
  • El tamaño de la copia es menor
  • La compresión garantiza la integridad de los datos
Al quedar los datos reducidos, la cantidad de datos a copiar en el soporte de almacenamiento es mucho menor que lo que ocupan los datos descomprimidos; eso unido al hecho de que los datos estén compactados en un único archivo, hace que el tiempo en trasmitir los datos desde el servidor al soporte, sea menor que si no se comprime.

La integridad de los datos queda garantizada porque el algoritmo de compresión añade un código de redundancia cíclica (CRC) que se consulta a la hora de descomprimir los datos de forma que tenemos seguridad si están correctos o no lo están.

Automatización

El proceso de creación de copias de seguridad debe ser un proceso automático que no requiera la intervención del usuario para realizarse ya que un olvido o dejadez del usuario podría ocasionar que el día que necesitemos la copia de seguridad, no se haya hecho.

Para lanzar la realización automática de copias utilizaremos cron. Cron es un servicio que nos permite lanzar comandos autom�ticamente los días y a las horas que deseemos. Cada usuario tiene su propio cron en el que puede configurar sus tareas programadas mediante el comando 'crontab -e' o con la aplicación gráfica kcron. En nuestro caso, como realizamos copia de seguridad de carpetas que solamente tiene acceso el usuario root, debemos programar la copia mediante el cron de root.

Supongamos que deseamos crear una copia de seguridad total los días 1 de cada mes y una copia de seguridad diferencial el resto de días en la carpeta /tmp (temporal), de las carpetas /home y /etc. El comando que ejecutaremos el día 1 de cada mes será:

// Comando a ejecutar los días 1 de cada mes
tar -jcvf /tmp/CopiaTotal_etc-home_`date +%d%b%y`.tar.bz2 /home /etc

Como puede verse, utilizamos `date %d%b%y` que si hoy es 1 de febrero de 2009 se sustituira por 1feb09. De ésta forma nos sirve el mismo comando para todos los meses.

El comando que ejecutaremos todos los días para realizar la copia diferencial, será:

// Comando a ejecutar los días para hacer copia diferencial respecto al día 1
tar -jcvf /tmp/CopiaDiferencial_etc-home_01`date +%b%y`-`date +%d%b%y`.tar.bz2 /home /etc -N 01`date +%b%y`

Como puede verse, utilizamos 01`date %b%y`-`date %d%b%y` que si hoy es 13 de febrero de 2009 se sustituira por 01feb09-13feb09. También en la opción -N ponemos 01`date +%b%y` para que añada únicamente los archivos más nuevos que el día 1 del mes actual. De ésta forma nos sirve el mismo comando para todos los días.

Si deseamos programar para que automáticamente se ejecute la copia total el día 1 de cada més y la copia diferencial todos los días, debemos añadirlo en el cron del usuario root lo cual se puede realizar ejecutando el comando 'crontab -e' o bien utilizando una aplicación como 'kcron':

Al final nuestro archivo cron para que se ejecuten automáticamente los comandos que realizan las copias de seguridad quedará como el de la figura:

De ésta forma, los días 1 de cada mes a las 02:30 horas se realizará la copia total de las carpetas /etc y /home y todos los días a las 03:30 horas se realizará la copia diferencial respecto de la copia del día 1 del mes.

Las copias de seguridad se realizarán sobre la carpeta /tmp, pero lo recomendable es realizar la copia de seguridad sobre un dispositivo extraible como cintas, cds, dvds o un pendrive. Habrá que sustituir /tmp por la carpeta donde esté montado el dispositivo. Ejemplo, si se trata de un pendrive USB, lo más normal es que el dispositivo esté montado en la carpeta /mnt/sda1 o algo parecido ya que se monta como un dispositivo SCSI, lo que quiere decir que en lugar de poner /tmp en el comando tendríamos que poner /mnt/sda1.

Copias de seguridad en servidores remotos

Lo comentado anteriormente permite realizar copias de seguridad en un disco duro local. Una mejora añadida sería la creación de la copia en una carpeta remota. Al igual que se automatiza la creación de la copia, se podría ejecutar automáticamente un comando que, vía ftp o ssh, vuelque los archivos en un servidor remoto para mayor seguridad. También existen herramientas para realizar directamente copias de seguridad remotas:
  • rsync: permite realizar copias en carpetas remotas
  • unison: permite mantener sincronizadas dos carpetas remotas

Aplicaciones para la realización de copias de seguridad

Existen aplicaciones tanto libres como de pago que facilitan la tarea de realización de copias de seguridad. Entre las aplicaciones libres destacamos:
  • BackupPC: Herramienta para hacer copias de seguridad de PCs de la red
  • Amanda: Herramienta para hacer copias de seguridad de PCs de la red
  • afbackup: Herramienta para hacer copias de seguridad de PCs de la red
  • sbackup: Simple Backup.
  • pybackpack: copias de seguridad locales y remotas vía ssh.

Estas aplicaciones tienen la ventaja de ser muy completas ya que disponen de un sinfín de posibilidades, pero son más complejas de manejar.


Fuentes:


martes, 11 de noviembre de 2008

Servidor FTP en Ubuntu o Debian: Instalar y configurar proftpd

Instalación y configuración de proftpd

Introducción

Proftpd es un servidor de ftp rápido, de fácil instalación y fléxible configuración con un esquema similar a la configuración de apache. Además permite diferentes posibilidades de autentificación: mediante usuarios del sistema unix, mediante base de datos mysql o autentificación mediante servidor LDAP.

Instalación de proftpd

Proftpd se puede instalar automáticamente mediante apt-get:

// Instalación de proftpd
# apt-get install proftpd



Si disponemos de un servidor LDAP, podemos instalar la versión apta para ldap 'proftpd-ldap'.

Configuración de proftpd

Al instalar el paquete proftpd-ldap se iniciará el asistente de configuración de proftpd. Si más adelante deseamos lanzar de nuevo el asistente, debemos ejecutar:



// Lanzar el asistente de configuración de proftpd
# dpkg-reconfigure proftpd


Este asistente únicamente nos hace una pregunta que es si deseamos ejecutar el servidor desde inetd (solo se carga en memoria cuando existan peticiones) o como un servicio independiente (permanentemente en memoria). El funcionamiento como servicio independiente es más eficiente.

Para que proftpd arranque automáticamente al iniciar el servidor, debemos crear los enlaces simbólicos correspondientes:

 

//Si estamos en el directorio /etc/init.d simplemente:

update-rc.d proftpd defaults

El archivo de configuración de proftpd es el archivo:

// Archivo de configuración de proftpd
/etc/proftpd.conf

No es necesario modificar ningún parámetro del archivo /etc/proftpd.conf para un uso normal del servidor ftp en el centro educativo.

Si hemos instalado proftpd-ldap porque en la red disponemos de un servidor LDAP con las cuentas de usuarios de nuestro sistema, para que proftpd autentifique a los usuarios contra nuestro servidor LDAP es necesario configurar tres parámetros: quien es el servidor LDAP (LDAPServer), cual es el usuario administrador y la contraseña de LDAP (LDAPDNInfo) y qué unidad organizativa tiene la información de los usuarios (LDAPDoAuth). También configuraremos como máscara de creación de archivos y carpetas la máscara 002 porque utilizamos grupos privados de usuario:

// Parámetros destacables a configurar 
# Para que autentifique contra nuestro servidor LDAP
AuthPAM on
LDAPServer localhost
LDAPDNInfo cn=admin,dc=ieslapaloma,dc=com ldapadmin // ldapadmin = contraseña
LDAPDoAuth on "ou=users,dc=ieslapaloma,dc=com"

# Permisos recomendados para UPG (grupos privados de usuario)
Umask 002 002

Conexión al servidor de FTP

Para conectarnos al servidor utilizaremos cualquier cliente de ftp. Si deseamos probarlo desde la consola, tan sólo debemos emplear:



# ftp dirección_ip puerto


y nos preguntará el nombre y la contraseña del usuario que vayamos a emplear. Para obtener cualquier fichero tan sólo emplearemos

#get nombre_del_fichero


Podemos ver un ejemplo de su empleo en la siguiente imagen:



 Fuente:
Página del isftic :
Curso Redes de Área Local. Aplicaciones y servicios en Linux. del isftic: http://www.isftic.mepsyd.es/formacion/materiales/85/cd/REDES_LINUX/indice.htm
    

lunes, 10 de noviembre de 2008

Instalar y configurar phpMyAdmin en Ubuntu o Debian

Instalación y configuracion de phpmyadmin

Introducción.

Phpmyadmin es una excelente herramienta de administración de mysql vía web. Para poder utilizar phpmyadmin se requiere disponer de un servidor web con soporte php.

La herramienta permite que cualquier usuario de la base de datos que disponga de algún permiso, acceda y haga uso de dichos permisos. Identificándose con el usuario administrador de la base de datos (root) o con cualquier otro usuario que disponga de todos los privilegios, estarán habilitadas todas las características de la herramienta.

Instalación de phpmyadmin

La instalación de phpmyadmin se puede realizar de forma automática con apt-get, pero se trata de un paquete que no se encuentra en el 'repositorio principal' (main) de ubuntu, sino que se encuentra en el 'repositorio universo' (universe). Para que apt-get pueda instalar paquetes del repositorio universo, es necesario editar el archivo /etc/apt/sources.list y quitar la almohadilla de las líneas (o bien habilitando los repositorios multiverse desde la opción Configuración de Repositorios de Synaptic):
// Quitar almohadilla delante de las líneas, para descomentarlas
deb http://es.archive.ubuntu.com/ubuntu/ drapper universe deb-src http://es.archive.ubuntu.com/ubuntu/ drapper universe
Posteriormente, tendremos que actualizar en nuestro PC, el contenido de los repositorios:

// Actualizar contenido de los repositorios
# apt-get update


Ahora sí, podremos instalar el paquete 'phpmyadmin' mediante el comando:

// Instalación de phpmyadmin
# apt-get install phpmyadmin


El programa de instalación crea un enlace simbólico en el DocumentRoot del servidor web para que la aplicación pueda ser accesible desde la url: http://ip-del-servidor-web/phpmyadmin/index.php. Si no se viera la aplicación en dicha url, quizás sea por algún aspecto de la configuración de apache. En tal caso, lo más sencillo sería mover la carpeta de phpmyadmin directamente dentro del DocumentRoot del servidor, mediante el comando:

// Colocar phpmyadmin en el servidor web y asignar propietario www
# mv /usr/share/phpmyadmin /var/www/ (en nuestro caso)
# chown -R www /var/www/phpmyadmin


De ésta forma, es seguro que accediendo a http://ip-del-servidor-web/phpmyadmin/index.php nos aparecerá la página de autentificación de phpmyadmin:

Página de autentificación de phpmyadmin

Una vez que nos identifiquemos con un usuario y contraseña válidos, accederemos a la página principal de phpmyadmin desde la que podremos crear una nueva base de datos o realizar consultas y modificaciones sobre bases de datos ya existentes:

Página principal de phpmyadmin

Configuración de phpmyadmin

El archivo de configuración de phpmyadmin es el archivo:

// Archivo de configuración de phpmyadmin
/etc/phpmyadmin/config.inc.php

En dicho archivo de configuración hay que establecer los parámetros que permitirán a phpmyadmin conectar con mysql, que son:

host

En este parámetro habrá que indicar la IP del servidor mysql. Si el servidor web y el servidor mysql son la misma máquina, se deberá poner 'localhost' ó 127.0.0.1. En el caso de que sean máquinas diferentes, se deberá poner la IP del servidor mysql.

port

Aquí se especifica el puerto de conexión al servidor mysql. El puerto por defecto por el que sirve datos el servidor mysql es el 3306. Si en la configuración de mysql (archivo /etc/mysql/my.cnf) no se ha cambiado, no es necesario especificarlo ya que se usará el puerto 3306 por defecto.

auth_type

Para que phpmyadmin pueda acceder a mysql, es necesario autentificarse. Se admiten tres formas de autentificación:
  • config: permite que el nombre de usuario y la contraseña se especifiquen en el archivo config.inc.php
  • http: el usuario deberá introducir nombre y contraseña para acceder a la ruta web
  • cookie: el usuario deberá introducir nombre y contraseña para acceder a la aplicación

user y password

En el caso de que hayamos elegido tipo de autentificación 'config', será necesario proporcionar el nombre de usuario y la contraseña con el que phpmyadmin accederá a mysql. En tal caso, la línea del password puede quedar comentada.
// Configuración por defecto en config.inc.php
Corresponden a las siguentes líneas en el archivo config.inc.php:
$cfg['Servers'][$i]['host'] = 'localhost'; // MySQL hostname or IP
$cfg['Servers'][$i]['port'] = ''; // MySQL port-blank default port
$cfg['Servers'][$i]['auth_type'] = 'cookie'; // Authentication method
$cfg['Servers'][$i]['user'] = 'root'; // MySQL user
$cfg['Servers'][$i]['password'] = ''; // MySQL pass (only 'config')


Fuente:
Página del isftic :
Curso Redes de Área Local. Aplicaciones y servicios en Linux. del isftic: http://www.isftic.mepsyd.es/formacion/materiales/85/cd/REDES_LINUX/indice.htm



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.

Administración del SGBD mysql vía web

La herramienta de administración de mysql vía web es phpmyadmin. Para más información consultar el apartado Instalacion_y_configuracion_de_PHPMyAdmin

Fuente:
Página del isftic :
Curso Redes de Área Local. Aplicaciones y servicios en Linux. del isftic: http://www.isftic.mepsyd.es/formacion/materiales/85/cd/REDES_LINUX/indice.htm

Instalar y Configurar PHP en Ubuntu o Debian


Introducción

PHP es, junto con mysql, el complemento ideal del servidor web apache ya que dota al servidor de un lenguaje script de ejecución en el servidor lo que facilita la creación de aplicaciones web y sitios web dinámicos.

Instalación de PHP

Para instalar PHP en nuestro servidor podemos utilizar apt-get. El paquete a instalar depende de la versión que deseemos instalar y la versión de apache. Lo normal es que utilicemos la versión 2 de apache y que instalemos la versión 5 de php. En tal caso deberíamos instalar libapache2-mod-php5:

// Instalación de php5 para apache 2
# apt-get install libapache2-mod-php5

Al instalar libapache2-mod-php5 mediante apt-get, automáticamente se configura para integrarse perfectamente en apache, creando los archivos necesarios en la carpeta de módulos disponibles de apache (/etc/apache2/mods-available) y creando los enlaces necesarios para habilitarlos en la carpeta de módulos habilitados de apache (/etc/apache2/mods-enabled)

Configuración de PHP

El archivo de configuración de php4 es el archivo:
// Archivo de configuración de php4
/etc/php5/apache2/php.ini

Los parámetros más destacables a configurar son:

  • Safe Mode = Off (Modo Seguro. Si el Modo seguro está desactivado, se habilitan todas las funciones del php. Para un uso educativo es mejor ser funcional y no activar el modo seguro. Si el Modo seguro está activado, se deshabilitan todas las funciones del php consideradas peligrosas. Para servicios de hosting se recomienda activar el modo seguro.)
  • Display errors = On (Mostrar Errores. Muestra los errores en las mismas páginas, cuando les haya. Cuando hay errores en los scritps, es más fácil encontrarlos si se muestran en las páginas)

Probando PHP

Una vez instalado y configurado, antes de probar debemos reiniciar el servidor web apache:

// Reiniciando apache
/etc/init.d/apache restart

Ahora crearemos una página php que utilice la función phpinfo que además de comprobar que apache y php están funcionando, nos mostrará una información de la versión. Crearemos el siguiente archivo:

// Probando PHP. Crear archivo /var/www/phpinfo.php - permisos 644

<HTML>

<h1>Probando PHP</h1>

<?

phpinfo();

?>

</HTML>



Ahora tan solo necesitamos arrancar el navegador e ir a la URL: http://ip-del-servidor/phpinfo.php. Si nos aparece la información de la versión de php significa que está correctamente instalado.


Fuente:
Página del isftic :
Curso Redes de Área Local. Aplicaciones y servicios en Linux. del isftic: http://www.isftic.mepsyd.es/formacion/materiales/85/cd/REDES_LINUX/indice.htm