Cronjob para bloquear una IP de día y desbloquearla de noche

Visitas: 30  
Tiempo total: 0 días con 15:24:49 hrs  

Bloquear una IP de un servidor web puede servir para mejorar el rendimiento. En este caso especifico, la IP será de Googlebot que visita el servidor un promedio de 20 veces por minuto, definitivamente hay algo sospechoso en esto. Aun así, no queremos ver afectada la visibilidad en Google ni nuestro rendimiento.

En lo que finaliza la investigación respecto a esta IP, una solución rápida es bloquear el acceso al servidor web de día, habilitar el acceso de noche. De esta manera, los recursos del servidor estarán un 33% más libres para los usuarios que visitan el portal web.

Para hacer esto posible utilizamos cronjob, un script se ejecutará a las 6 de la mañana para bloquear la IP, y el segundo se ejecutará a las 23:30 para desbloquear dicho acceso.

Crear archivo para bloquear y desbloquear

Iniciamos sesión ssh como usuario root y creamos el archivo bloquear.sh en una ubicación seguro:

/sbin/iptables -A INPUT -s {IP} -j DROP
/sbin/service iptables save

Reemplazamos {IP} por la que queremos bloquear. Luego, a dicho archivo le asignamos todos los permisos:

chmod 777 bloquear.sh

A continuación, creamos el script para desbloquear la IP:

/sbin/iptables -D INPUT -s {IP} -j DROP
/sbin/service iptables save

De la misma manera le asignamos todos los permisos.

Creando cronjob

Como usuario root ejecutamos el siguiente comando para ver los cronjobs programados:

sudo crontab –e

Para editar el archivo presionamos la tecla “i”, y copiamos los siguientes comandos:

1 6 * * * /mi_ubicacion_segura/bloquear.sh
30 23 * * * /mi_ubicacion_segura/desbloquear.sh

Presionamos “esc” para salir del modo de edición, a continuación “alt + :”, escribimos “wq” para guardar y salir.

Probando script

Podemos hacer la prueba con el plan de datos de nuestro celular y con la red cableada de nuestro trabajo o casa. En vez de bloquear la IP deseada, con nuestro celular entramos a https://www.cual-es-mi-ip.net/ y bloqueamos esa IP.

El script iptables lo podemos modificar para bloquear un minuto específico y desbloquear el siguiente minuto, para hacer esto tenemos que saber la hora del servidor con el comando “date”.

Es necesario bloquear la IP de nuestro celular porque si bloqueamos la IP de nuestra PC estaremos bloqueando todo el acceso ese ISP, haciendo imposible establecer comunicación con el servidor para revertir el comando.

Nota: el objetivo de esta publicación es el uso de de crontab para ejecutar dos scripts que bloquearán una IP, de esta manera el lector podrá implementar el código de acuerdo a sus requerimientos. El ejemplo de Googlebot es un solo ejemplo. Para el momento de esta publicación es solo una solución rápida.


Para recibir boletines de información, por favor escribe tu correo electrónico:

Por favor ingrese un correo electrónico valido.
Registrado correctamente!