<Poprzedni | Spis treści | Następne>
10.3.2. Tworzenie pakietów konfiguracyjnych
Teraz, gdy poruszyliśmy temat uruchamiania PXE i omówiliśmy zarządzanie konfiguracją za pomocą Salt-Stack, a także rozwidlanie pakietów, nadszedł czas, aby podsumować te procesy w praktycznym przykładzie i rozszerzyć scenariusz, tworząc niestandardowy pakiet konfiguracyjny, aby wdrożyć niestandardową konfigurację w wiele maszyn półautomatycznie.
W tym przykładzie utworzysz niestandardowy pakiet, który konfiguruje i wykorzystuje twoje własne repozytorium pakietów i klucz podpisywania GnuPG, dystrybuuje konfigurację SaltStack, przesyła niestandardowe tło i zapewnia domyślne ustawienia pulpitu w ujednolicony sposób wszystkim twoim instalacjom Kali. .
Może się to wydawać zniechęcającym zadaniem (zwłaszcza jeśli przejrzysz Przewodnik dla nowych opiekunów Debiana1), ale na szczęście dla nas pakiet konfiguracyjny to głównie skomplikowane archiwum plików i przekształcenie go w pakiet jest dość łatwe.
Patrząc na próbkę Jeśli chcesz zajrzeć do prawdziwego pakietu, który jest w zasadzie pakietem konfiguracyjnym, con- Pakiet stań obok kali-domyślne pakiet. Nie jest tak prosty jak przykład w tej sekcji, ale ma wszystkie istotne cechy, a nawet wykorzystuje niektóre zaawansowane techniki (takie jak
dpkg-przekierowanie), aby zastąpić pliki już dostarczone przez inne pakiety.
Patrząc na próbkę Jeśli chcesz zajrzeć do prawdziwego pakietu, który jest w zasadzie pakietem konfiguracyjnym, con- Pakiet stań obok kali-domyślne pakiet. Nie jest tak prosty jak przykład w tej sekcji, ale ma wszystkie istotne cechy, a nawet wykorzystuje niektóre zaawansowane techniki (takie jak
dpkg-przekierowanie), aby zastąpić pliki już dostarczone przez inne pakiety.
1 https://www.debian.org/doc/manuals/maint-guide/
Połączenia ustawienia domyślne offsec pakiet będzie zawierał kilka plików:
• /etc/apt/sources.list.d/offsec.list: sources.list wpis dla APT, włączający wewnętrzne repozytorium pakietów firmy
• /etc/apt/trusted.gpg.d/offsec.gpg: klucz GnuPG używany do podpisywania wewnętrznego repozytorium pakietów firmy
• /etc/salt/minion.d/offsec.conf: plik konfiguracyjny SaltStack, aby wskazać, gdzie znaleźć Salt master
• /usr/share/images/offsec/background.png: ładny obraz tła z logo Offensive Security
• /usr/share/glib-2.0/schemas/90_offsec-defaults.gschema.override: plik z alternatywnymi ustawieniami domyślnymi pulpitu GNOME
Najpierw utwórz offsec-defaults-1.0 katalogu i umieść wszystkie pliki w tym katalogu. Następnie uruchomić dh_make – natywny (Przy dh-make pakiet), aby dodać instrukcje pakowania Debiana, które będą przechowywane w debian podkatalog:
$ mkdir offsec-defaults-1.0; cd offsec-defaults-1.0
$ dh_make – natywny
Rodzaj pakietu: (single, indep, library, python) [s/i/l/p]? i
Adres e-mail: [email chroniony] Licencja: gpl3
Nazwa pakietu: offsec-defaults Nazwa opiekuna: Raphaël Hertzog Wersja: 1.0
Rodzaj opakowania : indep
Data : Czw, 16 Cze 2016 18:04:21 +0200
Czy dane są prawidłowe? [T/n/kw] y
Obecnie nie istnieje Makefile najwyższego poziomu. Może to wymagać dodatkowego dostrojenia Gotowe. Proszę edytować teraz pliki w podkatalogu debian/.
$ mkdir offsec-defaults-1.0; cd offsec-defaults-1.0
$ dh_make – natywny
Rodzaj pakietu: (single, indep, library, python) [s/i/l/p]? i
Adres e-mail: [email chroniony] Licencja: gpl3
Nazwa pakietu: offsec-defaults Nazwa opiekuna: Raphaël Hertzog Wersja: 1.0
Rodzaj opakowania : indep
Data : Czw, 16 Cze 2016 18:04:21 +0200
Czy dane są prawidłowe? [T/n/kw] y
Obecnie nie istnieje Makefile najwyższego poziomu. Może to wymagać dodatkowego dostrojenia Gotowe. Proszę edytować teraz pliki w podkatalogu debian/.
Najpierw zostaniesz poproszony o podanie typu pakietu. W przykładzie wybraliśmy niezależna, co oznacza, że ten pakiet źródłowy wygeneruje pojedynczy pakiet binarny, który może być współużytkowany przez wszystkie architektury (Architektura: wszystkie). pojedynczy działa jako odpowiednik i tworzy pojedynczy pakiet binarny, który jest zależny od architektury docelowej (Architektura: dowolna). W tym przypadku, niezależna jest bardziej istotne, ponieważ pakiet zawiera tylko pliki tekstowe i nie zawiera programów binarnych, dzięki czemu może być używany podobnie na komputerach o wszystkich architekturach. ten biblioteka type jest przydatne dla bibliotek współdzielonych, ponieważ muszą one przestrzegać ścisłych reguł pakowania. W podobny sposób, pyton powinien być ograniczony do modułów Pythona.
Imię i nazwisko opiekuna oraz Większość programów związanych z obsługą pakietów będzie szukać Twojego imienia i Adres e-mail adres e-mail w DEBFULLNAME i DEBEMAIL or E-MAIL Zmienne środowiska. Zdefiniowanie ich raz na zawsze zapobiega ich wielokrotnemu wpisywaniu. Jeśli twoją zwykłą powłoką jest Bash, wystarczy dodać następujące dwie linie w swoim ~ / .bashrc plik. Na przykład: | |
eksportuj E-MAIL=”[email chroniony]" eksportuj DEBFULLNAME=”Raphael Hertzog” | |
Połączenia dh_make polecenie utworzone debian podkatalog zawierający wiele plików. Niektóre są wymagane, w szczególności reguły, kontrola, changelog, prawo autorskie. Pliki z .były rozszerzenie to przykładowe pliki, których można używać poprzez ich modyfikację i usunięcie rozszerzenia. Gdy nie są potrzebne, zalecamy ich usunięcie. ten kompatybil plik powinien być przechowywany, ponieważ jest on niezbędny do prawidłowego funkcjonowania debhelper zestaw programów (wszystkie zaczynające się od dh_ prefiks) używany na różnych etapach procesu budowania pakietu.
Połączenia prawo autorskie plik musi zawierać informacje o autorach dokumentów wchodzących w skład pakietu oraz związanej z nimi licencji. Jeśli domyślna licencja wybrana przez dh_make Ci nie odpowiada, musisz edytować ten plik. Oto zmodyfikowana wersja pliku praw autorskich:
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Nazwa-upstream: offsec-defaults
Pliki: *
Prawa autorskie: 2016 ofensywna licencja bezpieczeństwa: GPL-3.0+
Licencja: GPL-3.0+
Ten program jest wolnym oprogramowaniem: możesz go redystrybuować i/lub modyfikować zgodnie z warunkami Powszechnej Licencji Publicznej GNU opublikowanej przez Free Software Foundation, w wersji 3 tej Licencji lub (według Twojego wyboru) dowolnej późniejszej wersji.
.
Ten pakiet jest rozpowszechniany w nadziei, że będzie przydatny, ale BEZ ŻADNEJ GWARANCJI; bez dorozumianej gwarancji PRZYDATNOŚCI HANDLOWEJ lub PRZYDATNOŚCI DO OKREŚLONEGO CELU. Zobacz
Powszechna Licencja Publiczna GNU po więcej szczegółów.
.
Wraz z tym programem powinieneś otrzymać kopię Powszechnej Licencji Publicznej GNU. Jeśli nie, zobacz .
.
W systemach Debian pełny tekst GNU General
Licencję publiczną w wersji 3 można znaleźć w „/usr/share/common-licenses/GPL-3”.
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Nazwa-upstream: offsec-defaults
Pliki: *
Prawa autorskie: 2016 ofensywna licencja bezpieczeństwa: GPL-3.0+
Licencja: GPL-3.0+
Ten program jest wolnym oprogramowaniem: możesz go redystrybuować i/lub modyfikować zgodnie z warunkami Powszechnej Licencji Publicznej GNU opublikowanej przez Free Software Foundation, w wersji 3 tej Licencji lub (według Twojego wyboru) dowolnej późniejszej wersji.
.
Ten pakiet jest rozpowszechniany w nadziei, że będzie przydatny, ale BEZ ŻADNEJ GWARANCJI; bez dorozumianej gwarancji PRZYDATNOŚCI HANDLOWEJ lub PRZYDATNOŚCI DO OKREŚLONEGO CELU. Zobacz
Powszechna Licencja Publiczna GNU po więcej szczegółów.
.
Wraz z tym programem powinieneś otrzymać kopię Powszechnej Licencji Publicznej GNU. Jeśli nie, zobacz .
.
W systemach Debian pełny tekst GNU General
Licencję publiczną w wersji 3 można znaleźć w „/usr/share/common-licenses/GPL-3”.
Domyślny changelog plik jest ogólnie odpowiedni; zastąpienie „Wstępnego wydania” bardziej szczegółowym wyjaśnieniem powinno wystarczyć:
offsec-defaults (1.0) niestabilna; pilność=średnia
* Dodaj plik konfiguracyjny miniona soli.
* Dodaj wpis sources.list APT i zaufany klucz GPG APT.
* Zastąp schemat gsettings definiujący obraz tła.
— Raphaël Hertzog[email chroniony]> Czw., 16 czerwca 2016 r. 18:04:21 +0200
offsec-defaults (1.0) niestabilna; pilność=średnia
* Dodaj plik konfiguracyjny miniona soli.
* Dodaj wpis sources.list APT i zaufany klucz GPG APT.
* Zastąp schemat gsettings definiujący obraz tła.
— Raphaël Hertzog[email chroniony]> Czw., 16 czerwca 2016 r. 18:04:21 +0200
W tym przykładzie wprowadzimy zmiany w kontrola plik. Zmienimy Sekcja pole do misc i usuń Strona główna, Vcs-Git, Przeglądarka Vcs pola. Na koniec wypełnimy Opis pole:
Źródło: offsec-defaults Sekcja: misc
Priorytet: opcjonalny
Opiekun: Raphaël Hertzog[email chroniony]> Zależy od kompilacji: debhelper (>= 9)
Wersja standardowa: 3.9.8
Pakiet: offsec-defaults Architektura: wszystkie Zależności: ${misc:Depends}
Opis: Domyślne ustawienia ofensywnego bezpieczeństwa
Ten pakiet zawiera wiele plików do konfiguracji komputerów należących do Offensive Security.
.
W szczególności modyfikuje:
- Konfiguracja APT
- konfiguracja sługusów soli
- domyślne ustawienia pulpitu
Źródło: offsec-defaults Sekcja: misc
Priorytet: opcjonalny
Opiekun: Raphaël Hertzog[email chroniony]> Zależy od kompilacji: debhelper (>= 9)
Wersja standardowa: 3.9.8
Pakiet: offsec-defaults Architektura: wszystkie Zależności: ${misc:Depends}
Opis: Domyślne ustawienia ofensywnego bezpieczeństwa
Ten pakiet zawiera wiele plików do konfiguracji komputerów należących do Offensive Security.
.
W szczególności modyfikuje:
- Konfiguracja APT
- konfiguracja sługusów soli
- domyślne ustawienia pulpitu
Połączenia reguły plik zazwyczaj zawiera zestaw reguł używanych do konfigurowania, budowania i instalowania oprogramowania w dedykowanym podkatalogu (nazwanym tak jak wygenerowany pakiet binarny). Zawartość tego podkatalogu jest następnie archiwizowana w pakiecie Debiana tak, jakby był katalogiem głównym systemu plików. W takim przypadku pliki zostaną zainstalowane w debian/offsec-defaults/ podkatalog. Na przykład, aby zakończyć instalację pakietu /etc/apt/sources.list.d/offsec.list, zainstaluj plik w debian/offsec-defaults/etc/apt/sources.list.d/offsec.list, reguły plik jest używany jako Makefile, z kilkoma standardowymi celami (w tym kleń i dwójkowy, używany odpowiednio do czyszczenia katalogu źródłowego i generowania pakietu binarnego).
Czym są sterowniki Makefile plik? Być może zauważyłeś wiadomość dotyczącą zaginionych Makefile na końcu dh_make produkcji i wzmianka o jej podobieństwie do reguły plik. ZA Makefile to plik skryptu używany przez robić program; opisuje zasady budowania zbioru plików od siebie w drzewie zależności. Na przykład program można zbudować z zestawu plików źródłowych. ten Makefile plik opisuje te zasady w następującym formacie: | |
cel: źródło1 źródło2 ... polecenie1 polecenie 2 | |
Interpretacja takiej zasady jest następująca: jeśli jeden z źródło* pliki są nowsze niż cel pliku, a następnie należy wygenerować cel, używając polecenie 1 i polecenie 2. Zauważ, że wiersze poleceń muszą zaczynać się od znaku tabulacji; zauważ również, że gdy wiersz poleceń zaczyna się od znaku myślnika (-), niepowodzenie polecenia nie przerywa całego procesu. |
Chociaż ten plik jest sercem procesu, zawiera tylko absolutne minimum potrzebne do uruchomienia standardowego zestawu poleceń dostarczonych przez debhelper narzędzie. Tak jest w przypadku plików generowanych przez: dh_make. Aby zainstalować większość plików, zalecamy skonfigurowanie zachowania dh_install polecenie, tworząc następujące debian/offsec-defaults.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/ udostępnij/zdjęcia/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/ udostępnij/zdjęcia/offsec/
Możesz również użyć tego do zainstalowania pliku zastępowania ustawień gsettings, ale debhelper zapewnia do tego dedykowane narzędzie (dh_installgustawienia), więc możesz na nim polegać. Najpierw wprowadź swoje ustawienia debian/offsec-defaults.gsettings-override:
[org.gnome.desktop.background] picture-options='powiększenie'
picture-uri='plik:///usr/share/images/offsec/background.png'
[org.gnome.desktop.background] picture-options='powiększenie'
picture-uri='plik:///usr/share/images/offsec/background.png'
Następnie zastąp dh_installgustawienia przywołać debian/zasady aby zwiększyć priorytet do poziomu oczekiwanego dla nadpisania organizacji (który wynosi 90 według strony podręcznika):
#!/usr/bin/make -f
%:
zd. $@
override_dh_installgsettings: dh_installgsettings --priority=90
#!/usr/bin/make -f
%:
zd. $@
override_dh_installgsettings: dh_installgsettings --priority=90
W tym momencie pakiet źródłowy jest gotowy. Pozostało tylko wygenerować pakiet binarny tą samą metodą, jaka była wcześniej używana do przebudowy pakietów: uruchom dpkg-buildpackage -us
-uc polecenie z katalogu offsec-defaults-1.0:
$ dpkg-buildpackage -us -uc
dpkg-buildpackage: info: pakiet źródłowy offsec-defaults dpkg-buildpackage: info: wersja źródłowa 1.0
dpkg-buildpackage: info: dystrybucja źródeł niestabilna
dpkg-buildpackage: info: źródło zmienione przez Raphaëla Hertzoga[email chroniony]> dpkg-buildpackage: informacje: architektura hosta amd64
dpkg-source --before-build offsec-defaults-1.0 fakeroot debian/rules clean
dh czysty
dh_testdir dh_auto_clean dh_clean
dpkg-source -b offsec-defaults-1.0
dpkg-source: info: używanie formatu źródłowego '3.0 (natywny)'
dpkg-source: info: budowanie offsec-defaults w offsec-defaults_1.0.tar.xz dpkg-source: info: budowanie offsec-defaults w offsec-defaults_1.0.dsc
debian/rules kompilacja dh kompilacja
dh_testdir dh_update_autotools_config dh_auto_configure dh_auto_build
dh_auto_test
fakeroot binarny debian/rules binarny dh
dh_testroot dh_prep dh_auto_install dh_install dh_installdocs
dh_installchangelogs
debian/rules override_dh_installgsettings
make[1]: Przejście do katalogu „/home/rhertzog/kali/kali-book/samples/offsec-defaults-1.0” dh_installgsettings --priority=90
make[1]: Opuszczenie katalogu '/home/rhertzog/kali/kali-book/samples/offsec-defaults-1.0' dh_perl
dh_link dh_strip_nondeterminizm dh_compress
dh_fixperms dh_installdeb dh_gencontrol dh_md5sums
dh_builddeb
dpkg-deb: budowanie pakietu 'offsec-defaults' w '../offsec-defaults_1.0_all.deb'. dpkg-genchanges >../offsec-defaults_1.0_amd64.changes
dpkg-genchanges: info: dołączenie pełnego kodu źródłowego podczas przesyłania dpkg-source --after-build offsec-defaults-1.0
dpkg-buildpackage: info: pełne przesyłanie; Pakiet natywny dla Debiana (zawiera pełne źródła)
dh_builddeb
dpkg-deb: budowanie pakietu 'offsec-defaults' w '../offsec-defaults_1.0_all.deb'. dpkg-genchanges >../offsec-defaults_1.0_amd64.changes
dpkg-genchanges: info: dołączenie pełnego kodu źródłowego podczas przesyłania dpkg-source --after-build offsec-defaults-1.0
dpkg-buildpackage: info: pełne przesyłanie; Pakiet natywny dla Debiana (zawiera pełne źródła)