IPTABLES AUTO ALIMENTADO...SE PUEDE HACER?

Iniciado por ea5ghe, 14 Noviembre 2012, 10:22 AM

0 Miembros y 1 Visitante están viendo este tema.

ea5ghe

Buenos dias.

En primer lugar, permitanme saludarles y agradecer la labor que desde este interesante foro creo que se lleva a cabo.

Quisiera hacer una pregunta en general, ya que por motivos profesionales no dispongo de mucho tiempo libre, solo he leido un poco por encima las normas de este foro, y reconozco que no he indagado mucho sobre el tema que quisiera proponerles.

En definitiva, y retomando el tema del asunto, le explico los antecedentes y las consecuencias:

Soy un usuario basico o se podria decir que semi/avanzado de Linux, y desde hace ya bastante tiempo, en casa tengo un Linux debian que me controla los servicios que tenemos de internet, como el acceso a impresoras, directorios, acceso a internet, etc.

Como medida de seguridad, tengo un firewall basado en IPTables, que dicho sea de paso, funciona a la perfeccion.

El caso es que desde hace unas semanas, estoy viendo los LOGS del sistema y veo que estoy siendo "azotado" con la m**rda del ZmEu.... :(  y lo que me dedico a hacer es incluir las IP´s que contienen las cadenas "ZmEu" al IPTables para que las desetime "silenciosamente" con -J DROP.... ;D

Mi pregunta, y se que voy a provocar alguna que otra sonrisa y voy a pecar de ingenuo (  :rolleyes: ) es:

Se puede hacer de alguna forma que dichas IP´s se auto-agreguen al script IPTables?

Un vez que que se auto agreguen, lo que SI se hacer es que el script IPTables se resetee para adquirir las nuevas RULES.

Es un placer haber tenido la oportunidad de expresar mi inquietud y no quiero desprovechar la ocasion para saludarles afectuosamente.

Un cordial saludo de EA5GHE.

m0rf

Puedes poner un snort con la cadena "ZmEu" como firma y que ejecute un script que agregue las ips a tu archivo de configuración.

Si hay un método profesional o una herramienta ya creada lo desconozco.

Saludos y suerte.
Si todos fuéramos igual de inteligentes no existiría la mediocridad porque no podríamos apreciarla. Aprecias la mediocridad?

cpu2

Hola

Cita de: ea5ghe en 14 Noviembre 2012, 10:22 AM
El caso es que desde hace unas semanas, estoy viendo los LOGS del sistema y veo que estoy siendo "azotado" con la m**rda del ZmEu.... :(  y lo que me dedico a hacer es incluir las IP´s que contienen las cadenas "ZmEu" al IPTables para que las desetime "silenciosamente" con -J DROP.... ;D

Muéstrame un fragmento de ese LOG, a ver si puedo ayudarte.

Un saludo.

ea5ghe

Hola y buenos dias a todos.

En principio, pediros disculpas por mi ausencia, pero el trabajo manda, y mas en esta epoca.

Tal y como me pediais, os inserto un volcado del error.log del apache2

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


[Mon Nov 19 23:18:37 2012] [error] [client 211.152.55.131] File does not exist: /var/www/phpmyadmin1
[Mon Nov 19 23:18:38 2012] [error] [client 211.152.55.131] File does not exist: /var/www/phpmyadmin2
[Mon Nov 19 23:18:39 2012] [error] [client 211.152.55.131] File does not exist: /var/www/pma
[Mon Nov 19 23:18:40 2012] [error] [client 211.152.55.131] File does not exist: /var/www/web
[Mon Nov 19 23:18:42 2012] [error] [client 211.152.55.131] File does not exist: /var/www/xampp
[Mon Nov 19 23:18:43 2012] [error] [client 211.152.55.131] File does not exist: /var/www/web
[Mon Nov 19 23:18:44 2012] [error] [client 211.152.55.131] File does not exist: /var/www/php-my-admin
[Mon Nov 19 23:18:45 2012] [error] [client 211.152.55.131] File does not exist: /var/www/websql
[Mon Nov 19 23:18:50 2012] [error] [client 211.152.55.131] File does not exist: /var/www/phpMyAdmin
[Mon Nov 19 23:18:25 2012] [error] [client 211.152.55.131] File does not exist: /var/www/admin
[Mon Nov 19 23:18:26 2012] [error] [client 211.152.55.131] File does not exist: /var/www/db
[Mon Nov 19 23:18:27 2012] [error] [client 211.152.55.131] File does not exist: /var/www/dbadmin
[Mon Nov 19 23:18:28 2012] [error] [client 211.152.55.131] File does not exist: /var/www/myadmin
[Mon Nov 19 23:18:29 2012] [error] [client 211.152.55.131] File does not exist: /var/www/mysql
[Mon Nov 19 23:18:31 2012] [error] [client 211.152.55.131] File does not exist: /var/www/mysqladmin
[Mon Nov 19 23:18:32 2012] [error] [client 211.152.55.131] File does not exist: /var/www/typo3
[Mon Nov 19 23:18:33 2012] [error] [client 211.152.55.131] File does not exist: /var/www/phpadmin
[Mon Nov 19 23:18:34 2012] [error] [client 211.152.55.131] File does not exist: /var/www/phpMyAdmin
[Mon Nov 19 23:18:36 2012] [error] [client 211.152.55.131] File does not exist: /var/www/phpmyadmin

Creo que  si yo quisiera que mi rc.fire (script lanzado iptables) añadiera la regla:

iptables -A INPUT -p tcp -s [ LA IP ATACANTE] --dport 80 -j DROP

Seria una forma medianamente fiable de evitar "sorpresas"...  :o

Cada vez que se cumpla la condicion [error] [client 211.152.55.131] file does not exist
se añadiria al rc_fire.sh y medio estaria protegido....

Quiero agradecer las respuestas que he recibido, pero  lamento no entender lo que el compañero me dijo de hacer "SNORT"... algo he leido, pero para tener las ultimas reglas de snort, hay que pagar.... y la cosa ta mu malitaaaaa.

En cualquier caso, recibid mi agradecimiento y espero alguna contestacion.

Saludos cordiales

EA5GHE

‭lipman

Preguntas si puedes? Porque no ibas a poder? Hazte un script en shell script que te mire el log, te coga la IP y te la añada al IPTABLES  ;)

ea5ghe

Buenas tardes....
JE JE JE JE

El caso es que lo habia pensado, pero mis conocimientos de shell-scripting son basicamente de pañal y biberon....

Podrias indicarme como afrontar ese reto??? (con un ejemplo, claro)

Saludos cordiales y repito mis agradecimientos por vuestra paciencia para conmigo.


‭lipman

No te puedo hacer el script porque no tengo naada de tiempo, pero te voy a indicar todo lo que pueda.

Metes en una variable el valor de la IP:

Código (bash) [Seleccionar]
variable=`cut ....`
Usa el cut -d" " diciendole que quieres el delimitador espacio en blanco, y luego seleccionas la columna. Esto seria lo más rudimentario, quedaría mucho mejor con un grep (-o)

Para añadir "algo" a un fichero simplemente haces:

Código (bash) [Seleccionar]
echo "algo" >> rutafichero

Por tanto, puedes hacer algo como:
Código (bash) [Seleccionar]
echo "linea Ip tables + variable + linea iptables"

Fin. No tiene más. Un saludo!

ea5ghe

Buenas noches (mi mujer me mata por las horitas que son....)

He mirado tus consejos, Lipman y mirando mucho ejemplos de scripting, he llegado a conseguir algo, pero la ip que da tiene un corchete al final que me estropea el formato...y lo peor es que no se usar el shell_typex y borrarlo...JE JE JE

Quiero agradecerte las molestias que te has tomado al orientarme, se que esta consulta mia puede ser un poco pedante, pero os aseguro que para mi es importante, y creo que lo mejor es acudir a los que saben.

Recibe mi mas sincero agradecimiento, lipman.

Este es el code de shell_scripting que medio funciona:

Código (actionscript) [Seleccionar]
cat error.log.1 | grep 'error' | grep 'script' | awk '{print $8}' >> ip.txt

Con el solo vamos a mirar las lineas de log que teniendo error de acceso, tambien tiene error de script y vamos a ir añadiendolas a un ficero de texto llamado ip.txt

Saludos de un agradecido usuario de este foro.

EA5GHE

ea5ghe

Buenas tardes.

Mirando por los mundos paralelos de INTERNET y sus ricos manuales, he pensado hacer esto mismo pero con el módulo -m string del IPTABLES....

iptables -I INPUT  --sport 0:65535 -p tcp -s 0.0.0.0/0 -m string --string "ZmEu" -j DROP
iptables -I INPUT  --sport 0:65535 -p tcp -s 0.0.0.0/0 -m string --string "script" -j DROP
iptables -I INPUT  --sport 0:65535 -p tcp -s 0.0.0.0/0 -m string --string "EL TEXTO QUE QUIERAS FILTRAR" -j DROP

Voy a comprobar si esto es asi de "EFECTIVO" y paso de complicarme la vida con direcciones IP´s y demas familia...

De cualquier forma, no dejo de expresaros mi agradecimiento por vuestro maravilloso tiempo.