本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用憑證身分驗證設定 IPsec
下列主題提供在 FSx for ONTAP 檔案系統和執行 Libreswan IPsec 的用戶端上使用憑證驗證設定 IPsec 加密的指示。此解決方案使用 AWS 私有憑證授權單位 AWS Certificate Manager 和 來建立私有憑證授權單位和產生憑證。
在 FSx for ONTAP 檔案系統和連線用戶端上使用憑證身分驗證來設定 IPsec 加密的高階步驟如下:
擁有發行憑證的憑證授權單位。
產生和匯出檔案系統和用戶端的 CA 憑證。
在用戶端執行個體上安裝憑證並設定 IPsec。
在檔案系統上安裝憑證並設定 IPsec。
定義安全政策資料庫 (SPD)。
為多個用戶端存取設定 IPsec。
建立和安裝 CA 憑證
對於憑證身分驗證,您需要從 FSx for ONTAP 檔案系統的憑證授權機構以及將存取檔案系統上資料的用戶端產生和安裝憑證。下列範例使用 AWS 私有憑證授權單位 來設定私有憑證授權單位,並產生要在檔案系統和用戶端上安裝的憑證。使用 AWS 私有憑證授權單位,您可以建立根和次級憑證授權單位 (CAs的完全 AWS 託管階層,以供組織內部使用。此程序有五個步驟:
使用 建立私有憑證授權機構 (CA) AWS 私有 CA
在私有 CA 上發行並安裝根憑證
為您的檔案系統和用戶端請求來自 AWS Certificate Manager 的私有憑證
匯出檔案系統和用戶端的憑證。
如需詳細資訊,請參閱 AWS 私有憑證授權單位 《 使用者指南》中的私有 CA 管理。
建立根私有 CA
建立 CA 時,您必須在您提供的檔案中指定 CA 組態。下列命令使用 Nano 文字編輯器來建立
ca_config.txt檔案,指定下列資訊:演算法的名稱
CA 用來簽署的簽署演算法
X.500 主旨資訊
$ >nano ca_config.txt文字編輯器隨即出現。
使用 CA 的規格編輯 檔案。
{ "KeyAlgorithm":"RSA_2048", "SigningAlgorithm":"SHA256WITHRSA", "Subject":{ "Country":"US", "Organization":"Example Corp", "OrganizationalUnit":"Sales", "State":"WA", "Locality":"Seattle", "CommonName":"*.ec2.internal" } }儲存並關閉檔案,結束文字編輯器。如需詳細資訊,請參閱 AWS 私有憑證授權單位 《 使用者指南》中的建立 CA 的程序。
使用 create-certificate-authority AWS 私有 CA CLI 命令來建立私有 CA。
~/home >aws acm-pca create-certificate-authority \ --certificate-authority-configuration file://ca_config.txt \ --certificate-authority-type "ROOT" \ --idempotency-token 01234567 --regionaws-region如果成功,此命令會輸出 CA 的 Amazon Resource Name (ARN)。
{ "CertificateAuthorityArn": "arn:aws:acm-pca:aws-region:111122223333:certificate-authority/12345678-1234-1234-1234-123456789012" }
為您的私有根 CA 建立並安裝憑證 (AWS CLI)
使用 AWS CLI 命令產生憑證簽署請求
get-certificate-authority-csr(CSR)。$aws acm-pca get-certificate-authority-csr \ --certificate-authority-arn arn:aws:acm-pca:aws-region:111122223333:certificate-authority/12345678-1234-1234-1234-123456789012 \ --output text \ --endpoint https://acm-pca.aws-region.amazonaws.com \ --region eu-west-1 > ca.csr產生的檔案
ca.csr是以 base64 格式編碼的 PEM 檔案,其外觀如下。-----BEGIN CERTIFICATE----- MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w0BAQUFADCBiDELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6 b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAd BgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wHhcNMTEwNDI1MjA0NTIxWhcN MTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYD VQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25z b2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFt YXpvbi5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ 21uUSfwfEvySWtC2XADZ4nB+BLYgVIk60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9T rDHudUZg3qX4waLG5M43q7Wgc/MbQITxOUSQv7c7ugFFDzQGBzZswY6786m86gpE Ibb3OhjZnzcvQAaRHhdlQWIMm2nrAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4 nUhVVxYUntneD9+h8Mg9q6q+auNKyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0Fkb FFBjvSfpJIlJ00zbhNYS5f6GuoEDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTb NYiytVbZPQUQ5Yaxu2jXnimvw3rrszlaEXAMPLE= -----END CERTIFICATE-----如需詳細資訊,請參閱 AWS 私有憑證授權單位 《 使用者指南》中的安裝根 CA 憑證。
使用
issue-certificateAWS CLI 命令在您的私有 CA 上發行和安裝根憑證。$aws acm-pca issue-certificate \ --certificate-authority-arn arn:aws:acm-pca:aws-region:111122223333:certificate-authority/12345678-1234-1234-1234-123456789012 \ --csr file://ca.csr \ --signing-algorithm SHA256WITHRSA \ --template-arn arn:aws:acm-pca:::template/RootCACertificate/V1 \ --validity Value=3650,Type=DAYS --regionaws-region-
使用
get-certificateAWS CLI 命令下載根憑證。$aws acm-pca get-certificate \ --certificate-authority-arn arn:aws:acm-pca:aws-region:111122223333:certificate-authority/12345678-1234-1234-1234-123456789012 \ --certificate-arn arn:aws:acm-pca:aws-region:486768734100:certificate-authority/12345678-1234-1234-1234-123456789012/certificate/abcdef0123456789abcdef0123456789 \ --output text --regionaws-region> rootCA.pem 使用
import-certificate-authority-certificateAWS CLI 命令在您的私有 CA 上安裝根憑證。$aws acm-pca import-certificate-authority-certificate \ --certificate-authority-arn arn:aws:acm-pca:aws-region:111122223333:certificate-authority/12345678-1234-1234-1234-123456789012 \ --certificate file://rootCA.pem --regionaws-region
產生和匯出檔案系統和用戶端憑證
使用
request-certificateAWS CLI 命令請求要在檔案系統和用戶端上使用的 AWS Certificate Manager 憑證。$aws acm request-certificate \ --domain-name *.ec2.internal \ --idempotency-token 12345 \ --regionaws-region\ --certificate-authority-arn arn:aws:acm-pca:aws-region:111122223333:certificate-authority/12345678-1234-1234-1234-123456789012如果請求成功,則會傳回已發行憑證的 ARN。
-
為了安全起見,您必須在匯出私有金鑰時為其指派密碼短語。建立密碼短語並將其存放在名為 的檔案中
passphrase.txt -
使用
export-certificateAWS CLI 命令匯出先前發行的私有憑證。匯出的檔案包含憑證、憑證鏈,以及與內嵌在憑證中的公有金鑰相關聯的加密私有 2048 位元 RSA 金鑰。為了安全起見,您必須在匯出私有金鑰時為其指派密碼短語。下列範例適用於 Linux EC2 執行個體。$aws acm export-certificate \ --certificate-arn arn:aws:acm:aws-region:111122223333:certificate/12345678-1234-1234-1234-123456789012 \ --passphrase $(cat passphrase.txt | base64) --regionaws-region> exported_cert.json 使用下列
jq命令,從 JSON 回應擷取私有金鑰和憑證。$passphrase=$(cat passphrase.txt | base64) cat exported_cert.json | jq -r .PrivateKey > prv.key cat exported_cert.json | jq -r .Certificate > cert.pem-
使用下列
openssl命令從 JSON 回應解密私有金鑰。輸入 命令後,系統會提示您輸入密碼短語。$openssl rsa -in prv.key -passin pass:$passphrase -out decrypted.key
在 Amazon Linux 2 用戶端上安裝和設定 Libreswan IPsec
下列各節提供在執行 Amazon Linux 2 的 Amazon EC2 執行個體上安裝和設定 Libreswan IPsec 的說明。
安裝和設定 Libreswan
使用 SSH 連線至 EC2 執行個體。如需如何執行此操作的特定指示,請參閱《Amazon Elastic Compute Cloud Linux 執行個體使用者指南》中的使用 SSH 用戶端連線至 Linux 執行個體。
執行下列命令來安裝
libreswan:$sudo yum install libreswan(選用) 在後續步驟中驗證 IPsec 時,如果沒有這些設定,可能會標記這些屬性。我們建議在沒有這些設定的情況下,先測試您的設定。如果您的連線有問題,請返回此步驟並進行下列變更。
安裝完成後,請使用您偏好的文字編輯器,將下列項目新增至
/etc/sysctl.conf檔案。net.ipv4.ip_forward=1 net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.all.secure_redirects = 0 net.ipv4.conf.all.send_redirects = 0 net.ipv4.conf.default.accept_redirects = 0 net.ipv4.conf.default.send_redirects = 0 net.ipv4.conf.lo.accept_redirects = 0 net.ipv4.conf.lo.send_redirects = 0 net.ipv4.conf.all.rp_filter = 0 net.ipv4.conf.default.rp_filter = 0 net.ipv4.conf.eth0.rp_filter = 0儲存變更並結束文字編輯器。
套用變更。
$sudo sysctl -p驗證 IPsec 組態。
$sudo ipsec verify確認您
Libreswan安裝的 版本正在執行中。初始化 IPsec NSS 資料庫。
$sudo ipsec checknss
在用戶端上安裝憑證
將您為用戶端產生的憑證複製到 EC2 執行個體上的工作目錄。您
將先前產生的憑證匯出為與 相容的格式
libreswan。$openssl pkcs12 -export -in cert.pem -inkey decrypted.key \ -certfile rootCA.pem -out certkey.p12 -name fsx匯入重新格式化的金鑰,並在出現提示時提供密碼短語。
$sudo ipsec import certkey.p12使用偏好的文字編輯器建立 IPsec 組態檔案。
$sudo cat /etc/ipsec.d/nfs.conf將下列項目新增至組態檔案:
conn fsxn authby=rsasig left=172.31.77.6 right=198.19.254.13 auto=start type=transport ikev2=insist keyexchange=ike ike=aes256-sha2_384;dh20 esp=aes_gcm_c256 leftcert=fsx leftrsasigkey=%cert leftid=%fromcert rightid=%fromcert rightrsasigkey=%cert
在檔案系統上設定 IPsec 後,您會在用戶端上啟動 IPsec。
在檔案系統上設定 IPsec
本節提供在 FSx for ONTAP 檔案系統上安裝憑證,以及設定 IPsec 的指示。
在檔案系統上安裝憑證
將根憑證 (
rootCA.pem)、用戶端憑證 (cert.pem) 和解密的金鑰 (decrypted.key) 檔案複製到您的檔案系統。您需要知道憑證的密碼短語。若要存取 ONTAP CLI,請執行下列命令,在 Amazon FSx for NetApp ONTAP 檔案系統或 SVM 的管理連接埠上建立 SSH 工作階段。
將 取代為檔案系統管理連接埠的 IP 地址。management_endpoint_ip[~]$ssh fsxadmin@management_endpoint_ip如需詳細資訊,請參閱使用 CLI ONTAP 管理檔案系統。
cat 在用戶端 (而非檔案系統上) 上使用 來列出
cert.pem和decrypted.key檔案的內容rootCA.pem,讓您可以複製每個檔案的輸出,並在下列步驟中出現提示時貼上。$ >cat cert.pem複製憑證內容。
除非已安裝憑證,否則您必須將所有在交互身分驗證期間使用的 CA 憑證,包括 ONTAP 端和用戶端 CAs,安裝到ONTAP憑證管理 (如同 ONTAP 自我簽署根 CA 的情況)。
使用
security certificate installNetApp CLI 命令來安裝用戶端憑證,如下所示:FSxID123:: >security certificate install -vserverdr-type client -cert-name ipsec-client-certPlease enter Certificate: Press <Enter> when done貼上您先前複製
cert.pem的檔案內容,然後按 Enter 鍵。Please enter Private Key: Press <Enter> when done貼上
decrypted.key檔案的內容,然後按 Enter 鍵。Do you want to continue entering root and/or intermediate certificates {y|n}:輸入
n以完成輸入用戶端憑證。建立並安裝憑證以供 SVM 使用。此憑證的發行者 CA 必須已安裝至 IPsec ONTAP並新增至 IPsec。 IPsec
使用下列命令來安裝根憑證。
FSxID123:: >security certificate install -vserverdr-type server-ca -cert-name ipsec-ca-certPlease enter Certificate: Press <Enter> when done貼上
rootCA.pem檔案的內容,然後按 Enter 鍵。若要確保在身分驗證期間安裝的 CA 位於 IPsec CA 搜尋路徑中,請使用「安全 ipsec ca-certificate add」命令將ONTAP憑證管理 CAs 新增至 IPsec 模組。
輸入下列命令來新增根憑證。
FSxID123:: >security ipsec ca-certificate add -vserverdr-ca-certs ipsec-ca-cert輸入下列命令,在安全政策資料庫 (SPD) 中建立所需的 IPsec 政策。
security ipsec policy create -vserverdr-namepolicy-name-local-ip-subnets198.19.254.13/32-remote-ip-subnets172.31.0.0/16-auth-method PKI -action ESP_TRA -cipher-suite SUITEB_GCM256 -cert-name ipsec-client-cert -local-identity "CN=*.ec2.internal" -remote-identity "CN=*.ec2.internal"使用下列命令來顯示檔案系統的 IPsec 政策以進行確認。
FSxID123:: >security ipsec policy show -vserverdr-instanceVserver: dr Policy Name: promise Local IP Subnets: 198.19.254.13/32 Remote IP Subnets: 172.31.0.0/16 Local Ports: 0-0 Remote Ports: 0-0 Protocols: any Action: ESP_TRA Cipher Suite: SUITEB_GCM256 IKE Security Association Lifetime: 86400 IPsec Security Association Lifetime: 28800 IPsec Security Association Lifetime (bytes): 0 Is Policy Enabled: true Local Identity: CN=*.ec2.internal Remote Identity: CN=*.ec2.internal Authentication Method: PKI Certificate for Local Identity: ipsec-client-cert
在用戶端上啟動 IPsec
現在已在 FSx for ONTAP 檔案系統和用戶端上設定 IPsec,您可以在用戶端上啟動 IPsec。
使用 SSH 連線至您的用戶端系統。
啟動 IPsec。
$sudo ipsec start檢查 IPsec 的狀態。
$sudo ipsec status在您的檔案系統上掛載磁碟區。
$sudo mount -t nfs198.19.254.13:/benchmark/home/ec2-user/acm/dr透過在 FSx for ONTAP 檔案系統上顯示加密連線來驗證 IPsec 設定。
FSxID123:: >security ipsec show-ikesa -node FsxId123FsxId08ac16c7ec2781a58::> security ipsec show-ikesa -node FsxId08ac16c7ec2781a58-01 Policy Local Remote Vserver Name Address Address Initator-SPI State ----------- ------ --------------- --------------- ---------------- ----------- drpolicy-name198.19.254.13 172.31.77.6 551c55de57fe8976 ESTABLISHED fsxpolicy-name198.19.254.38 172.31.65.193 4fd3f22c993e60c5 ESTABLISHED 2 entries were displayed.
為多個用戶端設定 IPsec
當少數用戶端需要利用 IPsec 時,為每個用戶端使用單一 SPD 項目就已足夠。不過,當數百甚至數千個用戶端需要利用 IPsec 時,我們建議您使用 IPsec 多個用戶端組態。
FSx for ONTAP 支援跨多個網路將多個用戶端連接到啟用 IPsec 的單一 SVM IP 地址。您可以使用subnet組態或Allow all clients組態來完成此操作,如下列程序所述:
使用子網路組態為多個用戶端設定 IPsec
若要允許特定子網路上的所有用戶端 (例如 192.168.134.0/24) 使用單一 SPD 政策項目連線到單一 SVM IP 地址,您必須remote-ip-subnets以子網路形式指定 。此外,您必須指定具有正確用戶端身分remote-identity的欄位。
重要
使用憑證身分驗證時,每個用戶端都可以使用自己的唯一憑證或共用憑證進行身分驗證。FSx for ONTAP IPsec 會根據本機信任存放區上安裝的 CAs檢查憑證的有效性。FSx for ONTAP 也支援憑證撤銷清單 (CRL) 檢查。
若要存取 ONTAP CLI,請執行下列命令,在 Amazon FSx for NetApp ONTAP 檔案系統或 SVM 的管理連接埠上建立 SSH 工作階段。
將 取代為檔案系統管理連接埠的 IP 地址。management_endpoint_ip[~]$ssh fsxadmin@management_endpoint_ip如需詳細資訊,請參閱使用 CLI ONTAP 管理檔案系統。
如下所示使用
security ipsec policy createNetApp ONTAP CLI 命令,將範例值取代為您的特定值。FsxId123456::>security ipsec policy create -vserversvm_name-namepolicy_name\ -local-ip-subnets192.168.134.34/32-remote-ip-subnets192.168.134.0/24\ -local-ports2049-protocolstcp-auth-method PSK \ -cert-namemy_nfs_server_cert-local-identityontap_side_identity\ -remote-identityclient_side_identity
使用 允許所有用戶端組態為多個用戶端設定 IPsec
若要允許任何用戶端,無論其來源 IP 地址為何,連線到已啟用 SVM IPsec 的 IP 地址,請在指定 remote-ip-subnets 欄位時使用0.0.0.0/0萬用字元。
此外,您必須指定具有正確用戶端身分remote-identity的欄位。對於憑證身分驗證,您可以輸入 ANYTHING。
此外,使用 0.0.0.0/0 萬用字元時,您必須設定要使用的特定本機或遠端連接埠號碼。例如,NFS 連接埠 2049。
若要存取 ONTAP CLI,請執行下列命令,在 Amazon FSx for NetApp ONTAP 檔案系統或 SVM 的管理連接埠上建立 SSH 工作階段。
將 取代為檔案系統管理連接埠的 IP 地址。management_endpoint_ip[~]$ssh fsxadmin@management_endpoint_ip如需詳細資訊,請參閱使用 CLI ONTAP 管理檔案系統。
使用
security ipsec policy createNetApp ONTAP CLI 命令,如下所示,將範例值取代為您的特定值。FsxId123456::>security ipsec policy create -vserversvm_name-namepolicy_name\ -local-ip-subnets192.168.134.34/32-remote-ip-subnets 0.0.0.0/0 \ -local-ports2049-protocolstcp-auth-method PSK \ -cert-namemy_nfs_server_cert-local-identityontap_side_identity\ -local-ports2049-remote-identityclient_side_identity