OnWorks Linux en Windows Online WorkStations

logo

Gratis online hosting voor werkstations

<Vorige | Inhoud | Volgende>

10.3.3. Een pakketopslagplaats voor APT‌ maken


Nu u een aangepast pakket heeft, kunt u het distribueren via een APT-pakketrepository. Gebruik berisping om de gewenste repository aan te maken en te vullen. Deze tool is behoorlijk krachtig en de handleiding is zeker de moeite waard om te lezen.

Een pakketrepository wordt doorgaans gehost op een server. Om het goed te scheiden van andere services die op de server draaien, kunt u het beste een gebruiker aanmaken die speciaal voor deze service is bedoeld. In het speciale gebruikersaccount kunt u de repositorybestanden hosten en ook de GnuPG-sleutel die zal worden gebruikt om de pakketrepository te ondertekenen:


# apt installeer reprepro gnupg

[...]

# adduser --system --group pkgrepo

Systeemgebruiker 'pkgrepo' toevoegen (UID 136) ... Nieuwe groep 'pkgrepo' toevoegen (GID 142) ...

Nieuwe gebruiker 'pkgrepo' (UID 136) toevoegen met groep 'pkgrepo' ... Thuismap '/home/pkgrepo' aanmaken ...

# chown pkgrepo $(tty)

# su - -s /bin/bash pkgrepo

$ gpg --gen-sleutel

gpg (GnuPG) 2.1.11; Copyright (C) 2016 Free Software Foundation, Inc. Dit is gratis software: u bent vrij om deze te wijzigen en opnieuw te distribueren.

Er is GEEN GARANTIE, voor zover wettelijk toegestaan.


gpg: map '/home/pkgrepo/.gnupg' aangemaakt

gpg: nieuw configuratiebestand '/home/pkgrepo/.gnupg/dirmngr.conf' gemaakt gpg: nieuw configuratiebestand '/home/pkgrepo/.gnupg/gpg.conf' gemaakt gpg: sleutelkastje '/home/pkgrepo/.gnupg/ pubring.kbx' gemaakt

Opmerking: Gebruik ”gpg --full-gen-key” voor een volledig uitgerust dialoogvenster voor het genereren van sleutels. GnuPG heeft een gebruikers-ID nodig om uw sleutel te identificeren.

Echte naam: Aanstootgevende beveiligingsrepository-ondertekeningssleutel

E-mailadres [e-mail beveiligd]

U heeft deze USER-ID geselecteerd:

"Aanstootgevende handtekeningsleutel voor beveiligingsrepository[e-mail beveiligd]

# apt installeer reprepro gnupg

[...]

# adduser --system --group pkgrepo

Systeemgebruiker 'pkgrepo' toevoegen (UID 136) ... Nieuwe groep 'pkgrepo' toevoegen (GID 142) ...

Nieuwe gebruiker 'pkgrepo' (UID 136) toevoegen met groep 'pkgrepo' ... Thuismap '/home/pkgrepo' aanmaken ...

# chown pkgrepo $(tty)

# su - -s /bin/bash pkgrepo

$ gpg --gen-sleutel

gpg (GnuPG) 2.1.11; Copyright (C) 2016 Free Software Foundation, Inc. Dit is gratis software: u bent vrij om deze te wijzigen en opnieuw te distribueren.

Er is GEEN GARANTIE, voor zover wettelijk toegestaan.


gpg: map '/home/pkgrepo/.gnupg' aangemaakt

gpg: nieuw configuratiebestand '/home/pkgrepo/.gnupg/dirmngr.conf' gemaakt gpg: nieuw configuratiebestand '/home/pkgrepo/.gnupg/gpg.conf' gemaakt gpg: sleutelkastje '/home/pkgrepo/.gnupg/ pubring.kbx' gemaakt

Opmerking: Gebruik ”gpg --full-gen-key” voor een volledig uitgerust dialoogvenster voor het genereren van sleutels. GnuPG heeft een gebruikers-ID nodig om uw sleutel te identificeren.

Echte naam: Aanstootgevende beveiligingsrepository-ondertekeningssleutel

E-mailadres [e-mail beveiligd]

U heeft deze USER-ID geselecteerd:

"Aanstootgevende handtekeningsleutel voor beveiligingsrepository[e-mail beveiligd]


(N)naam, (E)mail of (O)kay/(Q)uit wijzigen? o

We moeten veel willekeurige bytes genereren. Het is een goed idee om tijdens de eerste generatie een andere actie uit te voeren (typen op het toetsenbord, de muis bewegen, de schijven gebruiken); dit geeft de generator van willekeurige getallen een betere kans om voldoende entropie te verkrijgen.

[...]

gpg: /home/pkgrepo/.gnupg/trustdb.gpg: trustdb aangemaakt gpg: sleutel B4EF2D0D gemarkeerd als uiteindelijk vertrouwd

