jueves, 24 de noviembre de 2016

Anatomia & Disección .htaccess paso a paso



Mucha Gente me ha preguntado o nos ha preguntado a los especialistas que trabajamos en el Centro de Investigaciones en Seguridad Informática acerca de  el famoso y bien ponderado archivo de configuración llamado:

.HTACCESS

y que se encuentra en la raíz  de nuestra página web y se preguntan 

  • Que es?
  • Como se usa?  
  • Por que usa? 
  • Donde se usa?  
  •  y que configuración es las más idónea? 

Hoy analizaremos este famoso y bien ponderado archivo.HTACCESS que es muy bien conocido como ARCHIVO DE CONFIGURACIÓN DISTRIBUIDO y que es usado en su mayoría de las veces en los servidores WEB APACHE, el cual te permite definir y configurar las diferentes directivas que se usaran en cada directorio y subdirectorios del servidor web sin la necesidad de editar el archivo de configuración principal de APACHE y además eh visto que muchos administradores no usan este pequeño archivo y realmente es de gran utilidad ya que si lo configuras de una manera correcta evitará pequeñas fugas en las conexiones, ayudará a mejorar el rendimiento y que nos hackeen el servidor y lo bonito de esto es que podremos usar este archivo de configuración para:

  • REDIRECCIONAR VISITAS
  • BLOQUEAR IP'S
  • EVITAR BACKDOORS
  • REDIRECCIONES SEO
  • CREAR DIRECCIONES AMIGABLES
    RESTRINGIR EL ACCESO A FOLDERS 
  • MANEJAR ERRORES DE ESTADO DEL SERVIDOR
    EVITAR HOTLINK
  • CAMBIAR EL DOMINIO YA SEA CON WWW O SIN EL.
  • MODIFICAR LA EXTENSION DE LOS ARCHIVOS DEL SERVIDOR. 




DONDE SE LOCALIZA?

Antes que nada debemos de saber algo súper importante y que es donde se localiza ese archivo, el . que se encuentra al inicio del nombre del archivo nos dice que es un archivo oculto y que normalmente yo lo veo ese archivo con mi cliente FTP con el cual acceso a mi servidor, pero debes de tener en cuenta que no debes de confundir el .HTACCESS con el HTACCESS.TXT  que si es visible sin necesidad de nada, esto solamente es en LINUX.


CÓDIGOS DE CONFIGURACIÓN DEL .HTACCESS

BLOQUEAR IP'S:

 Esta opción es muy conveniente usarla, por que como dije en lineas anteriores nos sirve para bloquear ip's especificas como lo son las ipś de los bots que indexan a nuestras paginas web en las máquinas de búsqueda como google, altavista y muchas mas.

Un ejemplo de configuración seria el siguiente:

 <Limit GET POST PUT>
order allow,deny
allow from all
deny from 11.22.33
deny from 34.12.254.13
deny from 22.33.44
deny from66.77.88.99.10
</LIMIT>


Como el siguiente ejemplo que el google bot hace la petición de la imagen:
 
 66.249.65.47 - - [23/Nov/2016:03:46:32 -0600] "GET /ccat/images/Portfolio05.png HTTP/1.1" 200 143978 "-" "Googlebot-Image/1.0"

66.249.65.47 - - [23/Nov/2016:03:46:32 -0600] "GET /ccat/images/Portfolio05.png HTTP/1.1" 200 143978 "-" "Googlebot-Image/1.0"




REDIRECCIONAR EL ESTADO HTTP

Redireccionar los métodos HTTP es lo mejor que podemos hacer para evitar que se muestre información del servidor como lo es versión del servidor web usado, el listado de archivos de un folder, preservar los ranking en los motores de búsqueda y cabe mencionar que existen varios, en especial el 301 que significa movido permanentemente.

solo añade esta linea:

RedirectMatch 301 /([0-9]+)/([0-9]+)/([0-9]+)/(.*)$ http://http://www.tu-web//$4

Si quieres configurar unos enlaces permanentes más óptimos, te aconsejo cambiar /% postname%/ por /% category%/% postname%/.

REDIRECCIONAMIENTO DEL MÉTODO 404 O PÁGINA EN MANTENIMIENTO

El servidor responde ante este cuando el cliente pone una sintaxis incorrecta o que no puede procesarse, excepto cuando se responde a una petición HEAD, el servidor  deberá incluir una descripción del error, recordando amigos que estos métodos son aplicables  a GET y POST.

 La configuración seria así:

 ErrorDocument 404 /error.html


pero te recomiendo lo que yo uso en mi .htaccess:

-----------------------------------------------------
ErrorDocument 400 /error/400.php
ErrorDocument 401 /error/400.php
ErrorDocument 402 /error/400.php
ErrorDocument 403 /error/400.php
ErrorDocument 404 /error/400.php
ErrorDocument 405 /error/400.php
ErrorDocument 406 /error/400.php
ErrorDocument 407 /error/400.php
ErrorDocument 408 /error/400.php
ErrorDocument 409 /error/400.php
ErrorDocument 410 /error/400.php
ErrorDocument 411 /error/400.php
ErrorDocument 412 /error/400.php
ErrorDocument 413 /error/400.php
ErrorDocument 414 /error/400.php
ErrorDocument 500 /error/400.php
ErrorDocument 501 /error/400.php
ErrorDocument 502 /error/400.php
ErrorDocument 503 /error/400.php
ErrorDocument 504 /error/400.php
ErrorDocument 505 /error/400.php

