> Hola a todos, que tal?
>
> Hoy he estado intentando hacer mi asterisk un poco más seguro y he
> deshabilitado las llamadas por usuarios no registrados con:
>
> alowguest=no
>
> Funciona perfectamente, los usuarios no registrados con asterisk no
> pueden remitir llamadas.
>
Repitiendo hasta la saciedad:
Estar registrado no tiene nada que ver con poder hacer llamadas.
¿Las llamadas entrantes entran por un peer definido en sip.conf (de
tipo "peer")?
--
Iñaki Baz Castillo
<i...@aliax.net>
> Hola de nuevo.
Eso es un comportamiento de tus terminales. Que tus terminales no dejen hacer
llamadas is no estás registrado, esto no quiere decir que hacer llamadas y
estar registrado tengan relación.
El registro únicamente tiene relación con la recepción de llamadas. Es digamos,
"decirle a la PBX dónde estoy ara que me pueda enviar llamadas". Para hacer
llamadas no necesitas estar registrado en absoluto. Tú ya sabes dónde está la
PBX :P
Si no has creado nada, *qué* diferencia una llamada a tu geográfico de
un intruso? Pregúntate eso.
--
/Saúl
http://saghul.net | http://sipdoc.net
> Okey entiendo...
sin usuario y contraseña no puedes hacer llamadas si no tienes lo del
allowguest o el secret en blanco (?) o el insecure.
para hacer llamadas nada de registro sino autenticación en cada llamada que
haces.
La teoría dice ... "depende" ... de como tengas configura la seguridad
de asterisk.
Saludos
----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.
> Hola de nuevo.
>
> Iñaki, para el tema de las llamadas entrantes no he creado nada en
> sip.conf ¿deberia de hacerlo? si es asi..no comprendo porqué.
>
> Las llamadas entrantes, entran por un numero geográfico apuntando a la
> ip de mi centralita.
Pero cuando esas peticiones lleguen a la centralita, la centralita
tiene que saber "de quien son" ... ya se autenticando por ip, o porque
tu has hecho un regiter => en el proxy del proveedor.
Y cuando sepa "de quien es la llamada entrante", tendrá que saber a
donde mandarla.
--Este email pertenece a la lista de Asterisk-ES (http://www.asterisk-es.org)
Entra ahora en el canal de irc de Asterisk-ES para charlar en directo sobre VoIP y
Asterisk: http://www.asterisk-es.org/
~~~~~ Normas de la lista Asterisk-ES: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
http://comunidad.asterisk-es.org/index.php?title=Lista:normas-asterisk-es
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Para anular la suscripción: asterisk-es...@googlegroups.com
Dices que lo entiendes pero sigues asumiendo que "registrarse" y
"autenticarse" significa lo mismo. No es así.
En SIP no te "logueas" al principio y luego ya no hace falta en el
resto de llamadas. No. Desconozco porqué todo el mundo tiene a pensar
que funciona así. En cada llamada hay qeu autenticarse, el serer lo
solicita respondiendo 407 al primer INVITE y el usuario debe generar
un segundo INVITE añadiendo credenciales en base al "nonce" recibido
en el 407. Todo esto no tiene NAAADA que ver con el hecho de que el
tfno se haya registrado previmente o no (cosa que SOLO sirve para
recibir llamadas allí donde esté, punto).
No. Que a un peer/user de asterisk se le exija autenticación SIP o no
depende de los atributos del peer correspondiente en sip.conf, y no
del parámetro allowguest.
> Como he dicho anteriormente, mi numero geográfico apunta a la
> dirección IP publica de mi asterisk. Dicho numero geográfico va a
> sociado con una URI de mi servidor (que apunta a una extensión).
>
> Cuando entran las llamadas desde el numero geográfico, en la consola
> de asterisk se autentifica el numero que me llama (Si me llama el
> numero 943423651, muestra +34943423651) y al activar el allowguest=no,
> no se consigue autentificar. ¿Que podria hacer?
Pero... ¿en qué te *basas* para decir que "se autentifica el numero
que me llama"? A ver: autenticarse conlleva usuario y password,
generación de credenciales, respuesta 407/401 del servidor informando
del noonce a usar para generar las credenciales, etc.
Por favor, deja de llamar "autenticar" a cualquier cosa, porque no es
cualquier cosa.
> Para las llamadas entrantes, entran directamente a mi asterisk.
Y para que se identifiquen con un determinado peer tendrás que tener
un peer definido en tu sip.conf con la IP del proveedor y "type=peer".
Si no haces eso, la llamada te entrará por el [general] vía el
contexto definido en "defaultcontext", y si allowguess es "no"
entonces directamente no entrará y será rechazada.
--
~~~ Normas de la lista Asterisk-ES: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> Me respnodo a mi mismo...
Mas bíen le haces caso a lo que te han explicado como 4 veces.
> Ya he encontrado la solución...como bien deciais tenia que declarar el
> proveedor sip que me vende el numero DID en el sip.conf (era
> obvio,como no).
Te la han dado, se humilde y da las gracias.
> Con esto, asterisk al intentar autentificarse alguna ip de esas 3
> extensiones, lo asociara al contexto 'entrantes'.
Demuestras con este párrafo no haber entendido una mierda de lo que
Iñaki te explicó, con esa configuración que has puesto NO le estás
pidiendo autenticación al proveedor, simplemente estás aceptando sus
invites SIN pedirle autenticación y estás diciendole a Asterisk que
hacer y a donde mandar esa peticiones. Solo estás IDENTIFICANDO y
ASOCIANDO las peticiones desde esas IP's, NO las estás autenticando.
A ver si aprendes que Autenticación no lo es mismo que Autorización,
ni tampoco es lo mismo que Registro.
> Mi duda ahora es... ¿yo no podria hacer todo esto sin tener que
> declarar el proveedor sip que vende los números DID en el sip.conf?
No deberías ni plantearte eso. Destierralo de tu mente, a no ser que
quieras ser carnaza de los hackers, y no precisamente de los de
sombrero blanco.
> Imaginense que yo doy acceso a un usuario a mi asterisk, con usuario y
> password. Y el sin mi consentimiento decide comprar un numero DID a
> cualquier proveedor y asociarlo a su cuenta, no podria ya que no tengo
> declarado tal host en mi sip.conf.. ¿Se podria hacer?
Que te quites esa idea de la cabeza, que vas por mal camino. Eso es
como ponerse a limpiar una escopeta cargada con el cañón apuntando a
tu cara.
> Porcierto Iñaki, gracias a tí y a todos por sus reexplicacionesa
> (jeje).
;-), es de sabios rectificar. Así que te pido disculpas por lo que te
puse en el otro mail.
> Ya entiendo la diferencia entre 'registrar' y 'autentificar', voy a
> citarla a continuación, si tengo cualquier error porfavor corriganme
> gracias :D...
>
>
> 'Autentificar': El telefono se autentifica contra la centralita
> cuando va a realizar una llamada. Este envia un INVITE sin las
> credenciales definidas, más tarde la centralita responde con un
> 'Unauthorized'. Entonces el telefono mandará otro INVITE con las
> credenciales definidas.
> Si todo fué bien la llamada podrá ser ejecutada. Allowguest=no .
> Evita que se AUTENTIFIQUEN usuarios no definidios en sip.conf
Vale, mas o menos ... XDD
> 'Registrar': Simplemente es para decirle a la centralita en que lugar
> nos encontramos, por ejemplo, en que ip nos encontramos para poder
> mandarnos llamadas. Sin no nos registramos no podemos recibir llamadas
> ya qué, asterisk no "sabe donde estamos"..
No, a la segunda parte, se pueden recibir llamadas si estar
registrado, de hecho es lo que te está pasando con tu proveedor de
DID, tu no te has registrado en el proveedor, pero estás recibiendo
llamadas, pues lo mismo se puede hacer con el Asterisk y los UAC's con
los que trabaje, le puedes enviar llamadas a un UAC sin necesidad de
que esté registrado.
Están bien definidos ambos conceptos ;)
Yo añadiría una cosa: Durante el registro *también* se pide
autenticación (en el 99,99% de las veces). Es decir, el tfno desde
alguna IP cualquiera envía el REGISTER, asterisk le responde 401 con
un nonce y el teléfono envía un nuevo REGISTER con credenciales.
En el otro correo lo has dicho muy bien, pero en éste estás
mencionando "autenticarse" incorrectamente. Las IP's no se autentican,
como mucho se autorizan. Para evitar líos yo sugiero asociar
"autenticación" única y exactamente al concepto de envío de request
SIP (INVITE/REGISTER/etc), respuesta 401/407 del server con un nonce y
envío de un nuevo request con credenciales.
> Mi duda ahora es... ¿yo no podria hacer todo esto sin tener que
> declarar el proveedor sip que vende los números DID en el sip.conf?
Podrías tal y como lo tenías antes, o sea, con allowguess=yes y todas
las llamadas entrarían al contexto que tengas en el parámetro
"defaultcontext" de la sección [global] en sip.conf.
> Imaginense que yo doy acceso a un usuario a mi asterisk, con usuario y
> password. Y el sin mi consentimiento decide comprar un numero DID a
> cualquier proveedor y asociarlo a su cuenta, no podria ya que no tengo
> declarado tal host en mi sip.conf.. ¿Se podria hacer?
Tal y como lo tienes ahora ya lo tienes hecho así, ¿no?
Hola de nuevo.
Esta todo 'casi' entendido jeje,pero quiero aclrar varias
cosas,veamos... ahi 2 respuestas dadas que se contradicen un poco:
Manwe Jon Bonilla:
>El registro únicamente tiene relación con la recepción de llamadas. Es digamos,
>"decirle a la PBX dónde estoy ara que me pueda enviar llamadas". Para hacer
>llamadas no necesitas estar registrado en absoluto. Tú ya sabes dónde está la
>PBX :P
r...@dimension-virtual.com
>No, a la segunda parte, se pueden recibir llamadas si estar
>registrado, de hecho es lo que te está pasando con tu proveedor de
>DID, tu no te has registrado en el proveedor, pero estás recibiendo
>llamadas, pues lo mismo se puede hacer con el Asterisk y los UAC's con
>los que trabaje, le puedes enviar llamadas a un UAC sin necesidad de
>que esté registrado.
¿Entonces técnicamente como consigue asterisk enviar la llamada a taldirección IP si no se ha registrado con la centralita?
r...@dimension-virtual.com
> Vale, mas o menos ... XDDjeje, ¿¿ mas o menos ?? ¿que más añadirias tu a esa parrafo?
Iñaki Baz Castillo:
Si pero con esto volveriamos al problema principal,¿no? una persona
>Podrías tal y como lo tenías antes, o sea, con allowguess=yes y todas
>las llamadas entrarían al contexto que tengas en el parámetro
>"defaultcontext" de la sección [global] en sip.conf.
sin usuario ni password,podria realizár llamadas por mi
asterisk ya que no estariamos pidiendo autentificación, ¿cierto?
Iñaki Baz Castillo:
No. Ahora mismo he añadido las IP de los servidores SIP de un
>Tal y como lo tienes ahora ya lo tienes hecho así, ¿no?
proveedor SIP en concreto. Si yo ahora compro otro DID en otro
proveedor
con diferentes ips, mi asterisk no aceptará el tráfico de este último
proveedor ya que no estarian asignadas en el sip.conf..
Muchisimas gracias a todos por vuestra gran ayuda.
Saludos.
~~~ Normas de la lista Asterisk-ES: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
http://comunidad.asterisk-es.org/index.php?title=Lista:normas-asterisk-es
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Para anular la suscripción: asterisk-es...@googlegroups.com
Un ejemplo más fácil de verlo sería la configuración de un proveedor
SIP el cuál obviamente tiene una IP fija.
Depende de lo que le permitas hacer en el contexto por defecto.
Hola de nuevo y vayas respuestazas que os habeis brindado señores,
gracias, gracias y 1000 gracias jeje...
Voy a dar un poquito más la lata...
Para el usuario Elio Rojano:
Creo que dicho parametro es host=dynamic. Pero creo recordar que este
parámetro solo conseguia la IP de los peers conectados una vez
registrados en asterisk. ¿cierto? si esto es asi, como conseguiria las
direcciones de los peers no registrados obteniendo dichos peers la ip
por DHCP (dinámica) ??
Iñaki Baz Castillo:
¿Que podria hacer para fijar el allowguest=yes, ahorrarme el declarar
cada ip de cada proveedor y demás? ¿Que podria fijar en el contexto
por defecto para tener algo de seguridad eficiente?
Muchisisisiissmas gracias a todos.
Bye :P
~~~ Normas de la lista Asterisk-ES: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
http://comunidad.asterisk-es.org/index.php?title=Lista:normas-asterisk-es
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Para anular la suscripción: asterisk-es...@googlegroups.com
Creo que ya se ha comentado esto bastante. Si quieres permitir
entrantes desde cualquier IP entonces allowguest=yes, pero insisto,
eso permite desde cualquier IP. Y obviamente no puedes añadir reglas
de Iptables porque, según parece, precisamente lo que quieres es no
tener que dar de alta peers por cada nuevo proveedor de envío de
llamadas entrantes.
De todas formas, lo mejor es, precisamente, que te encargues de dar de
alta esos peers.
Sí. Ya respondí a eso en otro correo pero no analizaste la respuesta.
=> *** If you want the phone to register itself ***
> Hola Iñaki y gracias de nuevo.
>
> Si ya me quedó claro para que sirve allowguest.El objetivo es ese,
> algo de seguridad sin tener que estar dando de alta cada peer que
> accedera a mi asterisk.
Tu sigues empeñado en apuntarte a la cabeza con una recortada ¿verdad?
... tu mismo.
> Respecto a lo de la "seguridad" no me referia
> tirar de iptables, simplemente que podria implementar en el Asterisk.
Asterisk no es fiable para temas de seguridad. Hay que complementarla.
> Si en [default] fijo el allowguest=yes, las llamadas de cualquier
> proveedor DID entran sin problemas, pero tambien dentro de mi red un
> usuario sin autentificar puede remitir llamadas.
Un usuario no ... CUALQUIER USUARIO, ya sea desde dentro o desde fuera
de tu red. PERO ya te lo ha dicho Iñaki como 4 veces ... si activas
allowguest=yes, las llamadas van a un sitio CONCRETO, ya dependerá de
lo que hagas ahí con las llamadas que recibas.
> ¿Podria dejar que accederia cualquier ip a mi asterisk y evitar que un
> usuario sin autentificar pueda remitir llamadas?
¿Si te regalo 2 mts de soga, prometes colgarte del árbol mas alto que
encuentres?
> Elio Rojano, muchisimas gracias a ti tambien, le hechare un vistazo,
> aunque leer en inglés me cuesta un poco y tengo que tirar de
> tráductor.
No te lo tomes a mal, pero las cosas que te comentan en castellano,
tampoco pareces entenderlas.
> Elio Rojano...
>
> Según dice del parámetro host....
>
>
> host = dynamic|hostname|IPAddr : How to find the client - IP # or host
> name. If you want the phone to register itself, use the keyword
> dynamic instead of Host IP.
>
> Dice que si se quiere saber la ip del cliente, envez de la IP que se
> fije el valor de host en 'dynamic'..
No dice eso, dice que si quieres que el terminal se registre el mismo,
que uses "dynamic". Hay que reconocer que la propia explicación en
inglés está mal, pero eso es otro tema.
> Creo que seria host el parámetro que hace "encontrar" la ip del peer.
Te equivocas de cabo a rabo ... el parámetro host, no es para
"encontrar" nada, es una forma más de hacer el pésimo peer-matching de
asterisk. Se tiene que combinar su uso con los parámetros username,
secret y la definición del peer [..] (otra espantosa limitación de
asterisk, dicho sea de paso).
Si pones host='dynamic', el peer-matching se hará en función de los
otros parámetros, si pones una IP concreta, el peer-matching se hará
por IP. Punto pelota.
Son los propios terminales los que le comunican a Asterisk su
ubicación (IP y puerto) mediante los mensajes REGISTER. La sección
10.1 (Registrations overview) del RFC3261 lo explica con algo más de
detalle.
Un proveedor SIP en cambio, no se va a registrar contigo, y su IP será
estática, por lo que usarás el host=X.X.X.X
Saludos,
--
/Saúl
http://saghul.net | http://sipdoc.net
No es nada correcto eso que dices, ni lo que comentas haber entendido
ni la pregunta formulada. SIP es SIP y está definido en el RFC 3261.
Si no sabes cómo funciona el mecanismo de registro SIP (REGISTER) todo
lo que digas serán meras especulaciones incorrectas.
Haz caso del mail que te acaba de enviar Saúl.
A ver ... que pareces estar liandote mas de la cuenta ...
TODO lo que necesitas se hace con el parámetro host, si host=dynamic
... Asterisk no podrá enviar llamadas a ese UAC, hasta que el UAC se
registre, si host=<IP>, Asterisk le podrá enviar llamadas a ese UAC
aúnque ese UAC no se haya registrado.
Atento a lo que he dicho en el prárrafo, el sentido de llamadas que
estamos hablando es Asterisk -> UAC .... en el caso de UAC ->
Asterisk, el parámetro host vale como una forma más (no la única) de
autenticar las llamadas provinientes de ese UAC.
Y sobre todo ... espero que te haya quedado claro ya, que REGISTER, no
es lo mismo que INVITE, y que una cosa es Autenticación y otra muy
diferente Autorización, y eso son solo 2 'A' ... del famoso AAA
(Autentication,Authorization,Accounting)
Más que autenticar sería autorizar, como bien explicas en tu siguiente
párrafo :)
> El día 25 de marzo de 2011 15:56, <ra...@dimension-virtual.com> escribió:
>> en el caso de UAC -> Asterisk, el parámetro host vale como una forma más (no
>> la única) de autenticar las llamadas provinientes de ese UAC.
>
> Más que autenticar sería autorizar, como bien explicas en tu siguiente
> párrafo :)
Es Viernes ... se benévolo que te prometo que esta semana ya me he
leído 2 veces par de RFC's de autocastigo por montar mal un servidor
de conferencias ...
;-)
Peor que autoflagelarse es leerse este RFC:
http://tools.ietf.org/html//rfc4825
Auténtica mierda. Muy recomendable para autodeprimirse.