Subdominios dinámicos en un alojamiento con dominio dinámico en OVH

Lo que se pretende es conseguir una manera rápida y sencilla de poner sitios web online. Una vez configurado el servidor web y el servidor DNS, lo único que tendremos que hacer para tener accesible un nuevo sitio web será colocarlo en un directorio concreto del servidor y podremos acceder a él a través del subdominio con el nombre del directorio. Por ejemplo, si creamos la web web1, automáticamente será accesible desde web1.example.com. ...

December 15, 2012 · 4 min · 643 palabras · Nacho Cano

Comprobar que no tenemos configurado Apache como un proxy abierto

Revistando logs de Apache, he visto que tenía algunas entradas del tipo: 93.174.93.52 - - [18/Sep/2012:02:23:11 +0200] "GET http://myproxylists.com/my-http-headers HTTP/1.1" 404 1046 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.28) Gecko/20120306 Firefox/3.6.28 (.NET CLR 3.5.30729)" 93.174.93.52 - - [20/Sep/2012:08:21:08 +0200] "GET http://myproxylists.com/my-http-headers HTTP/1.1" 404 1046 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.28) Gecko/20120306 Firefox/3.6.28 (.NET CLR 3.5.30729)" Este suele ser el resultado de peticiones maliciosas que buscan encontrar servidores proxy abiertos. Si encontramos entradas de este tipo, lo primero que deberíamos hacer es comprobar que tenemos configurado el servidor correctamente, para no permitir hacer de proxy a peticiones de anónimos. De hecho, si no necesitamos un servidor proxy, lo mejor es asegurarnos que la directiva ProxyRequests no está inicializada a on. ...

September 21, 2012 · 2 min · 234 palabras · Nacho Cano

Symfony en Ubuntu Lucid Lynx 10.04

Symfony es una framework MVC escrito en PHP para el desarrollo rápido de páginas web. Además, ofrece un conjunto de buenas prácticas para desarrollar páginas más seguras y con un coste de mantenimiento menor. Para que la instalación sea más segura, los ficheros de Symfony debería estar fuera del DocumentRoot. Requisitos Symfony se basa en entorno LAMPP, por lo que suponemos que ya tenemos configurado Apache, MySQL y PHP versión 5.2.4 o superior. Para comprobar si todo está correctamente configurado y que cumplimos los requerimientos para Symfony, descargamos siguiente script y lo ejecutamos, pasando como parámetro la ruta al archivo php.ini que utiliza apache (por defecto, al ejecutarlo desde el terminal en lugar del navegador, utiliza otro archivo php.ini): ...

June 3, 2012 · 7 min · 1302 palabras · Nacho Cano

Benchmarking de un servidor web

Con un sencillo comando podremos saber la carga que soporta nuestro servidor web. Hay que tener cuidado contra qué servidor lo lanzamos y en qué momento, porque puede que interfiera o impida el acceso a otros usuarios. El comando es ab, de Apache Benchmarking, y permite multitud de opciones, entre ellas el número de peticiones concurrentes, con el argumento -c, y la duración de la prueba, con el argumento -t: ...

May 10, 2012 · 3 min · 431 palabras · Nacho Cano

HTTP Strict Transport Security

HTTP Strict Transport Security (HSTS) es un mecanismo de seguridad web donde el servidor exige que las conexiones se realicen únicamente mediante conexiones seguras. El servidor informa de esta política de seguridad utilizando la cabecera Strict-Transport-Security, en donde se especifica el periodo durante el cual las conexiones seguras son obligatorias. Si una web proporciona acceso seguro (HTTPS) pero accedemos de forma no segura (HTTP) podría suceder que nos redirija a la versión segura, sin embargo, ya se había iniciado una conversación sin cifrar. Este comportamiento puede ser explotado por un ataque Man-In-The-Middle. ...

September 11, 2011 · 2 min · 270 palabras · Nacho Cano

Denegación de servicio en Apache utilizando la cabecera Range

Una vulnerabilidad descubierta por kingcope permite que los servidores Apache vulnerables sean susceptibles de sufrir una denegación de servicio. La vulnerabilidad se encuentra en el uso de la cabecera Range. Esta cabecera se utiliza para obtener sólo una parte de la página. Si se solicitan varias partes además de pedir que la respuesta se comprima, mediante la cabecera Accept-Encoding: gzip, se dispara el consumo de procesador y memoria. Existe un script que permite comprobar si el servidor es vulnerable y, si es el caso, explotar dicha vulnerabilidad. ...

August 31, 2011 · 1 min · 206 palabras · Nacho Cano

Evitando el hotlinking

Si tenemos una página web que contiene imágenes, tarde o temprano, alguien terminará mostrándolas en otro sitio, enlazándolas directamente y utilizando nuestro ancho de banda. Vamos, lo que se conoce como hotlinking. La siguiente técnica se basa en el valor de la variable HTTP_REFERER, la cual es opcional, por lo que podría ser posible saltársela. Sin embargo, la mayoría de las veces impedirá el hotlinking. Como contrapartida, si alguien pone un enlace a una imagen, un usuario no podrá verla pulsando en el enlace, ya que el navegador incluirá como referer una URL externa y será bloqueada por el sistema. ...

August 16, 2011 · 3 min · 471 palabras · Nacho Cano

SSH over HTTP-Proxy

A veces, queremos poder navegar o chatear por Internet pero no queremos que nadie pueda conocer, ni bloquear, las páginas que visitamos o espiar nuestras conversaciones, bien porque porque estamos en el trabajo, la universidad o en una red abierta. En la red a la que estamos conectados puede que utilicen un proxy para controlar y bloquear servicios. Este bloqueo podría ser por puerto o por protocolo. Es posible que bloqueen algunas URLs, o IPs, pero seguramente tenemos acceso a la web, es decir, los puertos 80 y 443. Crearemos un túnel seguro para poder navegar seguros y evitar estas restricciones. Eso sí, puede que aparezca en algún log que nos hemos conectado a nuestra máquina remota. ...

August 15, 2011 · 5 min · 950 palabras · Nacho Cano

sslh, compartiendo el puerto 443

Podemos tener varios motivos para tener escuchando nuestro servicio de SSH en el puerto 443. Ya sea porque queremos evitarnos los continuos intentos de conexión que sufrimos por tener el servicio escuchando en el puerto 22 o porque desde donde estemos, ya sea en el trabajo o en un hotel, no estén permitidas las conexiones que no sean al puerto 80 o 443. Pero, ¿y si ya tenemos un servidor web escuchando en el puerto 443? ...

July 30, 2011 · 4 min · 790 palabras · Nacho Cano

Identificando los plugins de WordPress instalados

Hay un script para nmap, http-wp-plugins, que permite detectar los complementos instalados en WordPress. Dicho script intenta acceder a los directorios de los complementos en wp-content/plugins/ con la ayuda de un diccionario. Si la respuesta no es un error 404 interpreta que el directorio, y por tanto el complemento, existe. La lista de complementos para WordPress es extensa, casi 13405 entradas, y podría llevar bastante tiempo analizarlas todas, por lo que las entradas están ordenadas por popularidad y por defecto sólo se escanean las 100 primeras. ...

June 20, 2011 · 5 min · 975 palabras · Nacho Cano