Как добавить репозитории Kali Linux в другой дистрибутив


Начну с самого главного — с серьёзного предупреждения: эта операция вполне может убить ваш дистрибутив и сделать его непригодным для использования! Это вполне реальная возможность всё поломать из-за несовместимости пакетов!

Что даст репозиторий Kali Linux?

После всех этих страшных предупреждений, возникает вопрос, зачем так рисковать? Если вы добавите репозиторий другого дистрибутива, то вы сможете установить его пакеты. Например, если в Linux Mint добавить репозитории Kali Linux, то можно установить программы Kali Linux в Linux Mint.

Что происходит при добавлении репозиториев других дистрибутивов Linux

При добавлении любых новых репозиториев, после обновления кэша пакетов, пакеты из новых репозиториев становятся доступны для установки, а также для обновления существующих в системе пакетов.

Репозитории могут содержать одинаковые пакеты, но разных версий. При выполнении обновлений, более новые пакеты заменят пакеты предыдущих версий в системе. Поскольку исходные пакеты дистрибутива могут не сочетаться с пакетами другого дистрибутива, то система может перестать нормально работать после обновления. Причём если первое обновление прошло нормально, это не означает, что в результате какого-нибудь последующее что-нибудь не случиться.

Можно значительно снизить опасность от репозиториев Kali Linux, но при этом пользоваться преимуществами этого дистрибутива — с помощью установления репозиторию Kali Linux более низкого приоритета — об этом будет рассказано ниже.

В какие дистрибутивы можно добавить репозитории Kali Linux

Для этого подходят только дистрибутивы на основе Debian, то есть сама Debian, а также Linux Mint, Ubuntu и пр.

Инструкция по добавлению репозиториев Kali Linux (на примере Linux Mint)

Мы не только правильно добавим репозитории, но и настроим низкий приоритет репозиториев Kali Linux, благодаря этому:

  • при автоматическом обновлении пакеты Kali Linux не будут заменять пакеты основного дистрибутива, даже если у Kali Linux более новые версии
  • можно будет устанавливать любые программы Kali Linux
  • при выходе новых версий программ Kali Linux, они будут автоматически обновляться вместе с остальными пакетами в системе

То есть мы получаем преимущества Kali Linux, но не рискуем испортить свой дистрибутив (хотя всякое может случиться).

Начните с полного обновления вашей системы:

sudo apt update && sudo apt full-upgrade -y

Затем перезагрузитесь — то есть мы получили полностью обновлённую систему, в которой команда

sudo apt update

должна выводить следующее:

Чтение списков пакетов… Готово
Построение дерева зависимостей       
Чтение информации о состоянии… Готово
Все пакеты имеют последние версии.

Выполним проверку — попробуем установить программу WPScan в Linux Mint:

sudo apt install wpscan

Этот пакет отсутствует, поэтому ожидаемая неудача:

Чтение списков пакетов… Готово
Построение дерева зависимостей       
Чтение информации о состоянии… Готово
E: Невозможно найти пакет wpscan

Добавляем репозитории Kali Linux:

sudo sh -c "echo 'deb https://http.kali.org/kali kali-rolling main non-free contrib' > /etc/apt/sources.list.d/kali.list"

Чтобы убедиться, что новые репозитории добавлены, вновь попытаемся обновить кэш приложений:

sudo apt update

Операция должна завершиться ошибкой:

  Следующие подписи не могут быть проверены, так как недоступен открытый ключ: NO_PUBKEY ED444FF07D8D0BF6
Чтение списков пакетов… Готово
W: Ошибка GPG: https://hlzmel.fsmg.org.nz/kali kali-rolling InRelease: Следующие подписи не могут быть проверены, так как недоступен открытый ключ: NO_PUBKEY ED444FF07D8D0BF6
E: Репозиторий «https://http.kali.org/kali kali-rolling InRelease» не подписан.
N: Обновление из этого репозитория нельзя выполнить безопасным способом, поэтому по умолчанию он отключён.
N: Информацию о создании репозитория и настройках пользователя смотрите в справочной странице apt-secure(8).

Если система на английском языке, то будет примерно так:


