Generador de ficheros .htaccess para banear IP, dominio o prevenir el hotlinking

Tenéis un sitio web y detectáis que os atacan por fuerza bruta, hay un spammer,  os enlaza alguien del que no queréis visitas o queréis prevenir que os “roben” imágenes mediante hotlink de vuestro sitio. Existen técnicas para evitar todos estos problemas pero la más efectiva si es siempre desde un mismo origen o conjunto reducido de orígenes, dirección IP o nombre de dominio, es valernos del .htaccess.

Si no conocéis bien su sintaxis o queréis directamente ahorraros el trabajo de hacerlo vosotros os recomiendo este servicio .HTACCESS IP que hace justamente eso.

.HTACCESS IP  Referrer  and Hotlink Banning Generator

Leer más » 1 Comentario

Restringir acceso a ficheros o directorio por IP usando .htaccess

Conozco a unos usuarios de PHP-Nuke que aún hoy lo usan de una forma más o menos  segura gracias a que cambian la ruta de acceso a la administración cada cierto tiempo. La verdad es que a pesar de eso, ese conocido CMS, de los primeros que tuvieron cierta fama, sigue teniendo fallos graves de seguridad. Sin embargo, la experiencia demuestra que protegiendo la administración, nos quitamos bastantes problemas de encima.

Si usáis WordPress, cualquier otro CMS o incluso en aplicaciones web vuestras que vendáis a clientes, una de las restricciones más útiles, cuando es posible hacerla, es restringir el acceso por dirección IP. Hay métodos para hacerlo desde un lenguaje del lado del servidor, sin embargo, el más cómodo (al menos para mí) ya que no requiere que se toque el código del programa, es el basado en .htaccess.

Veamos cómo hacerlo.

Proteger un directorio

El fichero .htaccess deberá estar colgado de él y deberá contener el siguiente código:

Leer más » 3 Comentarios

¿Qué es la propagación de DNS? ¿Por qué tarda? ¿Cómo comprobar el estado?

En Internet las máquinas se comunican entre sí a través de las direcciones IP, que forman parte del nivel 3 del modelo OSI o nivel 2 del modelo TCP/IP. Estos números, que en IP versión 4 tienen esta forma: 150.214.110.3, es decir, cuatro números de 0 hasta 255, no son fácilmente recordables, por los que gracias al protocolo DNS se les puede asignar un nombre de dominio, como linuxhispano.net. De forma básica, podemos decir que cada nombre de dominio apunta a una dirección IP.

Propagación

Imaginad este caso. Tenemos a Red De Autores corriendo en la máquina A con una dirección propia y queremos moverlo a una máquina B. Debemos actualizar el DNS de forma que a partir de ese momento las peticiones vayan a la máquina B.

Montamos todo en B y en ese momento se le pide a nuestro gestor de dominios: “cambia la dirección a la que apunta Red De Autores a la máquina B”. El gestor de dominios la cambia y este hecho empieza a anunciarse a los DNS de todo el mundo (es lo que tiene Internet), gracias a la estructura jerárquica de los servidores DNS mundiales.

¿Dónde está el problema?

Para entender la raíz del problema, debemos saber lo siguiente.

Leer más » 1 Comentario

Cómo obtener geodatos de una dirección IP en PHP

Cuando desarrollamos servicios web, puede resultarnos de interés conocer geodatos de nuestro visitante: ciudad, región, código de área, etc. ¿Cómo averiguar estos datos usando PHP? Muy simple, haciendo una llamada a geoplugin.net.

Si hacemos una llamada del siguiente tipo (la dirección IP es la del servidor DNS de la UCO): http://www.geoplugin.net/php.gp?ip=150.214.110.3, obtenemos una salida en forma de cadena con un objeto de PHP serializado.

Por lo tanto nos limitaremos a:

  1. Hacer una llamada a dicho servicio web
  2. Descargar el resultado de la petición en forma de cadena con la función file_get_contents()
  3. Usar el proceso inverso a serializar para recuperar los diferentes valores

Leer más » 3 Comentarios

Configurar red de forma básica en Red Hat y derivadas

La arquitectura de servidores que mantengo en el trabajo, está basada en su parte Linux en máquinas virtuales con Scientific Linux (distribución derivada de Red Hat) sobre las que gracias a Xen, paravirtualizo otras máquinas que son las que finalmente dan el servicio.

En distribuciones del tipo de Red Hat, como puedan ser esta misma Scientific Linux u otras como CentOS o Fedora, la configuración básica de la red es como sigue. read more

Leer más » 3 Comentarios

Restringir el acceso mediante la dirección IP usando PHP

Si por razones de seguridad o por política de empresa, queremos bloquear las direcciones a un determinado rango o conjunto de IP, os voy a comentar cómo hacerlo de forma simple haciendo uso de PHP.

Lo primero que debemos hacer es crear una función que nos permita conocer la dirección IP del cliente:

function obtenerDireccionIP()
{
    if (!empty($_SERVER ['HTTP_CLIENT_IP'] ))
      $ip=$_SERVER ['HTTP_CLIENT_IP'];
    elseif (!empty($_SERVER ['HTTP_X_FORWARDED_FOR'] ))
      $ip=$_SERVER ['HTTP_X_FORWARDED_FOR'];
    else
      $ip=$_SERVER ['REMOTE_ADDR'];

    return $ip;
}

Una vez hecho esto, el proceso es simple. Veamos distintas posibilidades.

Permitir/restringir acceso a una sola IP

Con esta función, restringimos el acceso sólo a la IP que se le envía a la función. Podemos cambiar el “==” por “!=” para hacer lo contrario.

function restringirIp($ip) { $ipCliente = obtenerDireccionIP(); if($ipCliente == $ip) { return true; } else { header('location: http://direccion_envio_salida'); exit; } } read more

Leer más » 5 Comentarios