10.3.2. Crearea pachetelor de configurare
Acum că am atins despre pornirea PXE și am discutat despre gestionarea configurației cu Salt-Stack, precum și despre forkingul pachetelor, este timpul să încheiem aceste procese într-un exemplu practic și să extindem scenariul prin crearea unui pachet de configurare personalizat pentru a implementa o configurație personalizată în mai multe mașini semi-automat.
În acest exemplu, veți crea un pachet personalizat care configurează și utilizează propriul depozit de pachete și cheia de semnare GnuPG, distribuie o configurație SaltStack, introduce un fundal personalizat și oferă setări implicite pentru desktop într-un mod unificat pentru toate instalările Kali. .
Aceasta poate părea o sarcină descurajantă (mai ales dacă aruncați o privire prin Ghidul Debian New Maintainer1), dar, din fericire pentru noi, un pachet de configurare este în principal o arhivă de fișiere sofisticată și transformarea lui într-un pachet este destul de ușoară.
Privind un eșantion Dacă doriți să căutați un pachet real care este practic un pachet de configurare, con- Pachet ia în considerare kali-implicit pachet. Nu este la fel de simplu ca eșantionul din această secțiune, dar are toate caracteristicile relevante și chiar utilizează câteva tehnici avansate (cum ar fi
dpkg-deturnare) pentru a înlocui fișierele deja furnizate de alte pachete.
Privind un eșantion Dacă doriți să căutați un pachet real care este practic un pachet de configurare, con- Pachet ia în considerare kali-implicit pachet. Nu este la fel de simplu ca eșantionul din această secțiune, dar are toate caracteristicile relevante și chiar utilizează câteva tehnici avansate (cum ar fi
dpkg-deturnare) pentru a înlocui fișierele deja furnizate de alte pachete.
1https://www.debian.org/doc/manuals/maint-guide/
offsec-implicite pachetul va conține câteva fișiere:
• /etc/apt/sources.list.d/offsec.list: surse.list intrare pentru APT, activând depozitul intern de pachete al companiei
• /etc/apt/trusted.gpg.d/offsec.gpg: cheia GnuPG folosită pentru a semna depozitul intern de pachete al companiei
• /etc/salt/minion.d/offsec.conf: un fișier de configurare SaltStack pentru a indica unde să găsiți masterul Salt
• /usr/share/images/offsec/background.png: o imagine frumoasă de fundal cu sigla Ofensive Security
• /usr/share/glib-2.0/schemas/90_offsec-defaults.gschema.override: un fișier care oferă setări implicite alternative pentru desktopul GNOME
Mai întâi, creați un offsec-defaults-1.0 director și puneți toate fișierele în acel director. Apoi fugi dh_make --nativ (de la dh-make pachet) pentru a adăuga instrucțiuni de ambalare Debian, care vor fi stocate într-un Debian subdirector:
$ mkdir offsec-defaults-1.0; cd offsec-defaults-1.0
$ dh_make --nativ
Tip pachet: (single, indep, library, python) [s/i/l/p]? i
Adresa de e-mail : [e-mail protejat] Licență: gpl3
Nume pachet: offsec-defaults Nume întreținere: Raphaël Hertzog Versiunea: 1.0
Tip pachet: indep
Data : joi, 16 iunie 2016 18:04:21 +0200
Sunt corecte detaliile? [D/n/q] y
În prezent, nu există Makefile de nivel superior. Acest lucru poate necesita o reglare suplimentară Terminat. Vă rugăm să editați fișierele din subdirectorul debian/ acum.
$ mkdir offsec-defaults-1.0; cd offsec-defaults-1.0
$ dh_make --nativ
Tip pachet: (single, indep, library, python) [s/i/l/p]? i
Adresa de e-mail : [e-mail protejat] Licență: gpl3
Nume pachet: offsec-defaults Nume întreținere: Raphaël Hertzog Versiunea: 1.0
Tip pachet: indep
Data : joi, 16 iunie 2016 18:04:21 +0200
Sunt corecte detaliile? [D/n/q] y
În prezent, nu există Makefile de nivel superior. Acest lucru poate necesita o reglare suplimentară Terminat. Vă rugăm să editați fișierele din subdirectorul debian/ acum.
În primul rând, vi se solicită un tip de pachet. În exemplu, am selectat indep, ceea ce indică faptul că acest pachet sursă va genera un singur pachet binar care poate fi partajat în toate arhitecturile (Arhitectură: toate). singur acționează ca o contrapartidă și produce un singur pachet binar care depinde de arhitectura țintă (Arhitectură: orice). În acest caz, indep este mai relevant, deoarece pachetul conține doar fișiere text și nu există programe binare, astfel încât să poată fi utilizat în mod similar pe computerele de toate arhitecturile. The bibliotecă type este util pentru bibliotecile partajate, deoarece acestea trebuie să respecte reguli stricte de ambalare. Într-un mod similar, piton ar trebui să fie limitat la modulele Python.
Numele întreținătorului și Majoritatea programelor implicate în întreținerea pachetelor vă vor căuta numele și Adresa de email adresa de e-mail în DEBFULLNAME și DEBEMAIL or E-MAIL variabile de mediu. Definirea lor, o dată pentru totdeauna, împiedică re-tastarea lor de mai multe ori. Dacă shell-ul dvs. obișnuit este Bash, este o chestiune simplă de a adăuga următoarele două linii în dvs ~ / .bashrc fişier. De exemplu: | |
export EMAIL="[e-mail protejat]Matei 22:21 export DEBFULLNAME="Raphael Hertzog" | |
dh_make comanda creată a Debian subdirectorul care conține multe fișiere. Unele sunt necesare, în special norme, Control, changelog, și drepturi de autor. Fișierele cu .fost extensiile sunt exemple de fișiere care pot fi utilizate modificându-le și eliminând extensia. Când nu sunt necesare, vă recomandăm să le îndepărtați. The compa ar trebui păstrat, deoarece este necesar pentru funcționarea corectă a fișierului debhelper suită de programe (toate începând cu dh_ prefix) utilizat în diferite etape ale procesului de construire a pachetului.
drepturi de autor fișierul trebuie să conțină informații despre autorii documentelor incluse în pachet și licența aferentă. Dacă licența implicită selectată de dh_make nu vă convine, atunci trebuie să editați acest fișier. Iată versiunea modificată a fișierului cu drepturi de autor:
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: offsec-defaults
Fișiere: *
Copyright: 2016 Ofensive Security License: GPL-3.0+
Licență: GPL-3.0+
Acest program este software gratuit: îl puteți redistribui și / sau modifica în condițiile Licenței publice generale GNU, publicate de Free Software Foundation, fie versiunea 3 a Licenței, fie (la opțiunea dvs.) orice altă versiune ulterioară.
.
Acest pachet este distribuit in speranta ca va fi de folos, dar FARA NICIO GARANTIE; fără măcar garanția implicită de VANTABILITATE sau ADECUARE PENTRU UN ANUMIT SCOP. Vezi
Licență publică generală GNU pentru mai multe detalii.
.
Ar fi trebuit să primiți o copie a licenței publice generale GNU împreună cu acest program. Dacă nu, vezi .
.
Pe sistemele Debian, textul complet al GNU General
Licența publică versiunea 3 poate fi găsită în ”/usr/share/common-licenses/GPL-3”.
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: offsec-defaults
Fișiere: *
Copyright: 2016 Ofensive Security License: GPL-3.0+
Licență: GPL-3.0+
Acest program este software gratuit: îl puteți redistribui și / sau modifica în condițiile Licenței publice generale GNU, publicate de Free Software Foundation, fie versiunea 3 a Licenței, fie (la opțiunea dvs.) orice altă versiune ulterioară.
.
Acest pachet este distribuit in speranta ca va fi de folos, dar FARA NICIO GARANTIE; fără măcar garanția implicită de VANTABILITATE sau ADECUARE PENTRU UN ANUMIT SCOP. Vezi
Licență publică generală GNU pentru mai multe detalii.
.
Ar fi trebuit să primiți o copie a licenței publice generale GNU împreună cu acest program. Dacă nu, vezi .
.
Pe sistemele Debian, textul complet al GNU General
Licența publică versiunea 3 poate fi găsită în ”/usr/share/common-licenses/GPL-3”.
Valoarea implicită changelog dosarul este în general adecvat; înlocuirea „Versiunii inițiale” cu o explicație mai detaliată ar trebui să fie suficientă:
offsec-defaults (1.0) instabil; urgență=medie
* Adăugați fișierul de configurare al lui salt minion.
* Adăugați o intrare source.list a unui APT și o cheie GPG de încredere a unui APT.
* Ignorați schema gsettings care definește imaginea de fundal.
-- Raphaël Hertzog[e-mail protejat]> Joi, 16 Iun 2016 18:04:21 +0200
offsec-defaults (1.0) instabil; urgență=medie
* Adăugați fișierul de configurare al lui salt minion.
* Adăugați o intrare source.list a unui APT și o cheie GPG de încredere a unui APT.
* Ignorați schema gsettings care definește imaginea de fundal.
-- Raphaël Hertzog[e-mail protejat]> Joi, 16 Iun 2016 18:04:21 +0200
În exemplu, vom face modificări la Control fişier. Vom schimba Secțiune domeniu la misc și scoateți Pagina principala, Vcs-Git, și Vcs-Browser câmpuri. În cele din urmă, vom completa Descriere camp:
Sursa: offsec-defaults Sectiunea: misc
Prioritate: opțional
Întreținere: Raphaël Hertzog[e-mail protejat]> Build-Depends: debhelper (>= 9)
Standarde-Versiune: 3.9.8
Pachet: offsec-defaults Arhitectură: toate Depinde: ${misc:Depends}
Descriere: setări implicite pentru securitatea ofensivă
Acest pachet conține mai multe fișiere pentru configurarea computerelor deținute de Offensive Security.
.
Se modifică în special:
- Configurația APT
- configurația lui sare-minion
- setările implicite pentru desktop
Sursa: offsec-defaults Sectiunea: misc
Prioritate: opțional
Întreținere: Raphaël Hertzog[e-mail protejat]> Build-Depends: debhelper (>= 9)
Standarde-Versiune: 3.9.8
Pachet: offsec-defaults Arhitectură: toate Depinde: ${misc:Depends}
Descriere: setări implicite pentru securitatea ofensivă
Acest pachet conține mai multe fișiere pentru configurarea computerelor deținute de Offensive Security.
.
Se modifică în special:
- Configurația APT
- configurația lui sare-minion
- setările implicite pentru desktop
norme fișierul conține de obicei un set de reguli utilizate pentru a configura, construi și instala software-ul într-un subdirector dedicat (numit după pachetul binar generat). Conținutul acestui subdirector este apoi arhivat în pachetul Debian ca și cum ar fi rădăcina sistemului de fișiere. În acest caz, fișierele vor fi instalate în debian/offsec-defaults/ subdirectorul. De exemplu, pentru a ajunge la instalarea unui pachet /etc/apt/sources.list.d/offsec.list, instalați fișierul în debian/offsec-defaults/etc/apt/sources.list.d/offsec.list. norme fișierul este folosit ca un makefile, cu câteva obiective standard (inclusiv curat și binar, folosit, respectiv, pentru a curăța directorul sursă și a genera pachetul binar).
Ce este a makefile fişier? Este posibil să fi observat mesajul cu privire la cei dispăruți makefile la sfârșitul dh_make ieșire și menționarea asemănării sale cu norme fişier. A makefile este un fișier script folosit de face program; descrie reguli pentru cum să construiți un set de fișiere unul de celălalt într-un arbore de dependențe. De exemplu, un program poate fi construit dintr-un set de fișiere sursă. The makefile fișierul descrie aceste reguli în următorul format: | |
țintă: sursă1 sursă2 ... comandă1 command2 | |
Interpretarea unei astfel de reguli este următoarea: dacă unul dintre sursă* fișierele este mai recentă decât fișierele ţintă fișier, atunci ținta trebuie generată, folosind command1 și command2. Rețineți că liniile de comandă trebuie să înceapă cu un caracter tabulator; de asemenea, rețineți că atunci când o linie de comandă începe cu un caracter liniuță (-), eșecul comenzii nu întrerupe întregul proces. |
Deși acest fișier este inima procesului, el conține doar minimul necesar pentru rularea unui set standard de comenzi furnizate de debhelper instrument. Acesta este cazul fișierelor generate de dh_make. Pentru a instala majoritatea fișierelor, vă recomandăm să configurați comportamentul dh_install comandă creând următoarele debian/offsec-defaults.install fișier:
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/ share/imagini/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/ share/imagini/offsec/
De asemenea, puteți utiliza acest lucru pentru a instala fișierul de înlocuire gsettings, dar debhelper oferă un instrument dedicat pentru aceasta (dh_installgsettings) astfel încât să vă puteți baza pe el. Mai întâi, introduceți setările 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'
Apoi, anulați dh_installgsettings sună debian/rules pentru a crește prioritatea la nivelul așteptat pentru o modificare a organizației (care este 90 conform paginii de manual):
#!/usr/bin/make -f
%:
dh $@
override_dh_installgsettings: dh_installgsettings --priority=90
#!/usr/bin/make -f
%:
dh $@
override_dh_installgsettings: dh_installgsettings --priority=90
În acest moment, pachetul sursă este gata. Tot ce rămâne de făcut este să generați pachetul binar cu aceeași metodă folosită anterior pentru reconstruirea pachetelor: rulați dpkg-buildpackage -us
-uc comandă din directorul offsec-defaults-1.0:
$ dpkg-buildpackage -us -uc
dpkg-buildpackage: informații: pachet sursă offsec-defaults dpkg-buildpackage: informații: versiunea sursă 1.0
dpkg-buildpackage: info: distribuție sursă instabilă
dpkg-buildpackage: info: sursa schimbată de Raphaël Hertzog <[e-mail protejat]> dpkg-buildpackage: informații: arhitectura gazdă amd64
dpkg-source --before-build offsec-defaults-1.0 fakeroot debian/rules clean
dh curat
dh_testdir dh_auto_clean dh_clean
dpkg-source -b offsec-defaults-1.0
dpkg-source: info: folosind formatul sursă „3.0 (nativ)”
dpkg-source: info: construirea offsec-defaults în offsec-defaults_1.0.tar.xz dpkg-source: info: construirea offsec-defaults în 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 binary dh binary
dh_testroot dh_prep dh_auto_install dh_install dh_installdocs
dh_installchangelogs
debian/rules override_dh_installgsettings
make[1]: se introduce în directorul „/home/rhertzog/kali/kali-book/samples/offsec-defaults-1.0” dh_installgsettings --priority=90
make[1]: Ieșim din directorul „/home/rhertzog/kali/kali-book/samples/offsec-defaults-1.0” dh_perl
dh_link dh_strip_nondeterminism dh_compress
dh_fixperms dh_installdeb dh_gencontrol dh_md5sums
dh_builddeb
dpkg-deb: construirea pachetului „offsec-defaults” în „../offsec-defaults_1.0_all.deb”. dpkg-genchanges >../offsec-defaults_1.0_amd64.changes
dpkg-genchanges: informații: inclusiv codul sursă complet în încărcare dpkg-source --after-build offsec-defaults-1.0
dpkg-buildpackage: informații: încărcare completă; Pachetul nativ Debian (sursa completă este inclusă)
dh_builddeb
dpkg-deb: construirea pachetului „offsec-defaults” în „../offsec-defaults_1.0_all.deb”. dpkg-genchanges >../offsec-defaults_1.0_amd64.changes
dpkg-genchanges: informații: inclusiv codul sursă complet în încărcare dpkg-source --after-build offsec-defaults-1.0
dpkg-buildpackage: informații: încărcare completă; Pachetul nativ Debian (sursa completă este inclusă)