이 항목에서는 vSphere Replication 장치에서 FIPS(Federal Information Processing Standard) 모드를 활성화하기 위해 수행해야 하는 작업을 간략하게 설명합니다.
참고: FIPS 모드의 인증서 구성에서는
PKCS#12 인증서 파일 형식이 지원되지 않습니다.
PKCS#12 파일 형식은 비 FIPS 규격 알고리즘을 표준 규격으로 사용합니다.
사전 요구 사항
환경을 배포할 때 신뢰할 수 있는 인증서를 사용해야 합니다.
프로시저
- 엄격 모드에서 vSphere Replication 관리 서버를 시작합니다.
- /opt/vmware/hms/conf/hms-fips.conf로 이동하여 파일을 열고 다음 설정을 변경합니다.
"appl_system_cryptography" : true
- 오래된 BCFKS 저장소가 있으면 제거합니다.
rm /opt/vmware/hms/security/*.bks
- vSphere Replication 관리 서버 서비스를 다시 시작합니다.
systemctl restart hms
- /opt/vmware/hms/conf/hms-fips.conf로 이동하여 파일을 열고 다음 설정을 변경합니다.
- 엄격 모드에서 vSphere Replication을 시작합니다.
- /etc/vmware/hbrsrv.xml로 이동하여 파일을 열고 다음 설정을 변경합니다.
<Config> <vmacore> <ssl> <fips>true</fips> </ssl> </vmacore> </Config>
- /usr/lib/vmware/lib/ssl/openssl.cnf를 편집하고 다음 줄의 주석 처리를 제거한 후
# .include /usr/lib/vmware/lib/ssl/fipsmodule.cnf
default_properties = "fips=no" 줄을 default_properties = "fips=yes"로 변경합니다.파일 조각은 다음과 같은 모양이어야 합니다.# Refer to the OpenSSL security policy for more information. # In ESX this will be generated at boot time. .include /usr/lib/vmware/lib/ssl/fipsmodule.cnf ... [algorithm_sect] # Since we use both default and FIPS provider, we need to be specific # about which algorithm implementation to use as default. default_properties = "fips=yes"
- HBR 서비스를 다시 시작합니다.
systemctl restart hbrsrv
- /etc/vmware/hbrsrv.xml로 이동하여 파일을 열고 다음 설정을 변경합니다.
- 엄격 모드에서 dr-configurator 서비스를 시작합니다.
- /opt/vmware/dr/conf/drconfig.xml로 이동하여 파일을 열고 다음 설정을 변경합니다.
<Config> <vmacore> <ssl> <fips>true</fips> </ssl> </vmacore> </Config>
- /usr/lib/systemd/system/dr-configurator.service를 편집합니다. # Uncomment to enable FIPS 아래의 줄의 주석 처리를 제거합니다.
파일 조각은 다음과 같은 모양이어야 합니다.
# Uncomment to enable FIPS Environment=OPENSSL_MODULES=/opt/vmware/dr/lib/ossl-modules Environment=OPENSSL_CONF=/opt/vmware/etc/dr/ssl/openssl.cnf
- dr-configrator 서비스를 다시 시작합니다.
systemctl daemon-reload systemctl restart dr-configurator
- /opt/vmware/dr/conf/drconfig.xml로 이동하여 파일을 열고 다음 설정을 변경합니다.
- 장치에 루트 사용자로 로그인하고 커널 cmdline을 편집합니다.
- /boot/grub/grub.cfg를 엽니다.
- menuentry 항목을 찾습니다.
- 줄 끝에 linux로 시작하는 각 menuentry의 줄 끝에 다음을 추가합니다.
fips=1
- 파일을 저장합니다.
- 엄격 모드에서 구성 UI를 시작합니다.
- /usr/lib/systemd/system/drconfigui.service를 편집합니다. 기존 Environment='CATALINA_OPTS=-Xms768m -Xmx1024m'을 주석 처리하고 # Uncomment to enable FIPS 아래 줄의 주석 처리를 제거합니다.
파일 조각은 다음과 같은 모양이어야 합니다.
Environment=JRE_HOME=/usr/java/jre-vmware # Comment when enable FIPS # Environment='CATALINA_OPTS=-Xms768m -Xmx1024m' # Uncomment to enable FIPS Environment='SERVICE_CLASSPATH=$CATALINA_BASE/lib/ext/*' Environment='CATALINA_OPTS=-Xms768m -Xmx1024m -Djava.security.properties==/opt/vmware/dr-client/conf/vmware-override-java.security -Dorg.bouncycastle.jca.enable_jks=true -Dorg.bouncycastle.fips.approved_only=true'
- /opt/vmware/drconfigui/conf/context.xml 파일에서 <Manager> 태그의 주석 처리를 제거합니다.
태그가 있는 파일 조각은 다음과 같은 모양이어야 합니다.
<!-- Uncomment to enable FIPS mode. --> <Manager pathname="" secureRandomAlgorithm=""/>
- (선택 사항) 장치에 대해 FIPS가 이미 사용되도록 설정된 경우 drconfigui 서비스를 다시 시작합니다.
systemctl daemon-reload; systemctl restart drconfigui
- /usr/lib/systemd/system/drconfigui.service를 편집합니다. 기존 Environment='CATALINA_OPTS=-Xms768m -Xmx1024m'을 주석 처리하고 # Uncomment to enable FIPS 아래 줄의 주석 처리를 제거합니다.
- 엄격 모드에서 UI를 시작합니다.
- /usr/lib/systemd/system/dr-client.service를 편집합니다. 기존 Environment='CATALINA_OPTS=-Xms768m -Xmx1024m'을 주석 처리하고 # Uncomment to enable FIPS 아래 줄의 주석 처리를 제거합니다.
파일 조각은 다음과 같은 모양이어야 합니다.
Environment=JRE_HOME=/usr/java/jre-vmware # Comment when enable FIPS # Environment='CATALINA_OPTS=-Xms768m -Xmx1024m' # Uncomment to enable FIPS Environment='SERVICE_CLASSPATH=$CATALINA_BASE/lib/ext/*' Environment='CATALINA_OPTS=-Xms768m -Xmx1024m -Djava.security.properties==/opt/vmware/dr-client/conf/vmware-override-java.security -Dorg.bouncycastle.jca.enable_jks=true -Dorg.bouncycastle.fips.approved_only=true'
- /opt/vmware/dr-client/conf/context.xml 파일에서 <Manager> 태그의 주석 처리를 제거합니다.
태그가 있는 파일 조각은 다음과 같은 모양이어야 합니다.
<!-- Uncomment to enable FIPS mode. --> <Manager pathname="" secureRandomAlgorithm=""/>
- /opt/vmware/dr-client/lib/h5dr.properties 파일을 편집하고 루트 CA 인증서가 있는 BCFKS 형식 키 저장소 및 신뢰 저장소를 가리키도록 매개 변수를 수정합니다.
속성은 다음과 같은 모양이어야 합니다.
drTrustStorePass=<same as keyStorePass> drTrustStoreName=h5dr.truststore.bks keyStoreName=h5dr.keystore.bks
기본 신뢰 저장소가 아닌 다른 신뢰 저장소를 사용하기로 선택하는 경우 /opt/vmware/dr-client/lib/ 또는 /opt/vmware/dr-client/webapps/dr/WEB-INF/classes/에 신뢰 저장소에 대한 링크를 추가해야 합니다. 키 저장소 형식은 BCFKS여야 합니다. JKS 형식에서 가져오려면 다음 명령을 사용합니다.$JAVA_HOME/bin/keytool -importkeystore -srckeystore <path-to-jks-keystore> -srcstoretype JKS -srcstorepass <keystorepass> -destkeystore <path-to-target-bks-keystore> -deststoretype BCFKS -deststorepass <keystorepass> -provider org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider -providerpath /opt/vmware/dr-client/lib/ext/bc-fips-1.0.2.3.jar
참고: 사용하는 키 저장소 및 신뢰 저장소 파일에는 Others: Read 사용 권한이 있어야 합니다. 장치를 재구성한 후에는 위 규칙에 따라 /opt/vmware/dr-client/lib/h5dr.properties 파일을 다시 편집해야 합니다. - (선택 사항) 장치에 대해 FIPS가 이미 사용되도록 설정된 경우 dr-client 서비스를 다시 시작합니다.
systemctl daemon-reload; systemctl restart dr-client
- /usr/lib/systemd/system/dr-client.service를 편집합니다. 기존 Environment='CATALINA_OPTS=-Xms768m -Xmx1024m'을 주석 처리하고 # Uncomment to enable FIPS 아래 줄의 주석 처리를 제거합니다.
- 엄격 모드에서 UI 플러그인(dr-client-plugin)을 시작합니다.
- /usr/lib/systemd/system/dr-client-plugin.service를 편집합니다. 기존 Environment='CATALINA_OPTS=-Xms768m -Xmx1024m'을 주석 처리하고 # Uncomment to enable FIPS 아래 줄의 주석 처리를 제거합니다.
파일 조각은 다음과 같은 모양이어야 합니다.
Environment=JRE_HOME=/usr/java/jre-vmware # Comment when enable FIPS # Environment='CATALINA_OPTS=-Xms768m -Xmx1024m' # Uncomment to enable FIPS Environment='SERVICE_CLASSPATH=$CATALINA_BASE/lib/ext/*' Environment='CATALINA_OPTS=-Xms768m -Xmx1024m -Djava.security.properties==/opt/vmware/dr-client/conf/vmware-override-java.security -Dorg.bouncycastle.jca.enable_jks=true -Dorg.bouncycastle.fips.approved_only=true'
- /opt/vmware/dr-client-plugin/conf/context.xml 파일에서 <Manager> 태그의 주석 처리를 제거합니다.
태그가 있는 파일 조각은 다음과 같은 모양이어야 합니다.
<!-- Uncomment to enable FIPS mode. --> <Manager pathname="" secureRandomAlgorithm=""/>
- (선택 사항) 장치에 대해 FIPS가 이미 사용되도록 설정된 경우 dr-client-plugin 서비스를 다시 시작합니다.
systemctl daemon-reload; systemctl restart dr-client-plugin
- /usr/lib/systemd/system/dr-client-plugin.service를 편집합니다. 기존 Environment='CATALINA_OPTS=-Xms768m -Xmx1024m'을 주석 처리하고 # Uncomment to enable FIPS 아래 줄의 주석 처리를 제거합니다.
- 엄격 모드에서 REST API 서비스(dr-rest)를 시작합니다.
- /usr/lib/systemd/system/dr-rest.service를 편집합니다. 기존 Environment='CATALINA_OPTS=-Xms768m -Xmx1024m'을 주석 처리하고 # Uncomment to enable FIPS 아래 줄의 주석 처리를 제거합니다.
파일 조각은 다음과 같은 모양이어야 합니다.
Environment=JRE_HOME=/usr/java/jre-vmware # Comment when enable FIPS # Environment='CATALINA_OPTS=-Xms768m -Xmx1024m' # Uncomment to enable FIPS Environment='SERVICE_CLASSPATH=$CATALINA_BASE/lib/ext/*' Environment='CATALINA_OPTS=-Xms768m -Xmx1024m -Djava.security.properties==/opt/vmware/dr-client/conf/vmware-override-java.security -Dorg.bouncycastle.jca.enable_jks=true -Dorg.bouncycastle.fips.approved_only=true'
- /opt/vmware/dr-rest/conf/context.xml 파일에서 <Manager> 태그의 주석 처리를 제거합니다.
태그가 있는 파일 조각은 다음과 같은 모양이어야 합니다.
<!-- Uncomment to enable FIPS mode. --> <Manager pathname="" secureRandomAlgorithm=""/>
- (선택 사항) 장치에 대해 FIPS가 이미 사용되도록 설정된 경우 dr-rest 서비스를 다시 시작합니다.
systemctl daemon-reload; systemctl restart dr-rest
- /usr/lib/systemd/system/dr-rest.service를 편집합니다. 기존 Environment='CATALINA_OPTS=-Xms768m -Xmx1024m'을 주석 처리하고 # Uncomment to enable FIPS 아래 줄의 주석 처리를 제거합니다.
- 장치를 재부팅합니다.
수정한 후 장치를 재부팅하기 전에
systemctl daemon-reload
명령이 한 번 이상 실행되었는지 확인합니다.참고: SSHD는 커널이 FIPS 모드를 사용하도록 설정했음을 읽고 이를 활성화합니다. sshd 구성에서는 아무것도 편집할 필요가 없습니다.
다음에 수행할 작업
FIPS 모드가 활성화되었는지 확인합니다.