Stasiun Kerja Online OnWorks Linux dan Windows

logo

Hosting Online Gratis untuk WorkStation

<Sebelumnya | Konten | Selanjutnya>

10.3.3. Membuat Repositori Paket untuk APT‌


Sekarang setelah Anda memiliki paket khusus, Anda dapat mendistribusikannya melalui repositori paket APT. Menggunakan teguran untuk membuat repositori yang diinginkan dan untuk mengisinya. Alat ini cukup kuat dan halaman manualnya tentu layak dibaca.

Repositori paket biasanya di-host di server. Untuk memisahkannya dengan benar dari layanan lain yang berjalan di server, yang terbaik adalah membuat pengguna yang didedikasikan untuk layanan ini. Di akun pengguna khusus, Anda akan dapat meng-host file repositori dan juga kunci GnuPG yang akan digunakan untuk menandatangani repositori paket:


# tepat instal reprepro gnupg

[...]

# adduser --system --group pkgrepo

Menambahkan pengguna sistem 'pkgrepo' (UID 136) ... Menambahkan grup baru 'pkgrepo' (GID 142) ...

Menambahkan pengguna baru 'pkgrepo' (UID 136) dengan grup 'pkgrepo' ... Membuat direktori home '/home/pkgrepo' ...

# chown pkgrepo $(tty)

# su - -s /bin/bash pkgrepo

$ gpg --gen-kunci

gpg (GnuPG) 2.1.11; Hak Cipta (C) 2016 Free Software Foundation, Inc. Ini adalah perangkat lunak gratis: Anda bebas mengubah dan mendistribusikannya kembali.

TIDAK ADA JAMINAN, sejauh diizinkan oleh hukum.


gpg: direktori '/home/pkgrepo/.gnupg' dibuat

gpg: file konfigurasi baru '/home/pkgrepo/.gnupg/dirmngr.conf' dibuat gpg: file konfigurasi baru '/home/pkgrepo/.gnupg/gpg.conf' dibuat gpg: keybox '/home/pkgrepo/.gnupg/ pubring.kbx' dibuat

Catatan: Gunakan "gpg --full-gen-key" untuk dialog pembuatan kunci berfitur lengkap. GnuPG perlu membuat ID pengguna untuk mengidentifikasi kunci Anda.

Nama asli: Kunci Penandatanganan Repositori Keamanan yang Menyerang

Alamat email: [email dilindungi]

Anda memilih USER-ID ini:

”Kunci Penandatanganan Repositori Keamanan Ofensif[email dilindungi]> "

# tepat instal reprepro gnupg

[...]

# adduser --system --group pkgrepo

Menambahkan pengguna sistem 'pkgrepo' (UID 136) ... Menambahkan grup baru 'pkgrepo' (GID 142) ...

Menambahkan pengguna baru 'pkgrepo' (UID 136) dengan grup 'pkgrepo' ... Membuat direktori home '/home/pkgrepo' ...

# chown pkgrepo $(tty)

# su - -s /bin/bash pkgrepo

$ gpg --gen-kunci

gpg (GnuPG) 2.1.11; Hak Cipta (C) 2016 Free Software Foundation, Inc. Ini adalah perangkat lunak gratis: Anda bebas mengubah dan mendistribusikannya kembali.

TIDAK ADA JAMINAN, sejauh diizinkan oleh hukum.


gpg: direktori '/home/pkgrepo/.gnupg' dibuat

gpg: file konfigurasi baru '/home/pkgrepo/.gnupg/dirmngr.conf' dibuat gpg: file konfigurasi baru '/home/pkgrepo/.gnupg/gpg.conf' dibuat gpg: keybox '/home/pkgrepo/.gnupg/ pubring.kbx' dibuat

Catatan: Gunakan "gpg --full-gen-key" untuk dialog pembuatan kunci berfitur lengkap. GnuPG perlu membuat ID pengguna untuk mengidentifikasi kunci Anda.

Nama asli: Kunci Penandatanganan Repositori Keamanan yang Menyerang

Alamat email: [email dilindungi]

Anda memilih USER-ID ini:

”Kunci Penandatanganan Repositori Keamanan Ofensif[email dilindungi]> "


Ubah (N)ame, (E)mail, atau (O)kay/(Q)uit? o

Kita perlu menghasilkan banyak byte acak. Ini adalah ide yang baik untuk melakukan beberapa tindakan lain (ketik pada keyboard, gerakkan mouse, gunakan disk) selama generasi utama; ini memberi generator nomor acak peluang yang lebih baik untuk mendapatkan entropi yang cukup.

[...]

gpg: /home/pkgrepo/.gnupg/trustdb.gpg: trustdb dibuat gpg: kunci B4EF2D0D ditandai sebagai akhirnya tepercaya

gpg: direktori '/home/pkgrepo/.gnupg/openpgp-revocs.d' dibuat

gpg: sertifikat pencabutan disimpan sebagai '/home/pkgrepo/.gnupg/openpgp-revocs.d/

F8FE22F74F1B714E38DA6181B27F74F7B4EF2D0D.rev’

kunci publik dan rahasia dibuat dan ditandatangani.


gpg: memeriksa trustdb

gpg: marginal yang dibutuhkan: 3 penyelesaian yang dibutuhkan: 1 model kepercayaan: PGP

gpg: kedalaman: 0 valid: 1 ditandatangani: 0 kepercayaan: 0-, 0q, 0n, 0m, 0f, 1u pub rsa2048/B4EF2D0D 2016-06-17 [S]

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

uid [ultimate] Kunci Penandatanganan Repositori Keamanan Ofensif[email dilindungi]> sub rsa2048/38035F38 2016-06-17 []

Ubah (N)ame, (E)mail, atau (O)kay/(Q)uit? o

Kita perlu menghasilkan banyak byte acak. Ini adalah ide yang baik untuk melakukan beberapa tindakan lain (ketik pada keyboard, gerakkan mouse, gunakan disk) selama generasi utama; ini memberi generator nomor acak peluang yang lebih baik untuk mendapatkan entropi yang cukup.

[...]

gpg: /home/pkgrepo/.gnupg/trustdb.gpg: trustdb dibuat gpg: kunci B4EF2D0D ditandai sebagai akhirnya tepercaya

gpg: direktori '/home/pkgrepo/.gnupg/openpgp-revocs.d' dibuat

gpg: sertifikat pencabutan disimpan sebagai '/home/pkgrepo/.gnupg/openpgp-revocs.d/

F8FE22F74F1B714E38DA6181B27F74F7B4EF2D0D.rev’

kunci publik dan rahasia dibuat dan ditandatangani.


gpg: memeriksa trustdb

gpg: marginal yang dibutuhkan: 3 penyelesaian yang dibutuhkan: 1 model kepercayaan: PGP

gpg: kedalaman: 0 valid: 1 ditandatangani: 0 kepercayaan: 0-, 0q, 0n, 0m, 0f, 1u pub rsa2048/B4EF2D0D 2016-06-17 [S]

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

uid [ultimate] Kunci Penandatanganan Repositori Keamanan Ofensif[email dilindungi]> sub rsa2048/38035F38 2016-06-17 []


Perhatikan bahwa ketika Anda diminta untuk frasa sandi, Anda harus memasukkan nilai kosong (dan mengonfirmasi bahwa Anda tidak ingin melindungi kunci pribadi Anda) karena Anda ingin dapat menandatangani repositori secara non-interaktif. Perhatikan juga bahwa gpg memerlukan akses tulis ke terminal untuk dapat dengan aman Meminta frasa sandi: itulah sebabnya Anda mengubah kepemilikan terminal virtual (yang dimiliki oleh root sejak Anda awalnya terhubung sebagai pengguna itu) sebelum memulai Shell sebagai pkgrepo.

Sekarang Anda dapat mulai mengatur repositori. Direktori khusus diperlukan untuk teguran dan di dalam direktori itu Anda harus membuat conf/distribusi file yang mendokumentasikan distribusi mana yang tersedia dalam repositori paket:


$ mkdir -p reprepro/conf

$ cd reppro

$ cat >conf/distribusi <

Asal: Keamanan Serangan

Deskripsi: Paket internal Offsec Arsitektur: sumber amd64 i386 Komponen: main

SignWith: F8FE22F74F1B714E38DA6181B27F74F7B4EF2D0D END

$ mkdir -p reprepro/conf

$ cd reppro

$ cat >conf/distribusi <

Asal: Keamanan Serangan

Deskripsi: Paket internal Offsec Arsitektur: sumber amd64 i386 Komponen: main

SignWith: F8FE22F74F1B714E38DA6181B27F74F7B4EF2D0D END


Bidang yang diperlukan adalah Codename, yang memberikan nama distribusi, Arsitektur, yang menunjukkan arsitektur mana yang akan tersedia dalam distribusi (dan diterima di sisi input), dan Komponen, yang menunjukkan berbagai komponen yang tersedia dalam distribusi (com-

ponents adalah semacam sub-bagian dari distribusi, yang dapat diaktifkan secara terpisah di sources.list APT). NS Asal dan Deskripsi Produk bidang murni informatif dan disalin apa adanya di Lepaskan mengajukan. Itu TandaDengan lapangan bertanya teguran untuk menandatangani repositori dengan kunci GnuPG yang pengidentifikasinya terdaftar (letakkan sidik jari lengkap di sini untuk memastikan Anda menggunakan kunci yang benar, dan tidak ada lagi yang bertabrakan dengan pengidentifikasi pendek). NS JugaTerimaUntuk pengaturan tidak diperlukan tetapi memungkinkan untuk diproses .perubahan file yang bidang Distribusinya memiliki nilai yang tercantum di sini (tanpa ini, itu hanya akan menerima nama kode distribusi di bidang itu).

Dengan pengaturan dasar ini, Anda dapat membiarkan teguran menghasilkan repositori kosong:


$ ekspor reprepro

Mengekspor indeks...

$ Temukan .

.

./db

./db/versi

./db/referensi.db

./db/contents.cache.db

./db/checksums.db

./db/packages.db

./db/rilis.caches.db

./conf

./conf/distribusi

./disst

./dists/offsec-internal

./dists/offsec-internal/Release.gpg

./dists/offsec-internal/Rilis

./dists/offsec-internal/main

./dists/offsec-internal/main/source

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

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

$ ekspor reprepro

Mengekspor indeks...

$ Temukan .

.

./db

./db/versi

./db/referensi.db

./db/contents.cache.db

./db/checksums.db

./db/packages.db

./db/rilis.caches.db

./conf

./conf/distribusi

./disst

./dists/offsec-internal

./dists/offsec-internal/Release.gpg

./dists/offsec-internal/Rilis

./dists/offsec-internal/main

./dists/offsec-internal/main/source

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

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


Seperti yang Anda lihat, teguran membuat informasi meta repositori di a dist sub-direktori. Itu juga menginisialisasi database internal di a db sub-direktori.

Sekarang saatnya untuk menambahkan paket pertama Anda. Pertama, salin file yang dihasilkan oleh build dari offsec- default kemasan (offsec-defaults_1.0.dsc, offsec-defaults_1.0.tar.xz,

offsec-defaults_1.0_all.deb, dan offsec-defaults_1.0_amd64.changes) menjadi /tmp

di server yang menghosting repositori paket dan tanyakan teguran untuk menyertakan paket:


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

Mengekspor indeks...

$ temukan kolam kolam renang/kolam utama/utama/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 termasuk offsec-internal /tmp/offsec-defaults_1.0_amd64.changes

Mengekspor indeks...

$ temukan kolam kolam renang/kolam utama/utama/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


Seperti yang Anda lihat, itu menambahkan file ke kumpulan paketnya sendiri di a kolam sub-direktori.

Grafik dist dan kolam direktori adalah dua direktori yang Anda perlukan (untuk umum) tersedia melalui HTTP untuk menyelesaikan penyiapan repositori APT Anda. Mereka berisi semua file yang ingin diunduh oleh APT.

Dengan asumsi Anda ingin meng-host ini di host virtual bernama pkgrepo.offsec.com, Anda dapat membuat file konfigurasi Apache berikut, simpan ke /etc/Apache2/sites-available/pkgrepo. offsec.com.conf, dan aktifkan dengan a2ensite pkgrepo.offsec.com):


Nama Server pkgrepo.offsec.com ServerAdmin [email dilindungi]


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

Pilihan Indeks FollowSymLinks MultiViews Memerlukan semua diberikan

AllowOverride Semua

Nama Server pkgrepo.offsec.com ServerAdmin [email dilindungi]


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

Pilihan Indeks FollowSymLinks MultiViews Memerlukan semua diberikan

AllowOverride Semua


Dan yang sesuai sources.list entri untuk menambahkan mesin yang membutuhkan paket dari repositori ini akan terlihat seperti ini:


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


# Aktifkan baris berikutnya jika Anda juga ingin mengakses paket sumber

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

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


# Aktifkan baris berikutnya jika Anda juga ingin mengakses paket sumber

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


Paket Anda sekarang diterbitkan dan akan tersedia untuk host jaringan Anda.

Meskipun ini merupakan penyiapan yang panjang, "angkat berat" sekarang telah selesai. Anda dapat mem-boot mesin jaringan Anda melalui PXE, menginstal versi Kali Linux yang disesuaikan tanpa interaksi berkat preseed yang dikirim ke jaringan, mengkonfigurasi SaltStack untuk mengelola konfigurasi Anda (dan mengontrol antek!), membuat paket kustom bercabang, dan mendistribusikan paket tersebut melalui Anda repositori paket sendiri. Ini memberikan manajemen terpusat dan kontrol tingkat perusahaan atas beberapa instalasi Kali Linux. Singkatnya, sekarang Anda dapat dengan cepat menerapkan sistem Kali yang sangat aman yang telah dikonfigurasi sebelumnya untuk kebutuhan spesifik Anda dan menjaganya tetap sinkron berkat instalasi Kali (semi-otomatis) dari semua pembaruan paket.


Komputasi Awan OS Teratas di OnWorks: