^ 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 파일에서 인증서 및 키를 가져오기 위한 도구입니다.