5.8. FIPS 호환 IPsec VPN 배포
FIPS(Federal Information Processing Standard) 모드의 RHEL은 검증된 암호화 모듈을 독점적으로 사용하여 기존 프로토콜 및 암호를 자동으로 비활성화합니다. FIPS 모드를 활성화하는 것은 종종 연방 규정 준수에 대한 요구 사항이며 시스템 보안을 강화합니다.
RHEL에서 제공하는 Libreswan IPsec 구현은 완전히 FIPS와 호환됩니다. 시스템이 FIPS 모드인 경우 Libreswan은 새로운 FIPS 지원 시스템에 설치되어 있는지 또는 기존 Libreswan VPN을 사용하는 시스템에서 FIPS 모드가 활성화되었는지 여부에 관계없이 추가 구성이 필요하지 않고 인증된 암호화 모듈을 자동으로 사용합니다.
사전 요구 사항
-
AppStream리포지토리가 활성화되어 있어야 합니다.
프로세스
libreswan패키지를 설치합니다.# yum install libreswanLibreswan을 다시 설치하는 경우 이전 NSS 데이터베이스를 제거하십시오.
# systemctl stop ipsec # rm /etc/ipsec.d/*dbipsec서비스를 시작하고 부팅 시 서비스를 자동으로 시작합니다.# systemctl enable ipsec --nowipsec서비스를 추가하여 IKE, ESP 및 AH 프로토콜에500및4500UDP 포트를 허용하도록 방화벽을 구성합니다.# firewall-cmd --add-service="ipsec" # firewall-cmd --runtime-to-permanent시스템을 FIPS 모드로 전환합니다.
# fips-mode-setup --enable커널이 FIPS 모드로 전환되도록 시스템을 다시 시작하십시오.
# reboot
검증
Libreswan이 FIPS 모드에서 실행 중인지 확인합니다.
# ipsec whack --fipsstatus 000 FIPS mode enabled또는
systemd저널의ipsec유닛 항목을 확인합니다.$ journalctl -u ipsec ... Jan 22 11:26:50 localhost.localdomain pluto[3076]: FIPS Product: YES Jan 22 11:26:50 localhost.localdomain pluto[3076]: FIPS Kernel: YES Jan 22 11:26:50 localhost.localdomain pluto[3076]: FIPS Mode: YESFIPS 모드에서 사용 가능한 알고리즘을 보려면 다음을 수행합니다.
# ipsec pluto --selftest 2>&1 | head -11 FIPS Product: YES FIPS Kernel: YES FIPS Mode: YES NSS DB directory: sql:/etc/ipsec.d Initializing NSS Opening NSS database "sql:/etc/ipsec.d" read-only NSS initialized NSS crypto library initialized FIPS HMAC integrity support [enabled] FIPS mode enabled for pluto daemon NSS library is running in FIPS mode FIPS HMAC integrity verification self-test passedFIPS 모드에서 비활성화된 알고리즘을 쿼리하려면 다음을 수행합니다.
# ipsec pluto --selftest 2>&1 | grep disabled Encryption algorithm CAMELLIA_CTR disabled; not FIPS compliant Encryption algorithm CAMELLIA_CBC disabled; not FIPS compliant Encryption algorithm SERPENT_CBC disabled; not FIPS compliant Encryption algorithm TWOFISH_CBC disabled; not FIPS compliant Encryption algorithm TWOFISH_SSH disabled; not FIPS compliant Encryption algorithm NULL disabled; not FIPS compliant Encryption algorithm CHACHA20_POLY1305 disabled; not FIPS compliant Hash algorithm MD5 disabled; not FIPS compliant PRF algorithm HMAC_MD5 disabled; not FIPS compliant PRF algorithm AES_XCBC disabled; not FIPS compliant Integrity algorithm HMAC_MD5_96 disabled; not FIPS compliant Integrity algorithm HMAC_SHA2_256_TRUNCBUG disabled; not FIPS compliant Integrity algorithm AES_XCBC_96 disabled; not FIPS compliant DH algorithm MODP1024 disabled; not FIPS compliant DH algorithm MODP1536 disabled; not FIPS compliant DH algorithm DH31 disabled; not FIPS compliantFIPS 모드에서 허용되는 모든 알고리즘 및 암호를 나열하려면 다음을 수행합니다.
# ipsec pluto --selftest 2>&1 | grep ESP | grep FIPS | sed "s/^.*FIPS//" {256,192,*128} aes_ccm, aes_ccm_c {256,192,*128} aes_ccm_b {256,192,*128} aes_ccm_a [*192] 3des {256,192,*128} aes_gcm, aes_gcm_c {256,192,*128} aes_gcm_b {256,192,*128} aes_gcm_a {256,192,*128} aesctr {256,192,*128} aes {256,192,*128} aes_gmac sha, sha1, sha1_96, hmac_sha1 sha512, sha2_512, sha2_512_256, hmac_sha2_512 sha384, sha2_384, sha2_384_192, hmac_sha2_384 sha2, sha256, sha2_256, sha2_256_128, hmac_sha2_256 aes_cmac null null, dh0 dh14 dh15 dh16 dh17 dh18 ecp_256, ecp256 ecp_384, ecp384 ecp_521, ecp521