PDA

Voir la version complète : Utilisation de res_ldap.conf



ghostrider95
06/05/2011, 22h56
Bonjour,

je voudrais avoir quelques renseignement sur l'utilisation de res_ldap.conf, après avoir cherche sur la toile j'ai compris que mes soft phone pouvait s'authentifié à travers le LDAP au lieu du sip.conf
C'est bien ça?
Merci

PS: Mon asterisk est bien connecté au serveur LDAP mais je n'arrive pas à m'authentifié à travers

ghostrider95
07/05/2011, 14h26
Bonjour,

après quelques configurations je n'arrive pas à authentifier mes Users via LDAP, je vous montre mes fichiers de conf qui sera plus précis que des mots:

sip.conf



[general]
context=internal
rtcachefriends=yes
callevents=yes
realm=192.168.1.15
bindport=5060
srvlookup=yes
disallow=all
allow=ulaw
allow=gsm
language=en
trustrpid = yes
sendrpid = yes

register => 2000:Azerty95@192.168.1.15:5060




extconfig.conf




[sip]

sipusers = ldap,"dc=voip,dc=local",sip
sippeers = ldap,"dc=voip,dc=local",sip



res_ldap.conf



[_general]
;
; Specify one of either host and port OR url. URL is preferred, as you can
; use more options.
host=192.168.1.15 ; LDAP host
port=389
;url=ldap://192.168.1.14:389
protocol=3 ; Version of the LDAP protocol to use; default is 3.
basedn=dc=voip,dc=local ; Base DN
user=cn=Administrateur,dc=voip,dc=local ; Bind DN
pass=Alonso95 ; Bind password

; Configuration Table
[config]
;
; additionalFilter - This specifies an additional set of criteria to be used
; when querying the LDAP server.
;
additionalFilter=(objectClass=AstConfig)
;
; Attributes mapping (asterisk variable name = ldap attribute name)
; When Asterisk requests the variable by the name of the value on the left,
; this module will look up the attribute listed on the right.
;
filename = AstConfigFilename
category = AstConfigCategory
variable_name = AstConfigVariableName
variable_value = AstConfigVariableValue
cat_metric = AstConfigCategoryMetric
commented = AstConfigCommented

;
; Extensions Table
;
[extensions]
context = AstExtensionContext
exten = AstExtensionExten
priority = AstExtensionPriority
app = AstExtensionApplication
appdata = AstExtensionApplicationData
additionalFilter=(objectClass=AstExtension)

;
; Sip Users Table
;
[sip]


attribute = name => telephoneNumber
attribute = callerid => telephoneNumber
attribute = context => info
attribute = fullcontact => facsimileTelephoneNumber
attribute = host => ipPhone
attribute = mailbox => homePhone
attribute = md5secret => realmedPassword
attribute = nat => mobile
attribute = qualify => pager





un extrait de la CLI


new-host-2*CLI> realtime show ldap status
Connected to 'ldap://192.168.1.15:389', baseDN dc=voip,dc=local with username cn=Administrateur,dc=voip,dc=local for 8 minutes, 28 seconds.



Lorsque je m'identifie sur mon x-lite, dois-je rentrer l'@ip de mon serveur asterisk ou bien LDAP?

Merci

PS:@ ip asterisk : 192.168.1.14
@ ip LDAP: 192.168.1.15
client x-lite situé sur @ip 192.168.1.11

ghostrider95
08/05/2011, 18h44
Personne pour m'aider sur ce problème? :)

ffossard
08/05/2011, 23h08
Je te propose de faire d'abord fonctionner quelque chose de plus simple, plus documenté, et plus connu: res_mysql
A partir de là tu aura une bonne base pour attaquer res_ldap :)

Sinon pour la question, c'est bien Asterisk que le téléphone interroge, pas le serveur ldap (celui-ci n'est qu'une base de données, le sip il connait pas)

ghostrider95
08/05/2011, 23h18
Bonsoir,

merci pour ta réponse ça fais plaisir :)

Le pb c'est que dans le cahier des charges de mon projet en cours, je dois utiliser LDAP, je refais un topo sur ma config :

res_ldap.conf




;
; Configuration file for res_config_ldap
;

; Realtime configuration
; ----------------------
; In order to use this module, you start
; in extconfig.conf with a configuration like this:
;
; sipusers = ldap,"dc=myDomain,dc=myDomainExt",sip
; sippeers = ldap,"dc=myDomain,dc=myDomainExt",sip
; extensions = ldap,"dc=myDomain,dc=myDomainExt",extensions
; sip.conf = ldap,"dc=myDomain,dc=myDomainExt",config
;
; In the case of LDAP the last keyword in each line above specifies
; a section in this file.

; TLS support
; -----------
; Note that you can configure an ldaps: url here to get TLS support.
; Detailed configuration of certificates and supported CAs is done in your
; ldap.conf file for OpenLDAP clients on your system.
; This requires that you have OpenLDAP libraries compiled with TLS support

; ************************************************** *******************************
; NOTE: res_ldap.conf should be chmod 600 because it contains the plain-text LDAP
; password to an account with WRITE access to the asterisk configuration.
; ************************************************** *******************************

[_general]
;
; Specify one of either host and port OR url. URL is preferred, as you can
; use more options.
host=192.168.1.15 ; LDAP host
port=389
;url=ldap://192.168.1.14:389
protocol=3 ; Version of the LDAP protocol to use; default is 3.
basedn=dc=voip,dc=local ; Base DN
user=cn=Administrateur,dc=voip,dc=local ; Bind DN
pass=Alonso95 ; Bind password

[sip]

name = cn ; We use the "cn" as the default value for name on the line above
; because objectClass=AsteriskSIPUser does not include a uid as an allowed field
; If your entry combines other objectClasses and uid is available, you may
; prefer to change the line to be name = uid, especially if your LDAP entries
; contain spaces in the cn field.
; You may also find it appropriate to use something completely different.
; This is possible by changing the line above to name = AstAccountName (or whatever you
; prefer).
;

callerid = telephoneNumber
context = info
host = ipPhone
secret = userPassword



sip.conf



[general]
rtcachefriends=yes
callevents=yes
realm=192.168.1.15


extconfig.conf




[settings]

sipusers = ldap,"dc=voip,dc=local",sip
sippeers = ldap,"dc=voip,dc=local",sip



-Mon LDAP est un active directory donc windows, comme vous avez pu remarqué j'ai mis les attributs en fonction de AD dans mon res_ldap.conf pour communiquer avec Asterisk.

-J'ai crée un utilisateur toto dans mon AD avec comme numéro ip = 2000@192.168.1.14 ( adresse de mon asterisk)

- Je rentre donc cette adresse sur mon softphone mais il n'arrive pas à s'enregistrer + mon mot de passe du user LDAP , sur mon Wireshark je vois que il y a comme paquet ( Register to 192.168.1.15(@LDAP) - 100 Trying - 401 Unauthorized)

un extrait de mes logs



[May 8 23:17:53] ERROR[2845] netsock2.c: getaddrinfo("2000@192.168.1.14", "(null)", ...): Name or service not known
[May 8 23:17:53] WARNING[2845] acl.c: Unable to lookup '2000@192.168.1.14'
[May 8 23:17:53] NOTICE[2845] chan_sip.c: Registration from '"2000"<sip:2000@192.168.1.14>' failed for '192.168.1.11:22441' - No matching peer found
[May 8 23:17:53] WARNING[2845] chan_sip.c: Retransmission timeout reached on transmission 1ef0caba0beb33f55bf69c8c61158baa@192.168.1.14 for seqno 105 (Critical Request) -- See doc/sip-retransmit.txt.
Packet timed out after 100285ms with no response
[May 8 23:22:08] NOTICE[2668] cdr.c: CDR simple logging enabled.
[May 8 23:22:09] NOTICE[2668] loader.c: 211 modules will be loaded.
[May 8 23:22:14] NOTICE[2668] res_odbc.c: res_odbc loaded.
[May 8 23:22:14] NOTICE[2668] res_crypto.c: Key 'n' needs passcode.
[May 8 23:22:14] NOTICE[2668] res_crypto.c: Add the '-i' flag to the asterisk command line if you want to automatically initialize passcodes at launch.
[May 8 23:22:14] NOTICE[2668] res_crypto.c: Please run the command 'keys init' to enter the passcodes for the keys
[May 8 23:22:14] NOTICE[2668] res_smdi.c: No SMDI interfaces are available to listen on, not starting SMDI listener.
[May 8 23:22:14] WARNING[2668] loader.c: Error loading module 'res_pktccops': /usr/lib/asterisk/modules/res_pktccops.so: cannot open shared object file: No such file or directory
[May 8 23:22:14] WARNING[2668] loader.c: Error loading module 'chan_mgcp.so': /usr/lib/asterisk/modules/chan_mgcp.so: undefined symbol: ast_pktccops_gate_alloc
[May 8 23:22:14] WARNING[2668] loader.c: Module 'chan_mgcp.so' could not be loaded.
[May 8 23:22:15] NOTICE[2668] config.c: Registered Config Engine ldap
[May 8 23:22:15] ERROR[2668] res_config_pgsql.c: PostgreSQL RealTime: Failed to connect database asterisk on 127.0.0.1:
[May 8 23:22:15] WARNING[2668] res_config_pgsql.c: PostgreSQL RealTime: Couldn't establish connection. Check debug.
[May 8 23:22:15] NOTICE[2668] config.c: Registered Config Engine pgsql
[May 8 23:22:15] NOTICE[2668] config.c: Registered Config Engine curl
[May 8 23:22:15] NOTICE[2668] config.c: Registered Config Engine odbc
[May 8 23:22:15] WARNING[2668] chan_dahdi.c: Detected alarm on channel 4: Red Alarm
[May 8 23:22:15] WARNING[2668] chan_dahdi.c: Ignoring any changes to 'userbase' (on reload) at line 23.
[May 8 23:22:15] WARNING[2668] chan_dahdi.c: Ignoring any changes to 'vmsecret' (on reload) at line 31.
[May 8 23:22:15] WARNING[2668] chan_dahdi.c: Ignoring any changes to 'hassip' (on reload) at line 35.
[May 8 23:22:15] WARNING[2668] chan_dahdi.c: Ignoring any changes to 'hasiax' (on reload) at line 39.
[May 8 23:22:15] WARNING[2668] chan_dahdi.c: Ignoring any changes to 'hasmanager' (on reload) at line 47.
[May 8 23:22:16] NOTICE[2668] chan_skinny.c: Configuring skinny from skinny.conf
[May 8 23:22:16] ERROR[2668] chan_gtalk.c: connection referenced not found!
[May 8 23:22:16] WARNING[2668] cel_pgsql.c: CEL pgsql config file missing global section.
[May 8 23:22:16] NOTICE[2668] cel_tds.c: cel_tds has no global category, nothing to configure.
[May 8 23:22:16] WARNING[2668] cel_tds.c: cel_tds module had config problems; declining load
[May 8 23:22:16] WARNING[2668] pbx.c: Unable to register extension '2000', priority 1 in 'internal', already in use
[May 8 23:22:17] NOTICE[2668] pbx_ael.c: Starting AEL load process.
[May 8 23:22:17] NOTICE[2668] pbx_ael.c: AEL load process: parsed config file name '/etc/asterisk/extensions.ael'.
[May 8 23:22:17] NOTICE[2668] pbx_ael.c: AEL load process: checked config file name '/etc/asterisk/extensions.ael'.
[May 8 23:22:17] NOTICE[2668] pbx_ael.c: AEL load process: compiled config file name '/etc/asterisk/extensions.ael'.
[May 8 23:22:17] NOTICE[2668] pbx_ael.c: AEL load process: merged config file name '/etc/asterisk/extensions.ael'.
[May 8 23:22:17] NOTICE[2668] pbx_ael.c: AEL load process: verified config file name '/etc/asterisk/extensions.ael'.



Je sens que je suis prêt du but pourtant ça coince
Merci de votre aide!

ghostrider95
08/05/2011, 23h21
J'ai aussi suivi entre autres ces sites:

http://www.ced-info.com/administration-reseaux/asterisk-ldap

( Site de dessus basé sur OpenLDAP , mais pas sur AD mais le système reste le même pour les autres fichiers)

http://www.dialnode.com/asterisk-france/showthread.php?t=9304

Merci

ffossard
09/05/2011, 00h10
Je me doute bien qu'au final vous devez faire fonctionner ça avec un AD, le truc inutile et ultra-classique qu'on voit passer tous les mois sur le forum :spamafote:
Si vous voulez tout faire fonctionner d'un coup, désolé de vous le dire mais vous avez bien peu de chance de réussir, tout simplement parce qu'il y'a trop de maillons pouvant bloquer: res_ldap, extconfig, active directory, votre téléphone, etc...

Je vous conseille de d'abord vous entrainer avec quelque chose de plus simple et mieux documenté, res_mysql, ensuite de tester res_ldap avec openldap, et enfin de le relier à active directory, si vous n'y allez pas par étape vous n'êtes pas prêt d'y arriver :/

ghostrider95
09/05/2011, 11h43
Bonjour,

je vais éssayer de trouver des solutions en y allant pas à pas...

ghostrider95
09/05/2011, 12h45
Si quelqu'un a éssayer de le tester sur AD, je suis preneur car openldap est moins pratique je trouve

ffossard
09/05/2011, 12h56
Tu n'a pas le choix que de faire des étapes, sinon comment savoir si ton problème vient de la config de res_ldap ou de la config de ton Windows Server ? (une fois qu'on l'a fait fonctionné avec succès et qu'on comprends chaque étape du fonctionnent, ok, mais la première fois faut pas rêver ...)

Openldap c'est pas du clic-clic, mais au moins c'est local à ton serveur, c'est un "simple" annuaire ldap (ce dont Asterisk a besoin), c'est documenté pour une utilisation hors-AD, et y'a du log compréhensible, d'ailleurs je crois avoir vu passer un exemple sur le forum il y'a quelques temps.

Une fois que tu aura réussi avec openldap, tu abordera bien plus facilement la suite avec AD car tu aura une partie "validée".

ghostrider95
09/05/2011, 14h18
Je commence l'étape OpenLDAP
j'ai configuré les fichiers de conf mais sur mon asterisk je n'arrive pas à voir mon ldap
voici les erreurs de ma CLI


new-host-2*CLI> module reload res_config_ldap.so
-- Reloading module 'res_config_ldap.so' (LDAP realtime interface)
== Parsing '/etc/asterisk/res_ldap.conf': == Found
[May 9 14:30:28] WARNING[2909]: res_config_ldap.c:1747 ldap_reconnect: bind fai led: Can't contact LDAP server
[May 9 14:30:28] WARNING[2909]: res_config_ldap.c:1595 reload: Couldn't establi sh connection to your directory server. Check debug.
== LDAP RealTime driver reloaded.



Pourtant tout me semble correct dumoins pour une simple liaison asterisk-ldap

ghostrider95
09/05/2011, 14h48
Je vais reprendre mon TP sur AD, OpenLDAP je connais pas trop ( et d'ailleur ça aurais étais l'occaz) mais bon j'ai déjà une base sur LDAP ( mon realtime show ldap status me retourne quelque chose sur AD), bref j'écoute toujours vos conseils si vous m'en donnez.

PS: Quelqu'un pourrait éssayer de tester justement une authentification SIP-Active directory pour partager les astuces?

Merci

ghostrider95
09/05/2011, 19h45
J'approche du but, car je vois dans mon Wireshark que pour un utilisateur 8000rentré dans mon x-lite il intérroge bien mon LDAP avec CN=8000,DC=voip,DC=local........

Mais il y un pb à mon avisde la syntaxe soit dans mon AD pour la section Ip phone ou soit dans mon res_ldap.conf au niveau des attributs car regardez ma CLI au moment de l'enregistrement:



[May 9 19:57:53] ERROR[4177]: netsock2.c:245 ast_sockaddr_resolve: getaddrinfo("8000@192.168.1.14", "(null)", ...): Name or service not known
[May 9 19:57:53] WARNING[4177]: acl.c:569 resolve_first: Unable to lookup '8000@192.168.1.14'
[May 9 19:57:53] NOTICE[4177]: chan_sip.c:23511 handle_request_register: Registration from '"8000"<sip:8000@192.168.1.14>' failed for '192.168.1.11:6214' - No matching peer found


:confused:

ghostrider95
10/05/2011, 22h16
Bonsoir à tous,

j'ai changé l'adresse sip dans mon AD , et voici maintenant ce que me retourne ma CLI lors d'un enregistrement d'un softphone



> doing dnsmgr_lookup for 'sip:8000@192.168.1.14'
[May 10 22:27:34] WARNING[2856]: netsock2.c:169 ast_sockaddr_split_hostport: port disallowed
[May 10 22:27:34] WARNING[2856]: acl.c:569 resolve_first: Unable to lookup 'sip:8000@192.168.1.14'
[May 10 22:27:34] NOTICE[2856]: chan_sip.c:23511 handle_request_register: Registration from '"8000"<sip:8000@192.168.1.14>' failed for '192.168.1.11:48056' - No matching peer found
> doing dnsmgr_lookup for 'sip:8000@192.168.1.14'



Mon Wireshark indique


SIP Status 100 Trying ( 0 bindings)
SIP Status 401 Unauthorized ( 0 bindings)


Quelqu'un pourrait m'aider svp?

ghostrider95
11/05/2011, 21h35
Bonsoir,

je refais un post avec OpenLDAP en ésperant que vous pourriez m'aider