OnWorks Linux 및 Windows 온라인 워크스테이션

심벌 마크

워크스테이션용 무료 온라인 호스팅

<이전 | 내용 | 다음>

10.3.3. APT용 패키지 저장소 생성‌


이제 사용자 정의 패키지가 있으므로 APT 패키지 저장소를 통해 배포할 수 있습니다. 사용 견책 원하는 저장소를 생성하고 채우십시오. 이 도구는 매우 강력하며 해당 매뉴얼 페이지는 확실히 읽어 볼 가치가 있습니다.

패키지 저장소는 일반적으로 서버에서 호스팅됩니다. 서버에서 실행되는 다른 서비스와 적절하게 분리하려면 이 서비스 전용 사용자를 만드는 것이 가장 좋습니다. 전용 사용자 계정에서는 저장소 파일과 패키지 저장소 서명에 사용될 GnuPG 키를 호스팅할 수 있습니다.


# 적절한 설치 reprepro gnupg

[...]

# adduser --system --group pkgrepo

시스템 사용자 'pkgrepo'(UID 136) 추가 중 ... 새 그룹 'pkgrepo'(GID 142) 추가 중 ...

'pkgrepo' 그룹에 새 사용자 'pkgrepo'(UID 136) 추가 중... 홈 디렉터리 '/home/pkgrepo' 생성 중...

# chown pkgrepo $(tty)

# su - -s /bin/bash pkgrepo

$ gpg --gen-키

gpg(GnuPG) 2.1.11; Copyright (C) 2016 Free Software Foundation, Inc. 이 소프트웨어는 무료 소프트웨어이므로 자유롭게 변경하고 재배포할 수 있습니다.

법이 허용하는 한도 내에서 어떠한 보증도 하지 않습니다.


gpg: '/home/pkgrepo/.gnupg' 디렉터리가 생성되었습니다.

gpg: 새 구성 파일 '/home/pkgrepo/.gnupg/dirmngr.conf' 생성됨 gpg: 새 구성 파일 '/home/pkgrepo/.gnupg/gpg.conf' 생성됨 gpg: keybox '/home/pkgrepo/.gnupg/ pubring.kbx'가 생성되었습니다.

참고: 모든 기능을 갖춘 키 생성 대화 상자를 보려면 "gpg --full-gen-key"를 사용하십시오. GnuPG는 키를 식별하기 위해 사용자 ID를 생성해야 합니다.

실제 이름: 공격적인 보안 저장소 서명 키

이메일: [이메일 보호]

다음 USER-ID를 선택하셨습니다.

”공격적인 보안 저장소 서명 키[이메일 보호]>”

# 적절한 설치 reprepro gnupg

[...]

# adduser --system --group pkgrepo

시스템 사용자 'pkgrepo'(UID 136) 추가 중 ... 새 그룹 'pkgrepo'(GID 142) 추가 중 ...

'pkgrepo' 그룹에 새 사용자 'pkgrepo'(UID 136) 추가 중... 홈 디렉터리 '/home/pkgrepo' 생성 중...

# chown pkgrepo $(tty)

# su - -s /bin/bash pkgrepo

$ gpg --gen-키

gpg(GnuPG) 2.1.11; Copyright (C) 2016 Free Software Foundation, Inc. 이 소프트웨어는 무료 소프트웨어이므로 자유롭게 변경하고 재배포할 수 있습니다.

법이 허용하는 한도 내에서 어떠한 보증도 하지 않습니다.


gpg: '/home/pkgrepo/.gnupg' 디렉터리가 생성되었습니다.

gpg: 새 구성 파일 '/home/pkgrepo/.gnupg/dirmngr.conf' 생성됨 gpg: 새 구성 파일 '/home/pkgrepo/.gnupg/gpg.conf' 생성됨 gpg: keybox '/home/pkgrepo/.gnupg/ pubring.kbx'가 생성되었습니다.

참고: 모든 기능을 갖춘 키 생성 대화 상자를 보려면 "gpg --full-gen-key"를 사용하십시오. GnuPG는 키를 식별하기 위해 사용자 ID를 생성해야 합니다.

실제 이름: 공격적인 보안 저장소 서명 키

이메일: [이메일 보호]

다음 USER-ID를 선택하셨습니다.

”공격적인 보안 저장소 서명 키[이메일 보호]>”


(N)이름, (E)메일 또는 (O)kay/(Q)uit를 변경하시겠습니까? o

