¿Alguien no ha visto “The Big Lebowski”?
Archivos del Mes para Julio, 2009
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.
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…
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.
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.
THE BEATLES -ABBEY ROAD- (26 de Septiembre de 1969)
“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.
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:
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.
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.
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.

![DD-WRT-[1] DD-WRT-[1]](http://www.laestacionerrante.com/wp-content/uploads/2009/07/DD-WRT-1.jpg)












