コンポーネントは、Dr.Web for UNIX Mail Serversの統合された設定ファイルの[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}
|
コンポーネントの最大アイドル時間。指定された時間が経過すると、コンポーネントはシャットダウンします。
最小値 - 10s.
デフォルト値: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 Directiory)に使用されるSSL証明書へのパス。
証明書ファイルとプライベートキーファイル(後述のパラメータで指定されます)は、一致するペアを形成する必要があります。
デフォルト値:(未設定)
|
LdapKeyPath
{path to file}
|
安全なSSL/TLS接続を介したLDAPサーバーへの接続(Active Directiory)に使用されるプライベートキーへのパス。
証明書ファイルとプライベートキーファイル(上のパラメータで指定されます)は、一致するペアを形成する必要があります。
デフォルト値:(未設定)
|
LdapCaPath
{path}
|
SSL/TLSを介したLDAPプロトコルによるデータの共有に信頼して使用できる、信頼できるルート証明書のシステムリストを含むディレクトリまたはファイルへのパス。
デフォルト値:信頼できる証明書のリストへのパス。パスはお使いの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データベースに接続するためのパラメータをデフォルトで設定するURL。
使用可能な値:
•tcp://[<user>[:<password>]@][<host>][:<port>][/<database name>][?<parameter>=<value>[&…]] •unix://[<user>[:<password>]@]<path to socket>[:<database name>][?<parameter>=<value>[&…]] URI要件に注意してください。
デフォルト値:(未設定)
|
PqDefaultConn
{URL}
|
PostgreSQLデータベースに接続するためのパラメータをデフォルトで設定するURL。
使用可能な値:
•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}
|
PostgreSQLデータベースの接続パラメータをデフォルトで設定する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/library/mysql_optionsv/を参照してください。
5.PostgreSQLデータベースについては、https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-PARAMKEYWORDSも参照してください。 データソースセクション
設定ファイルには、一般的なセクションである[LookupD]の他、データソースへの接続を記述するセクション(各接続につき1つのセクション)もあります。これらのセクションには、[LookupD.<タイプ>.<名前>]というスキームを使用して名前が付けられます。ここで、
•<タイプ> - 接続の種類: ▫LDAP - LDAPを使用するディレクトリサービス用。 ▫AD - Active Directoryサービス。 ▫AllMatch - AllMatchモードのテキストファイル用(フル認証)。 ▫Mask - マスクモードのテキストファイル用(マスク認証)。 ▫Regex - Regexモードのテキストファイル用(PCRE標準の正規表現に対する認証)。 ▫Cidr - Cidrモードのテキストファイル用(IPアドレスまたはIPアドレス範囲認証)。 ▫Pq - PostgreSQLデータベース用。 ▫Mysql - Mysqlデータベース用。 ▫Sqlite - Sqliteデータベース用。 ▫Redis - Redisデータベース用。 •<名前> - 接続の一意のID(タグ)。これを使用してルールから接続を参照できます。 例:[LookupD.LDAP.auth1]。データソースのセクション内に含まれるパラメータのセットは、接続の種類によって異なります。データソースセクションの数に制限はありません。
1.LDAPタイプのセクションで使用されるパラメータ
Url
{string}
|
使用されるLDAPサーバーと抽出されるデータを定義するURL。URLは、RFC 4516に従って次のスキームに基づいて構築されます。
<scheme>://<host>[:<port>]/<dn>[?<attrs>[?<scope>[?<filter>[?<extensions>]]]]
<scheme> - サーバーへの接続方法(許可されるスキーム:ldap、ldaps、ldapi)。
<host>[:<port>] - リクエストを受信するLDAPサーバーアドレス。
<dn> - オブジェクトの識別名。このオブジェクトに関する情報が送信されました。
<attrs> - レコード属性の名前。この値はリクエスト内で受信する必要があります。
<scope> - 検索範囲(base、one、sub)。
<filter> - 抽出された属性の値に対するフィルター条件。
<extensions> - リクエストで使用されるLDAP拡張子のリスト。
機能:
•属性のリスト<attrs>では、「*」、「+」、「1.1」の任意の特殊文字を使用できます。 •以下の自動的に解決されるプレースホルダーは、URLの<dn>および<filter>部分で使用できます。 ▫$uは、クライアントコンポーネントによって送信されたユーザー名に自動的に置き換えられます。 ▫$dは、クライアントコンポーネントによって送信されたドメインに自動的に置き換えられます。 ▫$D - dc=<subdomain>、dc=<domain>に変更される<subdomain>.<domain>チェーン。 ▫$$ - 「$」文字。 •<filter>条件で特殊文字(「*」、「(」、「)」、「\」、コードが0の文字など)を通常の文字として使用する必要がある場合、それらの文字は\XXと記述する必要があります。さらに、URL LDAPの特殊文字は、シーケンス%XXを使用してエンコードされます。たとえば、「/」文字のldapiスキームに従ってURLをローカルLDAPサーバーソケットへのパスの一部として使用する場合、この文字は%2fとしてエンコードされます。 •<extensions>で許可される拡張機能として、StartTLSと1.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>:]] - 文字(alnum、alpha、ascii、blank、cntrl、digit、graph、lower、print、punct、space、upper、xdigit)のPOSIXクラスの文字。
サブストリングと一致するマスクには、「*」記号で囲まれたサブストリングが含まれている必要があります。(例:*host*)。いずれかの特殊文字を指定する必要がある場合は、バックスラッシュを使用して文字をエスケープする必要があります(\[、\]、\*、\?)。必要に応じて、バックスラッシュをエスケープすることもできます(\\)。他の文字をエスケープしても意味はありません。たとえば文字列\a\b\c\*\d\?\\は文字列abc*d?\に変換されます。マスクの例:
#「name」文字列に完全に一致します
name
#3文字の文字列に一致します:
#最初の文字は「c」、2番目は任意、3番目は「t」
#例:「cat」、「cut」、「cct」
c?t
#「user」、「users」、「us3rr」、「ussr1」などの文字列に一致します
#([:alpha:]文字クラスは任意のアルファベット
#文字、特殊文字「?」は任意の文字に一致します)
us[[:alpha:]34]r?
#「.con」、「file.col」、「3 ... co!」などの文字列に一致します
#(「.co」の前の任意の文字シーケンス、その後ろは
#「m」と「?」以外の任意の文字)
*.co[!m\?]
#「host」を含む任意の文字列に一致します。
#例:「host」、「localhost」、「hostel」、「ghosts」
*host*
|
•Regexタイプのセクションで指定したファイルの文字列は、PCRE(Perl互換正規表現)の通常の拡張機能として解釈されます。文字列と正規表現の照合は、大文字と小文字を区別しないで行われます。正規表現の例:
#IPv4
(\d{1,3}.){3}\d{1,3}
#.comドメインのメールアドレス
\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は、クライアントコンポーネントによって送信されたユーザー名に自動的に置き換えられます。 •$d、$Dは、クライアントコンポーネントによって送信されたドメインに自動的に置き換えられます。 •$$は、「$」文字に置き換えられます。 例:"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は、クライアントコンポーネントによって送信されたユーザー名に自動的に置き換えられます。 •$d、$Dは、クライアントコンポーネントによって送信されたドメインに自動的に置き換えられます。 •$$は、「$」文字に置き換えられます。 例:"HVALS bad_users"
デフォルト値:(未設定)
|
注意:クエリー結果に複数のカラムが含まれる場合、最初のカラムを除くすべてのカラムが無視されます。
新しいデータソース用のセクションを追加する
Dr.Web for UNIX Mail Servers用のコマンドラインベースの管理ツールであるDr.Web Ctl(drweb-ctl コマンド経由でアクセス)を使用し、<名前>タグを使って、サポートされるタイプの新しいデータソース用の新しいセクションを追加するには、次のコマンドを使用する必要があります。
# 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番目のコマンドはこのセクション内のホストパラメータの値を変更します。
あるいは、次のように新しいセクションを設定ファイルに直接書き込む(ファイルの末尾に追加するなど)こともできます。
[LookupD.AD.WinAD1]
Host = 192.168.0.20
|

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