アドバンストサーバーアクセス のゲートウェイを構成する

このトピックでは、アドバンストサーバーアクセスのゲートウェイを構成する方法について説明します。

コマンドラインオプション

    service:sft-gatewaydサービスを実行します。

    supportOktaサポート用にローカルシステム情報を収集します。

    -h--help:ヘルプを表示します。

    -v--version:バージョンを表示します。

    --syslog:syslogによるログ記録を強制します。

構成ファイル

アドバンストサーバーアクセス のゲートウェイは、構成ファイル(/etc/sft/sft-gatewayd.yaml)を使って制御できます。ゲートウェイをインストールすると、サンプルの構成ファイル(/etc/sft/sft-gatewayd.sample.yaml)を利用できるようになります。構成ファイルが作成されない、または利用できない場合、ゲートウェイは以下のデフォルト値を使用します。

構成ファイルの変更内容を有効にするには、ゲートウェイを再起動する必要があります。詳しくは、「アドバンストサーバーアクセスのゲートウェイを管理する」をご覧ください。


セットアップトークンのオプション

これらのオプションは、ゲートウェイへのセットアップトークンの追加方法を制御します。以下のいずれかのオプションを有効にする必要があります。セットアップトークンの詳しい取得方法については、「アドバンストサーバーアクセスのゲートウェイセットアップトークンを作成する」をご覧ください。

オプション デフォルト値 説明
SetupToken unset アドバンストサーバーアクセスのプラットフォームで作成されたセットアップトークンを指定します。

注:このオプションを使用すると、テキスト形式のセットアップトークンが残されます。構成ファイルの読み取り権限を制限することをお勧めします(例:Linuxでは0600)。

SetupTokenFile Linux:/var/lib/sft-gatewayd/setup.token

FreeBSD:/var/db/sft-gatewayd/setup.token

セットアップトークンが含まれる個別ファイルへのパスを指定します。デフォルト値は、ゲートウェイを実行するオペレーティングシステムによって異なります。

このオプションは、推奨される方式です。

このオプションを使用するには、セットアップトークンファイルを手動で作成し、それをアドバンストサーバーアクセスのプラットフォームに追加する必要があります。

ゲートウェイがチームを含めて登録された後、そのゲートウェイはトークンファイルを削除します。

注:SetupTokenオプションも構成されている場合、ゲートウェイはそこで指定されているトークンを使用します。

ログオプション

オプション デフォルト値 説明
LogLevel info ログの詳細度を制御します。infoのまま残すことをお勧めします。

有効な値:

  • error
  • warn
  • info
  • debug

接続オプション

オプション デフォルト値 説明
AccessAddress 1.1.1.1 クライアントがゲートウェイへのアクセスに使用するネットワークアドレス(IPv4またはIPv6)を指定します。アドレスを指定しない場合、ゲートウェイはネットワークインターフェイスまたはクラウドプロバイダーのメタデータによって指定されるアドレスを使用します。
AccessPort 7234 クライアントがゲートウェイへのアクセスに使用するポートを指定します。
ListenAddress 0.0.0.0 ゲートウェイが接続のリッスンに使用するネットワークアドレス(IPv4またはIPv6)を指定します。デフォルトでは、ゲートウェイは利用可能なすべてのインターフェイスの接続をリッスンします。
ListenPort 7234 ゲートウェイが接続のリッスンに使用するポートを指定します。
TLSUseBundledCAs True OS証明書ストアではなく、バンドルされた証明書ストアを使ってHTTPリクエストをTLS保護するようにゲートウェイに強制します。これにはアドバンストサーバーアクセスのクラウドサービスへのリクエストも含まれます。

注:OS証明書ストアを使用するには、このオプションをFalseに設定します。

RefuseConnections False ゲートウェイが、SSHおよびRDPプロキシトラフィックを受け入れるかどうかを制御します。有効な場合、SSHおよびRDP接続リクエストはルーティングされず、ゲートウェイはプロキシトラフィックのリクエストをリッスンしません。
ForwardProxy unset アドバンストサーバーアクセスへのアウトバウンドネットワーク接続に使用されるHTTP CONNECTプロキシのURLを指定します。プロキシは、HTTPS_PROXY環境変数を使用して設定することもできます。

LDAPオプション

これらのオプションは、ゲートウェイがLightweight Directory Access Protocol (LDAP)サーバーとの安全な接続を確立する方法を制御します。ゲートウェイをAD-Joinedと連携させるには、これらのオプションを構成する必要があります。「アドバンストサーバーアクセスのAD-Joined向けゲートウェイを構成する」をご覧ください。

デフォルトでは、ゲートウェイはTLSを起動しますが、証明書は検証されません。

LDAP YAMLディクショナリでは、これらのオプションをスペース2つ分インデントする必要があります。

LDAP:
StartTLS: ...

警告: StartTLSUseLDAPSFalseに設定されている場合、Active DirectoryとのLDAP通信は暗号化されません。StartTLSTrueに設定することをお勧めします。

オプション デフォルト値 説明
StartTLS True

Active Directory/LDAPサーバー通信をTLSにアップグレードします。無効にすると、サーバーとの通信は暗号化されません。

StartTLSは、TLSプロトコルを使って通信を暗号化するLDAPプロトコルの拡張機能です。このオプションは、UseLDAPSオプションと同時に有効にすることはできません。

UseLDAPS

False

LDAPSプロトコルによる通信の暗号化を有効にします。このオプションは、StartTLSオプションと同時に有効にすることはできません。

LDAPSPort

636

UseLDAPSオプションがTrueに設定されている場合、このポート値はLDAPS接続の確立に使用されます。

ValidateCertificates False AD/LDAPサーバーから受信した証明書を検証します。無効にすると、LDAPサーバーの通信はMITM攻撃に対して脆弱になる可能性があります。

有効にした場合、ゲートウェイはTrustedCAsDirで指定されるパスで証明書を探します。

このオプションを有効にする前に、各接続ドメインの有効な証明書がゲートウェイに保存されているかを事前に確認する必要があります。有効な証明書が見つからない場合、ゲートウェイはすべての接続を拒否します。

TrustedCAsDir unset 認証局の公開証明書(通常はActive Directory内で管理され、グループポリシーを介して配布されます)が保存されているディレクトリのパスを指定します。ディレクトリと証明書は、sft-gatewaydユーザーによる読み取りが可能である必要があります。また、証明書はPEMで符号化しておく必要があります。サブディレクトリは確認されません。

任意のパスを使用できますが、/etc/sft/trusted-ldap-certs/を使用することをお勧めします。

証明書の詳細については、「アドバンストサーバーアクセスのゲートウェイに証明書を追加する」をご覧ください。

RDPオプション

これらのオプションは、ゲートウェイがRDP(リモートデスクトッププロトコル)セッションを管理する方法を制御します。これらのオプションは、ゲートウェイを経由するRDPセッションを、サーバーエージェントを使って登録されるサーバーまたはADドメインで検出されるサーバーにルーティングするように構成する必要があります。ゲートウェイをAD-Joinedと連携させるには、これらのオプションを構成する必要があります。「アドバンストサーバーアクセスのAD-Joined向けゲートウェイを構成する」をご覧ください。

RDP接続は、Enabledオプションと、TrustedCAsDirまたはDangerouslyIgnoreServerCertificatesオプションを使って明示的に許可する必要があります。

AD-Joined機能を利用する場合、RDPのサポートが無効でもゲートウェイはActive Directoryサーバーの検出を行います。「Active Directoryサーバーの検出」をご覧ください。

ゲートウェイ経由でルーティングされるAD-JoinedおよびRDP接続には、Ubuntu 20.04、22.04、またはRHEL 8が必要です。

オプション デフォルト値 説明
Enabled False

ゲートウェイ向けのRDP機能を制御します。RDPには追加の構成が必要なため、このオプションはデフォルトで無効になっています。RDP接続を許可する前にTrueに設定する必要があります。

TrustedCAsDir unset 認証局が証明した公開証明書(通常はActive Directory内で管理され、グループポリシーを介して配布されます)が保存されているディレクトリのパスを指定します。ディレクトリと証明書は、sft-gatewaydユーザーによる読み取りが可能である必要があります。また、証明書はPEMで符号化されている必要があります。サブディレクトリは確認されません。

任意のパスを使用できますが、/etc/sft/trusted-rdp-certs/を使用することをお勧めします。

証明書について詳しくは、「アドバンストサーバーアクセスのゲートウェイに証明書を追加する」をご覧ください。

DangerouslyIgnoreServerCertificates False RDPホストに接続する際にゲートウェイによるサーバー証明書の検証を制限します。このフラグはテスト環境以外では危険ですが、RDPホストに自己署名証明書がある場合は必要になる場合があります。
MaximumActiveSessions 20 ゲートウェイで許可される同時RDPセッションの数を制御します。このセッション数に達すると、それ以後のユーザーはエラーを受信し、ゲートウェイに接続できなくなります。この制限は、リソースおよびパフォーマンス上の理由のためのみで設けられています。
VerboseLogging True RDP-internalログの詳細度を制御します。これらのメッセージは問題の診断時には有用ですが、ログが雑然とする場合もあります。

注:Falseに設定すると、すべての内部RDPログメッセージにはdebugのラベルが付けられます。

セッションキャプチャのオプション

オプション デフォルト値 説明
SessionLogFlushInterval 10s セッションキャプチャログのサイズしきい値を指定します。このしきい値に達すると、アクティブセッションのログは署名され、ディスクにフラッシュされます。このオプションでは、時間単位(ms、s、m、h)も指定する必要があります。
SessionLogMaxBufferSize 262144 セッションキャプチャログのサイズしきい値を指定します。このしきい値に達すると、アクティブセッションのログが署名され、フラッシュされます。このオプションでは、サイズの単位はバイトです。
SessionLogTempStorageDirectory /tmp ログを指定の場所にアップロードする前にSSHセッションログを格納する一時ディレクトリを指定します。

デフォルト値はオペレーティングシステムによって異なります。Linuxでは、デフォルトは通常は/tmpです($TMPDIR環境変数が指定されている場合を除く)。

一時セッションログとファイナライズされたセッションログのディレクトリは、同じデバイスに存在させる必要があります。

LogDestinations unset 最終的なセッションログの格納場所を指定します。ログは、ローカルに保存することも、AWSバケットまたはGCSバケットに保存することもできます。セッションログは、複数の場所に格納できます。格納先が複数の場合、ログは構成ファイルに指定されている順序で格納先に送信されます。セッションログは、アドバンストサーバーアクセスには絶対に送信されません。

以下のデフォルトの値と例を参照してください。

例 - Linux/BSD

LogDestinations:
- Type: file
LogDir: /var/log/sft/sessions

ゲートウェイは/home/root/run/userの各ディレクトリには書き込めません。

例 - AWS

LogDestinations:
- Type: s3
Bucket: BUCKET-NAME
Region: US-EAST-1
# Use of ec2 instance IAM Role credentials for s3 bucket access is recommended
# To use ec2 instance IAM Role credentials leave Profile, AccesKeyId, SecretKey, and SessionToken BLANK
# Specify Profile for shared credentials
Profile: AWS-PROFILE-NAME
# Specify AccessKeyId, SecretKey, and SessionToken for static credentials
AccessKeyId: SECRET
SecretKey: SECRET
SessionToken: SECRET

例 - Google Cloud

LogDestinations:
- Type: gcs
Bucket: BUCKET-NAME
# Supply one of CredentialsFile or CredentialsJSON (or none to use instance credentials)
CredentialsFile: /path/to/cred/file
CredentialsJSON: |
{
"SOME": "value",
"IN": "json"
}

LogFileNameFormats

SSHRecording: {{StartTime}}-{{.TeamName}}-{{Username}}

RDPRecording: {{StartTime}}-{{Protocol}}-{{.TeamName}}-{{ProjectName}}-{[.ServerName}}-{{.Username}}

システム管理者はlogFileNameFormatsオプションをカスタマイズおよび構成して、セッション記録ログをより適切に理解し、管理することができます。

  • StartTime - セッションの記録が開始する時間時間の変換は、ISO 8601標準形式を使用して行われます。

  • TeamName - 接続セッションをトリガーするユーザーのアドバンストサーバーアクセスチーム名。

  • UserName - SSHまたはRDPセッションをトリガーするユーザーの名前。

  • Protocol - 接続プロトコル(SSHまたはRDPのいずれか)。

  • ProjectName - ターゲットのSSHまたはRDPサーバーが属するプロジェクトの名前。

  • ServerName - SSHまたはRDPセッションで接続されているターゲットサーバークライアントのホスト名。

関連項目