gpg: map '/home/pkgrepo/.gnupg/openpgp-revocs.d' aangemaakt

gpg: intrekkingscertificaat opgeslagen als '/home/pkgrepo/.gnupg/openpgp-revocs.d/

F8FE22F74F1B714E38DA6181B27F74F7B4EF2D0D.rev’

openbare en geheime sleutel gemaakt en ondertekend.


gpg: de trustdb controleren

gpg: marginalen nodig: 3 completes nodig: 1 vertrouwensmodel: PGP

gpg: diepte: 0 geldig: 1 ondertekend: 0 vertrouwen: 0-, 0q, 0n, 0m, 0f, 1u pub rsa2048/B4EF2D0D 2016-06-17 [S]

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

uid [ultieme] Aanstootgevende handtekeningsleutel voor beveiligingsrepository[e-mail beveiligd]> sub rsa2048/38035F38 2016-06-17 []

(N)naam, (E)mail of (O)kay/(Q)uit wijzigen? o

We moeten veel willekeurige bytes genereren. Het is een goed idee om tijdens de eerste generatie een andere actie uit te voeren (typen op het toetsenbord, de muis bewegen, de schijven gebruiken); dit geeft de generator van willekeurige getallen een betere kans om voldoende entropie te verkrijgen.

[...]

gpg: /home/pkgrepo/.gnupg/trustdb.gpg: trustdb aangemaakt gpg: sleutel B4EF2D0D gemarkeerd als uiteindelijk vertrouwd

gpg: map '/home/pkgrepo/.gnupg/openpgp-revocs.d' aangemaakt

gpg: intrekkingscertificaat opgeslagen als '/home/pkgrepo/.gnupg/openpgp-revocs.d/

F8FE22F74F1B714E38DA6181B27F74F7B4EF2D0D.rev’

openbare en geheime sleutel gemaakt en ondertekend.


gpg: de trustdb controleren

gpg: marginalen nodig: 3 completes nodig: 1 vertrouwensmodel: PGP

gpg: diepte: 0 geldig: 1 ondertekend: 0 vertrouwen: 0-, 0q, 0n, 0m, 0f, 1u pub rsa2048/B4EF2D0D 2016-06-17 [S]

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

uid [ultieme] Aanstootgevende handtekeningsleutel voor beveiligingsrepository[e-mail beveiligd]> sub rsa2048/38035F38 2016-06-17 []


Houd er rekening mee dat wanneer u om een ​​wachtwoordzin wordt gevraagd, u een lege waarde moet invoeren (en moet bevestigen dat u uw privésleutel niet wilt beschermen), omdat u de repository niet-interactief wilt kunnen ondertekenen. Merk dat ook op GPG vereist schrijftoegang tot de terminal om veilig om een ​​wachtwoordzin te kunnen vragen: daarom hebt u de eigendom van de virtuele terminal (die eigendom is van root omdat u aanvankelijk verbinding maakte als die gebruiker) gewijzigd voordat u een shell startte als pkgrepo.

Nu kunt u beginnen met het instellen van de repository. Hiervoor is een speciale directory nodig berisping en binnen die map moet je een conf/distributies bestand waarin wordt gedocumenteerd welke distributies beschikbaar zijn in de pakketrepository:


$ mkdir -p reprepro/conf

$ cd-reprepro

$ cat >conf/distributies <

Oorsprong: Offensieve beveiliging

Beschrijving: Interne pakketten van Offsec Architecturen: source amd64 i386 Componenten: main

SignWith: F8FE22F74F1B714E38DA6181B27F74F7B4EF2D0D END

$ mkdir -p reprepro/conf

$ cd-reprepro

$ cat >conf/distributies <

Oorsprong: Offensieve beveiliging

Beschrijving: Interne pakketten van Offsec Architecturen: source amd64 i386 Componenten: main

SignWith: F8FE22F74F1B714E38DA6181B27F74F7B4EF2D0D END


De verplichte velden zijn Codenaam, die de naam van de distributie geeft, Architecturen, wat aangeeft welke architecturen beschikbaar zullen zijn in de distributie (en geaccepteerd aan de invoerzijde), en COMPONENTEN, die de verschillende componenten aangeeft die beschikbaar zijn in de distributie (com-

ponenten vormen een soort subsectie van de distributie, die afzonderlijk kan worden ingeschakeld in de bronnenlijst van APT). De Oorsprong en Omschrijving velden zijn puur informatief en worden gekopieerd zoals ze zijn in het Sinds het dossier. De TekenMet veld vraagt berisping om de repository te ondertekenen met de GnuPG-sleutel waarvan de identificatie wordt vermeld (plaats hier de volledige vingerafdruk om er zeker van te zijn dat u de juiste sleutel gebruikt, en niet een andere die botst met de korte identificatie). De OokAccepteerVoor instelling is niet vereist, maar maakt verwerking mogelijk .veranderingen bestanden waarvan het veld Distributie een waarde heeft die hier wordt vermeld (zonder dit zou het alleen de codenaam van de distributie in dat veld accepteren).

Met deze basisopstelling kunt u verhuren berisping genereer een lege repository:


$ reprepro-export

Indexen exporteren...

$ vind .

.

./db

./db/versie

./db/referenties.db

./db/inhoud.cache.db

./db/checksums.db

./db/pakketten.db

./db/release.caches.db

./conf

./conf/distributies

./diss

./dists/offsec-intern

./dists/offsec-internal/Release.gpg

./dists/offsec-internal/Release

./dists/offsec-intern/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

Indexen exporteren...

$ vind .

.

./db

./db/versie

./db/referenties.db

./db/inhoud.cache.db

./db/checksums.db

./db/pakketten.db

./db/release.caches.db

./conf

./conf/distributies

./diss

./dists/offsec-intern

./dists/offsec-internal/Release.gpg

./dists/offsec-internal/Release

./dists/offsec-intern/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


Zoals je kan zien, berisping heeft de meta-informatie van de repository gemaakt in a afstanden submap. Het initialiseerde ook een interne database in a db submap.

Het is nu tijd om uw eerste pakket toe te voegen. Kopieer eerst de bestanden die zijn gegenereerd door de build van het offsec- standaardwaarden pakket (offsec-defaults_1.0.dsc, offsec-defaults_1.0.tar.xz,

offsec-defaults_1.0_all.deb en offsec-defaults_1.0_amd64.changes) in /tmp

op de server die de pakketrepository host en vraag berisping om het pakket op te nemen:


$ reprepro omvat offsec-internal /tmp/offsec-defaults_1.0_amd64.changes

Indexen exporteren...

$ zwembad vinden zwembad zwembad/groot zwembad/groot/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

$ reprepro omvat offsec-internal /tmp/offsec-defaults_1.0_amd64.changes

Indexen exporteren...

$ zwembad vinden zwembad zwembad/groot zwembad/groot/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


Zoals je kunt zien, heeft het de bestanden toegevoegd aan zijn eigen pakketpool in a zwembad submap.

De afstanden en zwembad mappen zijn de twee mappen die u (openbaar) beschikbaar moet maken via HTTP om de installatie van uw APT-repository te voltooien. Ze bevatten alle bestanden die APT wil downloaden.

Ervan uitgaande dat u dit wilt hosten op een virtuele host met de naam pkgrepo.offsec.com, kunt u het volgende Apache-configuratiebestand maken en het opslaan /etc/apache2/sites-available/pkgrepo. offsec.com.confen schakel het in met a2ensite pkgrepo.offsec.com):


Servernaam pkgrepo.offsec.com ServerAdmin [e-mail beveiligd]


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

Opties Indexen FollowSymLinks MultiViews Vereist alles toegekend

AllowOverride Alle

Servernaam pkgrepo.offsec.com ServerAdmin [e-mail beveiligd]


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

Opties Indexen FollowSymLinks MultiViews Vereist alles toegekend

AllowOverride Alle


En de daarbij behorende sources.list invoer om toe te voegen op machines die pakketten uit deze repository nodig hebben, zou er als volgt uitzien:


deb http://pkgrepo.offsec.com offsec-interne main


# Schakel de volgende regel in als u ook toegang tot bronpakketten wilt

# deb-src http://pkgrepo.offsec.com offsec-interne main

deb http://pkgrepo.offsec.com offsec-interne main


# Schakel de volgende regel in als u ook toegang tot bronpakketten wilt

# deb-src http://pkgrepo.offsec.com offsec-interne main


Uw pakket is nu gepubliceerd en zou beschikbaar moeten zijn voor uw netwerkhosts.

Hoewel dit een langdurig proces is geweest, is het “zware werk” nu voltooid. U kunt uw netwerkmachines opstarten via PXE, een aangepaste versie van Kali Linux installeren zonder interactie dankzij een door het netwerk geleverde preseed, SaltStack configureren om uw configuraties te beheren (en minions te controleren!), Gevorkte aangepaste pakketten maken en deze pakketten via uw netwerk distribueren. eigen pakketrepository. Dit biedt gecentraliseerd beheer en controle op ondernemingsniveau over meerdere Kali Linux-installaties. Kortom, u kunt nu snel zeer veilige Kali-systemen implementeren die vooraf zijn geconfigureerd voor uw specifieke behoeften en deze gesynchroniseerd houden dankzij Kali's (semi-automatische) installatie van alle pakketupdates.


Top OS Cloud Computing bij OnWorks: