OnWorks Linux dan Windows Online Workstations

logo

Pengehosan Dalam Talian Percuma untuk Workstation

<Sebelum | Contents [show] | Seterusnya>

10.3.3. Mencipta Repositori Pakej untuk APT‌


Memandangkan anda mempunyai pakej tersuai, anda boleh mengedarkannya melalui repositori pakej APT. guna teguran untuk mencipta repositori yang dikehendaki dan mengisinya. Alat ini agak berkuasa dan halaman manualnya sememangnya bernilai dibaca.

Repositori pakej biasanya dihoskan pada pelayan. Untuk memisahkannya dengan betul daripada perkhidmatan lain yang dijalankan pada pelayan, adalah lebih baik untuk mencipta pengguna khusus untuk perkhidmatan ini. Dalam akaun pengguna khusus, anda akan dapat mengehoskan fail repositori dan juga kunci GnuPG yang akan digunakan untuk menandatangani repositori pakej:


# apt install reprepro gnupg

[...]

# adduser --system --group pkgrepo

Menambahkan pengguna sistem 'pkgrepo' (UID 136) ... Menambah kumpulan baharu 'pkgrepo' (GID 142) ...

Menambah pengguna baharu 'pkgrepo' (UID 136) dengan kumpulan 'pkgrepo' ... Mencipta direktori rumah '/home/pkgrepo' ...

# chown pkgrepo $(tty)

# su - -s /bin/bash pkgrepo

$ gpg --gen-key

gpg (GnuPG) 2.1.11; Hak Cipta (C) 2016 Free Software Foundation, Inc. Ini adalah perisian percuma: anda bebas untuk menukar dan mengedarkannya semula.

TIADA WARANTI, setakat yang dibenarkan oleh undang-undang.


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

gpg: fail konfigurasi baharu '/home/pkgrepo/.gnupg/dirmngr.conf' dicipta gpg: fail konfigurasi baharu '/home/pkgrepo/.gnupg/gpg.conf' dicipta gpg: kotak kekunci '/home/pkgrepo/.gnupg/ pubring.kbx' dicipta

Nota: Gunakan "gpg --full-gen-key" untuk dialog penjanaan kunci berciri penuh. GnuPG perlu membina ID pengguna untuk mengenal pasti kunci anda.

Nama sebenar: Kunci Tandatangan Repositori Keselamatan Menyinggung

Alamat emel: [e-mel dilindungi]

Anda telah memilih USER-ID ini:

”Kunci Tandatangan Repositori Keselamatan Menyinggung[e-mel dilindungi]> "

# apt install reprepro gnupg

[...]

# adduser --system --group pkgrepo

Menambahkan pengguna sistem 'pkgrepo' (UID 136) ... Menambah kumpulan baharu 'pkgrepo' (GID 142) ...

Menambah pengguna baharu 'pkgrepo' (UID 136) dengan kumpulan 'pkgrepo' ... Mencipta direktori rumah '/home/pkgrepo' ...

# chown pkgrepo $(tty)

# su - -s /bin/bash pkgrepo

$ gpg --gen-key

gpg (GnuPG) 2.1.11; Hak Cipta (C) 2016 Free Software Foundation, Inc. Ini adalah perisian percuma: anda bebas untuk menukar dan mengedarkannya semula.

TIADA WARANTI, setakat yang dibenarkan oleh undang-undang.


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

gpg: fail konfigurasi baharu '/home/pkgrepo/.gnupg/dirmngr.conf' dicipta gpg: fail konfigurasi baharu '/home/pkgrepo/.gnupg/gpg.conf' dicipta gpg: kotak kekunci '/home/pkgrepo/.gnupg/ pubring.kbx' dicipta

Nota: Gunakan "gpg --full-gen-key" untuk dialog penjanaan kunci berciri penuh. GnuPG perlu membina ID pengguna untuk mengenal pasti kunci anda.

Nama sebenar: Kunci Tandatangan Repositori Keselamatan Menyinggung

Alamat emel: [e-mel dilindungi]

Anda telah memilih USER-ID ini:

”Kunci Tandatangan Repositori Keselamatan Menyinggung[e-mel dilindungi]> "


Tukar (N)nama, (E)mel, atau (O)kay/(Q)uit? o

Kita perlu menjana banyak bait rawak. Adalah idea yang baik untuk melakukan beberapa tindakan lain (taip pada papan kekunci, gerakkan tetikus, gunakan cakera) semasa penjanaan perdana; ini memberikan penjana nombor rawak peluang yang lebih baik untuk mendapatkan entropi yang mencukupi.

[...]

gpg: /home/pkgrepo/.gnupg/trustdb.gpg: trustdb dibuat gpg: kunci B4EF2D0D ditanda sebagai dipercayai akhirnya

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

gpg: sijil pembatalan disimpan sebagai '/home/pkgrepo/.gnupg/openpgp-revocs.d/

F8FE22F74F1B714E38DA6181B27F74F7B4EF2D0D.rev’

kunci awam dan rahsia yang dicipta dan ditandatangani.


gpg: menyemak trustdb

gpg: marginal diperlukan: 3 lengkap diperlukan: 1 model amanah: PGP

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

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

uid [muktamad] Kunci Tandatangan Repositori Keselamatan Menyinggung[e-mel dilindungi]> sub rsa2048/38035F38 2016-06-17 []

Tukar (N)nama, (E)mel, atau (O)kay/(Q)uit? o

Kita perlu menjana banyak bait rawak. Adalah idea yang baik untuk melakukan beberapa tindakan lain (taip pada papan kekunci, gerakkan tetikus, gunakan cakera) semasa penjanaan perdana; ini memberikan penjana nombor rawak peluang yang lebih baik untuk mendapatkan entropi yang mencukupi.

[...]

gpg: /home/pkgrepo/.gnupg/trustdb.gpg: trustdb dibuat gpg: kunci B4EF2D0D ditanda sebagai dipercayai akhirnya

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

gpg: sijil pembatalan disimpan sebagai '/home/pkgrepo/.gnupg/openpgp-revocs.d/

F8FE22F74F1B714E38DA6181B27F74F7B4EF2D0D.rev’

kunci awam dan rahsia yang dicipta dan ditandatangani.


gpg: menyemak trustdb

gpg: marginal diperlukan: 3 lengkap diperlukan: 1 model amanah: PGP

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

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

uid [muktamad] Kunci Tandatangan Repositori Keselamatan Menyinggung[e-mel dilindungi]> sub rsa2048/38035F38 2016-06-17 []


Ambil perhatian bahawa apabila anda digesa untuk frasa laluan, anda harus memasukkan nilai kosong (dan mengesahkan bahawa anda tidak mahu melindungi kunci peribadi anda) kerana anda mahu boleh menandatangani repositori secara tidak interaktif. Perhatikan juga bahawa gpg memerlukan akses tulis ke terminal untuk dapat menggesa dengan selamat untuk frasa laluan: itulah sebabnya anda menukar pemilikan terminal maya (yang dimiliki oleh root sejak anda mula-mula disambungkan sebagai pengguna itu) sebelum memulakan shell sebagai pkgrepo.

Sekarang anda boleh mula menyediakan repositori. Direktori khusus diperlukan untuk teguran dan di dalam direktori itu anda perlu membuat a conf/distributions fail mendokumentasikan pengedaran yang tersedia dalam repositori pakej:


$ mkdir -p reprepro/conf

$ cd reprepro

$ kucing >conf/distributions <

Asal: Keselamatan Serangan

Penerangan: Pakej Dalaman Offsec Seni bina: sumber amd64 i386 Komponen: utama

SignWith: F8FE22F74F1B714E38DA6181B27F74F7B4EF2D0D END

$ mkdir -p reprepro/conf

$ cd reprepro

$ kucing >conf/distributions <

Asal: Keselamatan Serangan

Penerangan: Pakej Dalaman Offsec Seni bina: sumber amd64 i386 Komponen: utama

SignWith: F8FE22F74F1B714E38DA6181B27F74F7B4EF2D0D END


Medan yang diperlukan ialah Nama kod, yang memberikan nama pengedaran, Senibina, yang menunjukkan seni bina yang akan tersedia dalam pengedaran (dan diterima pada bahagian input), dan Komponen, yang menunjukkan pelbagai komponen yang terdapat dalam pengedaran (com-

ponents ialah sejenis sub-bahagian pengedaran, yang boleh didayakan secara berasingan dalam sumber.senarai APT). The asal and Penerangan Produk medan adalah bermaklumat semata-mata dan ia disalin sebagaimana adanya dalam Lepaskan fail. The Tandatangan Dengan bidang bertanya teguran untuk menandatangani repositori dengan kunci GnuPG yang pengecamnya disenaraikan (letakkan cap jari penuh di sini untuk memastikan anda menggunakan kekunci yang betul, dan bukan satu lagi yang berlanggar pada pengecam pendek). The JugaTerimaUntuk tetapan tidak diperlukan tetapi memungkinkan untuk diproses .perubahan fail yang medan Pengedarannya mempunyai nilai yang disenaraikan di sini (tanpa ini, ia hanya akan menerima nama kod pengedaran dalam medan itu).

Dengan persediaan asas ini disediakan, anda boleh biarkan teguran hasilkan repositori kosong:


$ eksport reprepro

Mengeksport indeks...

$ cari .

.

./db

./db/version

./db/references.db

./db/contents.cache.db

./db/checksums.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/utama

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

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

$ eksport reprepro

Mengeksport indeks...

$ cari .

.

./db

./db/version

./db/references.db

./db/contents.cache.db

./db/checksums.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/utama

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

./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 mencipta meta-maklumat repositori dalam a mati sub-direktori. Ia juga memulakan pangkalan data dalaman dalam a db sub-direktori.

Kini tiba masanya untuk menambah pakej pertama anda. Mula-mula, salin fail yang dihasilkan oleh binaan offsec- lalai pakej (offsec-defaults_1.0.dsc, offsec-defaults_1.0.tar.xz,

offsec-defaults_1.0_all.deb dan offsec-defaults_1.0_amd64.changes) ke dalam /tmp

pada pelayan yang mengehos repositori pakej dan bertanya teguran untuk memasukkan pakej:


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

Mengeksport indeks...

$ cari kolam kolam renang/kolam utama/utama/o

pool/utama/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

Mengeksport indeks...

$ cari kolam kolam renang/kolam utama/utama/o

pool/utama/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, ia menambahkan fail ke dalam kumpulan pakejnya sendiri dalam a kolam sub-direktori.

. mati and kolam direktori ialah dua direktori yang anda perlu sediakan (secara umum) melalui HTTP untuk menyelesaikan persediaan repositori APT anda. Ia mengandungi semua fail yang ingin dimuat turun oleh APT.

Dengan mengandaikan bahawa anda ingin mengehos ini pada hos maya bernama pkgrepo.offsec.com, anda boleh mencipta fail konfigurasi Apache berikut, simpan ke /etc/apache2/sites-available/pkgrepo. offsec.com.conf, dan dayakannya dengan a2ensite pkgrepo.offsec.com):


ServerName pkgrepo.offsec.com ServerAdmin [e-mel 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

Indeks Pilihan FollowSymLinks MultiViews Memerlukan semua diberikan

AllowOverride All

ServerName pkgrepo.offsec.com ServerAdmin [e-mel 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

Indeks Pilihan FollowSymLinks MultiViews Memerlukan semua diberikan

AllowOverride All


Dan yang sepadan sources.list entri untuk menambah pada mesin yang memerlukan pakej dari repositori ini akan kelihatan seperti ini:


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


# Dayakan baris seterusnya jika anda mahu akses kepada pakej sumber juga

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

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


# Dayakan baris seterusnya jika anda mahu akses kepada pakej sumber juga

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


Pakej anda kini diterbitkan dan seharusnya tersedia kepada hos rangkaian anda.

Walaupun ini telah menjadi persediaan yang panjang, "pengangkatan berat" kini telah selesai. Anda boleh but mesin rangkaian anda melalui PXE, memasang versi Kali Linux tersuai tanpa interaksi terima kasih kepada preseed yang dihantar rangkaian, mengkonfigurasi SaltStack untuk mengurus konfigurasi anda (dan mengawal minions!), mencipta pakej tersuai bercabang, dan mengedarkan pakej tersebut melalui anda repositori umur pek sendiri. Ini menyediakan pengurusan terpusat dan kawalan peringkat perusahaan ke atas berbilang pemasangan Kali Linux. Ringkasnya, anda kini boleh dengan cepat menggunakan sistem Kali yang sangat selamat yang diprakonfigurasikan untuk keperluan khusus anda dan memastikannya disegerakkan terima kasih kepada pemasangan Kali (separa automatik) bagi semua kemas kini pakej.


Pengkomputeran Awan OS teratas di OnWorks: