مخازن Kali Linux
ساختار مخازن Kali، پیکربندی sources.list و کار با branchهای kali-rolling و kali-bleeding-edge.
مخازن (Repositories) منابعی هستند که APT از آنها بستهها را دریافت میکند. در این آموزش، ساختار مخازن Kali، نحوهٔ پیکربندی و کار با branchهای مختلف را بهطور کامل بررسی میکنیم.
مخازن رسمی Kali
Kali از مخازن رسمی خود در http.kali.org استفاده میکند. آدرسهای رسمی بهصورت زیر هستند:
| آدرس | نوع | توضیح |
|---|---|---|
http://http.kali.org/kali | اصلی | مخزن اصلی Kali |
https://kali.download/kali | Mirror امن | نسخهٔ HTTPS |
http://kali.download/kali | Mirror | mirror رسمی |
فایل sources.list
فایل پیکربندی مخازن در /etc/apt/sources.list قرار دارد. محتوای پیشفرض Kali بهصورت زیر است:
# مشاهدهٔ محتوای فعلی sources.list
cat /etc/apt/sources.list
# خروجی پیشفرض:
# See https://www.kali.org/docs/general-use/kali-linux-sources-list-repositories/
# to learn about this file's contents.
deb http://http.kali.org/kali kali-rolling main contrib non-free non-free-firmware
# Additional line for source packages
# deb-src http://http.kali.org/kali kali-rolling main contrib non-free non-free-firmwareساختار خط مخزن
هر خط مخزن با deb (باینری) یا deb-src (سورس) شروع میشود. سپس آدرس مخزن، نسخه (suite) و دستهها (components) قرار میگیرند: deb URL suite component1 component2 ...
branchهای Kali
Kali از چند branch مختلف پشتیبانی میکند:
۱. kali-rolling (پیشفرض)
مخزن اصلی Kali که بهصورت پیوسته بهروز میشود. این branch برای اکثر کاربران توصیه میشود:
deb http://http.kali.org/kali kali-rolling main contrib non-free non-free-firmware۲. kali-bleeding-edge
مخزن تجربی شامل بستههای بسیار جدید (معمولاً کمتر از ۲۴ ساعت از upstream). این branch برای کاربران حرفهای مناسب است:
deb http://http.kali.org/kali kali-bleeding-edge main contrib non-free non-free-firmwarekali-bleeding-edge ناپایدار است
بستههای kali-bleeding-edge ممکن است دارای باگ باشند یا باعث شکسته شدن وابستگیها شوند. تنها در صورتی از این branch استفاده کنید که به نسخهٔ بسیار جدید یک ابزار خاص نیاز دارید و میدانید چه میکنید.
۳. snapshotها
Kali snapshotهای تاریخی از مخزن ارائه میدهد که میتوانید سیستم را به یک تاریخ خاص «قفل» کنید:
deb http://kali.download/kali-snapshots/ 2024.01.01/main contrib non-free non-free-firmwareدستههای بستهها (Components)
هر مخزن Kali شامل چندین دسته است:
| دسته | توضیح | مثال |
|---|---|---|
main | بستههای اصلی با مجوز آزاد | nmap, metasploit |
contrib | بستههای آزاد که به بستههای غیرآزاد وابستهاند | برخی درایورها |
non-free | بستههای غیرآزاد | firmware-iwlwifi |
non-free-firmware | فریمورهای غیرآزاد برای سختافزار | firmware-realtek |
# بررسی بستههای موجود در دسته non-free
apt-cache madison firmware-iwlwifi
# خروجی:
# firmware-iwlwifi | 20240220-1 | http://http.kali.org/kali kali-rolling/non-free-firmware amd64 Packagesاضافه کردن Mirror اضافی
برای سرعت بالاتر یا افزونگی، میتوانید چند mirror اضافه کنید. فایل /etc/apt/sources.list.d/kali.list را بسازید:
# ساخت فایل mirror اضافی
sudo tee /etc/apt/sources.list.d/kali.list <<EOF
deb https://kali.download/kali kali-rolling main contrib non-free non-free-firmware
EOF
# بهروزرسانی فهرست بستهها
sudo apt updateفعالسازی Source Packages
برای دریافت سورس بستهها (مثلاً برای کامپایل یا بررسی کد):
# فعالسازی deb-src (حذف علامت کامنت)
sudo sed -i 's/^# deb-src/deb-src/' /etc/apt/sources.list
# بهروزرسانی
sudo apt update
# دانلود سورس یک بسته
apt source nmapمدیریت کلیدهای مخزن
Kali از کلید GPG برای امضای بستهها استفاده میکند. کلیدها در /etc/apt/trusted.gpg.d/ نگهداری میشوند:
# نمایش کلیدهای نصبشده
apt-key list 2>/dev/null || ls /etc/apt/trusted.gpg.d/
# خروجی:
# /etc/apt/trusted.gpg.d/kali-archive-keyring.gpg
# /etc/apt/trusted.gpg.d/debian-archive-keyring.gpg
# نصب مجدد کلید رسمی Kali
sudo apt install -y kali-archive-keyringبررسی Mirror فعال
# مشاهدهٔ mirror استفادهشده برای هر بسته
apt-cache policy nmap
# خروجی:
# nmap:
# Installed: 7.94+git20240111-1
# Candidate: 7.94+git20240111-1
# Version table:
# *** 7.94+git20240111-1 500
# 500 http://http.kali.org/kali kali-rolling/main amd64 Packages
# 100 /var/lib/dpkg/statusتست سرعت Mirror
# تست سرعت چند mirror
for mirror in http.kali.org kali.download; do
echo -n "$mirror: "
curl -o /dev/null -s -w "Connect: %{time_connect}s | Total: %{time_total}s\n" \
https://$mirror/kali/dists/kali-rolling/InRelease
done
# خروجی نمونه:
# http.kali.org: Connect: 0.453s | Total: 1.234s
# kali.download: Connect: 0.123s | Total: 0.567sاستفاده از kali-tweaks برای انتخاب mirror
ابزار kali-tweaks به شما اجازه میدهد mirror مناسب منطقهٔ خود را بهصورت تعاملی انتخاب کنید. برای جزئیات به آموزش kali-tweaks مراجعه کنید.
افزودن مخزن شخصی (محلی)
برای نصب بستههای محلی یا آزمایشی، میتوانید مخزن شخصی بسازید:
# ساخت دایرکتوری مخزن
sudo mkdir -p /opt/local-repo
# کپی بستههای .deb
sudo cp my-package.deb /opt/local-repo/
# ساخت Packages index
cd /opt/local-repo
sudo dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz
# افزودن به sources.list
echo "deb [trusted=yes] file:///opt/local-repo ./" | sudo tee /etc/apt/sources.list.d/local.list
# بهروزرسانی
sudo apt updateخطاهای رایج
NO_PUBKEY
مشکل: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY XXXX.
راهحل:
# نصب مجدد keyring رسمی
sudo apt install -y kali-archive-keyring
# یا وارد کردن کلید دستی
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys XXXXHash Sum mismatch
مشکل: Hash Sum mismatch هنگام apt update.
راهحل:
# پاکسازی cache
sudo rm -rf /var/lib/apt/lists/*
sudo apt updateRepository is not signed
مشکل: The repository 'xxx' is not signed.
راهحل: برای مخازن رسمی Kali، کلید را نصب کنید. برای مخازن شخصی، گزینهٔ [trusted=yes] در خط مخزن اضافه کنید:
deb [trusted=yes] file:///opt/local-repo ./هرگز مخازن غیررسمی را اعتماد نکنید
استفاده از trusted=yes برای مخازن ناشناس خطرناک است؛ زیرا APT دیگر امضای بستهها را بررسی نمیکند. تنها برای مخازن محلی شخصی از این گزینه استفاده کنید.
Failed to fetch
مشکل: Failed to fetch http://http.kali.org/kali/....
راهحل:
# تست اتصال به مخزن
curl -I https://kali.download/kali/dists/kali-rolling/InRelease
# در صورت عدم اتصال، DNS را بررسی کنید
nslookup http.kali.org
# تغییر mirror
sudo sed -i 's|http.kali.org|kali.download|g' /etc/apt/sources.listخلاصه و مرحلهٔ بعد
مخازن Kali بهصورت پیشفرض پیکربندی شدهاند و برای اکثر کاربران نیازی به تغییر ندارند. اما برای کاربران پیشرفته، امکان اضافه کردن branchهای اضافی، mirrorهای منطقهای و مخازن شخصی وجود دارد.
بهعنوان گام بعدی:
- آموزش kali-tweaks را برای پیکربندی آسان مخازن ببینید
- آموزش APT و مدیریت بسته را برای نصب نرمافزارها بخوانید
- آموزش بهروزرسانی سیستم را برای نگهداری منظم دنبال کنید
این صفحه در تاریخ ۵ تیر ۱۴۰۵ بهروزرسانی شده است.