Advanced Server Access のゲートウェイを構成する

このトピックでは、Advanced Server Accessのゲートウェイを構成する方法について説明します。

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

  • service:sft-gatewaydサービスを実行します。
  • supportOktaサポート用にローカルシステム情報を収集します。
  • -h--help:ヘルプを表示します。
  • -v--version:バージョンを表示します。
  • --syslog:syslogによるログ記録を強制します。

構成ファイル

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

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


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

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

オプション デフォルト値 説明
SetupToken unset Advanced Server Accessプラットフォームで作成されるセットアップトークンを指定します。

注:このオプションを使用した場合、セットアップトークンは引き続きプレーンテキストで使用可能です。構成ファイルの読み取り権限を制限することをお勧めします(例:Linuxでは0600)。

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

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

このオプションを使用した場合、手動でセットアップトークンファイルを作成し、Advanced Server Accessプラットフォームで作成されたセットアップトークンを追加しなければなりません。

ゲートウェイをチームに登録すると、ゲートウェイによってトークンファイルが削除されます。

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

ログオプション

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

有効な値:

  • error
  • warn
  • info
  • debug

接続オプション

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

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

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

LDAPオプション

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

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

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

LDAP:
StartTLS: ...

警告: StartTLSUseLDAPS[False(誤)]に設定されている場合、Active DirectoryとのLDAP通信は暗号化されません。StartTLS[True(真)]に設定することをお勧めします。

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

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

StartTLSは、LDAPプロトコルの拡張機能で、TLSプロトコルを使って通信を暗号化します。このオプションは、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/を使用することをお勧めします。

証明書の詳細については、「Advanced Server Accessのゲートウェイに証明書を追加する」をご覧ください。

RDPオプション

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

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

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

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

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

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

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

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

証明書について詳しくは、「Advanced Server Accessのゲートウェイに証明書を追加する」をご覧ください。

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

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

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

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

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

一時セッションログと最終的なセッションログのディレクトリは、同じデバイス上になければなりません。

LogDestinations unset

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

S3ストレージを使用してセッションログを適切に記録・保存するには、S3バケットへのオブジェクトの書き込みに必要な権限をゲートウェイに構成します。それ以外の権限は必要ありません。

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

例 - 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 - 接続セッションをトリガーするユーザーのAdvanced Server Accessチーム名。

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

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

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

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

関連項目