0

私は解決策を求めて Web をサーフィンするのに多くの時間を費やしましたが、残念なことに、これは発見すべき興味深いトピックである可能性があると最終的に結論付けました。

タスクは次のとおりです。

1. MAC OS X (できれば組み込みの IPSec クライアント) からリモートの Cisco ASA 5500 への VPN 接続を確立する必要があります。

2. 私が持っているもの: 2 つの証明書、1 つは VPN 接続暗号化用、もう 1 つはリモート デスクトップ ログイン用です。どちらも eToken に保存されます。

問題は接続の設定にあります。cisco の公式 Web サイトには、サポートされている vpn クライアントに関する記述があり、IPSec クライアントに組み込まれた mac os x が適しているようです。さらに、ASA 5500 の場合、「l2tp over ipsec」モードと「Cisco IPSec」モードの両方に適しています。それでは、「Cisco IPSec」を確立してみましょう (設定 > ネットワーク > 接続の追加)。ホストアドレス、アカウント名、パスワードがあり、Win7 で確認したので間違いありません。

最も興味深いのは「認証設定」にあります。ここでは、証明書を選択することになっていますが、キーチェーンに適切な証明書がないと報告されます。

その理由は、証明書の「タイプ」にある可能性があります。私が持っているすべての証明書は、OS X によってユーザー証明書として識別されるため、マシンの認証には使用できません (ちなみに、そうですか? )。

さて、IPSec で l2tp を試すと、同じ問題が発生します。eTokenからユーザー証明書を選択することもできますが、まだmachine certがありません。

Windows では通常、次のように表示されます

  1. Cisco VPN クライアントを実行する

  2. 証明書を選択するだけでなく、ホストアドレスを設定します(これは何らかの方法で選択できます:))

  3. 接続をタップし、eToken の PIN を入力すると、接続されます

したがって、次の場合に接続を設定する方法:

1. eToken は、ネイティブの IPsec クライアントであっても、その証明書で非常によく見えます。

2. もう一方の端には cisco asa 5500 があります。

または、cisco vpn 機能に関する説明を見つけることができるヒントまたはリンクを提供していただければ幸いです...

システム: OS X Lion 10.7.4、eToken SafeNet 認証クライアント 8.0。

誰かが別のクライアントの決定を知っている場合は、ここでそれを確認してください.

よろしくお願いします!

4

1 に答える 1

2

認証局は OpenSSL を介して管理されており、これは現在サーバー 497398 (appdr.Company.com) にあります。

CA ディレクトリ構造は /etc/pki/CA/ にあります。

OpenSSL 構成ファイルは /etc/pki/tls/openssl.cnf にあります。

openssl.cnf ファイルの最も重要な構成エントリは次の行です。

subjectAltName = DNS:primary-vpn.Company.com,DNS:backup-vpn.Company.com

この行には、= 記号の周りにスペースが必要です。

お客様が別のファイアウォール デバイスを追加することを選択した場合は、この行を別の DNS の FQDN で更新する必要があります。エントリとすべてのキーを再作成して、ユーザーに再発行する必要があります。

DFW および ORD の顧客のアカウントのファイアウォールは、証明書とユーザー名/パスワードを使用する 2 段階認証を介して認証するように設定されています。

CA で生成してクライアントに配布した証明書を使用しています。各ファイアウォールには、PFX 形式の独自の証明書と、PEM 形式の CA 証明書のコピーも必要です。ファイアウォール デバイスの PFX 証明書には、CA 証明書を含めてはなりません。CA 証明書は、PEM 形式でファイアウォールに個別にインポートする必要があります。この CA 証明書は、ファイアウォール上のトラスト ポイントになります。

ファイアウォールには、デバイス自体に設定されている基本的なユーザー名/パスワード認証も含まれています。

ファイアウォール証明書キーのパスワードは、デバイス自体とともにパスワード ノートに記載されています。

クライアントは各ファイアウォールの DNS 名に接続する必要があり、(2013 年 5 月 31 日現在) primary-vpn.Company.com または backup-vpn.Company.com のいずれかである必要があります。証明書には IP アドレスの subjectAltName が含まれていないため、IP アドレス経由の接続はサポートされていません。これは、すべてのクライアントとデバイスのキーを再設定する必要なく、将来の IP 変更をサポートするためです。

各ユーザーは、openssl と CA キーを使用して個別のキーと証明書を生成する必要があります。CA キーのパスワードは、パスワード ノートのデバイス 497398 (appdr) の下に記載されています。

以下の証明書作成プロセスには、CA キーのパスワードが必要です (openssl ca ...)。


新しいユーザーを追加する方法...

ca-server:

  • OpenSSL CA ディレクトリに移動します。

    cd /etc/pki/CA

  • キーの生成

    openssl genrsa 2048 -out > ユーザー名.Companyvpn.key

  • CSRの生成

    openssl req -new -key username.Companyvpn.key -out username.Companyvpn.csr (OU = ユーザー名) (Common Name = ユーザー名) (パスワードなし)

  • 証明書の生成 openssl ca -policy policy_anything -out username.Companyvpn.crt -infiles username.Companyvpn.csr (証明書に署名する場合ははい)

  • 新しいランダム パスワードを生成します (12 文字) echo</dev/urandom tr -dc 'a-zA-Z0-9'| head -c12

  • Make PFX cert/key archive openssl pkcs12 -export -out username.Companyvpn.pfx -inkey username.Companyvpn.key -in username.Companyvpn.crt -certfile /etc/pki/CA/certs/CompanyCA.crt (ランダムなパスワードを入力してください生成されたばかりです)

  • このコマンドで証明書を確認します openssl x509 -in username.Companyvpn.crt -text -noout

  • 有効期限を探してください。1 年である必要があります。

  • 次の行も探します。
  • X509v3 サブジェクトの別名
  • Subject Alternative Name の行 -- STOP -- が表示されない場合は、openssl.cnf ファイルに何か問題がある可能性があります!!
  • 上級管理者に連絡して支援を求める

  • 新しい PFX ファイルを顧客チケットに添付して配布し、パスワードを提供します。

    デバイス証明書/キーの作成方法...

    ca-server:

    • OpenSSL CA ディレクトリ cd /etc/pki/CA に移動します。

    • FW デバイス自体のキーを生成します openssl genrsa 1024 > backup-vpn.Company.com.key

    • FW デバイス自体の CSR を生成します openssl req -new -key backup-vpn.Company.com.key -out backup-vpn.Company.com.csr (OU は Kimbia 証明書) (通称 backup-vpn.Company.com) (パスワードなし)

    • FW デバイス openssl ca -days 3650 -in backup-vpn.Company.com.csr -out backup-vpn.Company.com.crt の CSR から証明書を生成します

    • FW デバイスの PFX を作成します (CA 証明書がバンドルされていません) openssl pkcs12 -export -out backup-vpn.Company.com.pfx -inkey backup-vpn.Company.com.key -in backup-vpn.Company.com.crt (使用エクスポート パスフレーズの「rack」またはランダムなパスフレーズを生成する)

    • ASA に含める NetSec の Base64 エンコード PFX アーカイブ。これは Cisco デバイスがこの openssl base64 -in backup-vpn.Company.com.pfx -out backup-vpn.Company.com.pfx.b64 を必要とするためです。

    • Base64 でエンコードされた PFX アーカイブを NetSec チームに配布する

    • PEM でエンコードされた /etc/pki/CA/certs/CompanyCA.crt を NetSec チームに配布します。

    CA 証明書とキーを再生成する必要がある場合は、次の手順を実行します...

    • ディレクトリを CA cd /etc/pki/CA に変更します

    • キー openssl genrsa -out /etc/pki/CA/private/CompanyCA.key -des3 2048 を生成します。

    • 証明書を生成します openssl req -new -x509 -key /etc/pki/CA/private/CompanyCA.key -days 3650 > /etc/pki/CA/certs/CompanyCA.crt

    • 上記の手順に従って、すべてのデバイス キーと証明書を再生成し、すべてのデバイスを再構成し、すべてのユーザー キーと証明書を再生成する必要があります。

    • 2023 年の現在の CA/デバイス セットの有効期限を設定して、もう一度やり直す必要がないようにします。

    特定の証明書を取り消してユーザーを無効にするには...

    ca-server:

    • ディレクトリを CA cd /etc/pki/CA に変更します

    • 証明書を取り消す openssl ca -revoke username.Companyvpn.crt

    • NetSec にファイアウォールからユーザー名とトンネル グループ エントリを削除してもらいます。

    2013 年 5 月 31 日現在の /etc/pki/tls/openssl.cnf は次のとおりです。

    #
    # OpenSSL example configuration file.
    # This is mostly being used for generation of certificate requests.
    #
    
    # This definition stops the following lines choking if HOME isn't
    # defined.
    HOME            = .
    RANDFILE        = $ENV::HOME/.rnd
    
    # Extra OBJECT IDENTIFIER info:
    #oid_file       = $ENV::HOME/.oid
    oid_section     = new_oids
    
    # To use this configuration file with the "-extfile" option of the
    # "openssl x509" utility, name here the section containing the
    # X.509v3 extensions to use:
    
    #extensions     = v3_req,v3_ca
    
    # (Alternatively, use a configuration file that has only
    # X.509v3 extensions in its main [= default] section.)
    
    [ new_oids ]
    
    # We can add new OIDs in here for use by 'ca', 'req' and 'ts'.
    # Add a simple OID like this:
    # testoid1=1.2.3.4
    # Or use config file substitution like this:
    # testoid2=${testoid1}.5.6
    
    # Policies used by the TSA examples.
    tsa_policy1 = 1.2.3.4.1
    tsa_policy2 = 1.2.3.4.5.6
    tsa_policy3 = 1.2.3.4.5.7
    
    ####################################################################
    [ ca ]
    default_ca  = CA_default        # The default ca section
    
    ####################################################################
    [ CA_default ]
    
    dir     = /etc/pki/CA       # Where everything is kept
    certs       = $dir/certs        # Where the issued certs are kept
    crl_dir     = $dir/crl      # Where the issued crl are kept
    database    = $dir/index.txt    # database index file.
    #unique_subject = no            # Set to 'no' to allow creation of
                        # several ctificates with same subject.
    new_certs_dir   = $dir/newcerts     # default place for new certs.
    
    certificate = $certs/CompanyCA.crt  # The CA certificate
    serial      = $dir/serial       # The current serial number
    crlnumber   = $dir/crlnumber    # the current crl number
                        # must be commented out to leave a V1 CRL
    crl     = $dir/crl.pem      # The current CRL
    private_key = $dir/private/CompanyCA.key # The private key
    RANDFILE    = $dir/private/.rand    # private random number file
    
    x509_extensions = usr_cert      # The extentions to add to the cert
    
    # Comment out the following two lines for the "traditional"
    # (and highly broken) format.
    name_opt    = ca_default        # Subject Name options
    cert_opt    = ca_default        # Certificate field options
    
    # Extension copying option: use with caution.
    # copy_extensions = copy
    
    # Extensions to add to a CRL. Note: Netscape communicator chokes on V2 CRLs
    # so this is commented out by default to leave a V1 CRL.
    # crlnumber must also be commented out to leave a V1 CRL.
    # crl_extensions    = crl_ext
    
    default_days    = 365           # how long to certify for
    default_crl_days= 30            # how long before next CRL
    default_md  = default       # use public key default MD
    preserve    = no            # keep passed DN ordering
    
    # A few difference way of specifying how similar the request should look
    # For type CA, the listed attributes must be the same, and the optional
    # and supplied fields are just that :-)
    policy      = policy_match
    
    # For the CA policy
    [ policy_match ]
    countryName     = match
    stateOrProvinceName = match
    organizationName    = match
    organizationalUnitName  = optional
    commonName      = supplied
    emailAddress        = optional
    
    # For the 'anything' policy
    # At this point in time, you must list all acceptable 'object'
    # types.
    [ policy_anything ]
    countryName     = optional
    stateOrProvinceName = optional
    localityName        = optional
    organizationName    = optional
    organizationalUnitName  = optional
    commonName      = supplied
    emailAddress        = optional
    
    ####################################################################
    [ req ]
    default_bits        = 2048
    default_md      = sha1
    default_keyfile     = privkey.pem
    distinguished_name  = req_distinguished_name
    attributes      = req_attributes
    x509_extensions = v3_ca # The extentions to add to the self signed cert
    
    # Passwords for private keys if not present they will be prompted for
    # input_password = secret
    # output_password = secret
    
    # This sets a mask for permitted string types. There are several options. 
    # default: PrintableString, T61String, BMPString.
    # pkix   : PrintableString, BMPString (PKIX recommendation before 2004)
    # utf8only: only UTF8Strings (PKIX recommendation after 2004).
    # nombstr : PrintableString, T61String (no BMPStrings or UTF8Strings).
    # MASK:XXXX a literal mask value.
    # WARNING: ancient versions of Netscape crash on BMPStrings or UTF8Strings.
    string_mask = utf8only
    
    req_extensions = v3_req # The extensions to add to a certificate request
    
    [ req_distinguished_name ]
    countryName         = Country Name (2 letter code)
    countryName_default     = US
    countryName_min         = 2
    countryName_max         = 2
    
    stateOrProvinceName     = State or Province Name (full name)
    stateOrProvinceName_default = Texas
    
    localityName            = Locality Name (eg, city)
    localityName_default    = AmericanCity
    
    0.organizationName      = Organization Name (eg, company)
    0.organizationName_default  = Software Company Inc
    
    # we can do this but it is not needed normally :-)
    #1.organizationName     = Second Organization Name (eg, company)
    #1.organizationName_default = World Wide Web Pty Ltd
    
    organizationalUnitName      = Organizational Unit Name (eg, section)
    #organizationalUnitName_default = Software Company Certificate
    
    commonName          = Common Name (eg, your name or your server\'s hostname)
    commonName_max          = 64
    
    emailAddress            = Email Address
    emailAddress_max        = 64
    
    # SET-ex3           = SET extension number 3
    
    [ req_attributes ]
    challengePassword       = A challenge password
    challengePassword_min       = 4
    challengePassword_max       = 20
    
    unstructuredName        = An optional company name
    
    [ usr_cert ]
    
    # These extensions are added when 'ca' signs a request.
    
    # This goes against PKIX guidelines but some CAs do it and some software
    # requires this to avoid interpreting an end user certificate as a CA.
    
    basicConstraints=CA:FALSE
    
    # Here are some examples of the usage of nsCertType. If it is omitted
    # the certificate can be used for anything *except* object signing.
    
    # This is OK for an SSL server.
    # nsCertType            = server
    
    # For an object signing certificate this would be used.
    # nsCertType = objsign
    
    # For normal client use this is typical
    # nsCertType = client, email
    
    # and for everything including object signing:
    # nsCertType = client, email, objsign
    
    # This is typical in keyUsage for a client certificate.
    # keyUsage = nonRepudiation, digitalSignature, keyEncipherment
    
    # This will be displayed in Netscape's comment listbox.
    nsComment           = "OpenSSL Generated Certificate"
    
    # PKIX recommendations harmless if included in all certificates.
    subjectKeyIdentifier=hash
    authorityKeyIdentifier=keyid,issuer
    
    # This stuff is for subjectAltName and issuerAltname.
    # Import the email address.
    # subjectAltName=email:copy
    # An alternative to produce certificates that aren't
    # deprecated according to PKIX.
    # subjectAltName=email:move
    
    # Copy subject details
    # issuerAltName=issuer:copy
    
    #nsCaRevocationUrl      = http://www.domain.dom/ca-crl.pem
    #nsBaseUrl
    #nsRevocationUrl
    #nsRenewalUrl
    #nsCaPolicyUrl
    #nsSslServerName
    
    # This is required for TSA certificates.
    # extendedKeyUsage = critical,timeStamping
    
    subjectAltName = DNS:primary-vpn.Company.com,DNS:backup-vpn.Company.com
    
    [ v3_req ]
    
    # Extensions to add to a certificate request
    
    basicConstraints = CA:FALSE
    keyUsage = nonRepudiation, digitalSignature, keyEncipherment
    
    #subjectAltName = DNS:primary-vpn.Company.com
    #subjectAltName = IP:122.123.321.221
    
    #subjectAltName=IP:221.321.123.122,DNS:backup-vpn.Company.com
    #subjectAltName=IP:122.123.321.221,DNS:primary-vpn.Company.com
    # Changing from IP+DNS to just DNS to mitigate future IP change issues
    # Added quotes 130530-07939
    
    
    [ v3_ca ]
    
    
    # Extensions for a typical CA
    
    
    # PKIX recommendation.
    
    subjectKeyIdentifier=hash
    
    authorityKeyIdentifier=keyid:always,issuer
    
    # This is what PKIX recommends but some broken software chokes on critical
    # extensions.
    #basicConstraints = critical,CA:true
    # So we do this instead.
    basicConstraints = CA:true
    
    # Key usage: this is typical for a CA certificate. However since it will
    # prevent it being used as an test self-signed certificate it is best
    # left out by default.
    # keyUsage = cRLSign, keyCertSign
    
    # Some might want this also
    # nsCertType = sslCA, emailCA
    
    # Include email address in subject alt name: another PKIX recommendation
    # subjectAltName=email:copy
    # Copy issuer details
    # issuerAltName=issuer:copy
    
    # DER hex encoding of an extension: beware experts only!
    # obj=DER:02:03
    # Where 'obj' is a standard or added object
    # You can even override a supported extension:
    # basicConstraints= critical, DER:30:03:01:01:FF
    
    subjectAltName = DNS:primary-vpn.Company.com,DNS:backup-vpn.Company.com
    
    [ crl_ext ]
    
    # CRL extensions.
    # Only issuerAltName and authorityKeyIdentifier make any sense in a CRL.
    
    # issuerAltName=issuer:copy
    authorityKeyIdentifier=keyid:always
    
    [ proxy_cert_ext ]
    # These extensions should be added when creating a proxy certificate
    
    # This goes against PKIX guidelines but some CAs do it and some software
    # requires this to avoid interpreting an end user certificate as a CA.
    
    basicConstraints=CA:FALSE
    
    # Here are some examples of the usage of nsCertType. If it is omitted
    # the certificate can be used for anything *except* object signing.
    
    # This is OK for an SSL server.
    # nsCertType            = server
    
    # For an object signing certificate this would be used.
    # nsCertType = objsign
    
    # For normal client use this is typical
    # nsCertType = client, email
    
    # and for everything including object signing:
    # nsCertType = client, email, objsign
    
    # This is typical in keyUsage for a client certificate.
    # keyUsage = nonRepudiation, digitalSignature, keyEncipherment
    
    # This will be displayed in Netscape's comment listbox.
    nsComment           = "OpenSSL Generated Certificate"
    
    # PKIX recommendations harmless if included in all certificates.
    subjectKeyIdentifier=hash
    authorityKeyIdentifier=keyid,issuer
    
    
    ###################################################
    ###################################################
    
    ###Change the subjectAltName per DC####
    
    # This stuff is for subjectAltName and issuerAltname.
    # Import the email address.
    # subjectAltName=email:copy
    
    # MOVED THIS UNDER [ v3_req ] above
    ##
    #subjectAltName=IP:221.321.123.122,DNS:backup-vpn.Company.com
    #subjectAltName=IP:122.123.321.221,DNS:primary-vpn.Company.com
    # Changing from IP+DNS to just DNS to mitigate future IP change issues
    #subjectAltName="DNS:primary-vpn.Company.com"
    
    
    #####################################################
    #####################################################
    
    # An alternative to produce certificates that aren't
    # deprecated according to PKIX.
    # subjectAltName=email:move
    
    # Copy subject details
    # issuerAltName=issuer:copy
    
    #nsCaRevocationUrl      = http://www.domain.dom/ca-crl.pem
    #nsBaseUrl
    #nsRevocationUrl
    #nsRenewalUrl
    #nsCaPolicyUrl
    #nsSslServerName
    
    # This really needs to be in place for it to be a proxy certificate.
    proxyCertInfo=critical,language:id-ppl-anyLanguage,pathlen:3,policy:foo
    
    ####################################################################
    [ tsa ]
    
    default_tsa = tsa_config1   # the default TSA section
    
    [ tsa_config1 ]
    
    # These are used by the TSA reply generation only.
    dir     = ./demoCA      # TSA root directory
    serial      = $dir/tsaserial    # The current serial number (mandatory)
    crypto_device   = builtin       # OpenSSL engine to use for signing
    signer_cert = $dir/tsacert.pem  # The TSA signing certificate
                        # (optional)
    certs       = $dir/cacert.pem   # Certificate chain to include in reply
                        # (optional)
    signer_key  = $dir/private/tsakey.pem # The TSA private key (optional)
    
    default_policy  = tsa_policy1       # Policy if request did not specify it
                        # (optional)
    other_policies  = tsa_policy2, tsa_policy3  # acceptable policies (optional)
    digests     = md5, sha1     # Acceptable message digests (mandatory)
    accuracy    = secs:1, millisecs:500, microsecs:100  # (optional)
    clock_precision_digits  = 0 # number of digits after dot. (optional)
    ordering        = yes   # Is ordering defined for timestamps?
                    # (optional, default: no)
    tsa_name        = yes   # Must the TSA name be included in the reply?
                    # (optional, default: no)
    ess_cert_id_chain   = no    # Must the ESS cert id chain be included?
                    # (optional, default: no)
    
于 2012-09-17T16:11:11.527 に答える