우리는 많은 무작위 바이트를 생성해야 합니다. 프라임 생성 중에 다른 작업(키보드 입력, 마우스 이동, 디스크 활용)을 수행하는 것이 좋습니다. 이는 난수 생성기가 충분한 엔트로피를 얻을 수 있는 더 나은 기회를 제공합니다.

[...]

gpg: /home/pkgrepo/.gnupg/trustdb.gpg: trustdb가 생성됨 gpg: 키 B4EF2D0D가 궁극적으로 신뢰할 수 있는 것으로 표시됨

gpg: '/home/pkgrepo/.gnupg/openpgp-revocs.d' 디렉터리가 생성되었습니다.

gpg: '/home/pkgrepo/.gnupg/openpgp-revocs.d/에 저장된 해지 인증서

F8FE22F74F1B714E38DA6181B27F74F7B4EF2D0D.rev’

공개 및 비밀 키가 생성되고 서명되었습니다.


gpg: trustdb 확인 중

gpg: 한계 필요: 3 완료 필요: 1 신뢰 모델: PGP

gpg: 깊이: 0 유효: 1 서명됨: 0 신뢰: 0-, 0q, 0n, 0m, 0f, 1u pub rsa2048/B4EF2D0D 2016-06-17 [S]

키 지문 = F8FE 22F7 4F1B 714E 38DA 6181 B27F 74F7 B4EF 2D0D

uid [ultimate] 공격적인 보안 저장소 서명 키[이메일 보호]> 하위 rsa2048/38035F38 2016-06-17 []

(N)이름, (E)메일 또는 (O)kay/(Q)uit를 변경하시겠습니까? o

우리는 많은 무작위 바이트를 생성해야 합니다. 프라임 생성 중에 다른 작업(키보드 입력, 마우스 이동, 디스크 활용)을 수행하는 것이 좋습니다. 이는 난수 생성기가 충분한 엔트로피를 얻을 수 있는 더 나은 기회를 제공합니다.

[...]

gpg: /home/pkgrepo/.gnupg/trustdb.gpg: trustdb가 생성됨 gpg: 키 B4EF2D0D가 궁극적으로 신뢰할 수 있는 것으로 표시됨

gpg: '/home/pkgrepo/.gnupg/openpgp-revocs.d' 디렉터리가 생성되었습니다.

gpg: '/home/pkgrepo/.gnupg/openpgp-revocs.d/에 저장된 해지 인증서

F8FE22F74F1B714E38DA6181B27F74F7B4EF2D0D.rev’

공개 및 비밀 키가 생성되고 서명되었습니다.


gpg: trustdb 확인 중

gpg: 한계 필요: 3 완료 필요: 1 신뢰 모델: PGP

gpg: 깊이: 0 유효: 1 서명됨: 0 신뢰: 0-, 0q, 0n, 0m, 0f, 1u pub rsa2048/B4EF2D0D 2016-06-17 [S]

키 지문 = F8FE 22F7 4F1B 714E 38DA 6181 B27F 74F7 B4EF 2D0D

uid [ultimate] 공격적인 보안 저장소 서명 키[이메일 보호]> 하위 rsa2048/38035F38 2016-06-17 []


저장소에 비대화식으로 서명하려면 암호를 입력하라는 메시지가 표시되면 빈 값을 입력하고 개인 키를 보호하지 않을 것임을 확인해야 합니다. 또한 gpg 암호 문구를 안전하게 입력하려면 터미널에 대한 쓰기 권한이 필요합니다. 따라서 쉘을 다음과 같이 시작하기 전에 가상 터미널(처음에 해당 사용자로 연결한 이후 루트가 소유함)의 소유권을 변경한 것입니다. pkgrepo.

이제 저장소 설정을 시작할 수 있습니다. 전용 디렉터리가 필요합니다. 견책 그리고 그 디렉토리 안에는 conf/배포 패키지 저장소에서 사용할 수 있는 배포판을 문서화하는 파일:


$ mkdir -p 대표/conf

$ CD 재현

$ 고양이 >conf/배포판 <

유래: 공격적인 보안

설명: Offsec의 내부 패키지 아키텍처: source amd64 i386 구성 요소: main

SignWith: F8FE22F74F1B714E38DA6181B27F74F7B4EF2D0D END

$ mkdir -p 대표/conf

$ CD 재현

$ 고양이 >conf/배포판 <

유래: 공격적인 보안

설명: Offsec의 내부 패키지 아키텍처: source amd64 i386 구성 요소: main

SignWith: F8FE22F74F1B714E38DA6181B27F74F7B4EF2D0D END


필수 입력란은 다음과 같습니다. 코드 네임, 분포의 이름을 제공합니다. 아키텍처, 배포에서 사용할 수 있는 아키텍처(입력 측에서 허용되는 아키텍처)를 나타냅니다. 구성 요소들, 이는 배포판에서 사용할 수 있는 다양한 구성 요소를 나타냅니다(com-

구성 요소는 배포판의 일종의 하위 섹션으로, APT의 source.list에서 별도로 활성화할 수 있습니다. 그만큼 유래 상품 설명 필드는 순전히 정보 제공용이며 있는 그대로 복사됩니다. 해제 파일. 그만큼 서명 필드가 묻습니다 견책 식별자가 나열된 GnuPG 키로 저장소에 서명합니다(짧은 식별자와 충돌하는 다른 키가 아닌 올바른 키를 사용하도록 여기에 전체 지문을 입력하세요). 그만큼 또한AcceptFor 설정이 필요하지 않지만 처리가 가능합니다. .변경 배포 필드에 여기에 나열된 값이 있는 파일(이 값이 없으면 해당 필드의 배포 코드명만 허용됩니다)

이 기본 설정이 완료되면 다음을 수행할 수 있습니다. 견책 빈 저장소를 생성합니다:


$ 대표 수출

색인을 내보내는 중...

$ 찾기 .

.

./db

./db/버전

./db/references.db

./db/contents.cache.db

./db/체크섬.db

./db/packages.db

./db/release.caches.db

./conf

./conf/distributions

./dists

./dists/offsec-internal

./dists/offsec-internal/Release.gpg

./dists/offsec-internal/릴리스

./dists/offsec-internal/main

./dists/offsec-internal/main/소스

./dists/offsec-internal/main/source/릴리스

./dists/offsec-internal/main/source/Sources.gz

./dists/offsec-internal/main/binary-amd64

./dists/offsec-internal/main/binary-amd64/Packages

./dists/offsec-internal/main/binary-amd64/릴리스

./dists/offsec-internal/main/binary-amd64/Packages.gz

./dists/offsec-internal/main/binary-i386

./dists/offsec-internal/main/binary-i386/Packages

./dists/offsec-internal/main/binary-i386/Release

./dists/offsec-internal/main/binary-i386/Packages.gz

./dists/offsec-internal/InRelease

$ 대표 수출

색인을 내보내는 중...

$ 찾기 .

.

./db

./db/버전

./db/references.db

./db/contents.cache.db

./db/체크섬.db

./db/packages.db

./db/release.caches.db

./conf

./conf/distributions

./dists

./dists/offsec-internal

./dists/offsec-internal/Release.gpg

./dists/offsec-internal/릴리스

./dists/offsec-internal/main

./dists/offsec-internal/main/소스

./dists/offsec-internal/main/source/릴리스

./dists/offsec-internal/main/source/Sources.gz

./dists/offsec-internal/main/binary-amd64

./dists/offsec-internal/main/binary-amd64/Packages

./dists/offsec-internal/main/binary-amd64/릴리스

./dists/offsec-internal/main/binary-amd64/Packages.gz

./dists/offsec-internal/main/binary-i386

./dists/offsec-internal/main/binary-i386/Packages

./dists/offsec-internal/main/binary-i386/Release

./dists/offsec-internal/main/binary-i386/Packages.gz

./dists/offsec-internal/InRelease


당신이 볼 수 있듯이, 견책 저장소 메타 정보를 Dists 하위 디렉토리. 또한 내부 데이터베이스를 초기화했습니다. db 하위 디렉토리.

이제 첫 번째 패키지를 추가할 차례입니다. 먼저 빌드로 생성된 파일을 복사합니다. offsec- 기본값 패키지 (offsec-defaults_1.0.dsc, offsec-defaults_1.0.tar.xz,

offsec-defaults_1.0_all.deb 및 offsec-defaults_1.0_amd64.changes)를 /tmp로

패키지 저장소를 호스팅하는 서버에서 물어보세요. 견책 패키지를 포함하려면:


$ 대표자는 offsec-internal /tmp/offsec-defaults_1.0_amd64.changes를 포함합니다.

색인을 내보내는 중...

$ 수영장 찾기 수영장 수영장/메인 수영장/메인/O

풀/메인/o/offsec-기본값

풀/main/o/offsec-defaults/offsec-defaults_1.0.dsc 풀/main/o/offsec-defaults/offsec-defaults_1.0.tar.xz 풀/main/o/offsec-defaults/offsec-defaults_1.0. XNUMX_all.deb

$ 대표자는 offsec-internal /tmp/offsec-defaults_1.0_amd64.changes를 포함합니다.

색인을 내보내는 중...

$ 수영장 찾기 수영장 수영장/메인 수영장/메인/O

풀/메인/o/offsec-기본값

풀/main/o/offsec-defaults/offsec-defaults_1.0.dsc 풀/main/o/offsec-defaults/offsec-defaults_1.0.tar.xz 풀/main/o/offsec-defaults/offsec-defaults_1.0. XNUMX_all.deb


보시다시피, 파일을 자체 패키지 풀에 추가했습니다. 하위 디렉토리.

XNUMXD덴탈의 Dists 디렉터리는 APT 저장소 설정을 완료하기 위해 HTTP를 통해 (공개적으로) 사용할 수 있도록 해야 하는 두 개의 디렉터리입니다. 여기에는 APT가 다운로드하려는 모든 파일이 포함되어 있습니다.

이름이 지정된 가상 호스트에서 이를 호스팅한다고 가정합니다. pkgrepo.offsec.com, 다음 Apache 구성 파일을 생성하여 다음 위치에 저장할 수 있습니다. /etc/apache2/sites-available/pkgrepo. offsec.com.conf, 다음을 사용하여 활성화합니다. a2ensite pkgrepo.offsec.com):


서버 이름 pkgrepo.offsec.com ServerAdmin [이메일 보호]


오류 로그 /var/log/apache2/pkgrepo.offsec.com-error.log

CustomLog /var/log/apache2/pkgrepo.offsec.com-access.log ”%h %l %u %t \”%r\” %>s %O” DocumentRoot /home/pkgrepo/reprepro

옵션 인덱스 FollowSymLinks MultiViews 모두 필요 허용

모든 AllowOverride가

서버 이름 pkgrepo.offsec.com ServerAdmin [이메일 보호]


오류 로그 /var/log/apache2/pkgrepo.offsec.com-error.log

CustomLog /var/log/apache2/pkgrepo.offsec.com-access.log ”%h %l %u %t \”%r\” %>s %O” DocumentRoot /home/pkgrepo/reprepro

옵션 인덱스 FollowSymLinks MultiViews 모두 필요 허용

모든 AllowOverride가


그리고 그에 상응하는 sources.list에 이 저장소의 패키지가 필요한 컴퓨터에 추가하기 위한 항목은 다음과 같습니다.


deb http://pkgrepo.offsec.com offsec-내부 메인


# 소스 패키지에도 접근하려면 다음 줄을 활성화하세요

# deb-src http://pkgrepo.offsec.com offsec-internal 메인

deb http://pkgrepo.offsec.com offsec-내부 메인


# 소스 패키지에도 접근하려면 다음 줄을 활성화하세요

# deb-src http://pkgrepo.offsec.com offsec-internal 메인


이제 패키지가 게시되었으며 네트워크 호스트에서 사용할 수 있습니다.

비록 오랜 시간이 걸리는 설정이었지만 이제 "무거운 작업"이 완료되었습니다. PXE를 통해 네트워크로 연결된 시스템을 부팅하고, 네트워크에서 제공하는 사전 설정 덕분에 상호 작용 없이 Kali Linux의 사용자 정의 버전을 설치하고, 구성을 관리하고 미니언을 제어하도록 SaltStack을 구성하고, 포크된 사용자 정의 패키지를 생성하고, 해당 패키지를 사용자를 통해 배포할 수 있습니다. 자체 패키지 저장소. 이는 여러 Kali Linux 설치에 대한 중앙 집중식 관리 및 엔터프라이즈 수준 제어를 제공합니다. 간단히 말해서, 이제 특정 요구 사항에 맞게 사전 구성된 매우 안전한 Kali 시스템을 신속하게 배포하고 Kali의 모든 패키지 업데이트 설치(반자동) 덕분에 동기화를 유지할 수 있습니다.


OnWorks의 최고 OS 클라우드 컴퓨팅: