^ Beyond Linux(r) From Scratch (systemd Edition) - Version 12.1 ^^^ ^ Chapter 5. File Systems and Disk Management ^^^ |[[.:Nettle-3.9.1|이전]] | [[.:index|위로]] / [[:start|처음으로]] | [[.:OpenSSH-9.6p1|다음]]| |Nettle-3.9.1 | OpenSSH-9.6p1| ---- ===== NSS-3.98 ===== ==== NSS 소개 ==== NSS(네트워크 보안 서비스) 패키지는 보안이 지원되는 클라이언트 및 서버 애플리케이션의 크로스 플랫폼 개발을 지원하도록 설계된 라이브러리 세트입니다. NSS로 구축된 애플리케이션은 SSL v2 및 v3, TLS, PKCS #5, PKCS #7, PKCS #11, PKCS #12, S/MIME, X.509 v3 인증서 및 기타 보안 표준을 지원할 수 있습니다. 이 패키지는 SSL 및 S/MIME 또는 기타 인터넷 보안 표준을 애플리케이션에 구현하는 데 유용합니다. 이 패키지는 LFS 12.1 플랫폼을 사용하여 빌드하고 제대로 작동하는 것으로 알려져 있습니다. === 패키지 정보 === * 다운로드(HTTP): [[https://archive.mozilla.org/pub/security/nss/releases/NSS_3_98_RTM/src/nss-3.98.tar.gz|nss-3.98.tar.gz]] * MD5 Sum: 4502fcae1b32da310fffdfb3c67f6985 * 다운로드 크기: 73 MB * 필요한 예상 디스크 공간: 312 MB (테스트 268 MB 추가) * 예상 빌드 시간: 0.9 SBU (병렬 처리=4, AMD Ryzens에서 테스트 시 16 SBU 추가 또는 Intel 컴퓨터에서 최소 30 SBU 추가) === 추가 다운로드 === * 필수 패치: [[https://www.linuxfromscratch.org/patches/blfs/12.1/nss-3.98-standalone-1.patch|nss-3.98-standalone-1.patch]] === NSS 종속성 === == 필수 == * [[.:NSPR-4.35]] == 권장 == * [[.:SQLite-3.45.1]] * [[.:p11-kit-0.25.3]] 런타임 [[https://wiki.linuxfromscratch.org/blfs/wiki/nss|편집자 노트]] ==== NSS 설치 ==== 다음과 같이 NSS를 설치합니다. patch -Np1 -i ../nss-3.98-standalone-1.patch && cd nss && make BUILD_OPT=1 \ NSPR_INCLUDE_DIR=/usr/include/nspr \ USE_SYSTEM_ZLIB=1 \ ZLIB_LIBS=-lz \ NSS_ENABLE_WERROR=0 \ $([ $(uname -m) = x86_64 ] && echo USE_64=1) \ $([ -f /usr/include/sqlite3.h ] && echo NSS_USE_SYSTEM_SQLITE=1) 테스트를 실행하려면 다음과 같이 실행합니다:((진행하기 전에 [[https://www.linuxfromscratch.org/lfs/view/stable-systemd/chapter09/network.html|9.2.일반적인 네트워크 설정]]에 나오는 대로 /etc/hostname, /etc/hosts 파일이 정확하게 생성되어 있는지 확인해야 합니다. 만약 두 파일의 생성되어 있지 않다면 모든 테스트는 실패로 기록됩니다.)) cd tests && HOST=localhost DOMSUF=localdomain ./all.sh cd ../ **참고** 테스트에 대한 몇 가지 정보 * HOST=localhost 및 DOMSUF=localdomain이 필요합니다. 이러한 변수가 없으면 FQDN을 지정해야 하며, [[linuxfromscratch:12.1:075-glibc-2.39#conf-glibc|LFS 책]]에 명시된 대로 //myhostname// 네임 서비스 스위치 모듈에 //localhost.localdomain//이 정의되어 있는 경우 이 일반적인 방법이 모든 사용자에게 작동해야 합니다. * 실행하는 데 시간이 오래 걸립니다. 원하는 경우 전체 테스트 스위트의 하위 집합 실행에 대한 정보가 all.sh 스크립트에 있습니다. * 테스트를 중단할 때 테스트 스위트는 실행 중인 테스트 서버를 스핀다운하지 못합니다. 이로 인해 테스트 스위트가 잘못된 PID를 가져와 더 이상 존재하지 않는 서버를 종료하려고 시도하는 중에 무한 루프가 발생합니다. * 테스트 스위트 결과(HTML 형식!)는 %%./../test_results/security/localhost.1/results.html%%에서 확인할 수 있습니다. * 일부 인텔 머신에서는 알 수 없는 이유로 몇 가지 테스트가 실패할 수 있습니다. 이제 //''root''// 사용자로 cd ../dist && install -v -m755 Linux*/lib/*.so /usr/lib && install -v -m644 Linux*/lib/{*.chk,libcrmf.a} /usr/lib && install -v -m755 -d /usr/include/nss && cp -v -RL {public,private}/nss/* /usr/include/nss && install -v -m755 Linux*/bin/{certutil,nss-config,pk12util} /usr/bin && install -v -m644 Linux*/lib/pkgconfig/nss.pc /usr/lib/pkgconfig ==== 명령 설명 ==== * //BUILD_OPT=1:// \\ 바이너리에 디버깅 심볼을 빌드하지 않고 기본 컴파일러 최적화가 사용되도록 빌드가 수행됩니다. * //NSPR_INCLUDE_DIR=/usr/include/nspr:// \\ nspr 헤더의 위치를 설정합니다. * //USE_SYSTEM_ZLIB=1:// \\ libssl3.so 라이브러리가 인트리 버전이 아닌 시스템에 설치된 zlib에 링크되도록 하기 위해 전달됩니다. * //ZLIB_LIBS=-lz:// \\ 시스템 zlib에 링크하는 데 필요한 링커 플래그를 제공합니다. * **$([ $(uname -m) = x86_64 ] && echo USE_64=1):** \\ USE_64=1 옵션은 x86_64에서 필수이며, 그렇지 않으면 **make**가 32비트 오브젝트를 생성하려고 시도하지만 실패합니다. ($(uname -m) = x86_64 ] 테스트는 32비트 시스템에 영향을 미치지 않는지 확인합니다. * **([ -f /usr/include/sqlite3.h ] && echo NSS_USE_SYSTEM_SQLITE=1):** \\ 이 명령은 sqlite가 설치되어 있는지 테스트하고 설치되어 있는 경우 NSS_USE_SYSTEM_SQLITE=1 옵션을 **echo**하여 ''libsoftokn3.so''가 시스템 버전의 sqlite에 대해 링크되도록 합니다. * //NSS_DISABLE_GTESTS=1:// NSS 테스트 스위트를 실행할 필요가 없는 경우 **make** 명령에 이 옵션을 추가하면 테스트 컴파일을 방지하고 빌드 시간을 절약할 수 있습니다. ==== NSS 설정 ==== [[.:p11-kit-0.25.3]]이 설치되어 있는 경우, p11-kit trust module(''/usr/lib/pkcs11/p11-kit-trust.so'')을 ''/usr/lib/libnssckbi.so''의 드롭인 대체로 사용하여 NSS을 인식하는 응용 프로그램에서 ''/usr/lib/libnssckbi.so''에서 제공하는 정적 라이브러리 대신 시스템 CA를 사용할 수 있습니다. //root// 사용자로 다음 명령을 실행합니다: ln -sfv ./pkcs11/p11-kit-trust.so /usr/lib/libnssckbi.so \\ 또한 내부 데이터베이스(''/usr/lib/libnssckbi.so'')를 사용하지 않는 종속 애플리케이션의 경우 [[.:make-ca-1.13]] 페이지에 포함된 /usr/sbin/make-ca 스크립트에서 -n 스위치를 사용하거나 ''/etc/make-ca/make-ca.conf'' 파일을 수정하여 시스템 전체 NSS DB를 생성할 수 있습니다. ==== 내용 ==== * **프로그램:** \\ certutil, nss-config, pk12util * **라이브러리:** \\ libcrmf.a, libfreebl3.so, libfreeblpriv3.so, libnss3.so, libnssckbi.so, libnssckbi-testlib.so, libnssdbm3.so, libnsssysinit.so, libnssutil3.so, libpkcs11testmodule.so, libsmime3.so, libsoftokn3.so, 및 libssl3.so. * **디렉터리** \\ /usr/include/nss === 간단한 설명 === * **certutil** \\ Mozilla 인증서 데이터베이스 도구입니다. 이 도구는 넷스케이프 커뮤니케이터 cert8.db 및 key3.db 데이터베이스 파일을 만들고 수정할 수 있는 명령줄 유틸리티입니다. 또한 cert8.db 파일 내에서 인증서를 나열, 생성, 수정 또는 삭제하고, 비밀번호를 생성 또는 변경하고, 새 공개 및 개인 키 쌍을 생성하고, 키 데이터베이스의 내용을 표시하거나, key3.db 파일 내에서 키 쌍을 삭제할 수 있습니다. * **nss-config** \\ NSS 라이브러리의 NSS 라이브러리 설정을 결정하는 데 사용됩니다. * **pk12util** \\ pkcs #12 파일에서 인증서 및 키를 가져오기 위한 도구입니다.