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.
--
Iñaki Baz Castillo