Hola, estoy terriblemente preocupado:
Estaba yo feliz con mi supuesta seguridad entre distintos dominios alojados en mi OpenSer cuando he caído en la cuenta de que dicha seguridad es muy fácilmente rebasable sin más que llamar al "Contact" final de cualquier usuario de cualquiera de estos dominios.
Es decir, supongamos dos dominios locales: dom_A y dom_B.
- Si un usuario_A@dom_A llama al AOR sip:usuario_B@dom_B entonces mi OpenSer aplica las reglas entre-dominios para ver quién puede llamar a quién y tal. Ok.
- 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
Entonces la llamada es Outbound y se ruta directamente (t_relay). Además la llamada llega al destino desde su propio proxy por lo que no serviría ni una supuesta política de seguridad de firewall (impedir entrantes SIP desde IP's distintas a mi proxy).
Por supuesto que sólo permito outbound para dominios locales, pero el problema está en la seguridad entre ellos.
¿Y ahora qué hago? Sólo se me ocurre:
- Drástico: Eliminar la posibilidad de outbound proxy en mi OpenSer, así al menos doy pie a soluciones de firewall o NAT (la IP origen no sería el proxy así que NAT no lo deja pasar).
- Separar el outbound proxy a otro OpenSer en otra IP (para conseguir lo mismo que antes sin eliminar las llamadas Outbound).
En fin, me va a dar algo, ¿alguna otra alternativa más limpia y segura? ¿es realmente un proxy SIP que gestiona dominios separados? ¿o hay que poner necesariamente un B2BUA delante de cada entorno SIP?
Gracias por cualquier sugerencia.