OnWorks Linux ו-Windows Online WorkStations

לוגו

אירוח מקוון בחינם עבור תחנות עבודה

<הקודם | תוכן | הבא>

10.3.3. יצירת מאגר חבילות עבור APT‌


עכשיו כשיש לך חבילה מותאמת אישית, אתה יכול להפיץ אותה דרך מאגר חבילות APT. להשתמש לִנְזוֹף כדי ליצור את המאגר הרצוי ולמלא אותו. הכלי הזה חזק למדי והדף המדריך שלו בהחלט שווה קריאה.

מאגר חבילות מתארח בדרך כלל בשרת. כדי להפריד אותו כראוי משירותים אחרים הפועלים בשרת, עדיף ליצור משתמש ייעודי לשירות זה. בחשבון המשתמש הייעודי, תוכל לארח את קבצי המאגר וגם את מפתח GnuPG שישמש לחתימה על מאגר החבילות:


# apt install 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-key

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 צריך לבנות מזהה משתמש כדי לזהות את המפתח שלך.

שם אמיתי: מפתח חתימה של מאגר אבטחה פוגעני

כתובת דואר אלקטרוני: [מוגן בדוא"ל]

בחרת USER-ID זה:

"מפתח חתימה של מאגר אבטחה פוגעני[מוגן בדוא"ל]> "

# apt install 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-key

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 צריך לבנות מזהה משתמש כדי לזהות את המפתח שלך.

שם אמיתי: מפתח חתימה של מאגר אבטחה פוגעני

כתובת דואר אלקטרוני: [מוגן בדוא"ל]

בחרת USER-ID זה:

"מפתח חתימה של מאגר אבטחה פוגעני[מוגן בדוא"ל]> "


לשנות (N)name, (E)mail, או (O)kay/(Q)uit? 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 השלמות: מודל אמון אחד: PGP

gpg: עומק: 0 חוקי: 1 חתום: 0 אמון: 0-, 0q, 0n, 0m, 0f, 1u pub rsa2048/B4EF2D0D 2016-06-17 [S]

טביעת אצבע של מפתח = F8FE 22F7 4F1B 714E 38DA 6181 B27F 74F7 B4EF 2D0D

uid [ultimate] מפתח חתימה של מאגר אבטחה פוגעני[מוגן בדוא"ל]> sub rsa2048/38035F38 2016-06-17 []

לשנות (N)name, (E)mail, או (O)kay/(Q)uit? 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 השלמות: מודל אמון אחד: PGP

gpg: עומק: 0 חוקי: 1 חתום: 0 אמון: 0-, 0q, 0n, 0m, 0f, 1u pub rsa2048/B4EF2D0D 2016-06-17 [S]

טביעת אצבע של מפתח = F8FE 22F7 4F1B 714E 38DA 6181 B27F 74F7 B4EF 2D0D

uid [ultimate] מפתח חתימה של מאגר אבטחה פוגעני[מוגן בדוא"ל]> sub rsa2048/38035F38 2016-06-17 []


שים לב שכאשר אתה מתבקש להזין ביטוי סיסמה, עליך להזין ערך ריק (ולאשר שאינך רוצה להגן על המפתח הפרטי שלך) מכיוון שאתה רוצה להיות מסוגל לחתום על המאגר באופן לא אינטראקטיבי. שימו לב גם לזה Gpg דורש גישת כתיבה למסוף כדי להיות מסוגל לבקש בצורה מאובטחת ביטוי סיסמה: לכן שינית את הבעלות על הטרמינל הוירטואלי (שנמצא בבעלות השורש מאז שהתחברתי לראשונה כמשתמש זה) לפני שהתחלת מעטפת בתור pkgrepo.

כעת אתה יכול להתחיל להגדיר את המאגר. יש צורך בספרייה ייעודית עבור לִנְזוֹף ובתוך הספרייה הזו אתה צריך ליצור א conf/הפצות קובץ המתעד אילו הפצות זמינות במאגר החבילות:


$ 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-

רכיבים הם מעין תת-סעיף של ההפצה, שניתן להפעיל בנפרד ב-sources.list של APT). ה מָקוֹר ו תיאור השדות הם אינפורמטיביים בלבד והם מועתקים כפי שהם ב- לשחרר קובץ. ה SignWith שואל שדה לִנְזוֹף לחתום על המאגר עם מפתח GnuPG שהמזהה שלו רשום (שים את טביעת האצבע המלאה כאן כדי להבטיח שאתה משתמש במפתח הנכון, ולא עוד אחד שמתנגש במזהה הקצר). ה קבל גם עבור ההגדרה אינה נדרשת אך מאפשרת לעבד אותה .שינויים קבצים שלשדה התפוצה שלהם יש ערך המופיע כאן (ללא זה, הוא יקבל רק את שם הקוד של ההפצה באותו שדה).

עם התקנה בסיסית זו, אתה יכול לתת לִנְזוֹף צור מאגר ריק:


$ reprepro יצוא

מייצא מדדים...

$ למצוא .

.

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

$ reprepro יצוא

מייצא מדדים...

$ למצוא .

.

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


כפי שניתן לראות, לִנְזוֹף יצר את המטא-מידע של המאגר ב-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):


שם שרת 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 כל

שם שרת 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 כל


והמקביל 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 ללא אינטראקציה הודות ל-Preseed שנמסר ברשת, להגדיר את SaltStack לנהל את התצורות שלך (ולשלוט במיניונים!), ליצור חבילות מותאמות אישית מפוצלות ולהפיץ את החבילות האלה דרך מאגר חבילות משלו. זה מספק ניהול מרכזי ושליטה ברמת הארגון על התקנות מרובות של Kali Linux. בקיצור, כעת אתה יכול לפרוס במהירות מערכות Kali מאובטחות במיוחד המוגדרות מראש לצרכים הספציפיים שלך ולשמור אותן מסונכרנות הודות להתקנה של Kali (חצי אוטומטית) של כל עדכוני החבילות.


מחשוב ענן מערכת ההפעלה המוביל ב-OnWorks: