設定パラメータ

このセクションの内容

コンポーネントパラメータ

データソースセクション

新しいデータソース用のセクションの追加

このコンポーネントは、Dr.Web for UNIX Internet Gatewaysの統合された設定ファイル[LookupD]セクションで指定されている設定パラメータを使用します。

コンポーネントパラメータ

セクションには以下のパラメータが含まれています。

パラメータ

説明

LogLevel

{logging level}

コンポーネントのロギングレベル

パラメータの値が指定されていない場合は、[Root]セクションDefaultLogLevelパラメータの値が使用されます。

デフォルト値:Notice

Log

{log type}

コンポーネントのロギング方式

デフォルト値:Auto

ExePath

{path to file}

コンポーネントの実行パス。

デフォルト値:<opt_dir>/bin/drweb-lookupd

GNU/Linuxの場合:/opt/drweb.com/bin/drweb-lookupd

FreeBSDの場合:/usr/local/libexec/drweb.com/bin/drweb-lookupd

RunAsUser

{UID | user name}

このパラメータは、コンポーネントを実行するユーザー名を決定します。ユーザー名は、ユーザーのUIDまたはユーザーのログインとして指定できます。ユーザー名が数字で構成されている場合(つまりUIDに似ている場合)は、「name:」というプレフィックスを付けて指定します。たとえば、RunAsUser = name:123456です。

ユーザー名が指定されていない場合、コンポーネント操作は開始後にエラーが発生して終了します。

デフォルト値:drweb

IdleTimeLimit

{time interval}

コンポーネントの最大アイドル時間。指定された時間が経過すると、コンポーネントはシャットダウンします。

指定可能な値:10秒(10s)から30日(30d)まで。
None値が設定されている場合、コンポーネントは永続的に機能します。コンポーネントがアイドル状態になると、SIGTERMシグナルは送信されません。

デフォルト値:30s

DebugLibldap

{Boolean}

libldapライブラリのデバッグメッセージもデバッグレベルでログファイルに含めるかどうかを示します(つまり、LogLevel = DEBUGの場合)。

デフォルト値:No

LdapCheckCertificate

{No | Allow | Try | Yes}

SSL/TLS経由のLDAP接続の証明書検証モード。

使用可能な値:

No - サーバーの証明書を要求しない。

Allow - サーバーの証明書を要求する。証明書が提供されない場合、セッションは通常どおりに続行されます。サーバーの証明書が提供されてもスキャンできない(対応するルート証明書が見つからない)場合、その証明書は無視され、セッションは通常どおりに続行されます。

Try - サーバーの証明書を要求する。証明書が提供されない場合、セッションは通常どおりに続行されます。サーバーの証明書が提供されても確認できない(対応するルート証明書が見つからない)場合、セッションは終了します。

Yes - サーバーの証明書を要求する。証明書が提供されないか、スキャンできない場合(対応するルート証明書が見つからない場合)、セッションは終了します。

LDAPデータソースの場合、この証明書検証モードは、ldaps://スキームまたはStartTLS拡張機能が使用されるときのURLの処理方法に影響します。ADデータソースの場合は、対応するセクションでUseSSL=Yesが指定されていると(以下参照)、サーバーへの接続に影響します。

デフォルト値:Yes

LdapCertificatePath

{path to file}

安全なSSL/TLS接続を介したLDAPサーバーへの接続(Active Directory)に使用されるSSL証明書へのパス。

証明書ファイルとプライベートキーファイル(後述のパラメータで指定されます)は、一致するペアを形成する必要があります。

デフォルト値:(未設定)

LdapKeyPath

{path to file}

安全なSSL/TLS接続を介したLDAPサーバーへの接続(Active Directory)に使用されるプライベートキーへのパス。

証明書ファイルとプライベートキーファイル(上記のパラメータで指定されます)は、一致するペアを形成する必要があります。

デフォルト値:(未設定)

LdapCaPath

{path}

SSL/TLSを介したLDAPプロトコルによるデータの共有に信頼して使用できる、信頼できるルート証明書のシステムリストを含むディレクトリまたはファイルへのパス。

デフォルト値:<path to the list of trusted certificates>。パスは、お使いのGNU/Linuxディストリビューションに依存します。

Astra Linux、Debian、Linux Mint、SUSE Linux、Ubuntuの場合、通常はパス/etc/ssl/certs/です。

CentOSとFedoraの場合はパス/etc/pki/tls/certs/ca-bundle.crtです。

他のディストリビューションでは、コマンドopenssl version -dの実行結果によってパスを定義できます。

コマンドが使用できない場合、またはOSディストリビューションを特定できない場合は、値/etc/ssl/certs/が使用されます。

DbIdleTimeout

{time interval}

データベース(またはRedisストレージ)への確立された接続がアイドル状態になっている場合に、その接続を切断するまでのタイムアウト期間。

デフォルト値:5m

MysqlDefaultConn

{URL}

MySQLデータベースに接続するためのパラメータをデフォルトで設定するURI。

使用可能な値:

tcp://[<user>[:<password>]@][<host>][:<port>][/<database name>][?<parameter>=<value>[&…]]

unix://[<user>[:<password>]@]<path to socket>[:<database name>][?<parameter>=<value>[&…]]

URI要件に注意してください。

デフォルト値:(未設定)

PqDefaultConn

{URL}

PostgreSQLデータベースに接続するためのパラメータをデフォルトで設定するURI。

使用可能な値:

tcp://[<user>[:<password>]@][<host>][:<port>][/<database name>][?<parameter>=<value>[&…]]

unix://[<user>[:<password>]@]<path to socket>[:<database name>][?<parameter>=<value>[&…]]

URI要件に注意してください。

デフォルト値:(未設定)

SqliteDefaultConn

{path to file}

