viernes, 5 de septiembre de 2008

LAMP

Qué es LAMP? LAMP es un acrónimo para referirse al conjunto de aplicaciones de software necesarios para alcanzar una solución completa a la hora de configurar sitios web versátiles y potentes.
Esto se consigue mediante la unión de las siguientes tecnologías:

L inux, el sistema operativo;
A pache, el servidor web;
M ySQL, el gestor de bases de datos;
P erl, PHP, o Python, lenguajes de programación.

Aunque creados por separado, cada una de las tecnologías que lo forman disponen de una serie de características comunes que pueden funcionar en una amplia gama de hardware, con requerimientos relativamente pequeños sin perder estabilidad. Esto ha convertido a LAMP en la alternativa más adecuada para pequeñas y medianas empresas. Además posee una gran ventaja, todos los elementos que forman LAMP son software libre!!

Instalación de Apache2

Como ya lo dijimos vamos a trabajar bajo un sistema GNU/Linux, en mi caso, Debian 4.0.
Abrimos una consola y procedemos a instalar el servidor web Apache2
#apt-get install apache2
para verificar la instalación de Apache2 abrimos un navegador y tipeamos http://localhost/
Debería aparecer el mensaje “It works”.

Instalación de PHP
#apt-get install php5 libapache2-mod-php5 php5-gd
creamos un archivo index.php en /var/www/
#touch /var/www/index.php
Lo editamos, agregando un típico phpinfo.php
# echo "?php phpinfo(); ?> /var/www/index.php

Luego reiniciamos el servidor
# /etc/init.d/apache2 restart
Y por ultimo comprobamos la instalación abriendo el navegador y tipeando
http://localhost/index.php
Deberíamos ver una tabla con la información de todos los aspectos de PHP5, algo como así:


Instalación MySQL
#apt-get install mysql-server php5-mysql libapache2-mod-auth-mysql

Una vez terminada la descarga de los paquetes, nos pide configurar la contraseña para el usuario root y Listo!!
Es recomendable instalar el administrador de MySQL phpmyadmin. Esto nos brinda un entorno mas amigable para crear y administrar nuestras bases de datos.

Instalar phpmyadmin
#apt-get install phpmyadmin
Abrimos nuevamente el navegador y ponemos
http://localhost/phpmyadmin,
nos aparece una ventana como la que se muestra a continuación, donde debemos poner el nombre de usuario (root) y la contraseña de mysql. Así:


Esta información es la misma que se pidió en el paso de instalación de mysql.
Si los datos suministrados fueron correctos podremos entrar y veremos algo así:


Muy bien!!
Aquí tenemos nuestro servidor LAMP, listo para montarle cualquier Aplicacion WEB:
- Sistema de compras Online
- Portal web
- Software de inventario de Hardware y Software
- Sistema de Tickets
- Sistema Colaborativo (groupware, calendario, agenda, IM, etc)

Disfrútelo!! :D

APLICACIONES CMS

A continuación realizaremos la instalación y configuracion de algunas aplicaciones CMS:

Instalación de Joomla en Debian.

Antes de empezar con la instalación debemos saber qué es Joomla?
Joomla es un sistema gestor de contenidos dinámicos (CMS o Content Management System) de código abierto construido con PHP bajo una licencia GPL. Permite crear sitios web de alta interactividad, profesionalidad y eficiencia.
Ahora sí, a instalar y configurar Joomal.

Que debemos tener instalado?
Como toda aplicación LAMP, debemos tener instalado:
- Intérprete PHP- Servidor HTTP Apache2- Mysql

Una vez tengamos esto pasamos a descargar Joomla!
#wget "http://joomlacode.org/gf/download/frsrelease/8243/30100/Joomla_1.5.6-Spanish-pack_completo.tar.gz"
Ahora creamos la base de datos que manejará Joomla, para esto abrimos el phpmyadmin o la creamos por consola de la siguiente manera:
# mysqladmin password paujil

Paujil es la contraseña del administrador de las BD
# mysqladmin -u root -p create joomla
Joomla es el nombre de nuestra base de datos
#mysql -u root -p mysql
mysql> grant all on joomla.* to joomla@localhost identified by contraseñaparajoomla;
mysql> quit
Ahora vamos a instalar joomla. Yo recomiendo instalarlo en /var/www/ , creamos un directorio llamado Joomla en la ruta señalada anteriormente:
#mkdir Joomla /var/www
Le damos permisos a nuestro directorio Joomla.
#chmod -R 755 /var/www/Joomla/
Movemos el archivo .tar.gz que descargamos, que en este caso se encuentra en la carpeta Descarga ubicado en el escritorio.
#mv /home/thiney/Desktop/Descargas/Joomla_1.5.6-Spanish-pack_completo.tar.gz. /var/www/Joomla/
Entramos al directorio y lo descomprimimos:
#cd Joomla
#tar zxfv Joomla_1.5.6-Spanish-pack_completo.tar.gz.

Por último, abrimos un navegador y tecleamos la siguiente dirección:

http://localhost/Joomla/
El navegador nos guiará en toda este proceso de instalación que consta de una pre-instalación, la aceptación de la licencia y cuatro pasos de configuración, que se describen con detalle a continuación.

PRE-INSTALACIÓN: Este paso es muy importante ya que comprueba si los requisitos están instalados y si podemos continuar. Recuerda que todo debe aparecer en verde para poder continuar. Si tienes problemas o no puedes ver esta página asegúrese de disponer de un servidor web Apache, MySQL y PHP.
También verifique que los módulos de MySQL, Zlib y XML se encuentran activados en el PHP y por ultimo verifique que el archivo configuration.php se encuentra en el directorio de Joomla.

Si no tienes problemas con este paso, damos siguiente.
LICENCIA: En este paso, debemos “leer” la licencia y aceptarla.
PASO 1: Configuración de la Base de Datos MySQL.
Como su nombre lo ínidca debemos rellenar los datos de la base de datos que creamos llama joomla.
Nombre del servidor: localhost
Nombre del usuario MySQL: joomla
Contraseña MySQL: contraseñaparajoomla
Nombre de la base de datos MySQL: joomla.

Las demás opciones y datos las dejamos como están y pasamos al siguiente paso.
PASO 2: Escribe el nombre del sitio Web Joomla:
Aquí nos preguntan por el nombre de nuestro sitio web. Por ejemplo: "Joomla THINEY”. Damos siguiente.
PASO 3: Confirmaciones.
Al llegar a este paso, se nos pregunta el e-mail y la contraseña del administrador. Como lo estamos haciendo de manera local, las casillas Path y URL las dejamos tal cual. Rellenamos los datos requeridos y concluimos la instalación pasando al siguiente paso.
PASO 4: Listo!!
La página final confirma el estado de la instalación, el nombre de usuario y la contraseña del Administrador. Por motivos de seguridad se nos pedirá que borre la carpeta de instalación y luego actualizar la página, de lo contrario no se podrá avanzar.

En la anterior imagen podemos apreciar el portal de acceso como Adminsitrador.

Una pequeña página elaborada con afan. :D


WordPress

WordPress es un sistema de gestión de contenidos enfocado a la creación de blogs. Desarrollado en PHP y MySQL, bajo licencia GPL, tiene como fundador a Matt Mullenweg. WordPress fue creado a partir del desaparecido b2/cafelog y se ha convertido junto a Movable Typeen el CMS más popular de la blogosfera. Las causas de su enorme crecimiento son, entre otras, su licencia, su facilidad de uso y sus características como gestor de contenidos.

Otro motivo a considerar sobre su éxito y extensión, es la enorme comunidad de desarrolladores y diseñadores, que se encargan de desarrollarlo en general o crear plugins y themes para la comunidad (que ascendían a 2524 y 1320 respectivamente en julio de 2008). (Wikipedia)

WordPress es un sistema de gestión de contenidos enfocado a la creación de blogs. Desarrollado en PHP y MySQL, bajo licencia GPL, tiene como fundador a Matt Mullenweg. WordPress fue creado a partir del desaparecido b2/cafelog y se ha convertido junto a Movable Typeen el CMS más popular de la blogosfera. Las causas de su enorme crecimiento son, entre otras, su licencia, su facilidad de uso y sus características como gestor de contenidos.

Otro motivo a considerar sobre su éxito y extensión, es la enorme comunidad de desarrolladores y diseñadores, que se encargan de desarrollarlo en general o crear plugins y themes para la comunidad (que ascendían a 2524 y 1320 respectivamente en julio de 2008). (Wikipedia)

Antes de empezar con la configuración e instalación de Wordpress necesitamos:

Tener instalada una base de datos. En mi caso MySQL
Tener soporte para PHP.
Además instalar phpmyadmin que facilita la administración de las bases de datos


Lo primero que debemos hacer es descargarnos Wordpress de la pagina oficial.
# wget http://wordpress.org/latest.tar.gz
lo desempaquetamos y descomprimimos
# tar xvzf latest.tar.gz
eliminamos el archivo que descargamos (tar.gz)
# rm latest.tar.gz
creamos la base de datos para wordpress en mysql. Pero antes debemos loguearnos
mysql -u ''root'' -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1731235
Server version: 5.0.32-Debian_7etch1-log Debian etch distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
Creando la base de datos: Nos pide el nombre de la base de datos, la llamaremos wordpress
mysql> CREATE DATABASE ”wordpress”;
Query OK, 1 row affected (0.00 sec)
mysql> GRANT ALL PRIVILEGES ON *.* TO ‘wordpress’@'localhost’
-> IDENTIFIED BY ‘contraseña’ WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)
mysql> EXIT
Bye

Listo!! una vez tengamos la base de datos
Creamos y editamos el archivo wp-config.php, que se encuentra en la carpeta que descomprimimos, y que Yo en lo personal la puse en /var/www/ para mayor comodidad
#cd /var/www/wordpress
#cp wp-config-sample.php wp-config.php
Editamos este archivo
#nano wp-config.php
cambiamos tres lineas,

// ** MySQL settings ** //

define('DB_NAME', 'wordpress'); // nombre de la base de datos
define('DB_USER', 'root'); // Su login en MySQL
define('DB_PASSWORD', 'paujil'); // ...y su contraseña en MySQL
Todo bien hasta aqui? Pues ahora ya podemos dirigirnos a nuestra URL (hostlocal) Así:
http://localhost/wordpress/wp-admin/install.php

Rellenamos los siguientes campos con nuestros datos como muestra la imagen. Aquí debemos poner el nombre de nuestro blog y abajo una dirección de correo. Por último damos clic en instalar.


A continuación nos brindará un usuario y una contraseña.



Y por último nos logueamos con los datos suministrados.


Y ya! eso es todo.. :D. Hasta la próxima!

jueves, 4 de septiembre de 2008

COMPARTIR RECURSOS PARA REMOTE DESKTOP CONNECTION

Los Servicios de Terminal (o Terminal Services) son un componente de los sistemas operativos windows que permite a un usuario acceder a las aplicaciones y datos almacenados en otro ordenador mediante un acceso por red. Basado en el protocolo de escritorio remoto (Remote Desktop Protocol (RDP)) aparece por primera vez en Windows NT 4.0 (Terminal Server Edition).

En primer lugar entendamos que en el momento en que accedo a un servidor vía TS estoy estableciendo una conexión de red entre los mismos. A diferencia de las redes locales, donde participan ciertos protocolos y datos como la dirección IP y el nombre del equipo, en TS las cosas, si bien funcionan básicamente de la misma manera, no son tan así. Al conectarnos nuestro equipo recibirá el nombre interno de tsclient y los recursos estarán asociados a este nombre.

Ahora bien: cómo configuro mi acceso para ver mis impresoras y mis discos (principalmente, porque puedo configurar para que vea también mis puertos COM).
Vamos a Inicio, Todos los programas, Accesorios y por último Conexión a Escritorio Remotos.

Vamos a Opciones
Luego vamos a la pestaña de Recursos Locales y damos clic en Más.


Antes de proseguir vamos a Mi PC para verificar las unidades que vamos a poner.
En mi caso personal quiero compartir la unidad F, que es la memoria USB y la unidad E, que es la unidad de DVD-RW.
Ahora continuamos con Conexión a escritorio remotos, seleccionando las unidades que ya hemos validado en MI PC, que en este caso es F y E. Por último damos OK .
Ya en el escritorio remoto del Server 2003 vamos a verificar las unidades que hemos compartido, estas se verán en Mi PC, tal y como lo muestra la siguiente imágen.
Si hizo todo, paso a paso y no puedes compartir los recursos es porque el administrador del sistema no te otorgó permisos para realizar esta acción por lo tanto no podrá utilizar agregarlos. Si usted es el administrador del sistema y desea realizar esta acción. Entonces deberá ingresar a Inicio, Herramientas Administrativas y Configuración de Servicios de Terminal Server.
Cuando se abre la ventana de configuración, encontrará un recurso a la derecha que se llama RDP-TCP que es el controlador (el escucha) de las peticiones Terminal Server. Presione botón derecho sobre este recurso y seleccione Propiedades.
En la solapa Configuración del Cliente encontrará varios cuadros de selección, en la base de la ventana, que indican que recursos desea eliminar (o no habilitar). Probablemente encontrarás muchas casillas seleccionadas, es decir se encuentran deshabilitadas. Habilite las que necesite deseleccionandolas.

Habilitando Recursos:
Los recursos que estén seleccionados no estarán disponibles para el usuario remoto.

Notas:
1. Puede ocurrir que no tenga disponible la opción para habilitar discos. Esto es porque no tiene configurado un servidor Terminal para acceso a usuarios sino para administración remota.

2. Puede ocurrir que ciertas impresoras USB no funcionen en el Terminal. Existen soluciones en Internet, pero deberá investigar para cada caso puntual.
Esto es todo. Espero que sea de gran ayuda para todos ustedes.
Fuentes:
http://www.google.com
http://es.wikipedia.org/wiki/Terminal_Server
http://www.microsoft.com/spain/windowsserver2003/technologies/terminalservices/default.aspx http://www.lambdasi.com.ar/textocomp.asp?id=117

martes, 2 de septiembre de 2008

Chrome lanzado!!

Google Chrome es el navegador web de Google que integra Gears para poder funcionar de manera offline, una máquina virtual de Javascript que se ha desarrollado desde cero, llamada V8, la página por defecto trae un nuevo sistema de pestañas bastante parecido al Speed Dial de Opera, es decir una serie de miniaturas que nos mostrarán las nueve páginas más visitadas, además de las búsquedas recientes, marcadores y pestañas cerradas recientemente.

Otros detalles de Google Chrome parecen derivados directos de los incluidos en otros navegadores, como la barra de direcciones con autocompletado, llamada Omnibox, y que permite realizar búsquedas no solo en direcciones, sino también en títulos, realiza sugerencias, entre otros...

A pesar del apoyo que Firefox ha recibido de la empresa del buscador, Google Chrome no estará basado en este, sino que utiliza como base el motor WebKit, que utilizan algunos navegadores como Safari.

Eso sí, Google Chrome sólo está disponible para Windows, mientras que para las versiones de Mac y Linux aún se está desarrollando. Esperemas que sea lo más pronto posible :D.

viernes, 15 de agosto de 2008

DNS (Bind9) ACTUALIZADO DINÁMICAMENTE POR EL DHCP3-SERVER

Instalamos los paquete que vamos a necesitar, en este caso bind9 y dhcp3-server:
#apt-get install bind9
#apt-get install dhcp3-server
Al momento de instalar el bind9 automáticamente se crea un directorio llamado bind, dentro de este directorio se encuentran unos archivos basicos para la configuración y entre ellos se encuentra la llave, rndc.key; veámosla.
#more /etc/bind/rndc.key
Bien! Esta misma llave debemos copiarla en la carpeta del dhcp3.
#cp /etc/bind/rndc.key /etc/dhcp3
Verifique que la llave sea la misma, es decir que los caracteres no hayan cambiado
Como lo habiamos dicho con anterioridad al momento de instalar bind9 se crea un directorio dentro de etc llamado bind. Vamos a este directorio.
#cd /etc/bind
- Dentro de esta carpeta encontramos los archivos de configuración. Editaremos el archivo named.conf y definiremos las zonas:
#nano named.conf
- Agregamos la configuración de la llave que nos va a permitir actualizar dinámicamente el dns;
include "/etc/bind/rndc.key";
- Posteriormente agregamos la configuración de la zona directa
zone “thiney.com” {
type master;
file “/etc/bind/db.thiney”; Este archivo se debe crear

Para activar las actualizaciones con el DHCP ponemos esto:
notify yes;
allow-update {key "rndc-key";};
};
- Ahora procedemos a agregar la configuración de la zona inversa:
zone “5.168.192.in-addr.arpa” {
type master ;
file “/etc/bind/db.192.168.5”; Este archivo se debe crear
notify yes;
allow-update {key "rndc-key";};
};
- Guardamos el archivo
control x + si + enter
- Ahora dentro de bind creamos las bases de datos de la zonas, para facilitar todo copiamos el db.127 para la inversa y db.local para la directa.
#cp db.127 db.192.168.5
#cp db.local db.thiney

Como va todo? Espero que bien... Ahora editamos el archivo db.thiney. Este archivo debe contener los nombres de los host y la dirección así :
; BIND data file for local loopback interface
;
$TTL 604800
@ IN SOA ns1.thiney.com. root.thiney.com. (
20080801 ; serial
604800 ; refresh
86400 ; retry
2419200 ; expire
604800 ) ; negative cache TTL
;
@ IN NS ns1.thiney.com.
@ IN A 192.168.5.2
@ IN MX 10 mx1.thiney.com.
www IN A 192.168.5.2
ftp IN CNAME www.
kate IN A 192.168.5.10

- Guardamos y procedemos a editar el archivo db.192.168.5, la zona inversa es utilizada para resolver direcciones IP a nombres.
;BIND reverse data file for broadcast zona
;
$TTL 604800
@ IN SOA ns1.thiney.com. root.thiney.com. (
20080801 ; serial
604800 ; refresh
86400 ; retry
2419200 ; expire
604800 ) ; negative cache TTL
;
@ IN NS ns1.thiney.com.
2 IN PTR ns1.thiney.com.
10 IN PTR kate.

Bueno, por último debemos agregar nuestro servidor DNS en el resolv.conf. Así que procederemos a editarlo
#nano /etc/resolv.conf
Agregamos lo siguiente:
search thiney.com
nameserver 192.168.5.2 (esta es la dirección IP de nuestro servidor DNS )

- Bueno, hemos terminado la configuración de nuestro DNS. Ahora vamos a reiniciar el servicio
#/etc/init.d/bind9 restart

- Lo probamos
#nslookup
> 192.168.5.2
Server: 192.168.5.2
Address: 192.168.5.2#53
2.5.168.192.in-addr.arpa name = ns1.thiney.com.

Existen dos comando que a mi parecer son bastante útil. Y son estos:
Named-checkzone:
#named-checkzone thiney.com /etc/bind/db.thiney
#named-checkzone thiney.com /etc/bind/db.192.168.5.2

Ambos comandos cargan los seriales de las zonas y si esta correcta la configuración nos arroja un OK. Así
zone thiney.com/IN: loaded serial 84
OK
Otro comando es el named-checkconf. Este verifica la configuración de nuestro archivo named.conf, si es correcta esta configuración no arroja ningún resultado, si hay errores nos índica la línea.
#named-checkconf
Si deseamos que nuestro DNS resuelva direcciones diferentes a la de nuestra red. Utilizamos los reenviadores, en el archivo named.conf.options. Descomentando algunas líneas y agregando los servidores de nuestro ISP (Proveedor de servicio de Internet) Editamos named.conf.options
#nano named.conf.options
y lo dejamos así:
forwarders {
200.13.249.101;
100.75.78.78;
};
Por último salimos de bind
#cd ..
Y le damos permisos SUID (Set User ID) a nuestro directorio.
#chmod 2775 -R bind

CONFIGURANDO EL DHCP3-SERVER

Como ya instalamos nuestro paquete procederemos a configurar el archivo. Vamos a la carpeta dhcp3 que se encuentra en el directorio etc. Entramos a esta carpeta.
#cd /etc/dhcp3
Dentro de esta se encuentra el archivo de configuración del dhcp. Editamos el archivo de configurar llamado dhcpd.conf
#nano dhcpd.conf
Como necesitamos que nuestro dhcp actualice dinámicamente el dns, debemos agregar estas lineas. Recuerda que ya copiamos la llave del bind al dhcp3. Ahora configuramos esta la ruta para la llave.
include "/etc/dhcp3/rndc.key";
#Agregando la zona directa
zone thiney.com {
primary 192.168.5.2;
key rndc-key;
}
#Agregando la zona inversa
zone 5.168.192.in-addr.arpa.{
primary 192.168.5.2;
key rndc-key;
}
#Esto es lo que activa las actualizaciones.
ddns-updates on;
ddns-update-style interim;
ddns-domainname "thiney.com";
ddns-rev-domainname "5.168.192.in-addr.arpa";
do-forward-updates on;
allow client-updates;
authoritative;
log-facility local7;

# CONFIGURACION DE MI RED LOCAL.
subnet 192.168.5.0 netmask 255.255.255.0 {
range 192.168.5.100 192.168.5.200;
option routers 192.168.5.1;
option broadcast-address 192.168.5.255;
option domain-name "thiney.com";
option domain-name-servers 192.168.5.2;
default-lease-time 600;
max-lease-time 1200;
}
Guardamos y salimos
#control + x + si + enter
Por último reiniciamos el servicio y confirmamos que nos este entregando direcciones.

martes, 12 de agosto de 2008

FUNCIONAMIENTO SQUID

Cuando una página se encuentra almacenada en la caché del servidor Squid, ocurre esto:

Paso 1º: En ésta imágen podemos ver cómo se establece la conexión entre el cliente y el servidor Intermediario, recordemos que esta conexión se establece ya que se esta utilizando un protocolo orientado a conexión, es decir que necesita establecer un canal para poder trasmitir.




Paso 2º: El usuario por medio de un cliente (un navegador), realiza una petición URL al servidor Intermediario. La petición URL en pocas palabras es una página web que el usuario esta solicitando,

Paso 3º:En esta imágen podemos observar que lo primero que hace un servidor proxy al momento de recibir una peticion URL, es buscar en su caché esta petición y la encuentra!!


Paso 4º:Una vez encontrada esta petición en la caché el servidor Intermediario le da una respuesta al cliente, es decir, la página web solicitada. Esta es la principal razón por la cual no es recomendado reinicar con frecuencia el servicio o el servidor Proxy. Ya que al reiniciar los datos en la caché son eliminados y estaria haciendo nuevamente el siguiente procedimiento para cada petición.




Cuando una página No se encuentra almacenada en la caché del servidor Squid, ocurre esto:

Paso 1º:En ésta imágen podemos ver cómo se establece la conexión entre el cliente y el servidor Intermediario, recordemos que esta conexión se establece ya que se esta utilizando un protocolo orientado a conexión, es decir que necesita establecer un canal para poder trasmitir.



Paso 2º:El usuario por medio de un cliente (un navegador), realiza una petición URL al servidor Intermediario. La petición URL en pocas palabras es una página web que el usuario esta solicitando,



domingo, 10 de agosto de 2008

Afiche Flisol

CONFIGURACION DEL SERVIDOR FTP (PROFTPD)


PROFTPD nace con la necesidad de tener un servidor FTP configurable y seguro, cuenta con un único fichero de configuración llamado proftpd.conf.

Presenta una gran ventaja con respecto a otros ya que su código ha sido portado a muchas plataformas, lo que lo hace bien interesante a la hora de elegir un servidor FTP, entre las mas reconocidas encontramos AIX, FreeBSD, DG/UX, Linux, Mac OS X, NetBSD, OpenBSD, Solaris, SunOS, entre otros...

Para empezar con la instalación de proftpd, debemos descargar el paquete.
Thiney:/#apt-get install proftpd
Escogemos el modo cómo se va a ejecutar, es decir, si lo hará bajo inetd (por servicio) ó standalone (servidor-forma independiente). La gran diferencia entre ambos métodos es la velocidad de ejecución y la carga que se le dará al equipo.

En este caso lo ejecutaré de forma independiente y procedemos a dar Aceptar. Una vez terminada la instalación se crea automática una carpeta dentro del directorio etc llamada proftdp. En esta se encuentra el archivo de configuración principal llamado proftd.conf, procedemos a editarlo con nuestro editor favorito.
Thiney:/# nano /etc/proftpd/proftpd.conf

Aproximadamente en la linea 10 encontramos el primer parámetro.
#Soporte para Ipv6: Activa o desactiva este parámetro de acuerdo a su necesidad. En este caso lo desactivamos.
UseIpv6 off
#Nombre del servidor FTP
ServerName "ftp.thiney.com"
#Modo en que se va a trabajar el servidor, en este caso independiente.
ServerType standalone
#Activa el mensaje de entrada antes o después del logueo del user
DeferWelcome on
#Personaliza el mensaje de bienvenida
ServerIdent on "BIENVENIDO AL SERVIDOR FTP.THINEY.COM"
#La siguiente linea nos garantiza la compatibilidad o no con la mayoría de clientes FTP. Por lo tanto procedemos a activarlo (on).
MultilineRFC2228 on

#Usaremos on, para que tome las opciones por defualt de un servidor ftp
DefaultServer on
#Si esta en on, podremos ver los links, si el link esta fuera de nuestro home no tendremos acceso a él
ShowSymlinks on
#Permite o Deniega la sobre-escritura de los archivos existentes, en este caso desactivamos la sobre-escritura.
AllowOverwrite off
#El número máximo en segundos, que puede estar un cliente, sin transferencia
TimeoutNoTransfer 900
#Ahora procedemos a cambiar el número máximo de segundos que puede estar el cliente-servidor sin recibir información de una transferencia.
TimeoutStalled 600
TimeoutIdle 160
#El siguiente parámetro es un filtro de protección para este servidor ProFTPd
DenyFilter \*.*/

#Puerto de escucha
Port 21
#Número de visitas máximas en el ftp
MaxInstances 13
#Usuario y grupo, Si no existen estos grupos o usuarios, debemos crearlo.
User proftpd
Group proftpd
#Personaliza el mensaje al momento de loguearse
AccessGrantMsg "LA CONEXION FUE EXCITOSA"
#Mensaje cuando el nombre o el pass ha fallado
AccessDenyMsg "HA FALLADO, VUELVA A LOGUEARTE"
#Enjaula al usuario dentro de su propio home
DefaultRoot ~
#El siguiente comando permite definir un fichero de contraseñas especifico a los usuarios y a los grupos.
AuthUserFile "/etc/passwd"
AuthGroupFile "/etc/group"

#Establece un número máximo de clientes que pueda estar conectados simultaneamente en el servidor
MaxClients 2 "MAX USER"
#Máximo numero de clientes por Host(ip)
MaxClientsPerHost 2 "MAX HOST"
#Máximo numero de clientes por usuario
MaxClientsPerUser 2 "MAX POR USER"
#A continuación desactivamos el parámetro que nos indica que los usuarios no requieren una shell, valida o "autentica". Esto le brinda un poco de seguridad a nuestro servidor FTP.
RequireValidShell off
#Le decimos que el directorio del ftp es /home/ftp y a continuación le damos unas características
Umask 077 077
AllowOverwrite off

#nuestro directorio de subida se encontrará en /home/ftp/subir, así que especificamos algunos permisos para el directorio
Umask 077 077
AllowOverwrite on
#El directorio tendrá acceso de lectura, escritura y grabación para todos(Allow All)
AllowAll
#Para denegar acceso a ciertos usuarios
DenyUser fercho
#Guardamos y salimos (control + X + Si + Enter)

Lo siguiente es crear las cuentas de usuario y el grupo
Thiney:/#adduser kate
Adding user 'kate' ...
Adding new group 'kate' (1007) ...
Adding new user 'kate' (1004) with group 'kate' ...
Creating home directory '/home/kate' ...
Copying files from '/etc/skel' ...
Enter new UNIX password:*******
Retype new UNIX password:*******
passwd: contraseña actualizada correctamente
Cambiando la información de usuario para kate
Introduzca el nuevo valor, o presione ENTER para el predeterminado
Nombre completo []: kate
Número de habitación []:
Teléfono del trabajo []:
Teléfono de casa []:
Otro []:
¿Es correcta la información? [y/N] y

Ahora editamos el archivo passwd ubicado en etc. En este archivo realizaremos dos cambios significativos.
Thiney:/#nano /etc/passwd
Vamos a la linea del usuario que acabamos de agregar, es decir, kate.
kate:x:1004:1007:kate,,,:/home/kate,:/bin/bash
Primero, cambiamos el /home para que todos queden alojados en /home/ftp/. Segundo, cambiamos el shell de /bin/bash a /bin/false, con el fin de que los usuarios no accedan a una shell completa; quedando así:
kate:x:1004:1007:kate,,,:/home/ftp,:/bin/false

En ProFTPd no es necesario agregar una nueva shell (/bin/false) en /etc/shells, pues en el archivo de configuración principal desactivamos este parámetro que indica que los usuarios no requieren una shell, valida o "autentica" (RequireValidShell off)

Por ultimo reiniciamos el servicio ProFTPd para que la configuración tenga efecto.
Thiney:/#/etc/init.d/proftpd restart
Stopping ftp server: proftpd.
Starting ftp server: proftpd.

Ahora ingresaremos al ftp desde la consola

Thiney:/#ftp 192.168.70.4
Connected to 192.168.70.4.
220 BIENVENIDO AL SERVIDOR FTP.THINEY.COM
Name (192.168.70.4:root): kate
331 Password required for kate
Password: ***** (ponemos nuestra contraseña)
230 LA CONEXION FUE EXCITOSA
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls (Listar contenido)
200 PORT command successful
150 Opening ASCII mode data connection for file list
-rw-r--r-- 1 thiney thiney 12449 Jul 30 01:46 servicios.odt
drwxrwxrwx 3 root root 4096 Aug 3 08:37 subir
226 Transfer complete.
ftp> exit
221 Goodbye.

Verificamos por medio del navegador, para esto ponemos la dirección de nuestro servidor ftp://192.168.70.4 o si ya tenemos el dns funcionando ponemos ftp://thiney.com/. Nos pedirá el nombre de Usuario y Contraseña, así:

Y listo!!

Si desea conocer mas parámetros para una configuración avanzada, lo invito a ingresar a la página oficial de proftpd http://www.proftpd.org/localsite/Userguide/linked/userguide.html

Hasta pronto

lunes, 4 de agosto de 2008

BENCHMARK

Qué es??
Apache Benchmark (ab) es una herramienta para la evaluación comparativa de servidores web. Esta herramienta permite a los administradores llevar a cabo unas buenas pruebas de carga, simulando miles y miles de conexiones por segundo, antes de poner en marcha un servidor Web.
Esta aplicación viene por defecto con Apache2, es decir, no es necesario descargarla o instalarla.

Recomendaciones:
*Usa la misma configuración de hardware y kernel (SO) para todas las pruebas.
*Toma por lo menos de 3 a 5 lecturas y utiliza el mejor resultado.

Es importante realizar la pruebas con y sin KeepAlive (-k). Este parámetro permiten múltiples solicitudes en una misma conexión TCP. Cuando se hacen comparativas con benchmarks se tiene que hacer con equipos equivalentes y que todo sea lo más parecido posible y en las mismas condiciones, así se garantiza que los resultados sean lo mas parecido a la realidad.

El Objetivo de estas pruebas es ver cómo reaccionan los diferentes servidores web en situaciones extremas. Trabajaremos con algunas variables (-n, -k, -c)

Donde:
-n: Es el número de peticiones.
-k: Nos índica si la conexión se cierra o queda abierta para recibir las demás peticiones. Consume menos recursos y hace que el servidor responda más rápido.
-c: Número de concurrencias, solicitudes simultáneas. El valor máximo es 20000

NOTA: El sistema tiene un tope determinado de peticiones para algunos procesos. Es posible forzar el sistema utlizando el comando ulimit:
Esta función obtendrá o modificará algún límite para el proceso actual, en este caso, nos permite aumentar el número de peticiones y trabajar con números más grandes. Podemos obtener más información sobre estos procesos con ulimit -a:



Como podemos ver open file (-n) se encuentra en 10000, es decir que solo podemos enviar 10000 peticiones simultáneamente con ab (concurrencia), para forzar el sistema o cambiar este límite, debemos utilizar ulimit -n mas el valor que se desee, este valor llega a 1048576. Pero no es necesario llegar a este número (1048576) ya que por defecto la concurrencia en apache tiene un limite y es de 20000 peticiones simultáneamente. Sin embargo lo haremos a manera de ejemplo:
ulimit -n (número de 0 a 1048576)
Esto queda así:
Nos enfocaremos en los tiempo de respuestas (Time per request) que la prueba ab nos arroje. Y con éste valor más el número de peticiones se crearán unas gráficas comparativas entre los diferentes servidores web.
TIPS: Las pruebas se realizan con 3 servidores web montados en una sola máquina, estos servicios se encuentran corriendo en los puertos 80, 81 y 82.
Es importante que la longitud del documento (Document Length), es decir, el tamaño del index sea el mismo en los 3 servicios. En este caso utilizamos un pequeño index de 29 bytes.
Tenga en cuenta el / al terminar la URL

Prueba 1º

Detalles:
Procesador: Mobile AMD Sempron 1,81 GHz
Memoria: 512 MB
S.0: Debian GNU/Linux 4.0 "Etch"
Apache Benchmark Version 2.0.40-dev.
Versiones de los servicios web:
Apache 2.2.3 lighttpd-1.4.13Cherokee 0.5.5

Conclusiones Personales: En esta gráfica podemos ver claramente el desempeño de los servidores web. Inicialmente vemos algo muy variable.Vemos un aumento en los tiempos de respuesta de los 3 servidores, estas variaciones se dan en los rangos del 50 al 2000, después de las 2000 peticiones los 3 servidores se estabilizan y los resultados en los tiempos de respuestas tambien.Cabe notar que los tiempos de respuestas entre ellos no son los mismos. Podemos ver claramente que el tiempo de respuesta del servidor apache es muy alto, en pocas palabras, se demora mucho procesando una petición, cosa que no ocurre con el servidor web cherokee. Este servidor muestra un mejor desempeño incluso frente al servidor Lighttpd. Recordemos que esta prueba es muy exigente ya que en cada petición se debe abrir y cerrar la conexión.

Prueba 2º
Detalles:
Procesador: Mobile AMD Sempron 1,81 GHz
Memoria: 512 MB
S.0: Debian GNU/Linux 4.0 "Etch"
Apache Benchmark Version 2.0.40-dev.
Versiones de los servicios web:
Apache 2.2.3 lighttpd-1.4.13 Cherokee 0.5.5


Conclusiones Personales: Esta prueba es muy parecida a la primera, solo que para esta prueba se utilizó la variable -k que nos índica que la conexión queda abierta para recibir las demás peticiones, podemos ver que los tiempos de respuestas son mas favorables para los tres servidores ya que esta variable hace que los servidores consuman menos recursos y como consecuencia responden más rápido.

Prueba 3º
Detalles:
Procesador: Mobile AMD Sempron 1,81 GHz
Memoria: 512 MB
S.0: Debian GNU/Linux 4.0 "Etch"
Apache Benchmark Version 2.0.40-dev.
Versiones de los servicios web:
Apache 2.2.3
lighttpd-1.4.13
Cherokee 0.5.5

Conclusiones Personales: En nuestra tercera prueba podemos observar y concluir que el servidor web Cherokee responde mejor cuando se le aplica mayor carga, es decir, cuando tienes mas peticiones que procesar. Estas fueron unas pequeñas pruebas que se realizaron a los servidores web para tener una idea propia del rendimiento de cada uno. De manera muy personal los invito a que utilicen esta aplicación (Apache Benchmark) y realicen sus propias pruebas, recordemos que el resultado variará de acuerdo a la capacidad del computador, de las versiones que utilice en los servidores, del sistema operativo, entre otros.

Hasta Pronto

domingo, 3 de agosto de 2008

LIGHTTPD Básico

Lo primero que vamos hacer es instalamos el paquete

apt-get install lighttpd
Si estas siguiendo paso a paso este manual, probablemente te salga este error al momento de arrancar el servicio.

Starting web server: can't bind to port: 80 Address already in use.
Nos esta indicando que el puerto 80 esta siendo usado, por tal motivo no puede arrancar. Efectivamente el cherokee esta corriendo en este puerto, y en el 81 se encuentra el apache, así que debemos cambiarle de puerto al lighttpd. Vamos a la carpeta lighttpd que se crea automáticamente en etc.
#cd /etc/lighttpd
Y edita al archivo de configuración lighttpd.conf
#nano lighttpd.conf
En la linea 59 aparece el puerto del servidor, se lo cambiamos, que quede así y si esta comentado lo descomentamos.
server.port = 81
Al momento de instalar lighttpd se crea en /var/www una pagina index.html, vamos y la ponemos bien bonita.
cd /etc/lighttpd# cd /var/www

#nano index.html
Ahora si podemos arrancar el servicio.

/etc/init.d/lighttpd restart

verificaremos por medio de un navegador. http://localhost