viernes, 13 de noviembre de 2009

[howto] Instalando un servidor FTP en Ubuntu

Bueno con este mini howto les pretendo enseñar como instalar su propio servidor ftp (en este caso el proFTPd).

1) Creamos el usuario

Código:
~$ su
Ponemos la contraseña del root
# useradd nombre_de_usuario_que_elijamos
# passwd nombre_de_usuario_que_elegimos

2) Creamos el directorio donde pondremos los archivos que luego serán vistos desde el navegador o desde cualquier otro programa

Código:
# mkdir /home/un_directorio

3) Le damos los permisos correspondientes (en este caso de lectura, escritura y ejecucion)

Código:
# chmod 777 /home/un_directorio

4) Instalamos el daemon

Código:
# apt-get install proftpd

En esta parte puede que nos pregunte si queremos configurar nuestro servidor FTP como inetd o como independiente. Si utilizamos inetd el equipo va a iniciar un proceso nuevo por cada pedido de ftp que llegue. Pero si se ejecuta en forma independiente, el proceso ya va a estar inicializado entonces no hay necesidad ejecutar un nuevo programa.

Pero nosotros elegimos inetd.

5) Configurando proFTPd

Bueno para esto tenemos que editar el archivo proftpd.conf que se encuentra en el directorio /etc/proftpd.conf.

Acá les dejo el link de la

página oficial

para que puedan ver algunos ejemplos de configuración y elegir el que más les convenga

6) Reiniciamos el servicio

Código:
# /etc/init.d/proftpd restart

7) Y por último probamos si funciona, asi que abrimos nuestro navegador y tecleamos

ftp://usuario_que_creamos:contraseña@direccion_ip

Particionado en modo Logical Volume Manager (LVM)

LVM es una implementación de un administrador de volúmenes lógicos para el kernel Linux. Se escribió originalmente en 1998 por Heinz Mauelshagen, que se basó en el administrador de volúmenes de Veritas usado en sistemas HP-UX.

LVM incluye muchas de las características que se esperan de un administrador de volúmenes, incluyendo:

  • Redimensionado de grupos lógicos
  • Redimensionado de volúmenes lógicos
  • Instantáneas de sólo lectura (LVM2 ofrece lectura y escritura)
  • RAID0 de volúmenes lógicos

LVM no implementa RAID1 o RAID5, por lo que se recomienda usar software específico de RAID para estas operaciones, teniendo las LV por encima del RAID

En la imagen de la derecha podemos observar cómo trabaja LVM. Los volúmenes lógicos agrupan particiones físicas de disco, y éstos a su vez, aunque no está representado en la figura, se engloban en un grupo lógico. De esta forma, /home se compone de hda3, hda4 y hdb3, y a su vez, /usr engloba a hda1, hda2, hdb1 y hdb2.

Contenido

[ocultar]

Introducción

  • La gestión de volúmenes lógicos proporciona una vista de alto nivel sobre el almacenamiento en un ordenador, en vez de la tradicional vista de discos y particiones.
  • Los volúmenes de almacenamiento bajo el control de LVM pueden ser redimensionados y movidos a voluntad, aunque esto quizá necesite actualizar las herramientas del sistema.
  • LVM también permite la administración en grupos definidos por el usuario, permitiendo al administrador del sistema tratar con volúmenes llamados, por ejemplo, "ventas" o "desarrollo", en vez de nombres de dispositivos físicos, como "sda" o "sdb"

Ventajas de usar LVM en un sistema pequeño

  • Una de las decisiones que afronta un usuario instalando GNU/Linux es cómo particionar el disco duro. La necesidad de estimar cuanto espacio será necesario para el sistema, para los temporales o para los datos personales, puede convertirse en algo problemático, por lo que muchos usuarios optan por crear una partición que ocupe todo el disco y allí introducir los datos. Aún habiendo estimado correctamente cuanto espacio se necesita para /home, /usr, /tmp, o cualquier otro directorio importante, es bastante común que nos quedemos sin espacio en estas particiones, cuando tenemos espacio de sobra en alguna otra.
  • Con el uso de un administrador de volúmenes lógicos, el disco completo puede ser asignado a un único grupo lógico y definir distintos volúmenes lógicos para almacenar /home u otros directorios. En el caso que nos quedemos sin espacio, por ejemplo, en /home, y tenemos espacio en /opt, podríamos redimensionar /home y /opt y usar el espacio que le hemos quitado a /opt y añadírselo a /home. Hay que tener en cuenta, que para realizar esto, nuestro sistema de ficheros debe soportar el redimensionado por arriba y por abajo, como ReiserFS.
  • Otra alternativa sería dejar una cierta cantidad de espacio del disco sin asignar y cuando fuera necesario, expandir el volumen.

Ventajas de usar LVM en un sistema grande

  • Administrar un sistema con muchos discos es un trabajo que consume tiempo, y se hace particularmente complejo si el sistema contiene discos de distintos tamaños. Balancear los requerimientos de almacenamiento de distintos usuarios (a menudo conflictivos) puede ser una tarea muy laboriosa y compleja.
  • Los grupos de usuarios (llamémosles por ejemplo administración, desarrollo, etc.) pueden tener sus volúmenes lógicos y éstos pueden crecer lo que sea necesario, y el administrador puede realizar las operaciones oportunas sobre dichos volúmenes.

