SSTPリモートアクセスサーバの設定手順

SSTP(Secure Socket Tunneling Protocol)によるリモートアクセスサーバを構成する基本的な設定手順を説明します。

証明書の設定

  1. 設定パラメータを用意する
    表 1. 用意する証明書・鍵情報
    項目 備考
    証明書
    -----BEGIN CERTIFICATE-----
    MIIEFTCCA36gAwIBAgIQGV6r+gQg+EeuFZYVviCtczANBgkqhkiG9w0BAQUFADCB
    5zELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL
      -略-
    CBMFVG9reW8xDzANBgNVBAcUBkFkYWNoaTEPMA0GA1UEChQGYmlhbmthMTowOAYD
    VQQLFDFUZXJtcyBvZiB1c2UgYXQgd3d3LnZlcmlzaWduLmNvbS9jcHMvdGVzdGNh
    -----END CERTIFICATE-----
    
    PEM形式のテキスト
    中間証明機関の証明書(必要な場合)
    -----BEGIN CERTIFICATE-----
    MIIF4TCCBUqgAwIBAgIQDlq7+OQkCAxzJTxsrslyczANBgkqhkiG9w0BAQUFADCB8D
    ELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMUEwPwYDVQQL
      -略-
    EzhDbGFzcyAzIFRFU1QgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRo
    b3JpdHkgLSBHMjFDMEEGA1UECxM6VGVybXMgb2YgdXNlIGF0IGh0dHBzOi8vd3d3
    -----END CERTIFICATE-----
    
    PEM形式のテキスト
    RSA秘密鍵
    -----BEGIN RSA PRIVATE KEY-----
    MIIBOQIBAAJBALNlZuPvzVKkCAdewNi87lRFh/rVexQINBwj8lQBEU5Jn2Y+G/V/
    T3JeRvJMcnTOHm6gja9QUe2TrQ3VZDISNoECAwEAAQJAM7Pd24OZYV/1EGq2mcCZ
      -略-
    WdCQP1ZR/GeJAiBTkgaUnwCz8RsWGdYX/NhkPdIO8PuUsXNRP4aGnQBLYQIgfVWz
    71ia1aotw6M1j6LvLPVpj+vBvAG7bf/nm4JXRvA=
    -----END RSA PRIVATE KEY-----
    PEM形式のテキスト
  2. 証明書を追加する
    # certificate my add CERT1 load-from stdin
    -----BEGIN CERTIFICATE-----
    MIIEFTCCA36gAwIBAgIQGV6r+gQg+EeuFZYVviCtczANBgkqhkiG9w0BAQUFADCB
    5zELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL
      -略(証明書)-
    CBMFVG9reW8xDzANBgNVBAcUBkFkYWNoaTEPMA0GA1UEChQGYmlhbmthMTowOAYD
    VQQLFDFUZXJtcyBvZiB1c2UgYXQgd3d3LnZlcmlzaWduLmNvbS9jcHMvdGVzdGNh
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    MIIF4TCCBUqgAwIBAgIQDlq7+OQkCAxzJTxsrslyczANBgkqhkiG9w0BAQUFADCB8D
    ELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMUEwPwYDVQQL
      -略(中間証明機関の証明書)-
    EzhDbGFzcyAzIFRFU1QgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRo
    b3JpdHkgLSBHMjFDMEEGA1UECxM6VGVybXMgb2YgdXNlIGF0IGh0dHBzOi8vd3d3
    -----END CERTIFICATE-----
    -----BEGIN RSA PRIVATE KEY-----
    MIIBOQIBAAJBALNlZuPvzVKkCAdewNi87lRFh/rVexQINBwj8lQBEU5Jn2Y+G/V/
    T3JeRvJMcnTOHm6gja9QUe2TrQ3VZDISNoECAwEAAQJAM7Pd24OZYV/1EGq2mcCZ
      -略(RSA秘密鍵)-
    WdCQP1ZR/GeJAiBTkgaUnwCz8RsWGdYX/NhkPdIO8PuUsXNRP4aGnQBLYQIgfVWz
    71ia1aotw6M1j6LvLPVpj+vBvAG7bf/nm4JXRvA=
    -----END RSA PRIVATE KEY-----
    .
    #
    • 証明書の設定名は"CERT1"としています。
    • "load-from stdin" を指定すると標準入力からの入力を受け付ける状態になりますので、証明書とRSA秘密鍵を順に入力します。
    • 行頭で"."を入力すると入力完了となり、エラーがなければコマンドプロンプトが帰ります。
    注: コンフィグにRSA秘密鍵が保存されますので、コンフィグを外部保存する場合には取り扱いに注意してください。

認証レルムの設定

  1. 設定パラメータを用意する
    表 2. 用意する設定パラメータの例
    項目 備考
    サフィックス @example.jp 省略可
    ユーザA:ユーザ名 user_a  
    ユーザA:パスワード PASSWORD  
    ユーザB:ユーザ名 user_b  
    ユーザB:パスワード PASSPHRASE  
  2. 認証レルムを追加する
    # authentication realm add REALM1 type local username-suffix @example.jp
    #
    • 認証レルム設定名は"REALM1"としています。
    • サフィックスは、認証時にユーザ名に続けて入力する文字列(例: user_a@example.jp)で、認証レルムを複数設定する際は必須となります。
  3. ユーザの認証情報を追加する
    # authentication local REALM1 user add user_a password PASSWORD
    # authentication local REALM1 user add user_b password PASSPHRASE
    #
    • 先に設定した認証レルム"REALM1"に、ユーザごとにユーザ名とパスワードを設定します。
    注: パスワードは平文でコンフィグに保存されます。

PPPAC(SSTP)の設定

  1. 設定パラメータを用意する
    表 3. 用意する設定パラメータの例
    項目 備考
    払い出し用IPアドレスプール 192.168.128.0/24 他のネットワークと重複しないネットワークアドレス
    トンネル終端IPアドレス 192.168.127.1 他のインタフェースと重複しないIPアドレス
    証明書の設定名 CERT1 "certificate my add"コマンドで設定
    認証レルムの設定名 REALM1 "authentication"コマンドで設定
  2. IPアドレスプールを追加する
    # pppac pool add POOL1 address 192.168.128.0/24
    #
    • 設定名は"POOL1"としています。
    • 用意した払い出し用IPアドレスプールを指定します。
  3. IPCPの折衝に関する設定を追加する
    # pppac ipcp-configuration add IPCP1 pool POOL1 dns-use-forwarder on
    #
    • 設定名は"IPCP1"としています。
    • IPCPにより払い出すIPアドレスのプールとして、先に設定した"POOL1"を指定します。
    • "dns-use-forwarder on"(省略可)により、IPCPのDNSオプションで通知するDNSサーバアドレスとして、SEILのIPアドレスを通知しDNS転送機能を使用することができます。
  4. トンネルプロトコルとしてSSTPを使用するPPPACの設定を追加する
    # pppac protocol sstp add PROTO1 accept-interface any certificate CERT1
    #
    • 設定名は"PROTO1"としています。
    • accept-interfaceは接続を許可するインタフェースを指定します。ここではany(任意)としています。
    • 使用する証明書として、用意した証明書の設定名を指定します。
  5. PPPACインタフェースに各機能の設定を関連付ける
    # interface pppac0 ipcp-configuration IPCP1
    # interface pppac0 bind-tunnel-protocol PROTO1
    # interface pppac0 bind-realm REALM1
    # interface pppac0 tunnel-end-address 192.168.127.1
    #
    • ここでは使用するインタフェースとしてpppac0を指定しています。
    • IPCPパラメータ、トンネルプロトコル、認証レルム、トンネル終端IPアドレスそれぞれに、用意した設定名、および先に設定した設定名を指定します。