Descripción
El plugin IP Location Block te permite bloquear el acceso a tu sitio dependiendo de la ubicación del visitante, a la vez que mantiene tu sitio seguro frente a ataques malintencionados. El plugin viene con métodos de protección inteligentes y potentes denominados «Prevención de vulnerabilidades de día cero de WP» y «Prevención de vulnerabilidades de metadatos de WP».
En combinación con esos métodos y con la geolocalización de direcciones IP, te sorprenderás al encontrar un cúmulo de intentos de acceso malintencionado o indeseable bloqueados en los registros de este plugin luego de varios días de instalación.
Nota: Este plugin está basado en «IP Geo Block», un plugin ya abandonado de tokkonopapa. He corregido diversos problemas y mejorado todo el código base.
Características
-
Privacidad por diseño:
La dirección IP se encripta siempre durante el guardado en los registros / la caché. Además, puede anonimizarse y restringirse su envío a terceros como las API de geolocalización o el servicio WHOIS. -
Immigration control:
Access to the basic and important entrances into back-end such aswp-comments-post.php
,xmlrpc.php
,wp-login.php
,wp-signup.php
,wp-admin/admin.php
,wp-admin/admin-ajax.php
,wp-admin/admin-post.php
will be validated by means of a country code based on IP address. It allows you to configure either whitelist or blacklist to specify the countires, CIDR notation for a range of IP addresses and AS number for a group of IP networks. -
Zero-day Exploit Prevention:
Unlike other security firewalls based on attack patterns (vectors), the original feature «WordPress Zero-day Exploit Prevention» (WP-ZEP) is focused on patterns of vulnerability. It is simple but still smart and strong enough to block any malicious accesses towp-admin/*.php
,plugins/*.php
andthemes/*.php
even from the permitted countries. It will protect your site against certain types of attack such as CSRF, LFI, SQLi, XSS and so on, even if you have some vulnerable plugins and themes in your site. -
Protección frente a intentos de acceso:
Para impedir la piratería informática a través de XML-RPC mediante ataques de fuerza bruta y de fuerza bruta inversa, se limitará el número de intentos de acceso por IP incluso desde los países permitidos. -
Minimiza la carga del servidor contra ataques de fuerza bruta:
Puedes configurar este plugin como parte de los plugins imprescindibles, de tal forma que este plugin se cargue antes que los plugins regulares. Ello puede reducir la carga del servidor enormemente. -
Prevención de descargas y subidas malintencionadas:
Es posible bloquear solicitudes malintencionadas, como la exposición dewp-config.php
o la subida de malware mediante plugins y temas vulnerables. -
Bloquea robots y rastreadores maliciosos:
Una lógica sencilla puede ayudar a reducir la cantidad de robots y rastreadores de origen dudoso que extraen información de tu sitio. -
Compatibilidad con BuddyPress y bbPress:
Puedes configurar este plugin para que un usuario registrado pueda acceder como miembro desde cualquier lugar mientras que una solicitud, ya sea un nuevo registro de usuario, recuperación de contraseña perdida, creación de nuevos debates y suscripción a comentarios puede bloquearse por país. Es apropiado para BuddyPress y bbPress para ayudar a reducir el spam. -
Supresor de referentes para enlaces exterons:
Cuando haces clic en un hipervínculo externo en las pantallas de administración, se eliminará el origen de referencia HTTP para eliminar cualquier huella de tu sitio. -
Orígenes múltiples para las bases de datos de geolocalización de IP:
En este plugin se pueden instalarbases de datos gratuitas GeoLite2 de MaxMind (requiere PHP 5.4.0 o superior) y bases de datos LITE de IP2Location. La información de las API REST de geolocalización y de WHOIS también puede estar disponible para realizar auditorías.
Además, se pueden instalar bibliotecas de clases API dedicadas para CloudFlare y CloudFront como servicio de proxy inversa. -
Respuesta personalizable:
El código de respuesta HTTP puede establecerse como403 Prohibido
para denegar el acceso a las páginas,404 No encontrado
para ocultar páginas o también200 OK
para redirigir a la página superior.
También puedes tener una página amigable (como404.php
) en el directorio de la plantilla de tu tema padre/hijo para ajustarse al diseño de tu sitio. -
Registros de validación:
Es posible gestionar los registros de validación para obtener información útil para auditar patrones de ataque. -
Cooperation with full spec security plugin:
This plugin is lite enough to be able to cooperate with other full spec security plugin such as Wordfence Security. See this report about page speed performance. -
Extensibilidad:
Puedes personalizar el comportamiento de este plugin usandoadd_filter()
con el gancho de filtro predefinido. Revisa varios ejemplos prácticos en el samples.php integrado en este paquete.
También puedes obtener la extensión IP Geo Allow de Dragan. Hace que las pantallas de administración sean estrictamente privadas con una forma más flexible que especificar las direcciones IP. -
Prevención de autobloqueo y rescate sencillo:
Los propietarios de la web preferirían no ser bloqueados. Este plugin evita algo tan triste, a menos que lo fuerces. Además, si llegase a ocurrir, puedes rescatarte fácilmente. -
Desinstalación limpia:
No quedará nada en tu preciosa base de datos mySQL después de la desinstalación. Así que no dudes en instalar y activar este plugin para probar su funcionalidad.
Atribución
Este paquete incluye la biblioteca GeoLite2 distribuida por MaxMind, disponible en MaxMind (requiere PHP 5.4.0 o superior), y también incluye las bibliotecas de código abierto de IP2Location disponibles en IP2Location.
Gracias también por proporcionar estos grandiosos servicios y estas API REST gratuitamente.
- http://geoiplookup.net/ (IPv4, IPv6 / gratuito)
- https://ipinfo.io/ (IPv4, IPv6 / gratuito)
- https://ipapi.com/ (IPv4, IPv6 / gratuito, se requiere una clave API)
- https://ipdata.co/ (IPv4, IPv6 / gratuito, se requiere una clave API)
- https://ipstack.com/ (IPv4, IPv6 / gratuito, se requiere una clave API)
- https://ipinfodb.com/ (IPv4, IPv6 / gratuito, se requiere una clave API)
Desarrollo
Development of this plugin happens at IP Location Block
Toda colaboración siempre será bienvenida. O visita mi blog de desarrollo.
Problemas conocidos
- A partir de WordPress 4.5,
rel=nofollow
deja de adjuntarse a los enlaces encomment_content
. Este cambio impide el bloqueo de «falsificaciones de solicitud del lado del servidor» (no entre servidores, sino un enlace interno malintencionado en el campo del comentario). - WordPress.com Mobile App can’t execute image uploading because of its own authentication system via XMLRPC.
Capturas
Plugin IP Location - Pestaña de ajustes Plugin IP Location - Reglas de validación y comportamiento Plugin IP Location - Ajustes de destino en el escritorio Plugin IP Location - Ajustes de destino en la vista pública Plugin IP Location - Ajustes de la API de geolocalización Plugin IP Location - Ajustes de la caché de direcciones IP Plugin IP Location - Pestaña de estadísticas Plugin IP Location - Pestaña de registros Plugin IP Location - Pestaña de búsqueda Plugin IP Location - Pestaña de atribución
Instalación
Mediante el escritorio de WordPress
- Ve a «Añadir nuevo» en el escritorio de plugins
- Busca «IP Location Block»
- Haz clic en «Instalar ahora»
- Activa el plugin en el escritorio de plugins
- Relájate un rato y ve a «Ajustes» » «IP Location Block»
- Prueba el botón «Mejor configuración para el escritorio» al final de esta página de ajustes del plugin para una configuración sencilla.
Consulta en la documentación cuál es la configuración más adecuada para ti.
FAQ
-
¿El uso de este plugin es compatible con el RGPD?
-
Este plugin se ha diseñado según el principio de «Privacidad por diseño», así que puedes ejecutarlo y cumplir con el RGPD. Como protección frente a brechas de datos personales, en este plugin se encriptan las direcciones IP y también pueden anonimizarse por defecto. También proporciona algunas funciones, no solo para eliminarlas de forma manual, sino también para eliminarlas automáticamente cuando ha transcurrido un tiempo determinado.
Sin embargo, eso constituye una parte de los requerimientos de la RGPD y no garantiza que el sitio cumple con el RGPD. Consulta las notas de lanzamiento de la versión 3.0.11 para obtener más detalles.
-
¿Hay alguna forma de migrar desde IP Geo Block?
-
Sí. Si se detectan ajustes de IP Geo Block, verás la opción de migrar en Ajustes, en la sección «Ajustes del plugin». Esta copiará solo los ajustes de «IP Geo Block».
-
¿Este plugin es compatible con multisitio?
-
Sí. Puedes sincronizar los ajustes para todos los sitios de la red al activar para toda la red y activar los «Ajustes para toda la red» en la sección «Ajustes del plugin».
-
¿Este plugin funciona bien con plugins de almacenamiento en caché?
-
La respuesta corta es SÍ, especialmente para el propósito de seguridad, por ejemplo, bloqueo de accesos malintencionados mediante el escritorio y la vista pública.
Puedes encontrar la respuesta detallada y la lista de compatibilidad con plugins de caché en «Compatibilidad con plugins de caché».
-
Todavía tengo acceso desde países en la lista negra. ¿Funciona correctamente?
-
Definitivamente, SÍ.
Sometimes, a WordFence Security user would report this type of claim when he/she found some accesses in its Live traffic view. But please don’t worry. Before WordPress runs, WordFence cleverly filters out malicious requests to your site using auto_prepend_file directive to include PHP based Web Application Firewall. Then this plugin validates the rest of the requests that pass over Wordfence because those were not in WAF rules, especially you enables «Prevent Zero-day Exploit«.
Posiblemente se deba también a la precisión del código de país en las bases de datos de geolocalización. En realidad, existe el caso de que una misma dirección IP tenga un código de país diferente.
Para obtener más detalles, consulta «Todavía tengo acceso desde países en la lista negra».
-
¿Cómo puedo probar si este plugin funciona?
-
La forma más sencilla es utilizar una extensión de navegador de proxy gratuito.
Another one is to use http header browser addon.
Puedes añadir una dirección IP en la cabecera
X-Forwarded-For
para emular el acceso detrás del proxy. En ese caso, debes añadirHTTP_X_FORWARDED_FOR
en «Claves $_SERVER para IP adicionales» en la pestaña «Ajustes».Para obtener más detalles, revisa «Cómo probar la prevención de ataques».
-
¡Estoy bloqueado! ¿Qué debo hacer?
-
En primer lugar, busca una solución en Recuperación rápida del bloqueo en la página de acceso.
También puedes encontrar otra solución editando la sección de código «Emergent Functionality» hacia la parte final de
ip-location-block.php
. Este bloque de código puede activarse reemplazando/*
(apertura de comentario multilínea) al comienzo de la línea por//
(comentario de una sola línea), o*
al final de la línea por*/
(cierre de comentario multilínea)./** * Invalidate blocking behavior in case yourself is locked out. * * How to use: Activate the following code and upload this file via FTP. */ /* -- ADD '/' TO THE TOP OR END OF THIS LINE TO ACTIVATE THE FOLLOWINGS -- */ function ip_location_block_emergency( $validate, $settings ) { $validate['result'] = 'passed'; return $validate; } add_filter( 'ip-location-block-login', 'ip_location_block_emergency', 1, 2 ); add_filter( 'ip-location-block-admin', 'ip_location_block_emergency', 1, 2 ); // */
Ten en cuenta que deberás usar un editor apropiado.
Después de guardarlo y subirlo a
/wp-content/plugins/ip-location-block/
en tu servidor mediante FTP, podrás volver a acceder como administrador.Recuerda que debes subir el original después de la reconfiguración para desactivar esta característica.
Este artículo también puede ayudarte.
-
¿Debo activar todas las selecciones para mejorar la seguridad?
-
Sí. A grandes rasgos, la estrategia de este plugin tiene la siguiente estructura:
-
Bloqueo por país
Bloquea solicitudes malintencionadas desde fuera de tu país. -
Impedir vulnerabilidades de día cero
Bloquea solicitudes malintencionadas desde tu país. -
Forzar la carga del núcleo de WordPress
Bloquea la consulta que no ha sido cubierta en las dos anteriores. -
Firmas incorrectas en la consulta
Bloquea la consulta que no ha sido cubierta en las tres anteriores.
Prueba el botón «Mejor configuración para el escritorio» al final de esta página de ajustes del plugin para una configuración sencilla. Revisa también más detalles en «La mejor práctica de ajustes de destino».
-
-
¿Este plugin valida todas las solicitudes?
-
Por desgracia, no. Este plugin no puede manejar las solicitudes que no son analizadas por WordPress. En otras palabras, un archivo independiente (PHP, CGI o alguno ejecutable) no relacionado con WordPress no puede ser validado por este plugin, incluso si se encuentra en el directorio de instalación de WordPress.
Sin embargo, hay excepciones: Cuando activas «Forzar la carga del núcleo de WordPress» para el Área de plugins o el Área de temas, se vuelve posible bloquear un archivo PHP independiente. A veces, este tipo de archivos presenta algunas vulnerabilidades. Esta función protege tu sitio frente a estas situaciones.
-
¿Cómo puedo resolver «Lo siento, tu solicitud no se puede aceptar»?
-
Si te encuentras con ese mensaje, consulta la documentación para resolver tu problema de bloqueo.
Si no puedes resolver el problema, házmelo saber en el foro de soporte. Tus registros en este plugin y en «Información sobre la instalación» en «Ajustes del plugin» serán de gran ayuda para resolver el problema.
-
¿Cómo puedo corregir el error «No se puede escribir»?
-
Al activar las opciones de «Forzar la carga del núcleo de WordPress, este plugin intentará configurar
.htaccess
en los directorios/wp-content/plugins/
y/wp-content/themes/
para proteger tu sitio frente a los ataques malintencionados de los plugins y temas OMG.Sin embargo, algunos servidores no asignan permisos de lectura/escritura de
.htaccess
a WordPress. En ese caso, puedes configurar manualmente los archivos.htaccess
en lugar de activar las opciones de «Forzar la carga del núcleo de WordPress».Consulta «¿Cómo puedo corregir los problemas de permisos?» para corregir este error.
Reseñas
Colaboradores y desarrolladores
«IP Location Block» es un software de código abierto. Las siguientes personas han colaborado con este plugin.
Colaboradores«IP Location Block» ha sido traducido a 2 idiomas locales. Gracias a los traductores por sus contribuciones.
Traduce «IP Location Block» a tu idioma.
¿Interesado en el desarrollo?
Revisa el código , echa un vistazo al repositorio SVN o suscríbete al registro de desarrollo por RSS.
Registro de cambios
1.1.5
Hot fix: Deploy procedure hotfix
1.1.4
Improvement: Codebase improvements
Improvement: Drop the IP-API.com for now until we refactor the settings and make it possible to support apis that can be used with and without key.
Bug fix: Fix array to string conversion when using the IPInfoDB provider
Improvement: Refactor the search tab backend procedure
1.1.3
Bug fix: Re-write the download_zip procedure to improve the external ip database download
Bug fix: Improved logged-in user detection when validation timing is enabled, fixes blocking issues in admin, undefined constants, etc.
Improvement: Disable restrict_api by default so the external APIs will be enabled by default
1.1.2
Hot fix: Fix issues with downloading local databases
1.1.1
Hot fix: Fix fatal error caused by removed constant still in use
1.1.0
Feature: Introducing premium IP Location Block REST API
Improvement: Introduced new design for the provider table in Settings
Improvement: Make action and filter names readable by IDEs
Bug fix: Fix a bug that prevented uninstalling the plugin
Bug fix: Fix various warnings triggered in PHP8+
1.0.7
Corrección rápida: Se corrige IPv6.php, se añade compatibilidad con PHP 7.4 y superior.
1.0.6
Corrección rápida: Se corrigen los ajustes del administrador y las páginas de estadísticas del plugin, que estaban dañados.
1.0.5
Corrección de fallo: Se corrige el bucle de la respuesta 307 Redirección.
Corrección de fallo: Se corrige la información cron errónea en los ajustes del administrador.
Corrección de fallo: Se corrigen las advertencias de clave de array no definida en PHP8.
Corrección de fallo: Se corrige el IP_LOCATION_BLOCK_AUTH no definido en algunos entornos.
1.0.4
Corrección de fallo: Se corrigieron fallos relacionados con la característica de bloqueo de ASN.
Corrección de fallo: Se vuelve a lanzar la descarga de la base de datos de ASN una vez que la característica de ASN se activa desde los ajustes.
Mejora: Se ha mejorado la migración desde el proceso heredado, se anulan los ajustes no utilizados.
1.0.3
Mejora Se añade la opción «Migrar desde IP Geo Block» si se detectan ajustes de IP Geo Block. Esto copiará los ajustes de IP Geo Block.
Mejora: Se han reemplazado las llamadas jQuery.trim() obsoletas por String.trim().
Corrección de fallo: Se corrige el error al borrar el enlace de emergencia con el botón «Borrar el enlace actual».
1.0.2
Corrección de fallo: Se corrige la opción mu-plugins.
1.0.1
Mejora: Se elimina la API de ipdata.co.
Corrección de fallo: Se ha corregido la herramienta de búsqueda.
1.0.0
Mejora: Se ha añadido compatibilidad con PHP 8.
Mejora: Se ha añadido compatibilidad con bases de datos de GeoLite2 de Maxmind con una clave API.
Mejora: Se ha reemplazado Google Maps por OSM/Leaflet.
Mejora: Se ha actualizado la biblioteca DNS2 para ser compatible con PHP 8.
Corrección de fallo: Se han corregido los errores del proveedor IP2Location. Actualización a la última versión.
Corrección de fallo: Se han corregido varios errores detectados en los registros de errores provocados por las nuevas versiones de PHP.
Corrección de fallo: Se ha corregido la API de ipinfo.io.
Corrección de fallo: Se ha corregido la API de ipdata.co.