デフォルトのSQLiteデータベースファイルへのパス(file://スキームプレフィックスを指定)。

デフォルト値:(未設定)

RedisDefaultConn

{URL}

Redisデータベースへの接続パラメータをデフォルトで設定するURLです。

使用可能な値:

tcp://[<password>@][<host>][:<port>][/<database index>]

unix://[<password>@]<socket path>[:<database index>]

URI要件に注意してください。

デフォルト値:(未設定)

データベース接続のURI要件

1.tcp:およびunix:スキームプレフィックスのみを使用します(ローカルUNIXソケットの場合)。データベース固有のプレフィックス(postgresql:およびmysql:など)はサポートしていません。SQLiteデータベースファイルへのパスは、file://スキームプレフィックスで指定されます。

2.<host>フィールドがURIで指定されていないか、localhostホストが指定されている場合、ホストアドレス127.0.0.1が置き換えられます。この場合、MySQLおよびPostgreSQLデータベースでは、ネットワーク接続が指定されているにもかかわらず、ローカルUNIXソケットを介してデフォルトで接続が確立されます。

3.URIフィールド(<user><password><database name>など)または接続パラメータ文字列に特殊文字(スペース、列など)が含まれている場合は、次のように16進コーディングを使用します。たとえば、

スペース - "%20"

':' - "%3A"

'/' - "%2F"

'@' - "%40"

'%' - "%25"

4.MySQLの場合、接続パラメータ文字列には次のパラメータのみを含めることができます。

パラメータ名

データベースドキュメントの文字・記号

タイプ

説明

init

MYSQL_INIT_COMMAND

文字列

データベースへの接続後に実行するSQLコマンド

compression

MYSQL_OPT_COMPRESS

論理

データ圧縮を使用する

connect-timeout

MYSQL_OPT_CONNECT_TIMEOUT

整数

未使用の接続を切断するためのタイムアウト(秒)

reconnect

MYSQL_OPT_RECONNECT

論理

自動再接続を許可または拒否する

read-timeout

MYSQL_OPT_READ_TIMEOUT

整数

サーバーからのパケット受信のタイムアウト(秒)

write-timeout

MYSQL_OPT_WRITE_TIMEOUT

整数

パケットをサーバーに送信するためのタイムアウト(秒)

charset

MYSQL_SET_CHARSET_NAME

文字列

デフォルトの接続に使用される文字エンコーディングの名前

plugin-dir

MYSQL_PLUGIN_DIR

文字列

プラグインを格納するサーバーのディレクトリへのパス

nonblock

MYSQL_OPT_NONBLOCK

整数

ブロック以外のI/O操作のスタックサイズ

ssl-key

MYSQL_OPT_SSL_KEY

文字列

安全な接続を確立するために使用されるプライベートキー(PEM形式)へのパス

ssl-cert

MYSQL_OPT_SSL_CERT

文字列

安全な接続を確立するために使用されるパブリックキー証明書(PEM形式)へのパス

ssl-ca

MYSQL_OPT_SSL_CA

文字列

信頼できるCA証明書を含むファイル(PEM形式)へのパス

ssl-capath

MYSQL_OPT_SSL_CAPATH

文字列

信頼できるCA証明書を含むディレクトリへのパス(PEM形式)

ssl-cipher

MYSQL_OPT_SSL_CIPHER

文字列

安全な接続でサポートされている暗号化アルゴリズムのリスト

ssl-crl

MYSQL_OPT_SSL_CRL

文字列

失効した証明書を含むファイル(PEM形式)へのパス

ssl-crlpath

MYSQL_OPT_SSL_CRLPATH

文字列

失効した証明書を含むディレクトリへのパス(PEM形式)

ssl-fp

MARIADB_OPT_SSL_FP

文字列

有効なサーバー証明書のSHA1ハッシュ

ssl-fp-list

MARIADB_OPT_SSL_FP_LIST

文字列

有効なサーバー証明書のSHA1ハッシュを含むファイルへのパス

tls-passphrase

MARIADB_OPT_TLS_PASSPHRASE

文字列

パスワードで保護されたクライアントプライベートキーのパスワード

tls-version

MARIADB_OPT_TLS_VERSION

文字列

サポートされるTLSバージョンのリスト

server-verify-cert

MYSQL_OPT_SSL_VERIFY_SERVER_CERT

論理

サーバー証明書の検証を許可または禁止する

server-public-key-path

MYSQL_SERVER_PUBLIC_KEY

文字列

RSAサーバーパブリックキーを含むファイル(PEM形式)へのパス

データベースのドキュメントでのパラメータの詳細については、https://mariadb.com/kb/en/mysql_optionsv/を参照してください。

5.PostgreSQLデータベースについては、https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-PARAMKEYWORDSも参照してください。

データソースセクション

設定ファイルには、一般的なセクションである[LookupD]の他、データソースへの接続を記述するセクション(各接続につき1つのセクション)もあります。これらのセクションには、[LookupD.<type>.<name>]というスキームを使用して名前が付けられます。ここで、

<type> - 接続の種類:

LDAP - LDAPを使用するディレクトリサービス用。

AD - Active Directoryサービス。

AllMatch - AllMatchモードのテキストファイル用(フル認証)。

Mask - Maskモードのテキストファイル用(マスク認証)。

Regex - Regexモードのテキストファイル用(PCRE標準の正規表現に対する認証)。

Cidr - Cidrモードのテキストファイル用(IPアドレスまたはIPアドレス範囲認証)。

Pq - PostgreSQLデータベース用。

Mysql - Mysqlデータベース用。

Sqlite - Sqliteデータベース用。

Redis - Redisデータベース用。

<name> - 接続の一意のID(タグ)。これを使用してルールから接続を参照できます。

たとえば、[LookupD.LDAP.auth1]とします。データソースのセクション内に含まれるパラメータのセットは、接続のタイプによって異なります。データソースセクションの数に制限はありません。

1.LDAPタイプのセクションで使用されるパラメータ

パラメータ

説明

Url

{string}

使用されるLDAPサーバーと抽出されるデータを定義するURL。URLは、RFC 4516に従って次のスキームに基づいて構築されます。

<scheme>://<host>[:<port>]/<dn>[?<attrs>[?<scope>[?<filter>[?<extensions>]]]]

各パラメータは次のとおりです。

<scheme> - サーバーへの接続方法(許可されるスキーム:ldapldapsldapi)。

<host>[:<port>] - リクエストを受信するLDAPサーバーアドレス。

<dn> - オブジェクトの識別名。このオブジェクトに関する情報が送信されました。

<attrs> - レコード属性の名前。この値はリクエスト内で受信する必要があります。

<scope> - 検索範囲(baseonesub)。

<filter> - 抽出された属性の値に対するフィルター条件。

<extensions> - リクエストで使用されるLDAP拡張子のリスト。

機能

属性のリスト<attrs>では、「*」、「+」、「1.1」の任意の特殊文字を使用できます。

以下の自動的に解決されるプレースホルダーは、URLの<dn>および<filter>部分で使用できます。

$uは、クライアントコンポーネントによって送信されたユーザー名(user)に自動的に置き換えられます。

$dは、クライアントコンポーネントによって送信されたドメイン(domain)に自動的に置き換えられます。

$D - dc=<subdomain>,dc=<domain>に変更される<subdomain>.<domain>チェーン。

$$ - 「$」文字。

<filter>条件で特殊文字(「*」、「(」、「)」、「\」、コードが0の文字など)を通常の文字として使用する必要がある場合、それらの文字は\XXと記述する必要があります。さらに、URL LDAPの特殊文字は、シーケンス%XXを使用してエンコードされます。たとえば、「/」文字のldapiスキームに従ってURLをローカルLDAPサーバーソケットへのパスの一部として使用する場合、この文字は%2fとしてエンコードされます。

<extensions>で許可される拡張機能として、StartTLS1.3.6.1.4.1.1466.20037のみがサポートされます。これらの拡張機能では、保護されたスキームであるldapsを使用することが明示されていない場合でも、TLSメカニズム(つまり、LDAPサーバーとの保護された接続の確立)が使用されます。使用される拡張機能の名前の前に「!」文字がある場合は、TLSを使用する必要があります。つまり、安全な接続を確立できない場合には、リクエストは処理されません。それ以外の場合は、安全な接続が確立されていなくてもリクエストは処理されます。

指定された拡張機能は、保護されたldapsスキームでは使用できません。詳細については、RFC 4516またはman ldap_search_ext_sを参照してください。

例:

"ldaps://ds.example.com:990/$D?givenName,sn,cn?sub?(uid=$u)"
"ldap://ldap.local/o=org,dc=nodomain?ipNetworkNumber?sub?(objectClass=ipNetwork)?!StartTLS"

デフォルト値:(未設定)

BindDn

{string}

ユーザーが認証を受けなければならないLDAPディレクトリ内のオブジェクト。

例:"cn=admin,dc=nodomain"

デフォルト値:(未設定)

BindPassword

{string}

LDAPサーバー上での認証に使用するユーザーのパスワード。

デフォルト値:(未設定)

ChaseReferrals

{Boolean}

現在のLDAPサーバーがリクエストへの応答として他のLDAPサーバーへの参照を返す場合、その参照に従うようコンポーネントに指示します。

デフォルト値:No

2.ADタイプのセクションで使用されるパラメータ

パラメータ

説明

Host

{string}

接続するActive Directoryサービスのサーバーが稼働しているホストのドメイン名(FQDN)またはIPアドレス。

例:"win2012.win.local"

デフォルト値:(未設定)

Port

{integer}

Active Directoryサービスのサーバーがリッスンするホスト上のポート。

デフォルト値:389

Dn

{string}

Active Directory内のオブジェクトのDN。これはLDAP URLのdn部分に似ています。

例:"dc=win,dc=local"

デフォルト値:(未設定)

User

{string}

識別に使用される、サーバー上のユーザーID。

例:"Administrator@WIN.LOCAL"

デフォルト値:(未設定)

Password

{string}

Active Directoryサーバー上での認証に使用されるユーザーのパスワード。

デフォルト値:(未設定)

ChaseReferrals

{Boolean}

現在のActive Directoryサーバーがリクエストへの応答として他のLDAPサーバーへの参照を返す場合、その参照に従うようコンポーネントに指示します。

デフォルト値:No

UseSSL

{Boolean}

Active Directoryサーバーへの接続にSSL/TLSを使用するよう指示します。

デフォルト値:No

3.AllMatch、Mask、Regex、Cidrタイプのセクションパラメータ

パラメータ

説明

File

{path}

検索文字列を含むテキストファイルへのパス。

例:"/etc/file1"

デフォルト値:(未設定)

機能

AllMatchタイプのセクションで指定したファイルの文字列は、大文字と小文字を区別しない完全に一致する文字列の検索に使用されます。

Maskタイプのセクションで指定したファイルの文字列は、マスク(ワイルドカード)と見なされます。マスクは、標準文字と特殊文字を含む正規表現の簡略版と見なすことができます。文字列とマスクの照合は、大文字と小文字を区別しないで行われます。マスクには、次の特殊文字と式を含めることができます。

* - 任意の文字シーケンス

? - 任意の1つの記号

[<character set>] - セットの文字(たとえば、[bac]

[<character set>] - セットのどの記号にも一致しない文字(たとえば、[!cab]

[[:<class>:]] - 文字(alnumalphaasciiblankcntrldigitgraphlowerprintpunctspaceupperxdigit)のPOSIXクラスの文字

サブストリングと一致するマスクには、「*」記号で囲まれたサブストリングが含まれている必要があります。(例:*host*)。いずれかの特殊文字を指定する必要がある場合は、バックスラッシュを使用して文字をエスケープする必要があります(\[\]\*\?)。必要に応じて、バックスラッシュをエスケープすることもできます(\\)。他の文字をエスケープしても意味はありません。たとえば文字列\a\b\c\*\d\?\\は文字列abc*d?\に変換されます。マスクの例:

#Matches the “name” string exactly
name

#Matches the three-character strings where
#the first character is “c”, the second is any, and the third is “t”
#For example: “cat”, “cut”, “cct”
c?t

#Matches the strings: “user”, “users”, “us3rr”, “ussr1”, and so on
#(the [:alpha:] character class matches any alphabetical
#character, the special character “?” matches any character)
us[[:alpha:]34]r?

#Matches the strings: “.con”, “file.col”, “3...co!”, and so on
#(any character sequence before the “.co”, after—
#any character except “m” and “?”)
*.co[!m\?]

#Matches any string that contains “host”,
#For example: “host”, “localhost”, “hostel”, “ghosts”
*host*

Regexタイプのセクションで指定したファイルの文字列は、PCRE(Perl互換正規表現)の通常の拡張機能として解釈されます。文字列と正規表現の照合は、大文字と小文字を区別しないで行われます。正規表現の例:

#IPv4
(\d{1,3}.){3}\d{1,3}

#Email address in the .com domain
\w+@\w+\.com

Cidrタイプのセクションで指定したファイルの文字列は、IPアドレスまたはIPアドレス範囲として解釈されます。IPアドレスとIPアドレス範囲では、IPv4形式とIPv6形式が許可されます。サブネットマスクは、ビット(オクテット)形式とCIDR(Classless Inter-Domain Routing)表記で指定できます。例:

#IPv4
192.168.0.1
192.168.0.0/12
192.168.0.0/255.255.255.224

#IPv6
fe80::c7e8/32
fe80::c7e8/255.255.255.224

4.Pq、Mysql、Sqliteタイプのセクションで使用されるパラメータ

Conn

{string}

データベース接続文字列。

使用可能な値:

Mysql(MySQL)、Pq(PostgreSQL)セクションの場合:

tcp://[<user>[:<password>]@]<host>[:<port>][/<database name>][?<parameter>=<value>[&…]]

unix://[<user>[:<password>]@]<path to socket>[:<database name>][?<parameter>=<value>[&…]]

例:"tcp://user:pwd@localhost:1234/userdb"、"unix://user:pwd@/tmp/pgsql.sock:userdb"

URI要件に注意してください。

Sqlite(SQLite)セクションの場合:

データベースファイルへのパス(file://スキームプレフィックスを指定)。

例:"file:///home/user/users.db"

デフォルト値:対応する*DefaultConnパラメータ値によって定義

Request

{string}

データベースへのSQLクエリー文字列(SELECT)。ADおよびLDAPタイプのソースについては、以下の自動的に許可されるマーカーをクエリーで使用できます。

$u$Uは、クライアントコンポーネントによって送信されたユーザー名(user)に自動的に置き換えられます。

$d$Dは、クライアントコンポーネントによって送信されたドメイン(domain)に自動的に置き換えられます。

$$は、「$」文字に置き換えられます。

例:"SELECT username FROM users INNER JOIN domains ON users.domain = domains.id WHERE domains.name = $d AND users.name = $u"

デフォルト値:(未設定)

SQLクエリーとして、SELECTタイプのクエリーのみ指定できます。置換を実行した後、クエリーは「そのまま」データベースに送信されます。クエリー結果に複数のカラムが含まれる場合、最初のカラムを除くすべてのカラムが無視されます。

5.Redisタイプのセクションで使用されるパラメータ

Conn

{string}

Redisデータストレージとの接続文字列。

使用可能な値:

tcp://[<password>@]<host>[:<port>][/<database index>]

unix://[<password>@]<socket path>[:<database index>]

URI要件に注意してください。

例:"tcp://localhost:6379"

デフォルト値:RedisDefaultConnパラメータ値によって定義

Request

{string}

Redisストレージのクエリー文字列。クエリーでは、以下の自動的に許可されるマーカーを使用できます。

$u$Uは、クライアントコンポーネントによって送信されたユーザー名(user)に自動的に置き換えられます。

$d$Dは、クライアントコンポーネントによって送信されたドメイン(domain)に自動的に置き換えられます。

$$は、「$」文字に置き換えられます。

例:"HVALS bad_users"

デフォルト値:(未設定)

クエリー結果に複数のカラムが含まれる場合、最初のカラムを除くすべてのカラムが無視されます。

新しいデータソース用のセクションの追加

Dr.Web for UNIX Internet Gateways用のコマンドラインベース管理ツールDr.Web Ctldrweb-ctlコマンドでアクセス)を使用し、<name>タグを使って、サポートされるタイプの新しいデータソース用に新しいセクションを追加するには、次のコマンドを使用する必要があります。

# drweb-ctl cfset LookupD.<type> -a <name>

例:

# drweb-ctl cfset LookupD.AD -a WinAD1
# drweb-ctl cfset LookupD.AD.WinAD1.Host 192.168.0.20

最初のコマンドは[LookupD.AD.WinAD1]という名前のセクションを設定ファイルに追加し、2番目のコマンドはこのセクション内のHostパラメータの値を変更します。

あるいは次の例のように、新しいセクションを設定ファイルの末尾に直接書き込むこともできます。

[LookupD.AD.WinAD1]
Host = 192.168.0.20

どちらの方法でも効果は同じです。ただし設定ファイルを編集する場合は、drweb-configdコンポーネントにSIGHUP信号を送信して、変更した設定を適用する必要があります。これを行うには、次のコマンドを実行します。

# drweb-ctl reload