2019/12/03

ppa apt deb 로컬 저장소 전체적 루틴

로컬 저장소

1. apt-mirror를 통해 배포판을 패키지를 다운로드 한다.
2. 웹서버와 연동한다.
심볼릭 링크의 허용과, 클라이언트 경로를 확인한다.

3. 개인키와 공개키를 만든다. gnupg 는 SHA1만 지원하므로 다음을 추가 한다.
vi /root/.gnupg
cert-digest-algo SHA256
digest-algo SHA256


4. 새성된 공유키에 일 부분을 추출한다.
디지털 서명시 키를 사용하는 방식이다. 가장 강력한 키의 방식인 RSA를 선택한다.
Please select what kind of key you want:
   (1) DSA and Elgamal (default)
   (2) DSA (sign only)
   (5) RSA (sign only)

Your selection? 5


RSA 키를 선택한 경우, 키에 대한 크기를 묻는다. 보안을 강력하게 하기 위해 가장 큰 4097 비트를 입력하며, 컴퓨터 사항에맞게 이 값을 조절한다.
키값이 길수로 컴퓨터의 자원을 많이 사용하기 때문에 짧게 사용하는 것도 좋다.
RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048) 4096


키에 대한 만료일을 설정하는 것이다.
우리의 경우 AS 기간을 선정하고 난 다음에 과금을 부과 한 후 서비스 과금이 입고 되면 새로운 테마 버전을 업데이트 한 후 진행을 해준다.
Please specify how long the key should be valid.
         0 = key does not expire 무료
      <n>  = key expires in n days 몇일
      <n>w = key expires in n weeks 몇주
      <n>m = key expires in n months 개월
      <n>y = key expires in n years 년

Key is valid for? (0) 5y

생성할 키의 만료 날짜와 시간을 표시하고 확인한다.
Key expires at Thu 06 Mar 2017 21:12:03 CET
Is this correct? (y/N) Y


사용자 관련 정보를 입력한다.
사용자 관련 정보 항목
- 실명
신원을 증명하는 데 사용할 이름(Local fairUx 75)
- 메일주소
키의 전자 메일 주소를 설정.
제품명으로 지정한다.
- 주석
본 제품의 요점을 설명한다.

예제)
Real name: Local fairUxu Intrepid Ibex Repository
E-mail address:
Comment:
You selected this USER-ID:
    "Local Ubuntu Intrepid Ibex Repository"

사용자 정보 수정 및 적용을 선택할 수 있도록 질의 한다.
Change (N)ame, (C)omment, (E)-mail or (O)kay/(Q)uit? O

암호를 입력한다.
Enter passphrase:
Repeat passphrase:

생성할 공개키, 개인키을 계산한다.
디바이스를 통해 난수를 만들기 때문에 입출력 하드웨어 장치에 많은 인터럽트를 주는게 좋다.
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, use the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.

하드웨어 인터럽트 및 이벤트가 발생하지 않을 경우 아래의 메세지를 볼 게된다.
..+++++

Not enough random bytes available.  Please do some other work to give
the OS a chance to collect more entropy!  (Need 182 more bytes)
.....................................+++++

공개키, 개인키가 준비되면 다음과 같이 출력이 된다.
xxxx xxxx xxxx xxxx xxxx  xxxx xxxx xxxx xxxx xxxx ID 키값이다.
gpg: /home/luvr/.gnupg/trustdb.gpg: trustdb created
gpg: key xxxxxxxx marked as ultimately trusted
public and secret key created and signed.

gpg: checking the trustdb
gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
gpg: depth: 0  valid:   1  signed:   0  trust: 0-, 0q, 0n, 0m, 0f, 1u
gpg: next trustdb check due at 2014-03-06
pub   4096R/xxxxxxxx 2009-03-07 [expires: 2014-03-06]
      Key fingerprint = xxxx xxxx xxxx xxxx xxxx  xxxx xxxx xxxx xxxx xxxx
uid                  Local Ubuntu Intrepid Ibex Repository

ID : xxxx xxxx xxxx xxxx xxxx  xxxx xxxx xxxx xxxx xxxx

참고:
생성된 키는 다음 명령어를 사용해 언제든지 확인할 수 있다.

생성된 키를 확인한다.
gpg --list-keys

5. 공개키를 추출한다.
gpg --output pubkey-export-file --armor --export xxxxxxxx


6. 공개키를 서버에다 적용한다.
sudo apt-key add  pubkey-export-file.txt

주의 주의
7, 8 번을 진행시에 결국, 이것만 해주면 된다.
gpg --clearsign -o InRelease Release

7. 패키지 저장소 목록에 대해 적용한다.
주의 기존 목록을 지운다.
apt-ftparchive packages . > Packages
gzip -c Packages > Packages.gz

주의 또 다른 방법으로는
기존 목록을 지운다.
dpkg-scanpackages . /dev/null > Packages
gzip -9c Packages > Packages.gz

8. Release, InRelease 및 Release.gpg 파일을 적용한다.
apt-ftparchive release . > Release
gpg --clearsign -o InRelease Release
gpg -abs -o Release.gpg Release

9. 클라이언트에서 소스리스트 항목에 로칼 저장소 위치를 지정해 준다.
deb http://kr.archive.ubuntu.fair.lan/ubuntu/ yakkety main

10. 클라이언트에서 키를 다운 로드 받는다.
sudo wget -O - http://kr.archive.ubuntu.fair.lan/ubuntu/dists/yakkety/pubkey-export-file | sudo apt-key add -

11. 업데이트 한다.
클라이언트 업데이트를 한다.

댓글 없음:

댓글 쓰기