Archivos del Mes para Julio, 2009

The Big Lebowski

¿Alguien no ha visto “The Big Lebowski”?

Monkey Island Theme


Montaje de un Servidor Ciego con Debian Lenny (8.-Soporte Para PHP)

Con los pasos seguidos hasta aquí, tenemos un Servidor Web con Apache2 que podemos utilizar para subir y bajar archivos de forma privada a través de internet mediante ftp alojándolos en directorios no vistos públicamente y también para subir y bajar archivos a través de un servidor público gestionado por Apache2. Si no hubiésemos instalado Apache2 tan solo hubiésemos podido hacer uso de ftp privado a través de internet. A partir de este punto, se instalarán herramientas para poder gestionar contenido web.

Uno de los lenguajes de programación que vamos a necesitar en el servidor es PHP. Este software es utilizado tanto para programar webs, scripts o cgis. Para ello instalaremos lo siguiente:

#apt-get install php5 php5-gd php5-pgsql php5-cgi php5-cli php5-common libapache2-mod-php5

Vamos a agregar la siguiente linea (DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.shtml) al fichero de configuración del Apache llamado apache2.conf para que nuestro Web server sea compatible con ese tipo de extensiones.

#echo DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.shtml >> /etc/apache2/apache2.conf

Se puede verificar si se ha hecho bien con el comando (cat) que nos muestra en pantalla el contenido de un archivo.

#cat /etc/apache2/apache2.conf

Veremos al final algo así:

# Include of directories ignores editors’ and dpkg’s backup files,

# see README.Debian for details.

# Include generic snippets of statements

Include /etc/apache2/conf.d/

# Include the virtual host configurations:

Include /etc/apache2/sites-enabled/

DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.shtml

Ahora vamos a comprobar que todo ha ido bien editando un fichero en el directorio raíz de nuestro servidor Web, o sea el directorio que es visible desde otros exploradores, (en mi caso /home/usuarioweb/www/ ).

#nano /home/usuarioweb/www/info.php

Insertamos el siguiente código:

<?php phpinfo(); ?>

Guardamos el archivo info.php, cerramos y reiniciamos Apache2:

#apache2ctl restart

Ahora desde un navegador y tras introducir el usuario y la clave, entramos en la dirección IP del servidor http://192.168.0.XXX/info.php (en mi caso) y veremos información detallada sobre el soporte PHP que tenemos instalado.

apache02

Rossi Aclara lo que Muchos Ya Sabíamos

Polémicas aparte, de lo que no hay duda es que si alguien puede poner al mejor piloto de la historia contra las cuerdas ese no es otro que Pedrosa Lorenzo.

Me gusta luchar con Lorenzo en la pista. Me ha hecho mejor piloto porque me ha hecho dar un paso más para vencerle; me ha hecho mejorar, como lo hizo Stoner hace dos años. Para mí, Lorenzo es un gran estímulo. Me gusta luchar hasta la última curva. Eso es lo que me encanta de las carreras. Y eso, este año, se lo debo a Lorenzo“, -Rossi-.

Y es que aunque a muchos les pese sobran las palabras…

DD-WRT: Tu Router un Poco Más Profesional

Hoy cambié de router. Lo cierto es que no estaba demasiado contento con el D’Link 524 que tenía (y tengo). Tras una odisea inacabable por el desierto del Wake On Lan (del que más adelante escribiré en uno de los capítulos de MONTAJE DE UN SERVIDOR CIEGO CON DEBIAN LENNY), descubrí que para despertar mi servidor remotamente desde la WAN había que configurar la tabla ARP del router (no sabía nada de eso y sigo sin saber). Y claro, casualidad de la buena que el mío no dejaba modificarla. No dándome por vencido, intenté sabotear el aparato con engaños sutiles como redirigir el Paquete Mágico a todos los PC’s de la LAN con un redireccionamiento del puerto UDP que utiliza el Wake On Lan hacia el broadcast (192.168.0.255). Pero el muy jodido se bloqueaba (la madre que lo parió!). Al final no conseguí nada, pero se puede decir que casi soy un experto en el puto D’Link 524.

DD-WRT-[1]

Por una de esas casualidades leí un día algo sobre el firmware libre DD-WRT. Bueno, el caso es que no tenía mala pinta. Indagando un poco más descubrí que el suso dicho firmware te convierte tu cutre-router casero en un router con MAYÚSCULAS. Vamos que le dota de funciones propias de un router profesional. De entre todas, la que me llamó muchísimo la atención fue la de Wake On Lan. Joder, es que no me lo creía. Corrí raudo a jugarme la salud de mi router y cuando estaba a punto de flashearlo… ¿a qué no saben? Sí, mi puto router D’Link 524 no estaba en la infinita lista de los router compatibles con este firmware. Tenía ganas de llorar. Pero mira que la lista es larga, joder. Si creo que están hasta los de Telefónica.

Meses más tarde decidí ponerle punto y final al tema: me compre otro router. Lo conseguí por cuatro duros en el eBay y con el firmware DD-WRT ya instalado. Si les digo que aluciné con lo que traía me quedo corto. Joder, si es que todavía no me lo creo! El control es absoluto. Satisface cualquier necesidad que se imaginen para gestionar redes. En fin, pues eso, que si están pensando darle giro a su patata-router no sigan pensando más.

Los Mejores Discos de la Historia: Abbey Road

THE BEATLES -ABBEY ROAD- (26 de Septiembre de 1969)

abbey_road

And in the end, the love you take is equal to the love you make” (”En el final, el amor que te llevas es igual al amor que entregas“). El último album de los Beatles es considerado por algunos como el mejor de todos los tiempos. Y no les falta razón. Grabado después que Let it be aunque publicado antes, el disco exhala una atmósfera cósmica cercana casi a la absoluta perfección. El halo instrumental de fondo se mantiene durante toda su duración con una única constante: la elegancia del sonido.

La portada es con toda probabilidad la más imitada de la historia (tal vez después de la portada del Sgt Pepper’s), y entre todas las incertidumbres que guarda la única que se traduce en certeza es que el grupo cruza la famosa calle hacia la universalidad de una muerte con honores de estado. Arropado por 17 canciones, el album se cierne sobre los sentidos desde la madurez desinhibida y la resignación de la inevitable despedida, dejando joyas tan impagables como las bellísimas armonías vocales de los Beatles en canciones como Because y Sun King.

Es curioso cómo el disco  ejerce su descomunal fuerza desde la profundidad de la divergencia. Los Beatles, al final de su camino y con muy pocas cosas ya en común, nos ofrecen un trabajo soberbio que emerge por sí solo igual que un carrusel edulcorado con arreglos sublimes. Canciones inigualables como Something (la mejor canción de Lennon-McCartney según Sinatra -en realidad firmada por Harrison-) o Here Comes The Sun sobrellevan el asfixiante peso musical hasta una invertebrada cara B donde se esconde la maravillosa marcha de eslabones unidos que no deja indiferente a nadie. Sin grandes pretensiones y concebido en parte como un canasto de retales, Abbey Road es el ejemplo del talento puro.

Montaje de un Servidor Ciego con Debian Lenny (7.-FTP con PROFTPD)

Para subir y bajar archivos remotamente vamos a usar el software Proftpd y configuraremos algo de él. Empezaremos la instalación de Proftpd arrancando nuestro servidor. Nos logeamos como root y pasamos a instalar:

#apt-get install proftpd

Durante la instalación nos preguntará algunas cosas:

proftpd

los archivos del servidor son:

/usr/bin/proftpd
El propio servidor de FTP.

/usr/bin/ftpwho
Una utilidad que muestra información sobre los procesos de cada usuario actualmente conectado al servidor.

/usr/bin/ftpcount
Utilidad que muestra el número de conexiones actuales.

/usr/bin/ftpshut
Orden para apagar el servidor, sólo funciona en modo “standalone”.

/var/log/proftpd/proftpd.log
Fichero con la información sobre los “logs” en el servidor, habría que decidir qué política de rotación se desea seguir.

/etc/proftpd/proftpd.conf
El fichero donde configuraremos las diversas opciones que nos ofrece el servidor, en él nos centraremos a continuación, es realmente el único que manipularemos.

Luego por razones de seguridad vamos a crear un shell falso para el acceso de ftp para esto vamos a agregar una linea en el archivo /etc/shell:

#nano /etc/shells

Y agregamos la siguiente línea al final del archivo:

/bin/false

Esto evitará que cualquier usuario que utilice el ftp pueda accesar a nuestra consola de comandos. Ahora visualizaremos el archivo /etc/passwd:

#cat /etc/passwd

Con ello veremos que se ha agregado un usuario llamado “FTP” que es el que nos crea ProFTPD al instalarlo. Este será el usuario para el login al servicio de FTP. Si deseamos que además tenga un password (como es lógico) haremos como root:

#passwd ftp

y le agregaremos la contraseña. En lo listado antes por el terminal, chequeamos que su shell sea /bin/false/ puesto que si es /bin/bash podrá acceder y ejecutar comando bash no solo por el puerto 21 sino por el 22 de ssh por ejemplo y hacer estragos.

Ahora añadimos el usuario ftp al grupo ftp

#adduser ftp ftp

si no esta creado el usuario ftp haremos

#adduser ftp -s /bin/false

si no esta creado el grupo haremos:

#addgroup ftp

Con esto ya tenemos configurada la cuenta de login. Para ser un poco mas ordenado en el directorio /home/ftp/ crearemos dos directorios llamados upload y download donde se realizarán las subidas y las descargas respectivamente.-

#mkdir upload
#mkdir download

le damos los permisos correspondientes

#chmod 755 /home/ftp

#chmod 755 /home/ftp/download

#chmod 777 /home/ftp/upload

cambiamos de dueño:

#chown ftp:ftp upload
#chown ftp:ftp download

Ahora si, a editar el proftpd.conf. Primero haremos una copia por si las moscas..

#cp /etc/proftpd/proftpd.conf /etc/proftpd/proftpd.confOK

Y ahora si editamos:

#nano /etc/proftpd/proftpd.conf

Y modificamos el archivo dejándolo así:

# Para aplicar los cambios tienes que reiniciar el servidor FTP

AllowOverwrite on

AuthAliasOnly on

# Escoge aqui un alias para tu usuario de FTP

UserAlias usuarioftp ftp

ServerName “nombredelservidor

ServerType standalone

DeferWelcome on

MultilineRFC2228 on

DefaultServer on

ShowSymlinks off

TimeoutNoTransfer 600

TimeoutStalled 100

TimeoutIdle 2200

DisplayFirstChdir .message

ListOptions “-l”

RequireValidShell off

TimeoutLogin 20

RootLogin off

# Aqui creamos los archivos de logs que son de mucha utilidad en caso de fallos

ExtendedLog /var/log/ftp.log

TransferLog /var/log/xferlog

SystemLog /var/log/syslog.log

#DenyFilter *.*/

#No vamos a utilizar el archivo /etc/ftpusers file

#(sirve para colocar adentro los usuarios que no queremos que se conecten)

UseFtpUsers off

# Permitir reiniciar una descarga (muy util en caso de que se caiga la conexion)

AllowStoreRestart on

#El puerto 21 es el estandar para FTP,

#es bueno cambiarlo por razones de seguridad

#aqui escogi el XXX puedes escoger el que quieras

Port XXX

#Configuracion detras de un servidor NAT

MasqueradeAddress ippublicadelservidor

# Para evitar ataques de DoS (negacion de servicio), se recomienda

# colocar un maximo de 30 procesos hijos. Si necesitas mas conexiones

# que esta simplemente aumenta este valor. Esto solo funciona con el

# servidor en modo standalone

MaxInstances 8

# Coloca el usuario y el grupo al que el servidor normalmente funciona

User nobody

Group nogroup

# Umask 022 es un buen valor por defecto para evitar que nuevos archivos y directorios

# sean escribibles por todo el mundo o por el grupo.

Umask 022 022

PersistentPasswd off

MaxClients 8

MaxClientsPerHost 8

MaxClientsPerUser 8

MaxHostsPerUser 8

# Despliega un mensaje despues de que ingresa un usuario

AccessGrantMsg “Bienvenido a ……

# Este mensaje es mostrado por cada intento de ingreso sea bueno o no

ServerIdent on “Estas en ……

# Coloca a /home/ftp como el directorio principal (home)

DefaultRoot /home/ftp

# Bloquea a todos los usuarios al directorio home que definimos

DefaultRoot ~

MaxLoginAttempts 5

#Ingresos validos solo permitimos a ftp

<Limit LOGIN>

AllowUser ftp

DenyALL

</Limit>

#Definimos los permisos de los directorios que creamos para el FTP

<Directory /home/ftp>

Umask 022 022

AllowOverwrite off

<Limit MKD STOR DELE XMKD RNRF RNTO RMD XRMD>

DenyAll

</Limit>

</Directory>

<Directory /home/ftp/download/*>

Umask 022 022

AllowOverwrite off

<Limit MKD STOR DELE XMKD RNEF RNTO RMD XRMD>

DenyAll

</Limit>

</Directory>

<Directory> /home/ftp/upload/>

Umask 022 022

AllowOverwrite on

<Limit READ RMD DELE>

DenyAll

</Limit>

<Limit STOR CWD MKD>

AllowAll

</Limit>

</Directory>

Configurarlo así nos permite evitar algunos problemas de seguridad. En primer lugar evitamos que el usuario root se pueda logear. En segundo estamos impidiendo que una vez conectados por ftp se pueda navegar por directorios superiores al estipulado /home/ftp/. En tercer lugar, unicamente se permite el acceso a un usuario, en nuestro caso ftp, al que modificamos el alias en el archivo de configuración. Ningún otro usuario se podrá conectar. Por último, modificamos el puerto 21 por defecto para FTP por otro diferente (recordad que al modificarlo aquí deberemos abrirlo también en el Router, de lo contrario no podrá haber acceso). Ahora reiniciamos proftpd:

#/etc/init.d/proftpd restart

Y ya lo tendríamos preparado.

Si no hubiésemos añadido la opción de MasqueradeAddress con la ip pública de nuestro servidor (la podemos obtener en la pagina de no-ip.com) al conectarnos desde cualquier cliente FTP habríamos observado que el servidor responde con su ip privada, pudiendo llegar a impedirnos enroutar con él y perder la conexión. A pesar de que este problema se puede solventar desde el mismo cliente FTP, diciéndole en opciones que ignore la ip privada, es mejor configurar el archivo proftp.conf para evitar otros problemas.

Jorge Forever

jorge

Más Allá del Límite

Cuando un piloto de motos, con algo de calidad, se cree mejor que el Campeonísimo, ocurren consecuencias fáciles de predecir. Para ser el mejor es imprescindible tener una mente única y sobretodo saberla utilizar. Un buen campeón núnca tendrá como máxima cualidad la prepotencia.

Caída de Jorge Lorenzo

Inevitable

En mi segunda publicación oficial os presento un pequeño relato que escribí hará cosa de unos meses, espero que os guste, o que por lo menos no os deje indiferentes.

Escondido en el lugar más recondito del universo,  pensaba que no me encontraría nunca. Ella no se toma tanto trabajo en una busqueda, le basta con cumplir su cometido con las personas que más amas.

Y allí estaba yo, en la más completa soledad, sin nada ni nadie, todos aniquilados por ella, y por mi culpa. No quedaba otra solución, perder.

Por desgracia, aprendí la lección demasiado tarde, nunca hagas una apuesta con La Muerte, ella siempre gana.