IP Location Block

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

  • Native Geo-Location Provider
    IP Location Block provides Native Geo-Location Provider that is faster, more secure and provides the needed precision for matching CITY and STATE besides the standard COUNTRY matching.

  • 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 as wp-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 to wp-admin/*.php, plugins/*.php and themes/*.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 de wp-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.

  • Multiple source of IP Geolocation databases:
    Besides the Native Geo-Location provider, this plugin supports MaxMind GeoLite2 free databases and IP2Location LITE databases. Also free Geolocation REST APIs and whois information can be available for audit purposes.
    Father more, dedicated API class libraries can be installed for CloudFlare and CloudFront as a reverse proxy service.

  • Respuesta personalizable:
    El código de respuesta HTTP puede establecerse como 403 Prohibido para denegar el acceso a las páginas, 404 No encontrado para ocultar páginas o también 200 OK para redirigir a la página superior.
    También puedes tener una página amigable (como 404.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 usando add_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.

Documentation

Documentation and more information can always be found on our plugin website.

Atribución

This package includes GeoLite2 library distributed by MaxMind, available from MaxMind, and also includes IP2Location open source libraries available from IP2Location.

Also thanks for providing the following services and REST APIs for free.

Desarrollo

Development of this plugin happens at IP Location Block – GitHub

All contributions will always be welcome.

Problemas conocidos

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

  1. Ve a «Añadir nuevo» en el escritorio de plugins
  2. Busca «IP Location Block»
  3. Haz clic en «Instalar ahora»
  4. Activa el plugin en el escritorio de plugins
  5. Relájate un rato y ve a «Ajustes» » «IP Location Block»
  6. 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».

Does this plugin allows blocking US States, Country Regions or Cities?

Yes. Please view City/State Level Matching for more details.

¿Este plugin funciona bien con plugins de almacenamiento en caché?

La respuesta corta es , 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ñadir HTTP_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.

How to resolve issues related to ajax-requests being blocked in admin?

Check the «Admin ajax/post» option in «Back-end target settings», either disable it or whitelist the required Ajax actions.

¿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

19 de agosto de 2024 1 respuesta
I tried many solutions, even hired developers and spent $$$$$ to create state blocking mechanism for my site and failed miserably. This plugin does that for us at very small fraction of the cost. The developer is amazing, positive, replies fast and always ready to help.
6 de junio de 2024 1 respuesta
Great plugin to block countries. If you check logs on /var/log you can see that is really working.good support from forum and regular updates. sadly, mu-plugin option doesn’t seem to work fine.
6 de abril de 2024
Great plugin. Please keep on keeping it as simple & functional as possible. It’s fun to use a well built plugin.
5 de abril de 2024
Nice to see that this original plugin was taken over and updated and maintained. Compatible with hundreds of plugins we have tested. Extensive online docs and its on Github! Nice job, cannot say enough positive things about how this can assist and firewall or work standalone.
Leer todas las 26 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» está traducido en 2 idiomas. 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.3.3

Release Date – 24 Sep 2024

  • Fix admin post/ajax whitelisting
  • Fix PHP deprecation warnings
  • Fix PHP array access warnings
  • Fix support for Divi
  • Whitelist additional WordPress ajax actions by default
  • Remove unnecessary/unused files within the maxmind php extension

1.3.2

Release Date – 01 Aug 2024

  • Fix deprecation warning in PHP 8.2+
  • Test with WordPress 6.6

1.3.1

Release Date – 03 Apr 2024

  • Drop GeoIPLookup API because – the service ceased operations.
  • Test with WordPress 6.5

1.3.0

Release Date – 20 Feb 2024

  • Fix issue when «Front-end rules & behavior» matching rule is blacklist, response status is 30X and redirect URL is empty. It does not redirect.
  • Set the default blacklist redirect URL to blocked.iplocationblock.com.
  • Add status box in the settings screens that tells account quota, current running mode, etc.
  • Improve wording at few places that caused confusion.

1.2.3

Release Date – 12 Nov 2023

  • Prefix the css code to fix conflicts with other plugins (Woo / Super Cache, etc)
  • Add more sophisticated warnings when blocking rules are misconfigured or ASN is in use but the current enabled providers does not support ASN.
  • Exclude Divi «save-epanel» ajax action from ZEP
  • Fix warning triggered by the cron script

1.2.2

Release Date – 01 Nov 2023

  • Fix issue related to log and stats display
  • Fix issue that triggered alert on non-admin users (Editor and other)
  • Add additional two columns for CITY and STATE to Logs screen when using «IP Location Block» provider
  • Fix warnings when downloading Geolite2 DB
  • Other UI Improvements
  • Various Codebase improvements

1.2.1

Release Date – 31 Oct 2023

  • Fix SQLite logging related errors

1.2.0

Release Date – 30 Oct 2023

  • Precision blocking by city/state support via the native IP Location Block provider
  • Fixes various PHP 8.2 warnings reported on Github & forums
  • Codebase improvements related to external API providers
  • Test with WordPress 6.4

1.1.5

Release Date – 28 May 2023

  • Deploy procedure hotfix

1.1.4

Release Date – 28 May 2023

  • Codebase improvements
  • 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.
  • Fix array to string conversion when using the IPInfoDB provider
  • Refactor the search tab backend procedure

1.1.3

Release Date – 24 Jul 2022

  • Re-write the download_zip procedure to improve the external ip database download
  • Improved logged-in user detection when validation timing is enabled, fixes blocking issues in admin, undefined constants, etc.
  • Disable restrict_api by default so the external APIs will be enabled by default

1.1.2

Release Date – 03 May 2022

  • Fix issues with downloading local databases

1.1.1

Release Date – 02 May 2022

  • Fix fatal error caused by removed constant still in use

1.1.0

Release Date – 01 May 2022

  • Introducing premium IP Location Block REST API
  • Introduced new design for the provider table in Settings
  • Make action and filter names readable by IDEs
  • Fix a bug that prevented uninstalling the plugin
  • Fix various warnings triggered in PHP8+

1.0.7

Release Date – 21 Dec 2021

  • Fix IPv6.php – add compatibility with PHP7.4+

1.0.6

Release Date – 21 Nov 2021

  • Fixes broken plugin admin settings / stats pages

1.0.5

Release Date – 20 Nov 2021

  • Fix 307 Response Redirect loop
  • Fix wrong cron info in admin settings
  • Fix Undefined array key warnings in PHP8
  • FIx undefined IP_LOCATION_BLOCK_AUTH in some environments.

1.0.4

Release Date – 08 Jun 2021

  • Fix bugs related to the asn blocking feature
  • Trigger re-download of the asn database once the ASN feature is enabled via settings
  • Improved migration from legacy process, unset unused settings

1.0.3

Release Date – 18 May 2021

  • Add «Migrate from IP Geo Block» option if IP Geo Block settings are detected. This will copy the IP Geo Block settings.
  • Replaced the deprecated jQuery.trim() calls with String.trim()
  • Fix error when deleting the Emergency link using the «Delete current link» button.

1.0.2

Release Date – 18 May 2021

  • Fix mu-plugins option

1.0.1

Release Date – 17 May 2021

  • Drop ipdata.co API
  • Fixed the search tool

1.0.0

Release Date – 17 May 2021

  • Added PHP8 compatibility
  • Added support for Maxmind GeoLite2 database with api key
  • Replaced Google Maps with OSM/Leaflet
  • Updated DNS2 Library to support PHP8
  • Fixed IP2Location provider errors. Update to the latest version
  • Fixed various errors caught in error logs triggered in the newer PHP versions
  • Fixed the ipinfo.io API
  • Fixed the ipdata.co API