LinuxParty
He intentado averiguar que IPs "externas" estaban haciendo consultas a la BBDD de MySQL, bueno, yo al menos, por mucho que lo he intentado no he conseguido conocer más IP que la del server de la BBDD, y ésta, no es la IP que quiero conocer.
Por lo que trasteando un poco, buscando por allí y por acá, vi algunos scripts de Python que me indicaban que consultas se estaban haciendo, (pero no las IP "externas" a ellas asociadas) la mayoría de estos guiones están basados en "processlist", una función incluida en MySQL, así que me dije... pues ya está estoy, voy a hacer el siguiente script, que aquí os dejo para vuestro regocijo, y que es lo más que se aproxima a lo que yo buscaba.
caputuraStart=$(date +%Y-%m-%d-%HH-%MM-%SS) echo "INICIO CAPTURA: $caputuraStart " # Bucle que puedes cambiar a tu elección, pero 100 consultas son suficientes. for i in {1..100}; do # Optenemos las IP (en un server, casi todas irán o al puerto 80 o 443) netstat -ntp | grep ESTABLISHED | awk '{print $5}' | cut -d: -f1 # usamos mysqladmin, con usuario y contraseña para ver "processlist" mysqladmin -u userdebasedatos -pcontraseña processlist --verbose done
caputuraStop=$(date +%Y-%m-%d-%HH-%MM-%SS) echo "FIN CAPTURA..: $caputuraStop
El script (o guión) te dice en la línea de "netstat" que IP que tenga conexión establecida (no en espera) está conectado al equipo, en la siguiente línea, mysqldadmin te dirá que consulta de MySQL que se está ejecutando. De esta forma podrías asociar IPs a consultas (que puedes ampliar en programación dentro de la aplicación php-mysql, por ejemplo, y que ya se escapa totalmente de la intención este artículo)
Después, por ejemplo, para los "chicos malos" puedes usar este script y bloquear las IP rápidamente:
#!/bin/bash if [ "$2" == "" ] ; then RangoIP=32 else RangoIP="$2" fi if [ "$1" == "" ] ; then echo "$0 IP Rango" echo "$0 192.168.1.7 32" echo "Bloqueará 192.168.1.7/32" exit 0 else IP="$1" fi echo "--------------------------" echo "iptables -I INPUT -s $IP/$RangoIP -j REJECT " iptables -I INPUT -s $IP/$RangoIP -j REJECT iptables -L -n | grep $IP
Puede contratar ExtreHost para temas profesionales con sus servidores. No lo dude, contáctenos.

-
News
- El desastre del sumergible Titán tardó años en gestarse, revelan nuevos detalles
- Los Sistemas Operativos Más Usados del Mundo
- CDIR: una forma más rápida de navegar por carpetas y archivos en Linux
- Cómo Instalar Linux en una Unidad USB ( Lapiz Óptico o Pendrive )
- Militares israelíes destruyen una clínica palestina esencial para enfrentarse al coronavirus
- Más personas obtienen sus noticias de las redes sociales que los periódicos, según un estudio
- Playboy elimina sus cuentas de Facebook
- Joplin, el reemplazo gratuito de Evernote, multiplataforma y opensource
- Nuestro respeto a Barrapunto, el primer portal de Software Libre
- Apple convierte open source su lenguaje de programación Swift
- Solicitud de Formulario para empleo de Al-Qaeda descubierto
- Ocurrió (y no pudimos publicar...)
- Nueva empresa hará posible que los diarios online cobren a sus lectores
- Primeras fotos y video del modelo A de Raspberry Pi
- Hoy es el día Internacional de la Libertad de Prensa
Comentarios
iptables -I INPUT -s $IP/$RangoIP -j REJECT
por
iptables -I INPUT -s $IP/$RangoIP -j DROP
en esos casos es recomendable utilizar DROP en lugar de REJECT, para descartar paquetes y evitar trafico de red, también es mas seguro.
Saludos!