Cuando un nuevo disco se añade al sistema, no es necesario mover los datos de los usuarios. Simplemente se añade el nuevo disco al grupo lógico correspondiente y se expanden los volúmenes lógicos todo lo que se considere adecuado. También se pueden migrar los datos de discos antiguos a otros nuevos, de forma totalmente transparente al usuario.

Anatomía de un LVM

  • Un LVM se descompone en tres partes:
    • Volúmenes físicos (PV): son los discos duros, particiones o cualquier otra "cosa" que parezca un disco duro (raid's)
    • Volúmenes lógicos (LV): es el equivalente a una partición en un sistema tradicional. El LV es visible como un dispositivo estándar de bloques, por lo que puede contener un sistema de achivos (por ejemplo /home)
    • Grupos de volúmenes (VG): es la parte superior de la LVM. Es la "caja" en la que tenemos nuestros volúmenes lógicos (LV) y nuestros volúmenes físicos (PV). Se puede ver como una unidad administrativa en la que se engloban nuestros recursos. Hay que hacer notar que mientras un PV no se añada al VG, no podemos comenzar a usarlo.
  • A su vez, un PV se divide en chunks de datos, que se conocen como PE (physical extents), que son del mismo tamaño que los PE del VG. Además, un LV se divide también en LE (logical extents), cuyo tamaño es el mismo para todos los LV del VG.
    Por ejemplo, teniendo como referencia la imagen del comienzo del artículo, supongamos que tenemos un VG llamado CASA, con 4MB de PE, al que queremos añadir un LV para /tmp/. Añadimos dos particiones de disco, /dev/sda4 y /dev/sdb3, que se llamarán PV1 y PV2 (se las puede renombrar a discreción del usuario). Los PV's pueden ser de distinto tamaño y por lo tanto, tendrán un número distinto de PE, por lo que supongamos que tenemos para PV1 99 PE's y para PV2 248 PE's. Ahora, podemos crear el LV que necesitamos, que puede ser de cualquier tamaño entre 1 y 347 (99+248) PE. De esta forma se crea una tabla que relaciona PE's y LE's y si, por ejemplo, escribimos 4 MB en el LE número 1 del LV, se corresponderán con el PE 51 de la PV1.
  • La tabla que relaciona PE's y LE's, se llama tabla de mapeo, y la correspondencia puede ser de dos tipos:
    • Directo: se asigna un rango de PE's a otro rango de LE's en orden. Por ejemplo, las LE's del número 1 al 99 se mapean sobre las PE's del 100 al 347 de PV2.
    • Entrelazado: las LE's se entrelazan sobre las PE's de los volúmenes físicos, por ejemplo:
Destino Origen
Primer chunk de la LE1 Primer chunk de la PV1
Segundo chunk de la LE1 Primer chunk de la PV2
Tercer chunk de la LE1 Segundo chunk de la PV1
... ...

Instantáneas (snapshots)

  • Las instantáneas (snapshots) permiten al administrador crear un nuevo dispositivo que será una copia exacta del LV, congelada en algún punto del tiempo. Normalmente esto se realiza de forma automática, para no alterar el funcionamiento normal del sistema. Cuando la instantánea ha terminado, el administrador puede quitar el dispositivo sin mayor complicación. Además, no es necesario que los datos en el LV se encuentren en un estado consistente, ya que muchos sistemas de ficheros en el kernel 2.6 lo realizan de forma automática.
    Una diferencia importante entre la versión 1 de LVM (LVM1 a partir de ahora) y la versión 2 (LVM2) es que en la primera, los snapshots eran de sólo lectura, mientras que en LVM2 son de lectura y escritura. ¿Cuál es la diferencia? En LVM1, se crea lo que se llama una tabla de excepciones, que se usa para mantener una lista de qué bloques en disco han cambiado. Si un bloque va a ser modificado en el origen, primero se copia en la instantánea, se marca como copiado en la tabla de excepciones y luego los nuevos datos se copian al volumen original. En LVM2, las instantáneas funcionan como en LVM1, pero con la característica de que si los datos se escriben en el snapshot (una vez montado), ese bloque se marca como usado en la tabla de excepciones y no se copia al volumen original. Esta característica es muy útil debido a que podemos crear nuestra instantánea, montarla y probar un programa o un nuevo navegador de ficheros. Si ocurre algo desastroso, la desmontamos, la borramos y volvemos a colocar el volumen original.

Ejemplos

  • Ya que podemos crear un PV sobre un dispositivo cualquiera de bloques ya bien sean discos usb, raids, discos internos, cintas, etc., en esta serie de ejemplos nos centraremos en dispositivos del tipo /dev/sdaX, y bajo la versión 2 de LVM.
    No entraremos en la sintaxis de los comandos, ya que la ayuda que proporciona el man es muy extensa y completa.

Inicialización del dispositivo lógico

  • Primero borramos la tabla de particiones e inicializamos las particiones de disco.

# dd if=/dev/zero of=/dev/sda bs=1k count=1
# dd if=/dev/zero of=/dev/sdb bs=1k count=1
# pvcreate /dev/sda
Physical volume "/dev/sda" successfully created
# pvcreate /dev/sdb
Physical volume "/dev/sdb" successfully created

En este paso, tenemos creados dos volúmenes físicos (PVs).

Creación de la VG

  • Creamos el grupo lógico (VG) de nombre vg_wikipedia que contendrá las dos particiones que hemos creado anteriormente:

# vgcreate vg_wikipedia /dev/sda /dev/sdb
Volume group "vg_wikipedia" successfully created

Creación del LV

  • Ahora crearemos un volumen lógico que llamaremos lv1_wikipedia:

# lvcreate -L1G -n lv1_wikipedia vg_wikipedia
lvcreate -- doing automatic backup of "vg_wikipedia"
lvcreate -- logical volume "/dev/vg_wikipedia/lv1_wikipedia" successfully created

Creación del sistema de ficheros

  • En este apartado, debemos crear el sistema de ficheros sobre el LV que acabamos de definir. En este ejemplo, crearemos un sistema de ficheros JFS:
       # mkfs.jfs /dev/vg_wikipedia/lv1_wikipedia

       # mount -t jfs  /dev/vg_wikipedia/lv1_wikipedia  /mnt/wikipedia

  • Recuerde agregar la entrada en /etc/fstab, de modo que al reiniciar, /mnt/wikipedia vuelva a estar disponible.

Implementación de Cuotas de Internet.

Este tuto les explicará de forma general como aplicar cuotas de navegación excluyendo sitios, para ello debe contar con los siguientes softwares en su sistema.
  • Debian/GNU Linux 5.0 Lenny.
  • Squid.
  • apache (for CGI part)
  • perl
  • perl-GD
  • gd
  • cron

Descargue el squish

Nos movemos a la carpeta del squish y hacemos lo siguiente:

  • make install

Luego de esto reiniciamos apache y squid, ahora squish estará en las siguientes rutas:

  • /etc/squid/squish.conf #donde se establecen las cuotas
  • /var/lib/squish/userdb.stor #donde esta la base de datos
  • /usr/local/squish #donde estan los demás ficheros

Por último creamos la tarea para que se ejecute cada 5 minutos:

crontab -e

0,5,10,15,20,25,30,35,40,45,50,55 * * * * /usr/local/squish/squish.cron.sh

miércoles, 11 de marzo de 2009

Hyperestraier como indexador y motor de búsqueda

Hyperestraier como indexador y motor de búsqueda


Los pasos para montarlo en debian lenny son los siguientes:

  1. apt-get update
  2. apt-get install hyperestraier

    Primero, creamos un directorio donde guardar los indices, y nos movemos a él:
  3. mkdir /var/www/hyperestraier
  4. cd /var/www/hyperestraier

    Ahora, ejecutamos la recogida de información, donde mi_indice es el nombre del indice elegido, y /home/doc el camino a la carpeta donde se encuentra lo que deseamos indexar:
  5. estcmd gather -sd mi_indice /home/doc

    Después, debemos situar los archivos necesarios para ejecutar el cgi:
  6. cd /usr/lib/cgi-bin
  7. cp /usr/share/hyperestraier/estseek.*
  8. cp /usr/lib/estraier/estseek.cgi

    Luego, con su editor de textos favorito, edite el archivo estseek.conf y modifique las siguientes líneas (puede ignorar lo demás):
  9. idexname:
  10. replace:

    debe quedar así
  11. indexname: /var/www/hyperestraier/mi_indice
  12. replace: file:///home/doc/ {{|}} http://tudominio.com

    ¡Hora de probar! ¡Vaya a http://tudominio.com/cgi-bin/estseek.cgi y busque su palabra favorita!
listo a disfrutar

martes, 10 de marzo de 2009

Compartiendo archivos con NFS en Lenny

Compartiendo archivos con NFS en Lenny

Los pasos para montarlo en debian lenny son los siguientes:
  1. apt-get update
  2. apt-get install nfs-user-server
  3. nano /etc/exports
  4. dentro poner el rango de direcciones a permitir el acceso, por ejemplo:
    /srv/share 192.168.0.0/255.255.0.0(rw)
    de esta forma permitimos el acceso a la clase b completa
  5. /etc/init.d/nfs-user-server restart
  6. en el cliente ejecutar lo siguiente:
    mount 192.168.1.1:/srv/share /mnt/share
    /srv/share es el directorio que compartimos en el nfs
    /mnt/share es una carpeta que creamos en el cliente para montar el share remoto
listo a disfrutar de la compartición de directorios bajo nfs

Bienvenidos a mi blog

Bienvenidos a mi blog

El objetivo de este es para compartir con toda la comunidad de SoftwareLibre conocimientos, muy buenos tutos.