Hola, ayer reporté un bug en OpenWengo ya que si lo registras contra una cuenta SIP (distinta de Wengo) resulta que en el REGISTER mete un completamente fuera de lugar "Route":
http://dev.openwengo.com/trac/openwengo/trac.cgi/ticket/1793
El caso es que eso provoca que OpenSer se reenvíe el mensaje así mismo infinitamente hasta que se cumpla msg:len ó max_forwards, entonces es desechado.
Pero claro, con la tontería ya hemos tenido unas cuantas decenas de mensajes procesadosa toda velocidad. No sé hasta qué punto puede ser esto cargante para la CPU y OpenSer, pero cualquiera desde cualquier parte del mundo puede poner un SipP que envíe este REGISTER "malicioso" infinitamente.
¿Cómo luchar contra estas cosas? o mejor dicho ¿hay que tratar de evitarlas? ¿tal vez con un módulo creo que nuevo que vi el otro día anunciado en la lista en inglés y que no recuerdo?
Yo le pase el sivus a OpenSER y crei que la pantalla se volvia loca, pero aguato como un machote... Lo suyo sería "bannear" la IP que te toca los cojones más de X veces o asi... hay algo para eso? :)
El 1/09/07, Iñaki Baz Castillo ibc@aliax.net escribió:
Hola, ayer reporté un bug en OpenWengo ya que si lo registras contra una cuenta SIP (distinta de Wengo) resulta que en el REGISTER mete un completamente fuera de lugar "Route":
http://dev.openwengo.com/trac/openwengo/trac.cgi/ticket/1793
El caso es que eso provoca que OpenSer se reenvíe el mensaje así mismo infinitamente hasta que se cumpla msg:len ó max_forwards, entonces es desechado.
Pero claro, con la tontería ya hemos tenido unas cuantas decenas de mensajes procesadosa toda velocidad. No sé hasta qué punto puede ser esto cargante para la CPU y OpenSer, pero cualquiera desde cualquier parte del mundo puede poner un SipP que envíe este REGISTER "malicioso" infinitamente.
¿Cómo luchar contra estas cosas? o mejor dicho ¿hay que tratar de evitarlas? ¿tal vez con un módulo creo que nuevo que vi el otro día anunciado en la lista en inglés y que no recuerdo?
-- Iñaki Baz Castillo
Users-es mailing list Users-es@openser.org http://openser.org/cgi-bin/mailman/listinfo/users-es
El Sábado, 1 de Septiembre de 2007, Saúl Ibarra escribió:
Yo le pase el sivus a OpenSER y crei que la pantalla se volvia loca, pero aguato como un machote...
Yo hice pruebillas con SipP en modo capullo y la verdad es que la máquina aguantaba muy muy bien. Supongo que para eso está diseñado OpenSer.
Lo suyo sería "bannear" la IP que te toca los cojones más de X veces o asi... hay algo para eso? :)
De hecho, por defecto viene activado un mecanismo (busca por disable_dns_blacklist) que precisamente filtra temporalmente ips que hayan enviado muchos mensajes, creo que dependiendo de si han tenido éxito o no... no estoy seguro. El caso es que he leído más de un comentario sobre que dicha opción debería estar deshabilitada por defecto porque muchas veces bloquea a teléfonos que en principio no están haciendo nada raro (me ha pasado en el curro). Para ello:
disable_dns_blacklist=yes # Para evitar los filtros TM/473.
Lo otro que comentaba era un nuevo módulo del que he leído no hace mucho en la lista inglesa (bueno, realmente fue ayer pero el correo sería de hace X días). O tal vez lo he soñado, el lunes lo reviso.
Saludos.
Hola,
Hola, ayer reporté un bug en OpenWengo ya que si lo registras contra una cuenta SIP (distinta de Wengo) resulta que en el REGISTER mete un completamente fuera de lugar "Route":
http://dev.openwengo.com/trac/openwengo/trac.cgi/ticket/1793
El caso es que eso provoca que OpenSer se reenvíe el mensaje así mismo infinitamente hasta que se cumpla msg:len ó max_forwards, entonces es desechado.
Pero claro, con la tontería ya hemos tenido unas cuantas decenas de mensajes procesadosa toda velocidad. No sé hasta qué punto puede ser esto cargante para la CPU y OpenSer, pero cualquiera desde cualquier parte del mundo puede poner un SipP que envíe este REGISTER "malicioso" infinitamente.
¿Cómo luchar contra estas cosas? o mejor dicho ¿hay que tratar de evitarlas? ¿tal vez con un módulo creo que nuevo que vi el otro día anunciado en la lista en inglés y que no recuerdo?
Para controlar el route del Route en un REGISTER puedes hacer algo como:
if is_method("REGISTER" && is_present_hf("Route")) sl_send_reply("403","Preloaded Route denied");
Para el tema de evitar floods puedes usar el módule pike.
Saludos JesusR.
------------------------------------ Jesus Rodriguez VozTelecom Sistemas, S.L. jesusr@voztele.com http://www.voztele.com Tel. 902360305 -------------------------------------
El Monday 03 September 2007 09:48:40 Jesus Rodriguez escribió:
Para controlar el route del Route en un REGISTER puedes hacer algo como:
if is_method("REGISTER" && is_present_hf("Route")) sl_send_reply("403","Preloaded Route denied");
Cierto. Lo que pasa es que realmente en cualquier mensaje que envies con un "Route: IP_OpenSer" ocurriría lo mismo.
Para el tema de evitar floods puedes usar el módule pike.
Ah vale, algo había leído, lo tengo por ahí "en los deberes" ;)
Gracias.
Hola,
El Monday 03 September 2007 09:48:40 Jesus Rodriguez escribió:
Para controlar el route del Route en un REGISTER puedes hacer algo como:
if is_method("REGISTER" && is_present_hf("Route")) sl_send_reply("403","Preloaded Route denied");
Cierto. Lo que pasa es que realmente en cualquier mensaje que envies con un "Route: IP_OpenSer" ocurriría lo mismo.
Pués cambia la condición a algo como:
if (( !has_totag() || is_method("REGISTER") ) && is_present_hf("Route"))
Saludos JesusR.
------------------------------------ Jesus Rodriguez VozTelecom Sistemas, S.L. jesusr@voztele.com http://www.voztele.com Tel. 902360305 -------------------------------------
El Monday 03 September 2007 10:12:42 Jesus Rodriguez escribió:
Hola,
El Monday 03 September 2007 09:48:40 Jesus Rodriguez escribió:
Para controlar el route del Route en un REGISTER puedes hacer algo como:
if is_method("REGISTER" && is_present_hf("Route")) sl_send_reply("403","Preloaded Route denied");
Cierto. Lo que pasa es que realmente en cualquier mensaje que envies con un "Route: IP_OpenSer" ocurriría lo mismo.
Pués cambia la condición a algo como:
if (( !has_totag() || is_method("REGISTER") ) && is_present_hf("Route"))
Pero eso se puede vulnerar sin más que generar un mensaje que no sea REGISTER, añadiéndole un "Route" y un "totag" (es la prueba que hice con SIPp). :(
Hola,
El Monday 03 September 2007 10:12:42 Jesus Rodriguez escribió:
Hola,
El Monday 03 September 2007 09:48:40 Jesus Rodriguez escribió:
Para controlar el route del Route en un REGISTER puedes hacer algo como:
if is_method("REGISTER" && is_present_hf("Route")) sl_send_reply("403","Preloaded Route denied");
Cierto. Lo que pasa es que realmente en cualquier mensaje que envies con un "Route: IP_OpenSer" ocurriría lo mismo.
Pués cambia la condición a algo como:
if (( !has_totag() || is_method("REGISTER") ) && is_present_hf ("Route"))
Pero eso se puede vulnerar sin más que generar un mensaje que no sea REGISTER, añadiéndole un "Route" y un "totag" (es la prueba que hice con SIPp). :(
Sí, pero un paquete así para un diálogo que no existe no sirve de nada.
Saludos JesusR.
------------------------------------ Jesus Rodriguez VozTelecom Sistemas, S.L. jesusr@voztele.com http://www.voztele.com Tel. 902360305 -------------------------------------
El Monday 03 September 2007 11:23:10 Jesus Rodriguez escribió:
if (( !has_totag() || is_method("REGISTER") ) && is_present_hf ("Route"))
Pero eso se puede vulnerar sin más que generar un mensaje que no sea REGISTER, añadiéndole un "Route" y un "totag" (es la prueba que hice con SIPp). :(
Sí, pero un paquete así para un diálogo que no existe no sirve de nada.
Bueno, para molestarme a mí si estoy viendo los logs XDDD
sr-users-es@lists.kamailio.org