Онлайн робочі станції OnWorks Linux та Windows

логотип

Безкоштовний онлайн-хостинг для робочих станцій

<Попередній | зміст | Наступна>

10.3.3. Створення сховища пакетів для APT‌


Тепер, коли у вас є власний пакет, ви можете розповсюджувати його через сховище пакетів APT. Використовуйте догана створити потрібне сховище та заповнити його. Цей інструмент досить потужний, і його сторінку посібника, безумовно, варто прочитати.

Репозиторій пакетів зазвичай розміщується на сервері. Щоб правильно відокремити його від інших служб, запущених на сервері, найкраще створити користувача, призначеного для цієї служби. У спеціальному обліковому записі користувача ви зможете розмістити файли сховища, а також ключ GnuPG, який буде використовуватися для підписання репозиторію пакетів:


# apt встановити reprepro gnupg

[...]

# adduser --system --group pkgrepo

Додавання системного користувача 'pkgrepo' (UID 136) ... Додавання нової групи 'pkgrepo' (GID 142) ...

Додавання нового користувача 'pkgrepo' (UID 136) з групою 'pkgrepo' ... Створення домашнього каталогу '/home/pkgrepo' ...

# chown pkgrepo $(tty)

# su - -s /bin/bash pkgrepo

$ gpg --gen-ключ

gpg (GnuPG) 2.1.11; Авторське право (C) 2016 Free Software Foundation, Inc. Це безкоштовне програмне забезпечення: ви можете змінювати та розповсюджувати його.

ГАРАНТІЙ НЕМАЄ, в межах, дозволених законом.


gpg: створено каталог '/home/pkgrepo/.gnupg'

gpg: новий конфігураційний файл '/home/pkgrepo/.gnupg/dirmngr.conf' створений gpg: новий файл конфігурації '/home/pkgrepo/.gnupg/gpg.conf' створений gpg: keybox '/home/pkgrepo/.gnupg/ pubring.kbx' створено

Примітка. Використовуйте «gpg --full-gen-key» для повнофункціонального діалогового вікна створення ключів. GnuPG має створити ідентифікатор користувача, щоб ідентифікувати ваш ключ.

Справжнє ім'я: Ключ підпису репозиторію Offensive Security

Адреса електронної пошти: [захищено електронною поштою]

Ви вибрали цей USER-ID:

”Ключ підпису репозиторію безпеки[захищено електронною поштою]> "

# apt встановити reprepro gnupg

[...]

# adduser --system --group pkgrepo

Додавання системного користувача 'pkgrepo' (UID 136) ... Додавання нової групи 'pkgrepo' (GID 142) ...

Додавання нового користувача 'pkgrepo' (UID 136) з групою 'pkgrepo' ... Створення домашнього каталогу '/home/pkgrepo' ...

# chown pkgrepo $(tty)

# su - -s /bin/bash pkgrepo

$ gpg --gen-ключ

gpg (GnuPG) 2.1.11; Авторське право (C) 2016 Free Software Foundation, Inc. Це безкоштовне програмне забезпечення: ви можете змінювати та розповсюджувати його.

ГАРАНТІЙ НЕМАЄ, в межах, дозволених законом.


gpg: створено каталог '/home/pkgrepo/.gnupg'

gpg: новий конфігураційний файл '/home/pkgrepo/.gnupg/dirmngr.conf' створений gpg: новий файл конфігурації '/home/pkgrepo/.gnupg/gpg.conf' створений gpg: keybox '/home/pkgrepo/.gnupg/ pubring.kbx' створено

Примітка. Використовуйте «gpg --full-gen-key» для повнофункціонального діалогового вікна створення ключів. GnuPG має створити ідентифікатор користувача, щоб ідентифікувати ваш ключ.

Справжнє ім'я: Ключ підпису репозиторію Offensive Security

Адреса електронної пошти: [захищено електронною поштою]

Ви вибрали цей USER-ID:

”Ключ підпису репозиторію безпеки[захищено електронною поштою]> "


Змінити (N)ім’я, (E)mail або (O)kay/(Q)уйти? o

Нам потрібно згенерувати багато випадкових байтів. Під час початкової генерації доцільно виконати якусь іншу дію (друк на клавіатурі, переміщення миші, використання дисків); це дає генератору випадкових чисел кращий шанс отримати достатню ентропію.

[...]

gpg: /home/pkgrepo/.gnupg/trustdb.gpg: trustdb створений gpg: ключ B4EF2D0D позначений як остаточно надійний

gpg: створено каталог '/home/pkgrepo/.gnupg/openpgp-revocs.d'

gpg: сертифікат відкликання, що зберігається як '/home/pkgrepo/.gnupg/openpgp-revocs.d/

F8FE22F74F1B714E38DA6181B27F74F7B4EF2D0D.rev’

відкритий і секретний ключ, створений і підписаний.


gpg: перевірка trustdb

gpg: потрібні маргінали: потрібні 3 завершення: 1 модель довіри: PGP

gpg: глибина: 0 дійсний: 1 підписаний: 0 довіра: 0-, 0q, 0n, 0m, 0f, 1u pub rsa2048/B4EF2D0D 2016 [S]

Відбиток ключа = F8FE 22F7 4F1B 714E 38DA 6181 B27F 74F7 B4EF 2D0D

uid [ultimate] Offensive Security Repository Signing Key[захищено електронною поштою]> sub rsa2048/38035F38 2016-06-17 []

Змінити (N)ім’я, (E)mail або (O)kay/(Q)уйти? o

Нам потрібно згенерувати багато випадкових байтів. Під час початкової генерації доцільно виконати якусь іншу дію (друк на клавіатурі, переміщення миші, використання дисків); це дає генератору випадкових чисел кращий шанс отримати достатню ентропію.

[...]

gpg: /home/pkgrepo/.gnupg/trustdb.gpg: trustdb створений gpg: ключ B4EF2D0D позначений як остаточно надійний

gpg: створено каталог '/home/pkgrepo/.gnupg/openpgp-revocs.d'

gpg: сертифікат відкликання, що зберігається як '/home/pkgrepo/.gnupg/openpgp-revocs.d/

F8FE22F74F1B714E38DA6181B27F74F7B4EF2D0D.rev’

відкритий і секретний ключ, створений і підписаний.


gpg: перевірка trustdb

gpg: потрібні маргінали: потрібні 3 завершення: 1 модель довіри: PGP

gpg: глибина: 0 дійсний: 1 підписаний: 0 довіра: 0-, 0q, 0n, 0m, 0f, 1u pub rsa2048/B4EF2D0D 2016 [S]

Відбиток ключа = F8FE 22F7 4F1B 714E 38DA 6181 B27F 74F7 B4EF 2D0D

uid [ultimate] Offensive Security Repository Signing Key[захищено електронною поштою]> sub rsa2048/38035F38 2016-06-17 []


Зауважте, що коли вам буде запропоновано ввести парольну фразу, ви повинні ввести порожнє значення (і підтвердити, що ви не хочете захищати свій закритий ключ), оскільки ви хочете мати можливість підписувати репозиторій неінтерактивно. Зауважте також, що gpg потрібен доступ на запис до терміналу, щоб мати можливість безпечно запитувати парольну фразу: саме тому ви змінили право власності на віртуальний термінал (який належить root, оскільки ви спочатку підключилися як цей користувач) перед запуском оболонки як pkgrepo.

Тепер можна приступати до налаштування репозиторію. Спеціальний каталог необхідний для догана і всередині цього каталогу ви повинні створити файл a конф/дистрибуції файл, що документує, які дистрибутиви доступні в репозиторії пакетів:


$ mkdir -p reprepro/conf

$ CD reprepro

$ cat >conf/distributions <

Походження: наступальна безпека

Опис: внутрішні пакети Offsec Архітектури: вихідний код amd64 i386 Компоненти: основний

SignWith: F8FE22F74F1B714E38DA6181B27F74F7B4EF2D0D END

$ mkdir -p reprepro/conf

$ CD reprepro

$ cat >conf/distributions <

Походження: наступальна безпека

Опис: внутрішні пакети Offsec Архітектури: вихідний код amd64 i386 Компоненти: основний

SignWith: F8FE22F74F1B714E38DA6181B27F74F7B4EF2D0D END


Обов’язкові поля Кодова назва, що дає назву розподілу, Архітектури, який вказує, які архітектури будуть доступні в дистрибутиві (і прийняті на стороні введення), і компоненти, що вказує на різні компоненти, доступні в дистрибутиві (com-

ponents — це свого роду підрозділ дистрибутива, який можна ввімкнути окремо в sources.list APT). The Походження та Опис поля носять виключно інформаційний характер і копіюються як є в файлі Відпустіть файл. The SignWith — питає поле догана щоб підписати репозиторій ключем GnuPG, ідентифікатор якого вказано (введіть тут повний відбиток пальця, щоб переконатися, що ви використовуєте правильний ключ, а не інший, який стикається з коротким ідентифікатором). The ТакожПрийнятиДля налаштування не є обов'язковим, але дає можливість обробити .зміни файли, поле розповсюдження яких має значення, зазначене тут (без цього він прийняв би лише кодове ім’я дистрибутива в цьому полі).

З цим базовим налаштуванням ви можете дозволити догана створити порожній репозиторій:


$ репрепро експорт

Експорт індексів...

$ знайти .

.

./дБ

./db/версія

./db/references.db

./db/contents.cache.db

./db/checksums.db

./db/packages.db

./db/release.caches.db

./конф

./conf/distributions

./dist

./dists/offsec-internal

./dists/offsec-internal/Release.gpg

./dists/offsec-internal/Release

./dists/offsec-internal/main

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

./dists/offsec-internal/main/binary-amd64/Випуск

./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/Випуск

./dists/offsec-internal/main/binary-i386/Packages.gz

./dists/offsec-internal/InRelease

$ репрепро експорт

Експорт індексів...

$ знайти .

.

./дБ

./db/версія

./db/references.db

./db/contents.cache.db

./db/checksums.db

./db/packages.db

./db/release.caches.db

./конф

./conf/distributions

./dist

./dists/offsec-internal

./dists/offsec-internal/Release.gpg

./dists/offsec-internal/Release

./dists/offsec-internal/main

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

./dists/offsec-internal/main/binary-amd64/Випуск

./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/Випуск

./dists/offsec-internal/main/binary-i386/Packages.gz

./dists/offsec-internal/InRelease


Як ви можете бачити, догана створив репозиторій метаінформації в a дист підкаталог. Він також ініціалізував внутрішню базу даних у a db підкаталог.

Настав час додати свій перший пакет. Спочатку скопіюйте файли, згенеровані збіркою файлу offsec - значення за замовчуванням пакет (offsec-defaults_1.0.dsc, offsec-defaults_1.0.tar.xz,

offsec-defaults_1.0_all.deb і offsec-defaults_1.0_amd64.changes) в /tmp

на сервері, де розміщено сховище пакетів, і запитайте догана включити пакет:


$ reprepro включає offsec-internal /tmp/offsec-defaults_1.0_amd64.changes

Експорт індексів...

$ знайти басейн басейн басейн/основний басейн/основний/о

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 включає offsec-internal /tmp/offsec-defaults_1.0_amd64.changes

Експорт індексів...

$ знайти басейн басейн басейн/основний басейн/основний/о

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


Як бачите, він додав файли до власного пулу пакетів у a басейн підкаталог.

Команда дист та басейн каталоги — це два каталоги, які вам потрібно зробити (загальнодоступними) через HTTP, щоб завершити налаштування вашого репозиторію APT. Вони містять усі файли, які APT хоче завантажити.

Припускаючи, що ви хочете розмістити це на віртуальному хості з ім’ям pkgrepo.offsec.com, ви можете створити наступний файл конфігурації Apache і зберегти його /etc/apache2/sites-available/pkgrepo. offsec.com.conf, і увімкніть його за допомогою a2ensite pkgrepo.offsec.com):


ServerName pkgrepo.offsec.com ServerAdmin [захищено електронною поштою]


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

Параметри Індекси FollowSymLinks MultiViews Потрібні всі надані

AllowOverride All

ServerName pkgrepo.offsec.com ServerAdmin [захищено електронною поштою]


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

Параметри Індекси FollowSymLinks MultiViews Потрібні всі надані

AllowOverride All


І відповідне sources.list запис для додавання на машинах, яким потрібні пакунки з цього репозиторію, виглядатиме так:


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


# Увімкніть наступний рядок, якщо ви також хочете отримати доступ до вихідних пакетів

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

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


# Увімкніть наступний рядок, якщо ви також хочете отримати доступ до вихідних пакетів

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


Ваш пакет тепер опубліковано і має бути доступним для ваших мережевих хостів.

Незважаючи на те, що це було тривалим налаштуванням, «підйом важкого» зараз завершено. Ви можете завантажувати підключені до мережі комп’ютери за допомогою PXE, інсталювати налаштовану версію Kali Linux без взаємодії завдяки наданому в мережі пресід, налаштувати SaltStack для керування вашими конфігураціями (і контролювати прихильників!), створювати роздвоєні користувацькі пакунки та розповсюджувати ці пакунки через ваш власне сховище пакетів. Це забезпечує централізоване керування та контроль на рівні підприємства над кількома інсталяціями Kali Linux. Коротше кажучи, тепер ви можете швидко розгорнути високозахищені системи Kali, попередньо налаштовані для ваших конкретних потреб, і підтримувати їх синхронізацію завдяки (напівавтоматичній) установці всіх оновлень пакетів Kali.


Найпопулярніші хмарні обчислення ОС на OnWorks: