Ceci est le manuel Français pour GNU Gatekeeper 2.2.1 (partially updated for 2.3.2).
Une version plus récente (Anglais) du manuel se trouve dans l'archive téléchargée de GnuGk.
Chapitres:
Contenu ·
Introduction ·
Installation ·
Pour commencer ·
Config basique ·
Routage ·
Config RAS ·
Authentification ·
Accounting ·
Voisins ·
Config par terminal ·
Config avancée ·
Surveillance
La section suivante du fichier de configuration permet de configurer l'authentification.
La section définie le méchanisme d'authentification du gatekeeper.
- Syntax:
-
authrule=actions
<authrule> := SimplePasswordAuth | AliasAuth | PrefixAuth | RadAuth | RadAliasAuth | ...
<actions> := <control>[;<ras>|<q931>,<ras>|<q931>,...]
<control> := optional | required | sufficient
<ras> := GRQ | RRQ | URQ | ARQ | BRQ | DRQ | LRQ | IRQ
<q931> := Setup | SetupUnreg
Une règle peut retourner un de ces trois codes: ok, fail, pass.
ok - La requête est authentifié par le module.
fail - L'authentification a echoué et doit être rejeté.
next - La règle ne permet pas d'authentifié la requête.
Il existe aussi trois façons de contrôler une règle.
optional - Si la règle ne peut authentifié la requête, on passe à la règle suivante.
required - Les requêtes doivent être authentifiées par ce module, ou elles seront rejetées. Une fois authentifiée par ce module, la requête passera à la règle suivante.
sufficient - Si la règle est authentifié, elle est acceptée, sinon elle est rejetée. Aucune règle ne devrait suivre une règle 'sufficient' car elle ne servira jamais.
Modules actuellement supportés:
SimplePasswordAuth/SQLPasswordAuth/LDAPPasswordAuth
Ces modules vérifient les champs tokens or cryptoTokens du message RAS.
Les champs doivent au moins contenir generalID and password.
Le hashage simple MD5 des champs cryptoTokens, cryptoEPPwdHash et le hashage HMAC-SHA1-96 (libssl doit être installé) du champ nestedcryptoToken sont maintenant supportés. les hashages des champs par CAT (Cisco Access Token) et en texte clair (username/password) sont aussi supportés.
Le ID et le password sont lus depuis la section
[SimplePasswordAuth], une base de données SQL ou LDAP respectivement par les modules SimplePasswordAuth , SQLPasswordAuth et LDAPPasswordAuth . Le module MySQLPasswordAuth afin de conserver la compatibilité avec les versions précédentes.
AliasAuth/SQLAliasAuth/LDAPAliasAuth
Ce module ne peut être utilisé que pour l'authentification des RegistrationRequest (RRQ).
L'adresse IP d'un terminal et un alias donné doit vérifier une pattern donnée.
Pour AliasAuth , la pattern est définie dans la section
[RasSrv::RRQAuth].
Pour SQLAliasAuth , la pattern est rappatrier à partir d'une base de données SQL, définie dans la section
[SQLAliasAuth].
FileIPAuth
Ce module donne un moyen simple pour restreindre l'accès au gatekeeper selon l'addresse IP ou le réseau de l'appelant.
PrefixAuth
A l'origine ce module se nommait GkAuthorize .
L'adresse IP et l'alias de la requête et un préfix donné doivent vérifier une pattern donnée. Pour plus de détails voir la section
[PrefixAuth].
Actuellement le module ne sait vérifier que les AdmissionRequest (ARQ) et les LocationRequest (LRQ).
RadAuth
Ce module permet l'authentification suivant le schéma de sécurité username/password d'H.235. Il authentifie RRQ, ARQ, Q931 Setup grâce à des serveurs RADIUS distants. Il envoie aux serveurs RADIUS les usernames/passwords extrait du tokens CAT (Cisco Access Tokens) se trouvant dans les paquets RRQ, ARQ et Setup. Donc si votre terminal ne supporte pas les CATs ou bien you n'avez pas besoin d'un schéma d'authentification basé des usernames/password individuels - ce n'est pas le module qu'il vous faut (vous pouvez regarder du côté du RadAliasAuth ). Pour plus de détails se référer à la section
[RadAuth].
RadAliasAuth
Ce module permet d'authentifier à partir des alias de terminals et/ou des adresses IP "call signalling" avec l'aide de serveurs RADIUS. Il ne nécessite aucun tokens H.235 dans les messages RAS, il peut donc être uilisé avec une gamme plus large de systemes contrairement au module RadAuth . Les messages RRQ, ARQ, et Q.931 Setup peuvent être authentifiés avec ce module. Pour plus de détails se référer à la section
[RadAliasAuth].
SQLAuth
Un module puissant pour authentifier et authoriser les messages RRQ, ARQ, LRQ et Setup. Il peut effectuer des véréfications basés sur les paramètres précédents tels que le numéro de l'appelant, le numéro du destinataire, le nom d'utilisateur et d'autres paramètres. Il supporte aussi la limitation de la durée d'un appel, la réécriture de numéros, le routage d'appels, la vérification d'alias et l'assignation.
Se référer à la section
[RadAliasAuth]<@@ref>sqlauth[SQLAuth] pour plus de détails.
CapacityControl
Un module flexible permettant de controler le volume d'appels entrants avec la possibilité de configurer plusieurs conditions. IMPORTANT: Ceci doit être utilisé en conjonction avec le module accounting CapacityControl . Se référer à la section
[CapacityControl] pour plus de détails.
Vous pouvez aussi configurer une règle afin de vérifier seulement une partie des messages RAS. L'exemple suivant montre comment vérifier uniquement les RRQ et ARQ à partir du module SimplePasswordAuth avec une règle optionnelle. Si un RRQ n'est pas vérifié (ne contient pas de champs tokens ou cryptoTokens), il est passé à la règle suivante AliasAuth . La règle par défaut est d'acepter toutes les requêtes.
- Exemple 1:
-
SimplePasswordAuth=optional;RRQ,ARQ
AliasAuth=sufficient;RRQ
L'exemple ci-dessous authentifie tous les appels, vérifie le détils des messages de signalisation Setup avec le module RadAliasAuth.
- Exemple 2:
-
RadAliasAuth=required;Setup
default=allow
L'exemple suivant vérifie l'enregistrement des terminaux (RRQ) et l'admission d'appel (ARQ) soit par username/password (RadAuth) soit par alias/IP (RadAuthAlias). De plus, si l'ppel provient d'un terminal non enregistré (ET qu'aucune authentification par RRQ ou ARQ n'est été faite), le module RadAliasAuth vérifie alors le message Setup (SetupUnreg).
- Exemple 3:
-
RadAuth=optional;RRQ,ARQ
RadAliasAuth=required;RRQ,ARQ,SetupUnreg
default=allow
XXXXXXXXXXXXXXXXXXXX1
Cette section définie la paire userid/password utilisé par le module SimplePasswordAuth . Tous les mots de passe sont cryptés avec le programme addpasswd .
Usage:
addpasswd config section userid password
Exemple:
addpasswd config.ini SimplePasswordAuth frank secret
Options:
KeyFilled=123
Défaut: 0
Valeur par défault à utiliser comme octets de remplissage pendant l'encryption/décryption du mot de passe.
CheckID=1
Défautt: 0
Vérifie si les alias correspondent aux ID dans les marques.
PasswordTimeout=120
Défaut: -1
Le module SimplePasswordAuth et tous ses descandants mettent en cache un mot de passe authentifié. Ce champ définie le durée de vie du cache en seconde.
0 signifie qu'aucun cache ne sera utilisé, alors qu'une valeur négative indique que le cache n'expirera jamais.
DisableAlgorithm=MD5,H.235.1
Défaut: N/A
Désactive les algorithmes d'authentification H.235 dans la négotiation GRQ/GCF, sinon tous les algorithmes supportés par GnuGk sont utilisés.
Un algorithme désativé sera encore utilisé s'il est utilisé par un terminal sans négotiation.
Cet interrupteur peut être utilisé pour éviter des incompatibilités avec des implémentations vendeur.
Authentifie les terminaux compatibles H.235 à partir de mots de passe enregistrés dans une base de données SQL. Cette section définie les gestionnaires SQL à utiliser, les paramètres de connexion à la base de données SQL et la requête pour récupérer les mots de passe.
Driver=MySQL | PostgreSQL
Défaut: N/A
Gestionnaire de base de données SQL à utiliser. Actuellement seul MySQL et PostgreSQL sont implémentés.
Host=DNS[:PORT] | IP[:PORT]
Défaut: localhost
Adresse de l'hôte hébergeant la base de données SQL. Peut-être de la forme de DNS[:PORT] ou IP[:PORT] .
Par exemple sql.mycompany.com ou sql.mycompany.com:3306 ou 192.168.3.100 .
Database=billing
Défault: billing
Nom de la base de données à laquelle se connecter.
Username=gnugk
Compte utilisé pour se connecter à la base de données.
Password=secret
Mot de passe utilisé pour se connecter à la base de données.
Si le mot de passe n'est pas indiqué, une connexion sans mot de passe sera tenter à la base de données.
Si EncryptAllPasswords est actif, ou si la variable KeyFilled est définie dans cette section, le mot de passe sera sous une forme encrypté et doit être créé avec l'utilitaire addpasswd .
CacheTimeout=120
Défaut: 0
Ce champ définie combien de temps la paire (alias:mot de passe) récupérée de la base de données sera conservée en cache en local. L'unité de base est la seconde. 0 signifie que le cache n'est pas actif, une valeur négative désactive l'expiration du cache (seule la commande reload forcera le rafraîchissement du cache).
MinPoolSize=5
Défaut: 1
Définie le nombre de connexions SQL actives simultannées. Cela permet des performances accrues lors de charges élevées, car plusieurs requêtes concurrentes peuvent alors être exécutées en même temps. Si MinPoolSize=1 le précédent comportement est recréé, les requêtes à la base de données sont sérialisées.
Query=SELECT ...
Défaut: N/A
Définie la requête SQL utilisée pour récupérer le mot de passe H.235 de la base de données. La requête est personnalisable - avant chaque requête les nouvelles valeurs sont substituées aux paramètres de remplacement.
Parameter placeholders are denoted by %1, %2, ... strings.
Specify %% to embed a percent character before a digit into string (like %%1),
specify %{1} to allow expansion inside complex expressions like %{1}123.
For SQLPasswordAuth two parameters are defined:
%1 - l'alias pour lequel on demande le mot de passe
%2 - l'identification de la gatekeeper
Exemples:
SELECT h235password FROM users WHERE alias = '%1' AND active
SELECT h235password FROM users WHERE alias = '%1' AND gk = '%2'
Spécifie l'action lors de la réception d'un message RRQ (confirmation ou rejet) pour le module AliasAuth .
Le premier alias (le plus souvent un H323ID) du terminal à enregistrer est recherché dans la section. Si un paramètre est trouvé la valeur sera appliquée comme une règle. Une règle est constituée de condititions séparées par des '&'.
Un enregistrement est accepté si toutes les conditions sont vérifiées.
- Syntax:
-
<authrules> := empty | <authrule> "&" <authrules>
<authrule> := <authtype> ":" <authparams>
<authtype> := "sigaddr" | "sigip"
<autparams> := [!&]*
La notation et la signification des <authparams> dépendent de <authtype> :
sigaddr - expresson régulière étendue qui s'applique à ``PrintOn(ostream)'', la représentation de l'adresse du signal de la requête.
Exemple:
sigaddr:.*ipAddress .* ip = .* c0 a8 e2 a5 .*port = 1720.*
sigip - forme spécialisée de `sigaddr '.
Ecrire l'adresse IP de la signalisation en notation décimal:
``byteA.byteB.byteC.byteD:port ''.
Exemple:
sigip:192.168.242.165:1720
allow - toujours accepter l'alias.
deny - toujours rejeter l'alias.
Authentifie les terminaux par des règles stockées dans base de données SQL (les règles doivent être conformes au format de la section
[RasSrv::RRQAuth]).
Cette section définie le gestionnaire SQL à utiliser, les paramètres de la connexion à la base de données and la requête à utiliser.
Driver=MySQL | PostgreSQL
Défaut: N/A
Gestionnaire de base de données à utiliser, les versions pour MySQL et PostgreSQL sont implémentées.
Host=DNS[:PORT] | IP[:PORT]
Défaut: localhost
Adresse de l'hôte hébergeant le serveur SQL. Peut être de la forme DNS[:PORT] ou IP[:PORT] .
Par exemple sql.mycompany.com ou sql.mycompany.com:3306 ou 192.168.3.100 .
Database=billing
Défaut: billing
Nom de la base de données à laquelle se connecter.
Username=gnugk
Compte utilisé pour se connecter à la base de données.
Password=secret
Mot de passe utilisé pour se connecter à la base de données.
Si aucun mot de passe n'est spécifié, une connexion sans mot de passe sera effectuée.
Si EncryptAllPasswords est selectionné, ou la variable KeyFilled est définie dans cette section, le mot de passe sera sous une forme encryptée et peut être généré par l'utilitaire addpasswd .
CacheTimeout=120
Défaut: 0
Ce champ définie combien de temps le couple (alias;authrule) récupéré depuis la base de données sera conservé dans le cache local.
La valeur à pour unité la seconde. 0 signifie qu'aucune règle ne sera mise en cache, et une valeur négative indique que le cache n'expire jamais (seule la commande reload forcera le rafraîchissement du cache).
MinPoolSize=5
Défaut: 1
Définit le nombre de connexions simultanéés à la base de données SQL. Cela permet une performance accrue sous charge élevée (pusieurs requêtes sont alors exécutées en parallèle). Si MinPoolSize=1 simule le conportement des versions précédentes (les requêtes sont lancées en série, une requête à la fois).
Query=SELECT ...
Défaut: N/A
Définie la requête SQL utilisées pour récupérer la règle d'alias de la base de données. La requête est personnalisable - ce qui signifie que le remplacement des paramètres est fait à chaque nouvelle requête.
Parameter placeholders are denoted by %1, %2, ... strings.
Specify %% to embed a percent character before a digit into string (like %%1),
specify %{1} to allow expansion inside complex expressions like %{1}123.
For SQLAliasAuth two parameters are defined:
%1 - l'alias pour lequel on recherche la règle.
%2 - l'identification de la gatekeeper.
Exemple:
SELECT authrule FROM users WHERE alias = '%1' AND active
SELECT 'sigip:' || host(ip) || port FROM users WHERE alias = '%1'
Cette section définie les règles d'authentification pour le module PrefixAuth . Actuellement, seuls les messages ARQs et LRQs peuvent être authentifiés par ce module.
On débute par le préfix le plus spécifique du champ destinationInfo de la reqête reçue. Ensuite la requête est eccepté ou non suivant les règles dans l'ordre spécifique décroissant. Si aucune correspondance de préfix n'est trouvée, et que l'option par default est spécifié, cette dernière accepte ou non la reqête. Autrement la requête continue sont parcourt dans les modules d'authification suivant les conditions du module.
- Format:
-
prefix=authrule[|authrule|...]
- Syntax:
-
<authrule> := <result> <authrule>
<result> := deny | allow
<authrule> := [!]ipv4:<iprule> | [!]alias:<aliasrule>
Où <iprule> peut être noté en notation décimal ou CIDR, <aliasrule> est une expression régulière. Si `! ' précède la règle, le sens est inversé.
- Example:
-
555=deny ipv4:10.0.0.0/27|allow ipv4:0/0
5555=allow ipv4:192.168.1.1|deny ipv4:192.168.1.0/255.255.255.0
86=deny !ipv4:172.16.0.0/24
09=deny alias:^188884.*
ALL=allow ipv4:ALL
Dans cette configuration, tous les terminaux sauf ceux du réseau 10.0.0.0/27 sont autorisés à appeler le préfix 555 (execpté le 5555).
Les terminaux du réseau 192.168.1.0/24 sont autorisés à appeler le préfix 5555, sauf 192.168.1.1 .
Les terminaux ne provenant pas de 172.16.0.0/24 ne sont pas autorisés à appeler le préfix 86.
Les terminaux ayant un alias commençant par 188884 ne sont pas autorisés à appeler le préfix 09. Toutes les autres situations sont autorisées.
Cette section définie les options qui permettent d'activer l'authentification RADIUS basé sur le H.235 CATs (Cisco Access Tokens) présent dans les requêtes RAS RRQ et ARQ et les messages Setup Q931.
Servers=SERVER1[:AUTH_PORT[:ACCT_PORT[:SECRET]]];SERVER2[:AUTH_PORT[:ACCT_PORT[:SECRET]]];...
Default: N/A
Définie les serveurs RADIUS utilisés pour l'authentification. Cette liste peut contenir un nombre arbitraire de serveurs. L'ordre des serveurs sera respecté par le module RADIUS lors du processus d'interrogation. Si aucun port UDP n'est indiqué, DefaultAuthPort sera utilisé. De même avec le secret et SharedSecret .
Adresses IP ou nom DNS peuvent être utilisés comme nom pour les serveurs RADIUS.
- Exemple
Servers : -
Servers=192.168.1.1
Servers=192.168.1.1:1645
Servers=192.168.1.1:1645:1646:secret1
Servers=radius1.mycompany.com:1812
Servers=radius1.mycompany.com;radius2.mycompany.com
Servers=radius1.mycompany.com:1812:1813:secret1;radius2.mycompany.com:1812:1813:secret2
LocalInterface=IP_OR_FQDN
Défaut: N/A
Interface réseau que le client RADIUS doit utiliser pour communiquer avec les serveurs RADIUS. Ce paramètre peut être utile sur les machines "NATées". By défaut cette valeur est vide et c'est la table de routage de l'OS qui choisit l'adresse IP source. Si vous n'êtes pas certain de ce que vous faîtes, il est préférable de laisser cette option vide.
RadiusPortRange=10000-11000
Défaut: N/A
Par défaut (si cette option n'est pas définie), le client RADIUS alloue des ports dynamiquement comme indiqué par l'OS. Si vous désirez que le client RADIUS utilise des ports d'une plage particulière seulement - configurer ce paramètre.
DefaultAuthPort=PORT_NO
Défaut: 1812
Ports UDP à utiliser pour les requêtes d'authentification RADIUS (paquets Access-Request), l'attribut Servers est prioritaire.
SharedSecret=SECRET
Défaut: N/A (chaîne vide)
Secret utilisé pour authentifier ce GnuGK (client NAS) auprès d'un serveur RADIUS. Cela peut être un mot de passe à fort encryption. C'est la valeur par défaut, si aucun secret spécifique n'est indiqué dans la partie Servers . Si EncryptAllPasswords est selectionné, or la variable KeyFilled est définie dans cette section, alors le mot de passe est sous une forme cryptée et peut être crée à partir de l'utilitaire addpasswd .
RequestTimeout=TIMEOUT_MS
Défaut: 2000 (milisecondes)
Délai (en millisecondes) que la réponse du serveur RADIUS à une requête envoyée par GnuGK ne peut dépasser. Si il n'y a pas de réponse dans cette période, une nouvelle requête est envoyé au serveur RADIUS suivant.
IdCacheTimeout=TIMEOUT_MS
Défaut: 9000 (milisecondes)
Timeout (miliseconds) for RADIUS request 8-bit identifiers to be
unique. If all 8-bit identifier range is exhausted within this period,
new client socket (UDP socket) is allocation by RADIUS module. Let's
take the example: we have approximatelly 60 RRQs/sec - after ca. 4 seconds
8-bit identifiers range gets exhausted - new socket allocated - after next
4 seconds the second 8-bit identifiers range gets exhauted - third socket
allocated - after 9th second identifiers from the pool 1 are available again
- ... . In general, too long timeout - too much resources consumed,
too short timeout - RADIUS server may take incoming packets as duplicated
and therefore drop it.
SocketDeleteTimeout=TIMEOUT_MS
Défaut: 60000 (milisecondes) - 60 s
Délai au bout duquel les sockets RADIUS inutilisées sont fermées. Utilisé en conjonction de IdCacheTimeout - les sockets supplémentaires créées pendant les périodes où GnuGK est fortement chargé afin de répondre aux requêtes entrantes, sont fermées pendant les périodes d'inactivités.
RequestRetransmissions=NUMBER
Défaut: 2
Combien de fois une même requête RADIUS est envoyée à chaque serveur RADIUS configurés (si aucune réponse n'est reçue). 1 signifie aucune retransmission, 2 - une seule, ... . la méthode exacte de retransmission est définie par l'attribut RoundRobinServers .
RoundRobinServers=BOOLEAN
Défaut: 1
Méthode de retransmission des requêtes RADIUS.
Si définie à 1, la requête RADIUS est transmise de la façon suivante (jusqu'à ce qu'une réponse soit reçue):
Serveur #1 Essai #1, Serveur #2 Essai #1, ..., Serveur #N Essai #1
...
Serveur #1 Essai #RequêtesRetransmises, ..., Serveur #1 Essai #RequêtesRetransmises
Si définie à 0, la séquence suivante est déroulée:
Serveur #1 Essai #1, ..., Serveur #1 Essai #RequêtesRetransmises
...
Serveur #N Essai #1, ..., Serveur #N Essai #RequêtesRetransmises
AppendCiscoAttributes=BOOLEAN
Défaut: 0
Si définie, les attributs RADIUS spécifiques Cisco (en anglais: VendorSpecificAttribut) sont inclus dans les requêtes RADIUS(h323-conf-id,h323-call-origin,h323-call-type).
IncludeTerminalAliases=BOOLEAN
Défaut: 1
Si définie, l'attribut VSA Cisco 'h323-ivr-out' est envoyé avec la liste d'alias avec laquelle le terminal s'est enregistré(RRQ.m_terminalAlias). Cet attribut est fourni afin de permettre un contrôle fin sur la liste d'alias du terminal sous lesquels il a le droit de s'enregistrer. Le formadt e cet attribut est:
Cisco-AV-Pair = "h323-ivr-out=terminal-alias:" alias [,alias] [;]
Exemple:
Cisco-AV-Pair = "h323-ivr-out=terminal-alias:helpdesk,support,77771;"
UseDialedNumber=BOOLEAN
Défaut: 0
UseDialedNumber=1 : renseigne le nombre Called-Station-Id avec le numéro originellement appelé par l'utilisateur.
UseDialedNumber=0 : le renseigne avec le numéro réécri.
[RadAuth] Access-Request Radius Attributes
For RRQs, the following RADIUS attributes are included within Access-Request packets:
User-Name
H225_RegistrationRequest.tokens[CAT].m_generalID
CHAP-Password
H225_RegistrationRequest.tokens[CAT].m_random
+ H225_RegistrationRequest.tokens[CAT].m_challenge
CHAP-Challenge
H225_RegistrationRequest.tokens[CAT].m_timeStamp
NAS-IP-Address
GnuGk Home or a particular local network interface set
by 'LocalInterface' config parameter
NAS-Identifier
GnuGk Name
NAS-Port-Type
Virtual (GnuGk does not have concept of physical ports)
Framed-IP-Address
An IP address of registering endpoint signaling channel
Service-Type
Login-User
(optional) VSA: VendorId=Cisco, Cisco-AVPair, h323-ivr-out
A list of aliases an endpoint is registering with
(only if IncludeTerminalAliases config option is set)
NOTE: The list of aliases inside h323-ivr-out is in the following form:
h323-ivr-out="h323-ivr-out=terminal-alias:alias1,alias2,...,aliasN;"
The h323-ivr-out attribute can be (in future) instantiated multiple times
inside a single Access-Request and may also contain variables other than
"terminal-alias", so a RADIUS server should be flexible enough
with processing of this attribute.
For ARQ and Setup messages, the following RADIUS attributes are included
inside Access-Request packets:
User-Name
ARQ.tokens[CAT].m_generalID
CHAP-Password
ARQ.tokens[CAT].m_random + ARQ.tokens[CAT].m_challenge
CHAP-Challenge
ARQ.tokens[CAT].m_timeStamp
NAS-IP-Address
GnuGk Home or a particular local network interface set
by 'LocalInterface' config parameter
NAS-Identifier
GnuGk Name
NAS-Port-Type
Virtual (GnuGk does not have concept of physical ports)
Framed-IP-Address
An IP address of registering endpoint signaling channel
Service-Type
Login-User (for ARQs from originating endpoint)
or Call-Check (for ARQs from answering endpoint)
Calling-Station-Id
Calling party's number (if available)
Called-Station-Id
Called party's number
(optional) VSA: VendorId=Cisco, h323-conf-id
H.323 conference ID from ARQ
(optional) VSA: VendorId=Cisco, h323-call-type
Call type (fixed value: "h323-call-type=VoIP")
(optional) VSA: VendorId=Cisco, h323-call-origin
Call origin ("answer","originate")
(optional) VSA: VendorId=Cisco, h323-gw-id
The same as NAS-Identifier
[RadAuth] Access-Accept Radius Attributes
For RRQs, the following RADIUS attributes are recognized
inside Access-Accept packets:
VSA: VendorId=Cisco, h323-return-code
If present and not 0, the request is rejected. This check is provided
to allow interoperability with some poor billing systems, which send
Access-Accept with non-zero h323-return-code to reject the call instead
of Access-Reject. The attribute can be in the form h323-return-code="1"
or h323-return-code="h323-return-code=1". Note that the return code
is a string, not an integer.
VSA: VendorId=Cisco, h323-billing-model
Billing mode for this account. Can be 0 (credit), 1 or 2 (debit).
If an endpoint can understand H.225.0 CallCreditServiceControl messages,
this information is used to build the message.
VSA: VendorId=Cisco, h323-credit-amount
A string representing current user's account balance. If an endpoint
can understand H.225.0 CallCreditServiceControl messages,
this information is used to build the message.
VSA: VendorId=Cisco, Cisco-AVPair, h323-ivr-in
If present, it is scanned for 'terminal-alias' variable that can contain
a list of aliases that should be assigned to the endpoint being registered.
All RRQ aliases that do not match this list are removed.
The 'disable-codec' variable is also supported to disallow certain codecs for this call.
The 'proxy' variable that can contain 'yes' or 'no' for enabling/disabling proxy mode for this call.
The format of these attributes is as follows:
Cisco-AVPair = "h323-ivr-in=variable:value;[variable:value;]"
where the "variable" can be "terminal-alias":
Cisco-AVPair = "h323-ivr-in=terminal-alias:alias1[,alias2,...];"
- Example 1:
-
RRQ {
m_terminalAlias = { "myalias", "1234" }
}
if RADIUS server returns the following h323-ivr-in:
Access-Accept {
Cisco-AVPair = "h323-ivr-in=terminal-alias:anotheralias,6789;"
}
the endpoint will get registered with aliases "anotheralias" and "6789".
Also RCF will contain:
RCF {
m_terminalAlias = { "anotheralias", "6789" }
}
- Example 2 (add E164 to an existing alias):
-
RRQ {
m_terminalAlias = { "it_s_me" }
}
if RADIUS server returns the following h323-ivr-in:
Access-Accept {
Cisco-AVPair = "h323-ivr-in=terminal-alias:it_s_me,48586259732;"
}
RCF will contain:
RCF {
m_terminalAlias = { "it_s_me", "48586259732" }
}
- Example 3 (disable G.711 and G.729 codecs):
-
Access-Accept {
Cisco-AVPair = "h323-ivr-in=codec-disable:g711Ulaw64k;g729;g711Alaw64k;g729AnnexA;"
}
- Example 4 (enable proxy mode):
-
Access-Accept {
Cisco-AVPair = "h323-ivr-in=proxy:yes"
}
For ARQs, the following RADIUS attributes are recognized
within Access-Accept packets:
VSA: VendorId=Cisco, h323-return-code
If present and not 0, the request is rejected. This check is provided
to allow interoperability with some poor billing systems, that send
Access-Accept with non-zero h323-return-code to reject the call instead
of Access-Reject. The attribute can be in form h323-return-code="1"
or h323-return-code="h323-return-code=1". Note that the return code
is a string, not an integer.
VSA: VendorId=Cisco, h323-billing-model
Billing mode for this account. Can be 0 (credit), 1 or 2 (debit).
If an endpoint can understand H.225.0 CallCreditServiceControl messages,
this information is used to build the message.
VSA: VendorId=Cisco, h323-credit-amount
A string representing current user account balance. If an endpoint can
understand H.225.0 CallCreditServiceControl messages, this information
is used to build the message.
VSA: VendorId=Cisco, h323-credit-time
If present, it enforces maximum call duration (in seconds).
The attribute can be in form of h323-credit-time="120"
or h323-credit-time="h323-credit-time=120". Note that the return code
is a string, not an integer.
Session-Timeout
If present, it enforces maximum call duration (in seconds).
This is a standard RADIUS attribute of integer type.
VSA: VendorId=Cisco, h323-redirect-ip-address
If present, a call is sent to the IP address present in this attribute.
You can put multiple destinations separated with a semicolon.
VSA: VendorId=Cisco, h323-redirect-number
If present, a called station id is rewritten to this number.
You can put multiple numbers separated by a semicolon.
For each number you can also specify an outbound number (that is sent
to a terminating gateway) by appending it with a '='.
NOTE: If both Session-Timeout and h323-credit-time are present, the smaller value
is used.
NOTE: If multiple failover mechanisms are specified, eg. multiple numbers in h323-redirect-number
and multiple IPs in h323-redirect-ip-address, there is no guarantee that the the
first number is used for the first IP and the 2nd number for the 2nd IP.
This will usually the case, but for example when a capacity limit disables one IP,
the association will change.
This section defines configuration settings that enable
RADIUS authentication based on endpoint aliases and/or IP addresses
present in a RRQ RAS, ARQ RAS or Q.931 Setup request.
This authentication scheme is useful both for endpoints registered
at the gatekeeper (ARQ, RRQ) and calls from unregistered endpoints (Setup).
Servers=SERVER1[:AUTH_PORT[:ACCT_PORT[:SECRET]]];SERVER2[:AUTH_PORT[:ACCT_PORT[:SECRET]]];...
Default: N/A
RADIUS servers to be used for RAS requests authentication.
This list can contain an arbitrary number of servers. The order of servers
is important, because servers will be queried by the RADIUS module
in the given order. If no port information is specified, the port number from
DefaultAuthPort will be used. If no secret is set,
the default shared secret from SharedSecret is used.
Servers can be IP addresses or DNS names.
- Example:
-
Servers=192.168.3.1:1645;192.168.3.2:1812:1813:mysecret;radius.mycompany.com
LocalInterface=IP_OR_FQDN
Default: N/A
Specific local network interface that GnuGk should
use in order to communicate with RADIUS servers. This parameter
can be useful on NAT machines to restrict number of network
interfaces used for RADIUS communication. By default this value
is empty and allows RADIUS requests to be sent on any (best suitable)
network interface. If you are not sure what you are doing, it is
better to leave this option unset.
RadiusPortRange=10000-11000
Default: N/A
By default (if this option is not set) RADIUS client
allocates ports dynamically as specified by the operating system.
If you want to restrict RADIUS client to use ports from
a particular range only - set this parameter.
DefaultAuthPort=PORT_NO
Default: 1812
Default port number to be used for RADIUS authentication requests
(Access-Request packets), if not overridden by Servers attribute.
SharedSecret=SECRET
Default: N/A (empty string)
Secret used to authenticate this GnuGk (NAS client) to RADIUS
server. It should be a cryptographically strong password. This is the default
value used, if no server-specific secret is set in the Servers .
If EncryptAllPasswords is enabled, or a KeyFilled variable is defined
in this section, the password is in encrypted form and should be created using
the addpasswd utility.
RequestTimeout=TIMEOUT_MS
Default: 2000 (milliseconds)
Timeout (milliseconds) for RADIUS server response to a request
sent by GnuGk. If no response is received within this time period,
next RADIUS server is queried.
IdCacheTimeout=TIMEOUT_MS
Default: 9000 (milliseconds)
Timeout (milliseconds) for RADIUS request 8-bit identifiers to be
unique. If all 8-bit identifier range is exhausted within this period,
new client socket (UDP socket) is allocation by RADIUS module. Let's
take the example: we have approximately 60 RRQs/sec - after ca. 4 seconds
8-bit identifiers range gets exhausted - new socket allocated - after next
4 seconds the second 8-bit identifiers range gets exhausted - third socket
allocated - after 9th second identifiers from the pool 1 are available again
- ... . In general, too long timeout - too much resources consumed,
too short timeout - RADIUS server may take incoming packets as duplicated
and therefore drop it.
SocketDeleteTimeout=TIMEOUT_MS
Default: 60000 (milliseconds) - 60 s
Timeout for unused RADIUS sockets to be closed. It is used
in conjunction with IdCacheTimeout - additional sockets
created during heavy gatekeeper load periods for serving incoming
requests are closed during idle periods.
RequestRetransmissions=NUMBER
Default: 2
How many times a single RADIUS request is transmitted to every
configured RADIUS server (if no response is received). 1 means
no retransmission, 2 - single retransmission, ... . Exact retransmission
method is defined by RoundRobinServers attribute.
RoundRobinServers=BOOLEAN
Default: 1
RADIUS requests retransmission method.
If set to 1, RADIUS request
is transmitted in the following way (until response is received):
Server #1 Attempt #1, Server #2 Attempt #1, ..., Server #N Attempt #1
...
Server #1 Attempt #RequestRetransmissions, ..., Server #1 Attempt #RequestRetransmissions
If set to 0, the following sequence is preserved:
Server #1 Attempt #1, ..., Server #1 Attempt #RequestRetransmissions
...
Server #N Attempt #1, ..., Server #N Attempt #RequestRetransmissions
AppendCiscoAttributes=BOOLEAN
Default: 1
If set, Cisco Vendor Specific RADIUS attributes are included
in RADIUS requests (h323-conf-id,h323-call-origin,h323-call-type).
IncludeTerminalAliases=BOOLEAN
Default: 1
If set, Cisco VSA 'h323-ivr-out' attribute is sent with a list of aliases
the endpoint is registering (RRQ.m_terminalAlias). This attribute is provided
in order to provide fine control over the list of aliases the endpoint
is allowed to register with. Format of this attribute is:
Cisco-AV-Pair = "h323-ivr-out=terminal-alias:" alias [,alias] [;]
Example:
Cisco-AV-Pair = "h323-ivr-out=terminal-alias:helpdesk,support,77771;"
FixedUsername
Default: N/A
If this parameter is set, it overwrites a value of User-Name RADIUS attribute
for outgoing RADIUS request. That means every Access-Request will be
authenticated as for user FixedUsername .
FixedPassword
Default: N/A
If not set, User-Password is a copy of User-Name. For example, if User-Name
is 'john' then User-Password will also be set to 'john'. Setting this
parameter overrides this behavior and User-Password attribute will be
always set to the value of FixedPassword .
If EncryptAllPasswords is enabled, or a KeyFilled variable is defined
in this section, the password is in encrypted form and should be created using
the addpasswd utility.
- Example 1:
-
(Neither FixedUsername nor FixedPassword set)
All endpoints will be authenticated using their alias as the username
and the password. That means, for example, endpoint 'EP1' will be authenticated
with the username 'EP1 and the password 'EP1'.
- Example 2:
-
(FixedUsername not set)
FixedPassword=ppp
All endpoints will be authenticated using their alias and the password 'ppp'.
- Example 3:
-
FixedUsername=ppp
FixedPassword=ppp
All endpoints will be authenticated using the username 'ppp'
and the password 'ppp'.
UseDialedNumber=BOOLEAN
Default: 0
Select Called-Station-Id number type between the original one (as dialed
by the user) - UseDialedNumber=1 - and the rewritten one - UseDialedNumber=0 .
[RadAliasAuth] Access-Request Radius Attributes
For RRQs, the same attributes as with RadAuth are sent, with an exception
of username/password attributes (CHAP-Password, CHAP-Challenge, User-Name):
User-Name
Either an endpoint alias from RRQ or a value of FixedUsername
config parameter. If no alias is present, an IP address is used
User-Password
Either the same as User-Name or a value of FixedPassword
config parameter
For ARQ and Setup messages, the same attributes as with RadAuth are sent,
with an exception of username/password attributes (CHAP-Password,
CHAP-Challenge, User-Name):
[RadAliasAuth] Access-Accept Radius Attributes
Exactly the same attributes are recognized as with RadAuth module.
This section contains a set of rules for controlling inbound call volume
depending on various conditions. In order for this module to work, CapacityControl
authentication and accounting modules have to be enabled like this:
[Gatekeeper::Auth]
CapacityControl=required;Setup
[Gatekeeper::Acct]
CapacityControl=required;start,stop
A capacity rule can be matched by a caller's IP, caller's H.323 ID and/or
caller's number (CLI) - in the order specified. In addition, the match can
be narrowed by specifying a called number pattern. This module works by keeping
lists of current call volume for each inbound route (rule) - this is done
by having CapacityControl accounting module configured to add/remove
active calls from matching routes. The CapacityControl authentication module
checks rules and accepts/rejects a call based on current/max call volume
for a matching inbound route.
- Format for an inbound route rule:
-
[ip:CALLER_IP|h323id:CALLER_H323ID|cli:CALLER_NUMBER]=[CALLED NUMBER REGEX PATTERN] MAX_CAPACITY
ip: , h323id: and cli: prefixes define rule type. An inbound call
will be matched either by caller's IP, H.323ID or CLI. The optional CALLED NUMBER REGEX PATTERN
is a regular expression that the called number should match to apply this rule to.
MAX_CAPACITY is maximum number of active calls for this route.
The rules are match in the following order:
- IP rules
- H.323ID rules
- CLI rules
The longest match in the first matching category is used.
- Example 1:
-
[CapacityControl]
ip:192.168.1.0/24=30
ip:any=120
These rules tell that the 192.168.1.0/24 subnet can send up to 30 concurrent
calls, while all other IPs can send up to 120 concurrent calls.
- Example 2:
-
[CapacityControl]
%r1% cli:1001=30
%r2% cli:1001=^48(50|51) 5
These rules limit caller with CLI 1001 to send up to 5 calls to 4850/4851
destinations and up to 30 calls to other destinations. %r1% and %r2% are
special constructs to allow having the same cli:1001 config key more
than once.
WARNING: This is an experimental feature and not tested very well.
This section defines the LDAP server and standard H.350 directory operating
parameters to be used.
ServerName
Default: 127.0.0.1
The LDAP server IP address.
ServerPort
Default: 389
The LDAP server's TCP port (usually 389).
SearchBaseDN
Default: N/A
Entry point into the server's H.350 directory structure.
Searches are only made below this root node.
BindUserDN
Default: N/A
The distinguished name the gatekeeper uses to bind
to the LDAP server. Leave empty if you want to access
the LDAP server anonymously.
BindUserPW
Default: N/A
If you specified BindUserDN , then specify the corresponding
password to be used for binding here.
If EncryptAllPasswords is enabled, or a KeyFilled variable is defined
in this section, the password is in an encrypted form and should be created
using the addpasswd utility.
BindAuthMode
Default: simple
Bind Authentication method choices are simple,sasl,kerberos
ServiceControl=BOOLEAN
Default: 0
Use RRQ/RCF service control field to advise an endpoint of the H.350 directory
and searchDN to use for white page lookups.
AssignedAliases=BOOLEAN
Default: 0
Use H.350.1 to advise endpoints of their assigned aliases.
GatekeeperDiscovery=BOOLEAN
Default: 0
Use H.350.1 to resolve on GRQ/GCF the registering endpoints assigned gatekeeper
(h323IdentityGKDomain).
Page suivante
Page précédente
Table des matières
Chapitres:
Contenu ·
Introduction ·
Installation ·
Pour commencer ·
Config basique ·
Routage ·
Config RAS ·
Authentification ·
Accounting ·
Voisins ·
Config par terminal ·
Config avancée ·
Surveillance
|