Get:5 https://mirrors.ocf.berkeley.edu/kali kali-rolling InRelease [30.5 kB]
Err:5 https://mirrors.ocf.berkeley.edu/kali kali-rolling InRelease
  The following signatures couldn't be verified because the public key is not available: NO_PUBKEY ED444FF07D8D0BF6
Reading package lists... Done
W: GPG error: https://mirrors.ocf.berkeley.edu/kali kali-rolling InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY ED444FF07D8D0BF6
E: The repository 'https://http.kali.org/kali kali-rolling InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.

Это нормально — так и должно быть.


Для последующей операции нам понадобиться пакет gnupg, установим его:

sudo apt install gnupg

Теперь, чтобы система смогла верифицировать пакеты Kali Linux, нужно добавить публичный ключ данного дистрибутива. Скачиваем его и добавляем следующими командами:

wget 'https://archive.kali.org/archive-key.asc'
sudo apt-key add archive-key.asc

Теперь вновь обновляешь кэш (но ни в коем случае не обновляем систему — иначе всё сломается и она у вас больше не загрузиться):

sudo apt update

Как можно убедиться, нам предлагается обновить более полутора тысяч пакетов — НЕ делаем этого.

Теперь нам нужно установить правильный приоритет для пакетов из репозиториев Kali Linux: у них будет более низкий приоритет чем у остальных, в результате пакеты Kali Linux (например, ядра) не будут устанавливаться автоматически, но вручную вы сможете установить любые пакеты, которые вам нужны.

Выполните команду:

sudo sh -c "echo 'Package: *'>/etc/apt/preferences.d/kali.pref; echo 'Pin: release a=kali-rolling'>>/etc/apt/preferences.d/kali.pref; echo 'Pin-Priority: 50'>>/etc/apt/preferences.d/kali.pref"

Или попросту создайте файл /etc/apt/preferences.d/kali.pref со следующем содержимым:

Package: *
Pin: release a=kali-rolling
Pin-Priority: 50

Вновь обновляем кэш пакетов:

sudo apt update

Как можно увидеть, теперь репозиторий Kali Linux не оказывает влияние на систему при её обновлении:

Но зато если мы попытаемся установить WPScan, который ранее мы не смогли найти в репозиториях, то теперь всё пройдёт успешно. Хотя есть нюансы — программа apt не справится с этой задачей:

sudo apt install wpscan

Проблема будет в том, что у пакета wpscan есть зависимости, эти зависимости присутствуют в репозиториях Kali Linux, но что-то не даёт программе apt справится с их установкой.

Поэтому для установки пакетов Kali Linux мы будем использовать aptitude в команде вида:

sudo aptitude install -t kali-rolling ИМЯ-ПАКЕТА

Например для установки wpscan:


sudo aptitude install -t kali-rolling wpscan

wpscan --hh
wpscan --update

wpscan --url zen-rss.ru

В этом и заключается эффект репозиториев Kali Linux (возможность установить её программы) при минимальных рисках поломать дистрибутив Linux, в который вы добавляете новые репозитории.

Тем не менее риски остаются: при установке пакетов, в зависимостях которых могут присутствовать важные компоненты системы, такие как ядро. Поэтому не рекомендуется устанавливать драйверы и модули ядра из репозитория Kali Linux (из основных репозиториев вашего дистрибутива вы можете устанавливать что угодно, в том числе и видеодрайверы и новые ядра). С подавляющем большинством другим программ проблем быть не должно.

Полное превращение системы в Kali Linux

Если вам нужна Kali Linux, то просто скачайте Live-дистрибутив и установите себе.

Но бывают ситуации, когда невозможно «просто скачать и установить» - например, при развёртывании Kali Linux на VPS хостинге. Мне пришлось решать эту задачу при развёртывании системы на DigitalOcean. Об этом примере я расскажу в следующей статье, посвящённой моему опыту работы с DigitalOcean.


Рекомендуется Вам:

One Comment to Как добавить репозитории Kali Linux в другой дистрибутив

  1. Seregey:

    Спасибо за хорошую статью.Все прошло как написано.

    Теперь я так понимаю достаточно этой схемы 

    sudo aptitude install -t kali-rolling ИМЯ-ПАКЕТА ?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *