El Wednesday 24 October 2007 15:45:08 Iñaki Baz Castillo escribió:
El Miércoles, 24 de Octubre de 2007, Jesus Rodriguez escribió:
- Pero si por alguna llamada anterior se conoce el "Contact" final del
usuario_B@dom_B (ej: sip:usuario_B@80.80.80.80:5061) entonces el usuario_A@dom_A puede llamar **directamente** a usuario_B@dom_B sin pasar por la política de seguridad de mi OpenSer sólo con tener predefinido su OpenSer como Outbound proxy y llamar directamente a sip:usuario_B@80.80.80.80:5061
No entiendo esto... ¿porqué no pasa por las políticas de seguridad que tengas definidas?.
Bien, la sección "outbound" está antes de la "inbound" y en ella simplemente compruebo si el llamante es "mío" y si es así le pido auth y suto la llamada directamente (t_relay) y aplico RtpProxy y corrección de NAT.
Y luego viene la sección inbound donde, en función del dominio del RURI se aplica la política de seguridad, que viene a ser el tema que hice [1] de ACL's pero ahora mucho más "poderoso" (comparo fechas, horarios, IP's de origen, expresiones regulares, si es un forwarding o no...).
[1] http://blog.aliax.net/2007/08/openser-acls-multidominio.html
Es decir, recalco que la política de seguridad es en función del dominio y sólo se aplica para llamadas a usuarios de mis dominios.
Pero si un usuario de uno de mis dominios (dom_A) conoce (por una llamada previa) el Contact exacto de otro usuario mío de un dominio distinto (dom_B) e, insisto, completamente independiente de dom_B, entonces el usuario puede llamar directamente a:
sip:user_B@IP_Contact_user_B
por lo que la llamada en mi OpenSer se considera outbound y puesto que la realiza un usuario "mío" se la permito... ¡¡pero se salta toda la política de seguridad!!
Umm, o yo me le liado siguiendo el hilo o no tiene sentido lo que comentas.
Aunque el usuario A conozca el contact del B, no le puede mandar un Invite usando de outbound proxy, SI y siempre SI, tu compruebas que no es un dialogo en curso.
Aunque te pongan como outbound proxy, A ha de enviar un Invite a B y lo hará a través de tu proxy, otra cosa distinta es que intente enviarlo directamente de A a B, entonces no puedes hacer nada.
Además resulta que como dicho INVITE llegará desde el OpenSer el user_B lo aceptará de todas todas (ni siquiera hay una mínima protección de NAT o firewall posible).
Creo que te has liado, el INVITE no llegará a B, porque desde que A te lo mande pasará por todas tus reglas, a no ser que el orden de las reglas esté mal.