----------------------------------------------

IP PRIVADA PARA ACCESO A TU PANEL DE CONTROL


 
Esta configuración será de gran utilidad para evitar que ip´s extrañas o no autorizadas puedan accesar al panel de administración de tu pagina web y en especial será de gran utilidad para las webs que usan JOOMLA y WORDPRESS que tiene por default en el folder administrator y wp_admin el acceso a login.

y el código seria el siguiente:



AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName "Necesitas logearte con la ip correcta "
AuthType Basic
<LIMIT GET>
order deny,allow
deny from all
allow from xx.xx.xx.xx
</LIMIT>

Recordandote que deberás cambiar la ip con la cual te logearas al panel.



 PREVENIR LA NAVEGACIÓN EN UN DIRECTORIO

Debemos de configurar esto por si no queremos que vean o naveguen por el directorio y vean los archivos listados.

Options All -Indexes

y deberiías de incluir esto pequeño code para que les mande un mensaje de que están tratando de navegar.

Header set Aviso-Urgent "DEJA DE ESTAR VIENDO MIS CABEZERAS.....> ;p"


ESPECIFICAR EL LENGUAJE DEL SERVIDOR QUE SERIA POR DEFECTO


DefaultLanguage en-US

NO PERMITIR ACCESOS NO DESEADOS AL .HTACCESS

<Files .htaccess> order allow,deny deny from all </Files>


PREVENIR ACCESO INDESEADO  A LAS CARPETAS QUE NO TENGAN UN INDEX

Options All -Indexes
 
PREVENIR LISTADO DE DIRECTORIOS

IndexIgnore *




CAMBIAR LA EXTENSION DE LOS ARCHIVOS


AddType application/x-httpd-php .foo



BLOOUEAR ROBOTS MALICIOSOS

RewriteEngine On RewriteCond %{HTTP_USER_AGENT} ^BlackWidow [OR]

RewriteCond %{HTTP_USER_AGENT} ^Bot\ mailto:craftbot@yahoo.com [OR]

RewriteCond %{HTTP_USER_AGENT} ^Zeus RewriteRule .* - [F]



 Es mas amigos les recomiendo este code para que puedas bloquear la mayoría de bots maliciosos:

--------------------------------------------------------------


