7 de enero de 2004

Restringir accesos por IP

Hoy en día, con zonas de administración en nuestras páginas web, o si sencillamente tenemos documentos protegidos y reservados, puede ser una buena idea aumentar la seguridad de nuestro sitio web agregándole una limitación de acceso por ip, rango de ip o host.

De esta forma sirve para que a una zona de nuestra web, por ejemplo, solo accedan aquellos que tengan una determinada ip o host, así, zonas a las muestran que hay que introducir una contraseña, por ejemplo, sólo serían vistas por unas determinados pcs, en vez de estar visible para todo el mundo, con la falta de seguridad que ello conlleva, ya que así se evitarían muchos intentos por 'fuerza bruta' y probar claves.
Para ello vamos a utilizar el archivo .htaccess, como he comentado en otros tutoriales, es posible que algunos espacios gratuitos no permitan utilizar las posibilidades que brinda este archivo.

Para el ejemplo, crearemos un archivo llamado htaccess.txt pondremos la siguientes líneas:

deny from all
allow from 127.0.0.1
allow from 1.2.3.4
allow from pepe.com


Con estas líneas, estaríamos configurando que se impidiese la entrada a todo aquel que no venga desde la ip 1.2.3.4 , la ip 127.0.0.1 (acceso local) o sea del dominio pepe.com.

Podemos también permitir que entren todas las ips de un determinado subdominio, en este caso podríamos poner la línea " allow from 1.2.3 " y permitiríamos entrar a todo aquel desde la ip 1.2.3.0 hasta la ip 1.2.3.255.

Así pues, vamos a crear un archivo htaccess.txt con las ips que deseemos, para ello borraremos el archivo anterior de ejemplo y desde 0, pondremos la siguientes líneas:

deny from all
allow from la.direccion.ip.tuya
allow from 127.0.0.1

Cambia la.direccion.ip.tuya por tu dirección ip, y agrega cuantas líneas de "allow from ip" quieras para poner más ips.
Es vital que la línea "deny from all" esté presente en el documento y el "allow from 127.0.0.1", para permitir acceder localmente y evitar problemas.

Una vez creado el archivo htaccess.txt con las ips necesarias, lo guardaremos y lo subiremos a la carpeta a proteger o la carpeta donde esté el archivo a proteger, por ejemplo, nuestra zona de administración. Alli lo renombraremos a .htaccess, con un punto delante y sin extensión.

Nota: Si queremos volver a dejar las cosas como estaban, subiremos un archivo htaccess.txt vacío y lo renombraremos a .htaccess .

Nota2: Si estuviese únicamente en el archivo la línea " deny from all ", se restringiría el acceso a todo aquel que quisiese acceder al archivo via internet, salvo un acceso por cuenta Ftp o mediante acceso físico al ordenador donde esté ubicado.

De cualquier modo, quien acceda a la zona protegida, vería un error 403 Access Forbidden (Acceso prohibido).

Podemos, si queremos, personalizar el error que verían los que no tuviesen la ip necesaria para poder acceder.

Para ello crearíamos un archivo htaccess.txt , pondríamos la línea ErrorDocument 403 http://tudominio.com/403.html , donde el archivo 403.html sería el html que mostraría en caso de no tener la ip necesaria.

Lo subiríamos a la carpeta principal de nuestro ftp y lo renombraríamos a .htaccess para que surgiese efecto, no en la misma carpeta que queramos proteger, sino en la carpeta principal.