Stații de lucru online OnWorks Linux și Windows

logo

Găzduire online gratuită pentru stații de lucru

<Înapoi | Cuprins | Următor>

10.3.3. Crearea unui depozit de pachete pentru APT‌


Acum că aveți un pachet personalizat, îl puteți distribui printr-un depozit de pachete APT. Utilizare mustrare pentru a crea depozitul dorit și pentru a-l completa. Acest instrument este destul de puternic și pagina sa de manual merită cu siguranță citită.

Un depozit de pachete este de obicei găzduit pe un server. Pentru a o separa corect de alte servicii care rulează pe server, cel mai bine este să creați un utilizator dedicat acestui serviciu. În contul de utilizator dedicat, veți putea găzdui fișierele de depozit și, de asemenea, cheia GnuPG care va fi folosită pentru a semna depozitul de pachete:


# apt install reprepro gnupg

[...]

# adduser --system --group pkgrepo

Se adaugă utilizatorul de sistem „pkgrepo” (UID 136)... Se adaugă un nou grup „pkgrepo” (GID 142)...

Se adaugă un nou utilizator „pkgrepo” (UID 136) cu grupul „pkgrepo”... Se creează directorul principal „/home/pkgrepo”...

# chown pkgrepo $(tty)

# su - -s /bin/bash pkgrepo

$ gpg --gen-key

gpg (GnuPG) 2.1.11; Copyright (C) 2016 Free Software Foundation, Inc. Acesta este software gratuit: sunteți liber să îl schimbați și să îl redistribuiți.

NU ESTE GARANȚIE, în măsura permisă de lege.


gpg: directorul „/home/pkgrepo/.gnupg” creat

gpg: fișier de configurare nou „/home/pkgrepo/.gnupg/dirmngr.conf” creat gpg: fișier de configurare nou „/home/pkgrepo/.gnupg/gpg.conf” creat gpg: caseta de taste „/home/pkgrepo/.gnupg/ pubring.kbx' creat

Notă: Folosiți „gpg --full-gen-key” pentru un dialog complet de generare a cheilor. GnuPG trebuie să construiască un ID de utilizator pentru a vă identifica cheia.

Nume real: Cheie de semnare a depozitului de securitate ofensiv

Adresa de email: [e-mail protejat]

Ați selectat acest USER-ID:

”Cheie de semnare a depozitului de securitate ofensiv[e-mail protejat]> "

# apt install reprepro gnupg

[...]

# adduser --system --group pkgrepo

Se adaugă utilizatorul de sistem „pkgrepo” (UID 136)... Se adaugă un nou grup „pkgrepo” (GID 142)...

Se adaugă un nou utilizator „pkgrepo” (UID 136) cu grupul „pkgrepo”... Se creează directorul principal „/home/pkgrepo”...

# chown pkgrepo $(tty)

# su - -s /bin/bash pkgrepo

$ gpg --gen-key

gpg (GnuPG) 2.1.11; Copyright (C) 2016 Free Software Foundation, Inc. Acesta este software gratuit: sunteți liber să îl schimbați și să îl redistribuiți.

NU ESTE GARANȚIE, în măsura permisă de lege.


gpg: directorul „/home/pkgrepo/.gnupg” creat

gpg: fișier de configurare nou „/home/pkgrepo/.gnupg/dirmngr.conf” creat gpg: fișier de configurare nou „/home/pkgrepo/.gnupg/gpg.conf” creat gpg: caseta de taste „/home/pkgrepo/.gnupg/ pubring.kbx' creat

Notă: Folosiți „gpg --full-gen-key” pentru un dialog complet de generare a cheilor. GnuPG trebuie să construiască un ID de utilizator pentru a vă identifica cheia.

Nume real: Cheie de semnare a depozitului de securitate ofensiv

Adresa de email: [e-mail protejat]

Ați selectat acest USER-ID:

”Cheie de semnare a depozitului de securitate ofensiv[e-mail protejat]> "


Schimbați (Nume), (E)mail sau (O)ok/(C)uit? o

Trebuie să generăm o mulțime de octeți aleatori. Este o idee bună să efectuați o altă acțiune (tastați pe tastatură, mișcați mouse-ul, utilizați discurile) în timpul primei generații; aceasta oferă generatorului de numere aleatoare o șansă mai bună de a câștiga suficientă entropie.

[...]

gpg: /home/pkgrepo/.gnupg/trustdb.gpg: trustdb creat gpg: cheie B4EF2D0D marcată ca de încredere în cele din urmă

gpg: directorul „/home/pkgrepo/.gnupg/openpgp-revocs.d” creat

gpg: certificat de revocare stocat ca „/home/pkgrepo/.gnupg/openpgp-revocs.d/

F8FE22F74F1B714E38DA6181B27F74F7B4EF2D0D.rev’

cheie publică și secretă creată și semnată.


gpg: verificarea trustdb

gpg: marginali necesare: 3 complete necesare: 1 model de încredere: PGP

gpg: adâncime: 0 valid: 1 semnat: 0 încredere: 0-, 0q, 0n, 0m, 0f, 1u pub rsa2048/B4EF2D0D 2016-06-17 [S]

Amprenta cheie = F8FE 22F7 4F1B 714E 38DA 6181 B27F 74F7 B4EF 2D0D

uid [final] Cheie de semnare a depozitului de securitate ofensiv[e-mail protejat]> sub rsa2048/38035F38 2016-06-17 []

Schimbați (Nume), (E)mail sau (O)ok/(C)uit? o

Trebuie să generăm o mulțime de octeți aleatori. Este o idee bună să efectuați o altă acțiune (tastați pe tastatură, mișcați mouse-ul, utilizați discurile) în timpul primei generații; aceasta oferă generatorului de numere aleatoare o șansă mai bună de a câștiga suficientă entropie.

[...]

gpg: /home/pkgrepo/.gnupg/trustdb.gpg: trustdb creat gpg: cheie B4EF2D0D marcată ca de încredere în cele din urmă

gpg: directorul „/home/pkgrepo/.gnupg/openpgp-revocs.d” creat

gpg: certificat de revocare stocat ca „/home/pkgrepo/.gnupg/openpgp-revocs.d/

F8FE22F74F1B714E38DA6181B27F74F7B4EF2D0D.rev’

cheie publică și secretă creată și semnată.


gpg: verificarea trustdb

gpg: marginali necesare: 3 complete necesare: 1 model de încredere: PGP

gpg: adâncime: 0 valid: 1 semnat: 0 încredere: 0-, 0q, 0n, 0m, 0f, 1u pub rsa2048/B4EF2D0D 2016-06-17 [S]

Amprenta cheie = F8FE 22F7 4F1B 714E 38DA 6181 B27F 74F7 B4EF 2D0D

uid [final] Cheie de semnare a depozitului de securitate ofensiv[e-mail protejat]> sub rsa2048/38035F38 2016-06-17 []


Rețineți că atunci când vi se solicită o expresie de acces, ar trebui să introduceți o valoare goală (și să confirmați că nu doriți să vă protejați cheia privată), deoarece doriți să puteți semna depozitul în mod neinteractiv. De asemenea, rețineți că GPG necesită acces de scriere la terminal pentru a putea solicita în siguranță o frază de acces: de aceea ați schimbat proprietatea terminalului virtual (care este deținut de root, deoarece v-ați conectat inițial ca utilizator) înainte de a porni un shell ca pkgrepo.

Acum puteți începe configurarea depozitului. Este necesar un director dedicat pentru mustrare iar în acel director trebuie să creați un conf/distribuţii fișier care documentează ce distribuții sunt disponibile în depozitul de pachete:


$ mkdir -p reprepro/conf

$ cd reprepro

$ cat >conf/distributions <

Origine: Securitate ofensivă

Descriere: Pachetele interne Offsec Arhitecturi: sursă amd64 i386 Componente: principal

SignWith: F8FE22F74F1B714E38DA6181B27F74F7B4EF2D0D END

$ mkdir -p reprepro/conf

$ cd reprepro

$ cat >conf/distributions <

Origine: Securitate ofensivă

Descriere: Pachetele interne Offsec Arhitecturi: sursă amd64 i386 Componente: principal

SignWith: F8FE22F74F1B714E38DA6181B27F74F7B4EF2D0D END


Câmpurile obligatorii sunt Nume de cod, care dă numele distribuției, arhitecturi, care indică ce arhitecturi vor fi disponibile în distribuție (și acceptate pe partea de intrare) și Componente, care indică diferitele componente disponibile în distribuție (com-

componentele sunt un fel de sub-secțiune a distribuției, care poate fi activată separat în source.list APT). The Origine și Descriere câmpurile sunt pur informative și sunt copiate așa cum sunt în Eliberați fişier. SemneazăCu întreabă câmpul mustrare pentru a semna depozitul cu cheia GnuPG al cărei identificator este listat (puneți amprenta completă aici pentru a vă asigura că utilizați cheia corectă și nu alta care se ciocnește de identificatorul scurt). The De asemenea,AcceptPentru setarea nu este necesară, dar face posibilă procesarea .schimbări fișierele al căror câmp Distribuție are o valoare listată aici (fără aceasta, ar accepta doar numele de cod al distribuției în acel câmp).

Cu această configurație de bază, puteți lăsa mustrare generați un depozit gol:


$ reprepro export

Se exportă indici...

$ găsi .

.

./db

./db/versiune

./db/references.db

./db/contents.cache.db

./db/checkssums.db

./db/packages.db

./db/release.caches.db

./conf

./conf/distributions

./dists

./dists/offsec-internal

./dists/offsec-internal/Release.gpg

./dists/offsec-internal/Release

./dists/offsec-internal/main

./dists/offsec-internal/main/source

./dists/offsec-internal/main/source/Release

./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/Release

./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

$ reprepro export

Se exportă indici...

$ găsi .

.

./db

./db/versiune

./db/references.db

./db/contents.cache.db

./db/checkssums.db

./db/packages.db

./db/release.caches.db

./conf

./conf/distributions

./dists

./dists/offsec-internal

./dists/offsec-internal/Release.gpg

./dists/offsec-internal/Release

./dists/offsec-internal/main

./dists/offsec-internal/main/source

./dists/offsec-internal/main/source/Release

./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/Release

./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


După cum puteți vedea, mustrare a creat meta-informațiile din depozit în a dist subdirector. De asemenea, a inițializat o bază de date internă într-un db subdirector.

Acum este timpul să adăugați primul pachet. Mai întâi, copiați fișierele generate de build-ul offsec- implicite pachet (offsec-defaults_1.0.dsc, offsec-defaults_1.0.tar.xz,

offsec-defaults_1.0_all.deb și offsec-defaults_1.0_amd64.changes) în /tmp

pe serverul care găzduiește depozitul de pachete și întrebați mustrare sa includa pachetul:


$ rerepro include offsec-internal /tmp/offsec-defaults_1.0_amd64.changes

Se exportă indici...

$ găsi piscina piscina piscina/piscina principala/principala/o

pool/main/o/offsec-defaults

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

$ rerepro include offsec-internal /tmp/offsec-defaults_1.0_amd64.changes

Se exportă indici...

$ găsi piscina piscina piscina/piscina principala/principala/o

pool/main/o/offsec-defaults

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


După cum puteți vedea, a adăugat fișierele în propriul pool de pachete într-un piscină subdirector.

dist și piscină directoarele sunt cele două directoare pe care trebuie să le faceți (public) disponibile prin HTTP pentru a finaliza configurarea depozitului dvs. APT. Acestea conțin toate fișierele pe care APT va dori să le descarce.

Presupunând că doriți să găzduiți acest lucru pe o gazdă virtuală numită pkgrepo.offsec.com, puteți crea următorul fișier de configurare Apache, salvați-l în /etc/apache2/sites-available/pkgrepo. offsec.com.conf, și activați-l cu a2ensite pkgrepo.offsec.com):


ServerName pkgrepo.offsec.com ServerAdmin [e-mail protejat]


ErrorLog /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

Opțiuni Indexuri FollowSymLinks MultiViews Necesită toate acordate

AllowOverride All

ServerName pkgrepo.offsec.com ServerAdmin [e-mail protejat]


ErrorLog /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

Opțiuni Indexuri FollowSymLinks MultiViews Necesită toate acordate

AllowOverride All


Și corespunzătoare surse.list intrarea de adăugat pe mașinile care au nevoie de pachete din acest depozit ar arăta astfel:


deb http://pkgrepo.offsec.com offsec-internal principal


# Activați linia următoare dacă doriți acces și la pachetele sursă

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

deb http://pkgrepo.offsec.com offsec-internal principal


# Activați linia următoare dacă doriți acces și la pachetele sursă

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


Pachetul dvs. este acum publicat și ar trebui să fie disponibil pentru gazdele dvs. din rețea.

Deși aceasta a fost o configurație îndelungată, „ridicarea grele” este acum finalizată. Puteți să vă porniți mașinile din rețea prin PXE, să instalați o versiune personalizată a Kali Linux fără interacțiune datorită unui preseed furnizat de rețea, să configurați SaltStack să vă gestioneze configurațiile (și să controlați minionii!), să creați pachete personalizate bifurcate și să distribuiți acele pachete prin intermediul dvs. propriul depozit de pachete. Aceasta oferă management centralizat și control la nivel de întreprindere asupra mai multor instalări Kali Linux. Pe scurt, acum puteți implementa rapid sisteme Kali foarte sigure preconfigurate pentru nevoile dumneavoastră specifice și le puteți menține sincronizate datorită instalării (semi-automate) de către Kali a tuturor actualizărilor de pachet.


Top OS Cloud Computing la OnWorks: