Beyond Linux® From Scratch (systemd Edition) - Version 12.1 | ||
---|---|---|
Chapter 5. File Systems and Disk Management | ||
이전 | 위로 / 처음으로 | 다음 |
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): 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 추가)
추가 다운로드
- 필수 패치: nss-3.98-standalone-1.patch
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)
테스트를 실행하려면 다음과 같이 실행합니다:1)
cd tests &&
HOST=localhost DOMSUF=localdomain ./all.sh
cd ../
참고 테스트에 대한 몇 가지 정보
- HOST=localhost 및 DOMSUF=localdomain이 필요합니다. 이러한 변수가 없으면 FQDN을 지정해야 하며, 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 파일에서 인증서 및 키를 가져오기 위한 도구입니다.
1)
진행하기 전에 9.2.일반적인 네트워크 설정에 나오는 대로 /etc/hostname, /etc/hosts 파일이 정확하게 생성되어 있는지 확인해야 합니다. 만약 두 파일의 생성되어 있지 않다면 모든 테스트는 실패로 기록됩니다.