Workstation online OnWorks Linux e Windows

Logo

Hosting online gratuito per workstation

<Precedenti | Contenuti | Succ.>

10.3.2. Creazione di pacchetti di configurazione‌


Ora che abbiamo toccato l'avvio PXE e discusso la gestione della configurazione con Salt-Stack e il fork dei pacchetti, è tempo di racchiudere questi processi in un esempio pratico ed estendere lo scenario creando un pacchetto di configurazione personalizzato per distribuire una configurazione personalizzata a più macchine in modo semiautomatico.

In questo esempio, creerai un pacchetto personalizzato che imposta e utilizza il tuo repository di pacchetti e la chiave di firma GnuPG, distribuisce una configurazione SaltStack, invia uno sfondo personalizzato e fornisce le impostazioni desktop predefinite in modo unificato a tutte le tue installazioni Kali .

Questo può sembrare un compito arduo (specialmente se dai un'occhiata alla Debian New Maintainer Guide1) ma fortunatamente per noi, un pacchetto di configurazione è principalmente un sofisticato archivio di file e trasformarlo in un pacchetto è piuttosto facile.



Esaminando un campione Se vuoi esaminare un pacchetto reale che è fondamentalmente un pacchetto di configurazione, con- CONFEZIONE siedi il kali-default pacchetto. Non è semplice come l'esempio in questa sezione ma ha tutte le caratteristiche rilevanti e utilizza anche alcune tecniche avanzate (come

dpkg-devia) per sostituire i file già forniti da altri pacchetti.

Esaminando un campione Se vuoi esaminare un pacchetto reale che è fondamentalmente un pacchetto di configurazione, con- CONFEZIONE siedi il kali-default pacchetto. Non è semplice come l'esempio in questa sezione ma ha tutte le caratteristiche rilevanti e utilizza anche alcune tecniche avanzate (come

dpkg-devia) per sostituire i file già forniti da altri pacchetti.


Immagine

1https://www.debian.org/doc/manuals/maint-guide/

I offsec-default il pacchetto conterrà alcuni file:


· XNUMX€ /etc/apt/sources.list.d/offsec.list: L' fonti.lista voce per APT, abilitando il repository di pacchetti interno dell'azienda


· XNUMX€ /etc/apt/trusted.gpg.d/offsec.gpg: la chiave GnuPG utilizzata per firmare il repository interno dei pacchetti dell'azienda


· XNUMX€ /etc/salt/minion.d/offsec.conf: un file di configurazione SaltStack per indicare dove trovare il Salt master


· XNUMX€ /usr/share/images/offsec/ background.png: una bella immagine di sfondo con il logo di Offensive Security


· XNUMX€ /usr/share/glib-2.0/schemas/90_offsec-defaults.gschema.override: un file che fornisce impostazioni predefinite alternative per il desktop GNOME


Per prima cosa, crea un offsec-default-1.0 directory e metti tutti i file in quella directory. allora corri dh_make --nativo (Dal dh-fare pacchetto) per aggiungere le istruzioni per la creazione di pacchetti Debian, che verranno archiviate in a debian sottocartella:


$ mkdir offsec-defaults-1.0; cd offsec-default-1.0

$ dh_make --nativo

Tipo di pacchetto: (singolo, indipendente, libreria, python) [s/i/l/p]? i

Indirizzo e-mail : [email protected] Licenza: gpl3

Nome del pacchetto: offsec-defaults Nome del manutentore: Raphaël Hertzog Versione: 1.0

Tipo di pacchetto: indipendente

Data : Gio, 16 Giu 2016 18:04:21 +0200

I dettagli sono corretti? [S/n/q] y

Attualmente non esiste un Makefile di primo livello. Potrebbe essere necessaria un'ulteriore messa a punto Fatto. Modifica ora i file nella sottodirectory debian/.

$ mkdir offsec-defaults-1.0; cd offsec-default-1.0

$ dh_make --nativo

Tipo di pacchetto: (singolo, indipendente, libreria, python) [s/i/l/p]? i

Indirizzo e-mail : [email protected] Licenza: gpl3

Nome del pacchetto: offsec-defaults Nome del manutentore: Raphaël Hertzog Versione: 1.0

Tipo di pacchetto: indipendente

Data : Gio, 16 Giu 2016 18:04:21 +0200

I dettagli sono corretti? [S/n/q] y

Attualmente non esiste un Makefile di primo livello. Potrebbe essere necessaria un'ulteriore messa a punto Fatto. Modifica ora i file nella sottodirectory debian/.


Innanzitutto, viene richiesto un tipo di pacchetto. Nell'esempio, abbiamo selezionato indip, che indica che questo pacchetto sorgente genererà un singolo pacchetto binario che può essere condiviso tra tutte le architetture (Architettura: tutti). singolo funge da controparte e produce un singolo pacchetto binario che dipende dall'architettura di destinazione (Architettura: qualsiasi). In questo caso, indip è più rilevante, poiché il pacchetto contiene solo file di testo e nessun programma binario, in modo che possa essere utilizzato in modo simile su computer di tutte le architetture. Il biblioteca type è utile per le librerie condivise, poiché devono seguire rigide regole di confezionamento. In modo simile, python dovrebbe essere limitato ai moduli Python.


Nome del manutentore e La maggior parte dei programmi coinvolti nella manutenzione dei pacchetti cercherà il tuo nome e

Email indirizzo e-mail in DEBNOME COMPLETO ed DEBEMAIL or E-MAIL variabili ambientali. Definirli, una volta per tutte, impedisce di riscriverli più volte. Se la tua shell abituale è Bash, è sufficiente aggiungere le seguenti due righe nel tuo ~ / .bashrc file. Per esempio:

esporta EMAIL="[email protected]"

export DEBFULLNAME="Raphael Hertzog"


I dh_make comando creato a debian sottodirectory contenente molti file. Alcuni sono richiesti, in particolare norme, di controllo, changeloge copyright. File con il .ex estensione sono file di esempio che possono essere utilizzati modificandoli e rimuovendo l'estensione. Quando non sono necessari, si consiglia di rimuoverli. Il compat il file deve essere conservato, in quanto necessario per il corretto funzionamento del debhelper suite di programmi (tutti iniziano con il dh_ prefisso) utilizzato nelle varie fasi del processo di creazione del pacchetto.

I copyright Il file deve contenere informazioni sugli autori dei documenti inclusi nel pacchetto e la relativa licenza. Se la licenza predefinita selezionata da dh_make non ti soddisfa, devi modificare questo file. Ecco la versione modificata del file di copyright:


Formato: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Nome-upstream: offsec-defaults


File: *

Copyright: 2016 Licenza di sicurezza offensiva: GPL-3.0+


Licenza: GPL-3.0+

Questo programma è un software gratuito: puoi ridistribuirlo e / o modificarlo secondo i termini della GNU General Public License come pubblicato dalla Free Software Foundation, sia la versione 3 della Licenza, sia (a tua scelta) qualsiasi versione successiva.

.

Questo pacchetto è distribuito nella speranza che possa essere utile, ma SENZA ALCUNA GARANZIA; senza nemmeno la garanzia implicita di COMMERCIABILITÀ o IDONEITÀ PER UN PARTICOLARE SCOPO. Vedi il

Licenza GNU General Public per maggiori dettagli.

.

Dovresti aver ricevuto una copia della GNU General Public License insieme a questo programma. In caso contrario, vedere .

.

Sui sistemi Debian, il testo completo del GNU General

La versione 3 della licenza pubblica può essere trovata in "/usr/share/common-licenses/GPL-3".

Formato: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Nome-upstream: offsec-defaults


File: *

Copyright: 2016 Licenza di sicurezza offensiva: GPL-3.0+


Licenza: GPL-3.0+

Questo programma è un software gratuito: puoi ridistribuirlo e / o modificarlo secondo i termini della GNU General Public License come pubblicato dalla Free Software Foundation, sia la versione 3 della Licenza, sia (a tua scelta) qualsiasi versione successiva.

.

Questo pacchetto è distribuito nella speranza che possa essere utile, ma SENZA ALCUNA GARANZIA; senza nemmeno la garanzia implicita di COMMERCIABILITÀ o IDONEITÀ PER UN PARTICOLARE SCOPO. Vedi il

Licenza GNU General Public per maggiori dettagli.

.

Dovresti aver ricevuto una copia della GNU General Public License insieme a questo programma. In caso contrario, vedere .

.

Sui sistemi Debian, il testo completo del GNU General

La versione 3 della licenza pubblica può essere trovata in "/usr/share/common-licenses/GPL-3".

Il predefinito changelog file è generalmente appropriato; sostituire la “versione iniziale” con una spiegazione più prolissa dovrebbe essere sufficiente:


offsec-default (1.0) unstable; urgenza=media


* Aggiungi il file di configurazione di Salt Minion.

* Aggiungi una voce sources.list di APT e una chiave GPG fidata di APT.

* Sostituisci lo schema gsettings che definisce l'immagine di sfondo.


--Raphaël Hertzog[email protected]> Gio 16 giugno 2016 18:04:21 +0200

offsec-default (1.0) unstable; urgenza=media


* Aggiungi il file di configurazione di Salt Minion.

* Aggiungi una voce sources.list di APT e una chiave GPG fidata di APT.

* Sostituisci lo schema gsettings che definisce l'immagine di sfondo.


--Raphaël Hertzog[email protected]> Gio 16 giugno 2016 18:04:21 +0200


Nell'esempio, apporteremo modifiche al di controllo file. Cambieremo il Sezione campo misc e rimuovere il file Homepage, Vcs-Gite Vcs-Browser campi. Infine, compileremo il Descrizione campo:


Fonte: offsec-defaults Sezione: misc

Priorità: facoltativa

Manutentore: Raphaël Hertzog[email protected]> Dipende dalla build: debhelper (>= 9)

Standard-Versione: 3.9.8


Pacchetto: offsec-defaults Architettura: all Depends: ${misc:Depends}

Descrizione: Impostazioni predefinite per la sicurezza offensiva

Questo pacchetto contiene più file per configurare i computer di proprietà di Offensive Security.

.

In particolare modifica:

- Configurazione di APT

- configurazione del servitore di sale

- le impostazioni predefinite del desktop

Fonte: offsec-defaults Sezione: misc

Priorità: facoltativa

Manutentore: Raphaël Hertzog[email protected]> Dipende dalla build: debhelper (>= 9)

Standard-Versione: 3.9.8


Pacchetto: offsec-defaults Architettura: all Depends: ${misc:Depends}

Descrizione: Impostazioni predefinite per la sicurezza offensiva

Questo pacchetto contiene più file per configurare i computer di proprietà di Offensive Security.

.

In particolare modifica:

- Configurazione di APT

- configurazione del servitore di sale

- le impostazioni predefinite del desktop


I norme Il file di solito contiene un insieme di regole utilizzate per configurare, compilare e installare il software in una sottodirectory dedicata (chiamata dopo il pacchetto binario generato). Il contenuto di questa sottodirectory viene quindi archiviato all'interno del pacchetto Debian come se fosse la radice del filesystem. In questo caso, i file verranno installati nel debian/offsec-default/ sottodirectory. Ad esempio, per finire con l'installazione di un pacchetto /etc/apt/sources.list.d/offsec.list, installa il file in debian/offsec-defaults/etc/apt/sources.list.d/offsec.list. norme il file è usato come a Makefile, con alcuni obiettivi standard (tra cui cavedano ed binario, usati rispettivamente per pulire la directory dei sorgenti e generare il pacchetto binario).


Che cosa è un Makefile file? Potresti aver notato il messaggio relativo ai dispersi Makefile alla fine di dh_make uscita e la menzione della sua somiglianza con il norme file. UN Makefile è un file di script utilizzato da make programma; descrive le regole su come costruire un insieme di file l'uno dall'altro in un albero di dipendenze. Ad esempio, un programma può essere creato da un insieme di file sorgente. Il Makefile file descrive queste regole nel seguente formato:

destinazione: sorgente1 sorgente2 ... comando1

command2


L'interpretazione di tale norma è la seguente: se uno dei fonte* file è più recente del bersaglio file, quindi il target deve essere generato, usando command1 ed command2.

Nota che le righe di comando devono iniziare con un carattere di tabulazione; si noti inoltre che quando una riga di comando inizia con un trattino (-), il fallimento del comando non interrompe l'intero processo.


Sebbene questo file sia il cuore del processo, contiene solo il minimo indispensabile per eseguire una serie standard di comandi forniti da debhelper attrezzo. È il caso dei file generati da dh_make. Per installare la maggior parte dei tuoi file, ti consigliamo di configurare il comportamento del dh_install comando creando quanto segue debian/offsec-default.install file:


apt/offsec.list etc/apt/sources.list.d/ apt/offsec.gpg etc/apt/trusted.gpg.d/ salt/offsec.conf etc/salt/minion.d/ images/background.png usr/ condividi/immagini/offsec/

apt/offsec.list etc/apt/sources.list.d/ apt/offsec.gpg etc/apt/trusted.gpg.d/ salt/offsec.conf etc/salt/minion.d/ images/background.png usr/ condividi/immagini/offsec/


Puoi anche usarlo per installare il file di override gsettings ma debhelper fornisce uno strumento dedicato per questo (dh_installgsettings) quindi puoi fare affidamento su di esso. Per prima cosa, inserisci le tue impostazioni debian/offsec-defaults.gsettings-override:


[org.gnome.desktop.background] picture-options='zoom'

picture-uri='file:///usr/share/images/offsec/background.png'

[org.gnome.desktop.background] picture-options='zoom'

picture-uri='file:///usr/share/images/offsec/background.png'


Quindi, sovrascrivi dh_installgsettings chiamare debian/regole per aumentare la priorità al livello previsto per un override dell'organizzazione (che è 90 secondo la pagina di manuale):


#!/usr/bin/make -f


%:

ciao $@


override_dh_installgsettings: dh_installgsettings --priority=90

#!/usr/bin/make -f


%:

ciao $@


override_dh_installgsettings: dh_installgsettings --priority=90

Immagine

A questo punto il pacchetto sorgente è pronto. Non resta che generare il pacchetto binario con lo stesso metodo utilizzato in precedenza per ricostruire i pacchetti: eseguire il comando dpkg-buildpackage -us

-uc comando dalla directory offsec-defaults-1.0:


$ dpkg-buildpackage -us -uc

dpkg-buildpackage: info: pacchetto sorgente offsec-defaults dpkg-buildpackage: info: versione sorgente 1.0

dpkg-buildpackage: info: distribuzione dei sorgenti unstable

dpkg-buildpackage: informazioni: fonte modificata da Raphaël Hertzog[email protected]> dpkg-buildpackage: informazioni: architettura host amd64

dpkg-source --before-build offsec-defaults-1.0 fakeroot debian/rules clean

dh pulito

dh_testdir dh_auto_clean dh_clean

dpkg-source -b offsec-default-1.0

dpkg-source: info: utilizzo del formato sorgente '3.0 (nativo)'

dpkg-source: info: creazione di offsec-defaults in offsec-defaults_1.0.tar.xz dpkg-source: info: creazione di offsec-defaults in offsec-defaults_1.0.dsc

debian/rules build dh build

dh_testdir dh_update_autotools_config dh_auto_configure dh_auto_build

dh_auto_test

fakeroot debian/rules binario dh binario

dh_testroot dh_prep dh_auto_install dh_install dh_installdocs

dh_installchangelogs

debian/rules override_dh_installgsettings

make[1]: inserimento della directory '/home/rhertzog/kali/kali-book/samples/offsec-defaults-1.0' dh_installgsettings --priority=90

make[1]: uscita dalla directory '/home/rhertzog/kali/kali-book/samples/offsec-defaults-1.0' dh_perl

dh_link dh_strip_nodeterminism dh_compress

dh_fixperms dh_installdeb dh_gencontrol dh_md5sums


dh_builddeb

dpkg-deb: creazione del pacchetto 'offsec-defaults' in '../offsec-defaults_1.0_all.deb'. dpkg-genchanges >../offsec-defaults_1.0_amd64.changes

dpkg-genchanges: info: incluso il codice sorgente completo nel caricamento dpkg-source --after-build offsec-defaults-1.0

dpkg-buildpackage: info: caricamento completo; Pacchetto nativo Debian (il codice sorgente completo è incluso)

dh_builddeb

dpkg-deb: creazione del pacchetto 'offsec-defaults' in '../offsec-defaults_1.0_all.deb'. dpkg-genchanges >../offsec-defaults_1.0_amd64.changes

dpkg-genchanges: info: incluso il codice sorgente completo nel caricamento dpkg-source --after-build offsec-defaults-1.0

dpkg-buildpackage: info: caricamento completo; Pacchetto nativo Debian (il codice sorgente completo è incluso)


Il miglior sistema operativo cloud computing su OnWorks: