This is the manual for GNU Gatekeeper 5.5.
An English manual for your version is in your GnuGk download archive.

Chapters: Contents · Introduction · Installation · Getting started · Basic Config · Routed Mode & Proxy · Routing · RAS Config · Authentication · Accounting · Neighbors · Per Endpoint Config · Advanced Config · Monitoring · Advanced Topics

Download GnuGk    Get support

The GNU Gatekeeper Manual Chapter 4

4. GK 基础配置

GnuGk 的功能 由命令行选项和配置文件确定。 某些命令行选项可能会覆盖配置文件中的设置。 例如,-l 该选项将覆盖 TimeToLive 在配置文件中的设置。

4.1 命令行选项

每个选项都有全写和简写格式,例如 -c--config 相同。

简单的命令行

-h --help

显示所有可获得的选项后退出程序。

-c --config filename

指定要使用的配置文件。

--strict

配置的严格检查(不要以错误配置开头)

-s --section section

指定在配置文件中主要章节,可指定节点。默认值为 [Gatekeeper::Main]。

-l --timetolive n

指定终端注册的保活时间(以秒为单位)覆盖 TimeToLive 配置文件中的设置。 See 此处 有关详细说明。

-b --bandwidth n

指定GK可用的总带宽,以每秒100位为单位。若没有此选项,则禁用带宽管理。

-e --externalip x.x.x.x

指定外部IP,覆盖配置文件中 [Gatekeeper::Main] ExternalIP=

--pid filename

指定pid文件。仅对Unix版本有效。

-u --user name

以该用户身份运行GK进程。仅对Unix版本有效。

--core n

当应用程序崩溃时,启用写入核心转储文件。核心转储文件的大小不会超过n个字节。 特殊常量“unlimited”可用于不强制执行任何特定限制。仅在Linux上有效。

--mlock

将GnuGk锁定到内存中以防止被换出。仅在Linux上有效。

GK 模式

本小节中的选项将覆盖配置文件的 [RoutedMode] 部分 中的设置。

-d --direct

使用终端直接呼叫信令。

-r --routed

使用GK路由的呼叫信令

-rr --h245routed

使用GK路由的呼叫信令和H.245控制信道。

调试信息

-o --output filename

将跟踪日志写入指定的文件。

-t --trace

设置跟踪详细程度。每 -t 增加一个,都会给输出增加更多的详细程度。 例如,用 -ttttt 将跟踪级别设置为5。

4.2 配置文件

GnuGk 的配置文件是一个标准的文本文件。其格式为:

[节点]
键名=键值

注释需在行的开头用 (#) 或 (;)

complete.ini 该文件包含GnuGk的所有可用部分。 在大部分情况下,一次全部使用它们是没有意义的。该文件作为所有配置项的示例集合。

可以在运行时更改配置文件。修改配置文件后,您可以通过 reload 控制端口发出命令, 或将 HUP 信号发送给网守进程:

kill -HUP `cat /var/run/gnugk.pid`

4.3 配置数据库

所有使用数据库的GnuGk模块(例如 [SQLAuth], [SQLAcct] 等)都支持一组通用的配置参数,在此进行介绍。 即使配置相同,也得为每个模块重复所有设置。同时,也可以为每个模块自由使用differend数据库驱动程序和选项。

  • Driver=MySQL | PostgreSQL | Firebird | ODBC | SQLite | redis
    默认:N/A

    要使用的数据库驱动程序。如, MySQL, PostgreSQL, Firebird, ODBC, SQLiteredis 驱动程序来实现。 MySQL驱动程序还可用于MariaDB和其他MySQL分支。并非所有这些驱动程序都始终可用。编译GnuGk时, 仅包含那些具有必要的数据库库和头文件的驱动程序。启动GnuGk时,您可以在版本信息中查看可执行文件中包含哪些驱动程序。 在运行时,GnuGk将为您配置的数据库加载共享库(DLL)。 GnuGk支持SQLite的版本3。

    redis当前仅适用于从数据库读取,不适用于SQLAcct。

    确保您的数据库配置为支持基于密码的身份验证-Microsoft SQL Server必须使用“混合模式”,此功能才能正常运行。

  • Library=c:/Program Files/Mysql/libmysql.dll
    默认:N/A

    若未自动找到共享库或DLL,则可以在此处设置其他文件名或提供库的绝对路径。

  • Host=DNS[:PORT] | IP[:PORT]
    默认:localhost

    SQL Server主机地址。可以采用 DNS[:PORT]IP[:PORT]。 像 sql.mycompany.comsql.mycompany.com:3306192.168.3.100。 ODBC 驱动程序将忽略此设置。

  • Database=billing
    默认:N/A

    要连接的数据库名称。

    要从Windows服务器连接到 ODBC 数据源, 请通过“控制面板”/“管理工具”/“数据源(ODBC)”创建数据源,然后添加系统DSN。在GnuGk的 Database= setting 中使用系统DSN的名称。

    要从Unix服务器连接到 ODBC 数据源, 请使用在unixODBC中配置的DSN定义。一些unixODBC驱动程序似乎忽略了GnuGk配置中设置的用户名和密码。 对于这些,您应该使用形式的DSN DSN=GnuGk;UID=admin;PWD=secret;。即使在这种情况下,GnuGk的Usename = 和 Password = setting 也必须始终存在。 根据您的unixODBX配置,您可能必须在启动GnuGk之前export ODBCINI=/etc/unixODBC/odbc.ini 和 export ODBCSYSINI=/etc/unixODBC 之前启动。

  • Username=gnugk

    用于连接数据库的用户名。

  • Password=secret

    用于连接数据库的密码。若未指定密码,将尝试不使用任何密码的数据库连接。 若EncryptAllPasswords 已启用, 或 KeyFilled 在本节中定义了变量,则连接到数据库的密码采用加密形式,应使用该 addpasswd 程序创建。

  • MinPoolSize=5
    默认:1

    定义活动的SQL连接数。这可以在重负载下实现更好的性能,因为可以同时执行多个并发查询。 MinPoolSize=1 当序列化对SQL数据库的访问(一次查询)时,设置将模拟旧行为。 不要被这个名字迷惑,这里是实际的连接数。

  • ConnectTimeout=5
    默认:10

    数据库连接超时(以秒为单位)。

    当前仅由MySQL驱动程序使用;其他驱动程序使用库默认值。

  • ReadTimeout=10
    默认:60

    数据库读取超时(以秒为单位)。

    当前仅由MySQL驱动程序使用;其他驱动程序使用库默认值。

查询中的占位符

许多SQL模块提供了一组可以在查询中使用的占位符,例如SqlAcct中的 %{CallId}。

占位符始终以百分号开头。请注意,若查询中的其他内容(例如LIKE)中需要百分号,则必须转义百分号。一种方法是使用CHAR(37), 例如:concat(alias,CHAR(37))而不是concat(alias,'%')。

存储过程

使用MySQL时,存储过程做得很好。

使用ODBC时,不能使用“CALL ProcedureName”语法调用使用参数的存储过程,但是可以使用“EXEC ProcedureName”调用它们。

使用存储过程进行处理时,请确保它们至少返回一个副本,以便GnuGk不会放弃该调用。

4.4 LUA脚本

一些GnuGk模块允许执行用LUA编写的动态脚本,例如: [Routing::Lua][LuaAuth].

LUA是一种简单的脚本语言,Wireshark,FreeSWITCH或nmap等其他网络工具也使用它。有关LUA语言的详细信息,请参阅 https://www.lua.org/docs.html.

根据模块的不同,将获得一些变量以查看详细信息,例如:有关传入呼叫的​​信息,您的脚本可以设置某些输出变量来定义GnuGk应该如何处理该呼叫。您将在每个模块的文档中找到更多详细信息。

所有LUA模块都有一个通用的LUA库,称为“gnugk”,该库允许访问GnuGk功能。

  • gnugk.trace(level, "message") - write to the GnuGk trace file
  • gnugk.get_config_string("section", "switch", "default") - read a string from the GnuGk config
  • gnugk.get_config_integer("section", "switch", default) - read an integer from the GnuGk config

4.5 正则表达式

在配置文件部分位置,GnuGk允许使用正则表达式。这些正则表达式的语法是“扩展的POSIX 1003.2正则表达式”。在Unix系统上,通常可以得到一个手册页, 以“man 7 regex”解释语法,或者可以在 http://man7.org/linux/man-pages/man7/regex.7.html 在线查看该手册。

4.6 [Gatekeeper::Main]

  • Name=GnuGk
    默认:GnuGk

    该GK的标识符。GK将仅响应此ID的GRQ,并将在发送给其端点的很多消息中使用它。

  • EnableIPv6=1
    默认:0

    若GnuGk编译时选择支持了IPv6,则可以使用此开关将其打开。

    确保为服务器分配常规的IPv6地址。GnuGk将不使用其它本地地址 (fe80::/10).

  • Home=192.168.1.1
    默认:listen to all IPs

    GK将侦听此IP地址上的请求。若未设置,则GK将侦听主机的所有IP。可以使用多个home地址,并且必须用分号(;)或逗号(,)分隔。

  • NetworkInterfaces=192.168.1.1/24,10.0.0.1/0
    默认:N/A

    指定GK的网络接口。默认情况下,GK会自动检测主机的接口,因此通常不需要此设置,但若自动检测失败,此设置将可用。 若在NAT后使用GnuGk,则应使用ExternalIP设置(如下所述),该设置将自动配置GnuGk使其像在NAT上一样工作。 ExternalIP设置将优先,并将覆盖此值。

    注意: 若更改此设置,则必须重新启动网守。从控制端口重新加载不会导致该值被重新读取。

  • Bind=192.168.1.1
    默认:N/A

    指定默认路由的IP地址。此选项可指定在一个主机上可能有许多虚拟接口的多宿主虚拟环境中使用哪个默认IP地址。

  • EndpointIDSuffix=_tgdz646438
    默认:_endp

    GK将为每个注册的端点分配唯一的标识符。此选项可用于指定后缀以附加到端点标识符。此选项对安全性很有用,它使攻击者更难猜测端点ID, 并且应将其设置为不容易被猜测的值。

    This 重新加载配置后,此设置不会更改,必须完全重启!

  • TimeToLive=300
    默认:-1

    端点向GK注册可能会存在有限的时长。GK通过在RCF消息中包含 timeToLive 字段来指定端点的注册保活时间。 在到达指定的时间长后,注册过期。 端点必须在到期时间之前定期发送 keepAlive RRQ保活。 消息可以包括如H.225.0中所述的最少信息量,此为轻量级RRQ。

    端点可以在向GK发送的RRQ消息中请求更短的timeToLive

    为避免RRQ消息过时,若指定了较低的值,则GK将自动将此计时器重置为60秒。

    时间超时后,GK将使用IRQ消息进行两次尝试,以确定端点是否在线。若端点以IRR响应,则注册将被扩展。 若不是,则GK将向端点发送URQ原因为 ttlExpired。然后,端点必须使用完整的RRQ消息向网守重新注册。

    要禁用此功能,请将其设置为 -1

  • EnableTTLRestrictions=0
    默认:1

    通过“TimeToLive”参数配置的默认TimeToLive(TTL)不适用于使用H.460.17和H.460.18协议穿越防火墙的端点。为了保持防火墙的通道打开, 这些端点的TimeToLive默认为19秒。“TimeToLive”参数可让您将其更改为低至5秒,高至30秒。

    若确定不需要保持活动状态,可以通过将此开关设置为0来禁用这些限制。若禁用了TTL限制,则TimeToLive会成为所有端点(包括H.460.17和H.460.18) 的全局设置。

  • CompareAliasType=0
    默认:1

    默认情况下,比较别名时,H323ID'1234'与E164号码'1234'不匹配。使用此参数可以在执行比较时忽略别名类型。

  • CompareAliasCase=0
    默认:1

    默认情况下,别名“jan”将与别名“Jan”不匹配。若设置为false,则比较将不区分大小写。

  • TraceLevel=2
    默认:0

    设置跟踪级别(与命令行上的-t相同)。

  • TotalBandwidth=100000
    默认:-1

    所有端点可用的总带宽,以每秒100bit为单位(例如5120表示512 kbps)。默认情况下,此功能为关闭(-1)。

    注意: 目前,GnuGk仅检查与已注册端点之间的呼叫。

  • MinimumBandwidthPerCall=1280
    默认:-1

    将来自端点的带宽请求提高到至少此值,以每秒100bit为单位。该值包括两个方向,因此384 kbps呼叫的值为7680。 当端点未报告正确的值(例如Netmeeting)时,设置最小值非常有用。若设置为零或更少,则不强制执行最小值(默认)。

    注意: 目前,GnuGk仅检查与已注册端点之间的呼叫。

  • MaximumBandwidthPerCall=100000
    默认:-1

    设置单个呼叫允许的最大带宽,以每秒100bit为单位。若设置为零或更少,则不强制最大值(默认)。

    注意: 目前,GnuGk仅检查与已注册端点之间的呼叫。

  • RedirectGK=Endpoints > 100 | Calls > 50
    默认:N/A

    若GK过载,则可以使用此选项将端点重定向到备用GK。在上面的示例中,若注册的端点数超过100,则GK将拒绝RRQ, 若并发呼叫超过50,则将拒绝ARQ。

    此外,您可以通过将此选项设置为 temporarypermanent 来显式重定向所有端点 GK将发送RAS拒绝消息,其中包含在中定义的备用GK列表 AlternateGKs. 注意 permanent 重定向意味着重定向的端点将不会再次向此GK注册。 注意: 重定向功能仅适用于符合H.323版本4的端点。

  • AlternateGKs=1.2.3.4;1719;false;1;GnuGk2
    默认:N/A

    若端点与GnuGk失去连接,它应自动尝试向此处指定的备用GK注册。

    注意: 根据端点,它可能不会尝试重新建立与其原始GK的连接。H.323v6中增加了对“分配的GK”的支持。 有关其他信息,请参见 https://www.packetizer.com/ipmc/h323/whatsnew_v6.html

    主GK包括在RCF中的一个字段,用于通知端点要使用的备用GK的IP和标识符。

    备用GK需要知道主GK上的所有注册,否则它将拒绝呼叫。我们的GK可以将每个RRQ转发到备用IP地址。

    AlternateGKs配置选项指定主GK的RCF中包含的字段。该字符串的第一、二字段其含转发的位置(IP、端口)。 第三字段指端点在发出呼叫之前是否需要向备用GK注册。若我们转发其RRQ,它们通常不会,而备用GK会自动知道它们。 第四字段指定此GK的优先级。越低越好;通常,主GK被认为具有优先级1。最后一个(可选)字段指定备用GK的标识符。

    可以指定多个备用GK列表,以逗号分隔。

    可以通过 [RasSrv::AlternateGatekeeper] 中的每个IP规范覆盖此全局定义。

  • SendTo=1.2.3.4:1719
    默认:N/A

    尽管此信息包含在AlternateGK中,但仍然必须指定将RRQ转发到的地址。由于多宿主系统,这可能与AlternateGK的地址不同,因此它是一个单独的配置选项。

    可以指定多个GK列表,以逗号分隔。

  • SkipForwards=1.2.3.4,5.6.7.8
    默认:N/A

    为避免循环转发,不应转发从其他GK获得的RRQ(此语句对于主GK和备用GK均适用)。使用两种机制来明确是否应转发请求。 第一个在RRQ中查找标志。由于很少有端点实现此目的,因此我们可以通过在此处指定它,来提高系统的整体可靠性。

    在此列表中指定其他GK的IP。

  • StatusPort=7000
    默认:7000

    控制端口,用于监视GK。设置为0可关闭端口。 有关详细信息,请参见 this section

    GnuGK将监听呼叫信令的所有IP上的控制端口。您应该防火墙中保护那些端口,并在 [GkStatus::Auth] 部分中为无法在防火墙中完全关闭的端口设置访问控制规则。

  • StatusTraceLevel=2
    默认:2

    新状态界面默认输出跟踪级别。有关详细信息,请参见 this section

  • MaxStatusClients=5
    默认:20

    指定控制端口上的最大并发连接数。要禁用与控制端口的任何连接,此开关设置为0。

  • SshStatusPort=1
    默认:0

    对控制端口使用SSH协议。可以在 [GkStatus::Auth] 部分中设置用户密码。

    连接命令示例:

    ssh -p 7000 [email protected]
    

  • StatusEventBacklog=20
    默认:0

    设置要保存的控制端口条目数量,以便以后在环形缓冲区中显示。

  • StatusEventBacklogRegex=^[RA]RJ
    默认:.

    定义正则表达式以限制哪些控制端口事件保存在日志中。默认情况下,所有事件均被保存。

  • TimestampFormat=ISO8601
    默认:Cisco

    该设置配置GK生成的时间戳默认的字符串格式。此选项影响 [SQLAcct], [RadAcct], [FileAcct] 和其他模块,不影响 [CallTable]. 您可以通过TimestampFormat 在指定的部分配置各个模块的时间戳格式。

    有四种预定义的格式:

    • RFC822 - GK的默认使用模式 (例如:Wed, 10 Nov 2004 16:02:01 +0100)
    • ISO8601 - 标准ISO格式 (例如:2004-11-10 T 16:02:01 +0100)
    • Cisco - Cisco设备使用的格式 (例如:16:02:01.534 CET Wed Nov 10 2004)
    • MySQL - MySQL可以理解的简单格式 (例如:2004-11-10 16:02:01)

    若没有合适的预定义选项,则可以使用 strftime C 函数中的规则构建需要的字符串格式(请参阅man strftime或在MSDN中搜索strftime)。 通常,格式字符串由常规字符和格式代码组成,后跟一个百分号。示例: "%Y-%m-%d and percent %%" 将返回 "2004-11-10 and percent %"。 一些常见的格式代码:

    • %a - 星期几的简写
    • %A - 星期几的全称
    • %b - 月份的简写
    • %B - 月份的全称
    • %d - 每月的第几天(十进制)
    • %H - 24小时制的小时
    • %I - 12小时制的小时
    • %m - 月份(十进制)
    • %M - 分钟(十进制)
    • %S - 秒数(十进制)
    • %y - 不带世纪的十进制年份(值从0到99)
    • %Y - 带世纪部分的十进制年份
    • %u - 数微秒(十进制 GnuGk的扩展部分)
    • %z - 时区缩写 (+0100)
    • %Z - 时区名称
    • %% - 百分号

  • EncryptAllPasswords=1
    默认:0

    启用配置中所有密码的加密(SQL密码,RADIUS密码,[Password]密码,[GkStatus :: Auth]密码)。 若启用,则必须使用该 addpasswd 工具对所有密码进行加密。 否则,仅 [Password] and [GkStatus::Auth] 密码被加密 (旧的机制)。

  • KeyFilled=0
    默认:N/A

    定义在密码加/解密期间要使用的全局填充字节数。可以通过 KeyFilled 在指定的配置部分来设置覆盖它。一般不需要更改此选项。

大部分情况下不需要改以下数值。主要是用于测试或非常复杂的应用程序。

  • UseBroadcastListener=0
    默认:1

    定义是否监听广播的RAS请求。这需要绑定到计算机上的所有接口,因此,若要在同一计算机上运行多个GK,则应将其关闭。

  • UnicastRasPort=1719
    默认:1719

    单播的RAS通道TSAP标识符,也称为“普通RAS UDP端口”。

  • UseMulticastListener=0
    默认:1

    使用IPv4组播启用或禁用GK自动发现。默认情况下启用。

  • MulticastPort=1718
    默认:1718

    IPv4多播的RAS通道TSAP标识符。

  • MulticastGroup=224.0.1.41
    默认:224.0.1.41

    RAS通道的IPv4组播组。

  • EndpointSignalPort=1720
    默认:1720

    端点呼叫信令的默认端口。当实际的呼叫信令端口未知时,在端点注册列表中搜索查看。

  • ListenQueueLength=1024
    默认:1024

    呼入时TCP连接的队列长度。

  • StatusSendBufferSize=16384
    默认:16384

    设置控制端口连接的TCP发送缓冲区大小。

  • StatusReceiveBufferSize=16384
    默认:16384

    设置控制端口连接的TCP接收缓冲区大小。

  • ExternalIP=myip.no-ip.com
    默认:N/A

    在NAT后使用GnuGk时,可设置GK伪装成的外部IP地址。允许外部端点和其他GK与NATed GK通信。 在此,必须启用代理模式并将端口转发所需的端口到GK的IP或将GK放入NAT的DMZ中。这与绑定设置不同,该绑定在GnuGk设置中指定一个物理IP地址。

    可以指定IP地址或完全限定的域名(FQDN)。若使用FQDN并将 ExternalIsDynamic 其设置为false, 它将在启动或重新加载配置时解析为IP地址。 若ExternalIsDynamic设置为true,则将在需要时存储并解析名称。

    若将此开关设置为“AWSPublicIP”,则GnuGk将从AWS元数据中获取公共/弹性IP。与Google Cloud,Azure和Alibaba Cloud的“GooglePublicIP”,“AzurePublicIP”和“AlibabaPublicIP”相同。

  • ExternalIsDynamic=1
    默认:0

    将GnuGk配置为支持外部动态地址。若启用,GnuGk将确保动态DNS(DDNS)服务接收保活消息以维护您的DDNS名称租约。 您还必须 ExternalIP 使用DDNS服务(例如www.dyndns.com或www.no-ip.com)维护的DNS地址配置设置。

  • DefaultDomain=gnugk.org,gnugk.de
    默认:N/A

    若GnuGk收到格式为[email protected], 的地址请求 ,则该选项将在匹配 DefaultDomain 设置的情况下从地址中删除域, 然后仅使用 "user" 字段处理请求。当接收通过接收完整URI的SRV路由策略发出的域间呼叫时,此功能很有用。它也可以与[RasSrv::RewriteAlias] 部分结合使用, 将接收到的URI转换为E.164号码,以进行进一步的处理和路由。

  • Authenticators=H.235.1,CAT
    默认:H.235.1,MD5,CAT,DES

    选择在认证端点时要使用的指定认证方式。默认选项为:H.235.1(HMAC SHA1/旧的H235AnnexD),MD5(摘要身份验证)和CAT(Cisco访问令牌,即RADIUS)。 设置值为NONE将禁用身份验证。该顺序指示认证机制的优先级。若省略此设置,则默认情况下将加载所有认证机制。若使用的是插件方式身份校验, 则可能需要禁用默认身份认证以提供最佳安全性。注意:H.235.1需要将OpenSSL支持编译到GnuGk中。

  • DisconnectCallsOnShutdown=0
    默认:1

    GnuGk在关闭时断开所有的呼叫,向所有端点发送注销请求。要覆盖此默认值,请将此参数设置为“0”。此开关主要用于以直接模式运行的GK。 关守关闭时,在路由模式和代理模式下的呼叫仍会中断。

  • MaxASNArraySize=400
    默认:128

    设置ASN编码数组中元素的最大数量。最大 列表中的别名数。PTLib到v2.10.10的版本默认为128个元素。若增加此设置,请注意不要超出其他供应商实施的限制。

  • MaxSocketQueue=10000
    默认:100

    限制socket在被认为已死并且将被关闭之前要排队的字节数,这可能与H.460.17的问题有相应性。

  • TTLExpireDropCall=0
    默认:1

    TTL超时取消注册时是否结束端点呼叫,默认情况下,取消注册时,在端点注册之前强制断开呼叫。 若存在带宽拥塞,RRQ数据包丢失但活动呼叫(可能导致拥塞)仍在进行中,则可能会发生这种情况。 通过启用此开关,注册将保持最新状态,直到收到RRQ或明显的呼叫超时或掉线为止

  • MinH323Version=7
    默认:2

    为GK生成的信令中设置最小的H.225和H.245协议标识符。一般,无需设置此开关,最好将版本保持较低,以实现与较早端点的互通性。 在特殊场景时,如在端点上使用新的功能特性,请使用此开关,因为他们收到版本号较低的消息时,将不会启用功能。

  • RASDiffServ=46
    默认:0
    设置RAS消息的DiffServ类(DSCP)。(在大部分Windows版本上,以这种方式设置DSCP无效。)

4.7 控制端口连接认证 [GkStatus::Auth]

定义控制端口的连接规则。访问控制端口可以完全控制GK,确保正确设置。GnuGk侦听的所有IP上的控制端口均处于活动状态。 您应该在设置允许的范围内,阻止外部穿透防火墙访问控制端口。 若依赖密码规则来保护控制端口,则应添加其他基于IP的规则(“显式”或“正则表达式”)以限制允许登录的IP范围。

  • rule=allow
    默认:forbid

    Possible values are

    • forbid - disallow any connection.
    • allow - allow any connection
    • explicit - reads the parameter ip=value where ip is the IP address of the client, value is 1,0 or allow,forbid or yes,no. If ip is not listed the parameter default is used.
    • regex - the IP of the client is matched against the given regular expression.

      示例:

      To allow client from 195.71.129.0/24 and 195.71.131.0/24:

      regex=^195\.71\.(129|131)\.[0-9]+$

    • password - 用户必须提供适当的用户名和密码才能登录。用户名/密码的格式与 [SimplePasswordAuth] 部分相同。从GnuGk 4.0开始,只能在配置中存储密码的PBKDF2哈希,这样更安全。

      示例:

      jan=PBKDF2:460461f264108e03-2fd2cef514844d45ce7180399cd87025153071fa926a0972a3d7e8c558418525

    这些规则可以与“|”组合 (“OR”)或“&”(“AND”)。例如,

    • rule=explicit | regex
      客户端的IP必须匹配 explicit regex 规则。
    • rule=regex & password
      客户端的IP必须匹配 regex 规则, and 以及用户通过用户名和密码必须登录。

    对控制端口使用SSH协议,也就是所有用户都通过密码进行了身份验证,但是您可以加入其他IP规则,例如。“正则表达式和密码”。

  • default=allow
    默认:forbid

    仅在使用时 rule=explicit.

  • DSAKey=/etc/ssh/ssh_host_dsa_key
    默认:ssh_host_dsa_key (in current working directory)

    包含DSA主机密钥的文件的路径。(仅用于SSH)

    对于SSH访问,必须配置DSA密钥或RSA密钥,或两者同时配置。

    生成DSA密钥(若不设置密码,按Enter键两次)

    ssh-keygen -t dsa -b 1024 -f ssh_host_dsa_key
    

  • RSAKey=/etc/ssh/ssh_host_rsa_key
    默认:ssh_host_rsa_key (in current working directory)

    包含RSA主机密钥的文件的路径。(仅用于SSH)

    对于SSH访问,必须配置DSA密钥或RSA密钥,或两者同时配置。

    生成RSA密钥(若不设置密码,按Enter键两次)

    ssh-keygen -t rsa -b 2048 -f ssh_host_rsa_key
    

  • Shutdown=forbid
    默认:allow

    允许通过控制端口关闭GK。

  • DelayReject=5
    默认:0

    拒绝无效的用户名/密码在下次登陆之前而要等待的时间(秒)。可防止暴力攻击时加入延迟。

  • WorkerThreadIdleTimeout=7200
    默认:3600

    默认超时(以秒为单位),之后从线程池中删除空闲的工作线程。

    当使用PTLib版本,在自动删除线程时出现内存泄漏,请勿将此值设置得太低。2.10.9。

4.8 信息过滤 [GkStatus::Filtering]

请参阅 控制端口过滤.

4.9 日志文件 [LogFile]

本节定义与日志文件相关的参数。当前,它允许用户指定日志文件轮换选项。

  • LogToSyslog=1
    默认:0

    将跟踪输出发送到syslog(仅限Unix)。

  • Filename=/var/log/gk_trace.log
    默认:N/A

    设置日志文件的输出文件名(与命令行上的-o相同)。在Windows上,必须对文件名中的反斜杠进行转义。

    重新加载配置后,此设置不会更改!

    以下符号将被替换:

    • %{gkip} - GK的IP地址
    • %{external-ip} - 外部IP(若已配置)

  • Rotate=Hourly | Daily | Weekly | Monthly
    默认:N/A

    若设置,日志文件将根据此设置进行循环记录日志。循环一个周期可以每小时、每天、每周、和每月。 一个循环的周期是由一个组合确定 RotateDay and RotateTime 变量。 在循环期间,现有文件将重命名为当前文件名.YYYYMMDD-HHMMSS, 其中 YYYYMMDD-HHMMSS 被替换为当前时间戳, 新行记录到空文件中。要禁用循环,请不要配置 Rotate 参数或将其设置为0。

  • DeleteOnRotation=1
    默认:0

    触发时删除旧的日志文件,而不是重命名。上一个循环周期中的所有数据都将丢失。这样,磁盘溢出的可能性较小。

    示例 1 - -每小时循环一次 (00:45, 01:45, ..., 23:45):

    [LogFile]
    Rotate=Hourly
    RotateTime=45
    Filename=/var/log/gk_trace.log

    示例 2 - 第天在 23:00 (11PM) 循环 :

    [LogFile]
    Rotate=Daily
    RotateTime=23:00
    Filename=C:\\Logs\\GnuGk.log

    示例 3 - 在每个星期日的 00:59 循环 :

    [LogFile]
    Rotate=Weekly
    RotateDay=Sun
    RotateTime=00:59

    示例 4 - 在第个月的最后一天 循环 :

    [LogFile]
    Rotate=Monthly
    RotateDay=31
    RotateTime=23:00


Next Previous Contents

Chapters: Contents · Introduction · Installation · Getting started · Basic Config · Routed Mode & Proxy · Routing · RAS Config · Authentication · Accounting · Neighbors · Per Endpoint Config · Advanced Config · Monitoring · Advanced Topics



Last updated: 21. Jan 2025