RewriteEngine on
 RewriteCond %{HTTP_REFERER} ^http(s)?://(www\.)?gameday.de.*$ [NC]
 RewriteCond %{HTTP_REFERER} ^http(s)?://(www\.)?play-texas-holdem.gameday.de.*$ [NC]
 RewriteCond %{HTTP_REFERER} ^http(s)?://(www\.)?forever.kz.*$ [NC]
 RewriteCond %{HTTP_REFERER} ^http(s)?://(www\.)?craps.forever.kz.*$ [NC]
 RewriteCond %{HTTP_REFERER} ^http(s)?://(www\.)?roulette-online.forever.kz.*$ [NC]
 RewriteCond %{HTTP_REFERER} ^http(s)?://(www\.)?play-poker.forever.kz.*$ [NC]
 RewriteCond %{HTTP_REFERER} ^http(s)?://(www\.)?onlinecasino.forever.kz.*$ [NC]
 RewriteCond %{HTTP_REFERER} ^http(s)?://(www\.)?texashold-em.freeservers.com.*$ [NC]
 RewriteCond %{HTTP_REFERER} ^http(s)?://(www\.)?playonline.inn7winter.com.*$ [NC]
 RewriteCond %{HTTP_REFERER} ^http(s)?://(www\.)?poker-new.com.*$ [NC]
 RewriteCond %{HTTP_REFERER} ^http(s)?://(www\.)?available-poker.com.*$ [NC]
 RewriteCond %{HTTP_REFERER} ^http(s)?://(www\.)?free-poker.available-poker.com.*$ [NC]
 RewriteCond %{HTTP_REFERER} ^http(s)?://(www\.)?texasholdem.prv.pl.*$ [NC]
 RewriteCond %{HTTP_REFERER} ^http(s)?://(www\.)?prv.pl.*$ [NC]
 RewriteCond %{HTTP_REFERER} ^http(s)?://(www\.)?homestead.com.*$ [NC]
 RewriteCond %{HTTP_REFERER} ^http(s)?://(www\.)?texaspoker.homestead.com.*$ [NC]
 RewriteCond %{HTTP_REFERER} ^http(s)?://(www\.)?t-e-x-a-s-poker.com.*$ [NC]
 RewriteCond %{HTTP_REFERER} ^http(s)?://(www\.)?texas-poker.olo.cc.*$ [NC]
 RewriteCond %{HTTP_REFERER} ^http(s)?://(www\.)?holdem-poker.servertown.com.*$ [NC]
 RewriteCond %{HTTP_REFERER} ^http(s)?://(www\.)?online-poker.played.by.*$ [NC]
 RewriteCond %{HTTP_REFERER} ^http(s)?://(www\.)?empire-poker.black-poker.com.*$ [NC]
 RewriteCond %{HTTP_REFERER} ^http(s)?://(www\.)?black-poker.com.*$ [NC]
 RewriteCond %{HTTP_REFERER} ^http(s)?://(www\.)?free.fr.*$ [NC]
 RewriteCond %{HTTP_REFERER} ^http(s)?://(www\.)?pc800cdf.free.fr.*$ [NC]
 RewriteCond %{HTTP_REFERER} ^http(s)?://(www\.)?free-poker.standard-poker.com.*$ [NC]
 RewriteCond %{HTTP_REFERER} ^http(s)?://(www\.)?cameralover.net.*$ [NC]
 RewriteCond %{HTTP_REFERER} ^http(s)?://(www\.)?golfshoot.com.*$ [NC]
 RewriteCond %{HTTP_REFERER} ^http(s)?://(www\.)?bitlocker.net.*$ [NC]
 RewriteCond %{HTTP_REFERER} ^http(s)?://(www\.)?bayfronthomes.net.*$ [NC]
 RewriteCond %{HTTP_REFERER} ^http(s)?://(www\.)?cafexml.com.*$ [NC]
 RewriteCond %{HTTP_REFERER} ^http(s)?://(www\.)?turniptruck.com.*$ [NC]
 RewriteCond %{HTTP_REFERER} ^http(s)?://(www\.)?trojan-horse.co.uk.*$ [NC]
 RewriteRule .* - [F,L]
 RewriteCond %{REMOTE_HOST} adm-muenchen\.de [NC,OR]
 RewriteCond %{REMOTE_HOST} cyveillance\.com [NC,OR]
 RewriteCond %{REMOTE_HOST} lightspeedsystems\.com [NC,OR]
 RewriteCond %{REMOTE_HOST} pea016-29980-net-adsl-01\.altohiway\.com [NC,OR]
 RewriteCond %{REMOTE_HOST} smartservercontrol\.com [NC,OR]
 RewriteCond %{REMOTE_HOST} syntryx\.com [NC,OR]
 RewriteCond %{REMOTE_HOST} proxad\.net [NC]
 RewriteRule ^.*$ - [F]
 RewriteCond %{HTTP_USER_AGENT} ^$ [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^BlackWidow [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Bot\ mailto:craftbot@yahoo.com [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^ChinaClaw [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Custo [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^DISCo [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Download\ Demon [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^eCatch [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^EirGrabber [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^EmailSiphon [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^EmailWolf [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Express\ WebPictures [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^ExtractorPro [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^EyeNetIE [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^FlashGet [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^GetRight [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^GetWeb! [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Go!Zilla [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Go-Ahead-Got-It [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^GrabNet [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Grafula [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^HMView [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} HTTrack [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Image\ Stripper [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Image\ Sucker [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} Indy\ Library [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^InterGET [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Internet\ Ninja [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} Java [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^JetCar [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^JOC\ Web\ Spider [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^larbin [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^LeechFTP [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^lwp:: [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^lwp- [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Mass\ Downloader [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^MIDown\ tool [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Mister\ PiX [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Navroad [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^NearSite [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^NetAnts [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^NetSpider [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Net\ Vampire [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^NetZIP [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Octopus [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Offline\ Explorer [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Offline\ Navigator [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^PageGrabber [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Papa\ Foto [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^pavuk [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^pcBrowser [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^RealDownload [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^ReGet [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^SiteSnagger [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^SmartDownload [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Schmozilla [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^SuperBot [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^SuperHTTP [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Surfbot [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^tAkeOut [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Teleport\ Pro [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^VoidEYE [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Web\ Image\ Collector [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Web\ Sucker [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^WebAuto [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^WebCopier [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^webcollage [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^WebFetch [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^WebGo\ IS [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^WebLeacher [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^WebReaper [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^WebSauger [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Website\ eXtractor [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Website\ Quester [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^WebStripper [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^WebWhacker [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^WebZIP [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Wget [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Widow [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^WWWOFFLE [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Xaldon\ WebSpider [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^Zeuse [NC]
 RewriteRule ^.*$ - [F]

 ---------------------------------------------------------------

 y podríamos y podríamos continuar con mas y mas configuraciones de tu .HTACCESS para mejorar la seguridad y desempeño de tus páginas web, pero creo que son los básicos.



Un saludo.

LI. RODOLFO H. BAZ
WWW.RODOLFOHBAZ.NET


No hay comentarios:

Publicar un comentario

Reportan caída de Facebook e Instagram a nivel mundial

  Reportan caída de Facebook e Instagram a nivel mundial Las sesiones de lo usuarios caducaron y al intentar acceder no pudieron volver a in...