Kali Linux на Raspberry Pi: просто, быстро, понятно
Заинтересовался я тут на днях, можно ли знаменитый в кругах хакеров и пентестеров Kali Linux на Raspberry Pi запустить. Полных, рабочих и понятных инструкций не нашел, вот и решил написать об этом пост. Выполнено на примере Raspberry Pi 3B+
- Собственно RPi (Подойдет любая, кроме Pi 1)
- Micro SD карта объемом не менее 16 гБ, класс 10
- Компьютер
- Дисплей с разъемом HDMI (к нему будем подключать малинку)
- Кабель питания (рекомендую брать с силой тока не менее 2А)
- Клавиатура и мышь
Во-первых, нам понадобится образ Kali Linux для RPi. Взять его можно вот здесь. Скроллим до слов Raspberrypi Foundation и выбираем нужный образ. Я взял образ «Kali Linux RaspberryPi 2 (v1.2), 3 and 4 (64-Bit)», RPi 3B+ спокойно его тянет.
Когда образ скачается, открываем ему с помощью архиватора и экстрактим.
Также вот отсюда качаем Etcher, им будем записывать образ на SD карту для малинки.
Открываем Etcher, подключаем microSD, в пункте «Select Image» указываем путь до файла, потом выбираем нашу microSD как девайс для прошивки, жмём Flash. Завариваем чаёк, и ждем, пока прошьётся.
Берем RPi, подключаем к ней microSD, дисплей, клавиатуру и мышь и ТОЛЬКО ПОТОМ втыкаем кабель питания, иначе ничего не получится. Ждём, пока на экране не появится графический интерфейс. Вводим логин и пароль (kali и kali).
Далее подключаемся к Wi-Fi или к проводному интернету (при надобности подключаем Wi-Fi донгл), нажав иконку сети в правом верхнем углу (там при первой загрузке нарисован порт Ethernet), выбрав сеть и введя пароль. Далее открываем консоль и пишем:
Может вылететь ошибка (когда перед одной из ссылок написано Err), тогда пишем код:
sudo nano /etc/apt/sources.list
Нам откроется файл, все содержимое которого нужно удалить и ввести новое:
deb http://http.kali.org/kali kali-rolling main non-free contrib
Потом снова запускаем команду:
И все должно заработать. Затем начинаем обновление пакетов:
Когда у нас спросят подтверждение, жмем Y и enter. А теперь снова завариваем чаёк и ждем, пока обновление завершится (советую заварить литров 10, так как обновляется все это ну очень медленно, у меня заняло около 6 часов).
Теперь ваша RPi готова ко всему!
Перед тем, как выключить RPi из сети, нужно ОБЯЗАТЕЛЬНО прописать в консоли команду
sudo shutdown , и минуты через две RPi свернёт графический интерфейс, а затем выключится. Если эту команду не вбить, но выключить малинку из сети, то она становится «овощем», и нужно заново переустанавливать ОС.
P.S. Автор не несет ответственности за ущерб, нанесенный при использовании Kali Linux. Вся информация приведена исключительно в образовательных целях.
Попытка использовать Raspberry Pi 4 в качестве десктопа. Часть 2, Ubuntu
В первой части была рассмотрена возможность использования Raspberry Pi 4 в качестве десктопа с установленной «родной» операционной системой Raspbian. Но как известно, с недавних пор в Ubuntu v20.10 Groovy Gorilla имеется официальная поддержка Raspberry Pi 4, и как было заявлено, Raspberry Pi теперь для этой версии «first-class citizen».
Что из этого получилось и насколько «first class» соответствует действительности, подробности под катом.
Установка: Ubuntu 20.04.1 LTS
Процесс установки мало чем отличается от стандартной установки Raspbian — нужно скачать образ системы, залить его на карту памяти и запустить устройство. Сами образы можно скачать с ubuntu.com/download/raspberry-pi:
Я решил пройти все шаги с нуля и выбрать консольную версию Ubuntu Server 64-bit Ubuntu 20.04.1 LTS, т.к. именно эта версия имеет статус «RECOMMENDED», а недостающие компоненты установить самостоятельно. Скачиваем, загружаемся, попадаем в стандартную консоль Ubuntu.
Сначала нужно настроить WiFi, для чего редактируем файл 50-cloud-init.yaml командой sudo nano /etc/netplan/50-cloud-init.yaml. Добавляем в него параметры точки доступа:
network: ethernets: eth0: dhcp4: true optional: true version: 2 wifis: wlan0: optional: true access-points: "MYWIFIPOINT": password: "12345678" dhcp4: true
После перезагрузки можно проверить наличие сети с помощью ping 8.8.8.8, и если все работает, можно установить ubuntu-desktop. Запускаем команды sudo-apt-get update, sudo apt-get upgrade и наконец, sudo apt-get install ubuntu-desktop. Процесс занимает где-то полчаса, после чего можно перезагрузить систему и получить полноценный UI:
Вероятно, проще было все это не делать и сразу скачать готовую версию с десктопом. Но так неинтересно.
Первые впечатления
Самое первое впечатление — система достаточно сырая. Для версии 20.04.1 можно просто открывать окно за окном и записывать баги:
— WiFi. Сам WiFi работает, но в настройках системы он не показывается, выдается WiFi Unavailable и список сетей пуст.
При этом ifconfig показывает нормально работающий адаптер wlan0 в статусе running и ip-адрес.
— Дисплей. Разрешение монитора определилось некорректно, пришлось вписать параметры HDMI в файл конфигурации.
— Звук. По умолчанию почему-то активен выход для наушников — на динамиках дисплея звука нет. Переключить звук на HDMI можно в настройках, но после перезагрузки всё становится как было.
— Клавиатура. Кнопку переключения раскладки почему-то не поменять. Всплывающее окно появляется, но на нажатия кнопок оно не реагирует. В итоге переключаться между раскладками Ru/En можно только сочетанием клавиш Win+пробел. Зато в отличие от Raspbian, есть значок языка в трее, что радует. С другой стороны, есть еще один странный баг — после переключения раскладки иногда пропадает первая набираемая буква.
— Встроенный менеджер программ выглядит вполне красиво:
Но установить ни одну из программ так и не удалось, процесс «зависает» в статусе Pending:
Впрочем, старый добрый apt-get из консоли работает нормально.
Браузер
Вернемся к браузеру — на него были основные надежды, т.к. встроенный Chromium ограничен в функционале. Действительно, гугл дает возможность скачать Chrome для Ubuntu:
Однако при попытке установки пакета выдается ошибка «package architecture (amd64) does not match system (arm64)». В общем, похоже версии Chrome под ARM пока нет. А значит все написанное в первой части актуально и здесь, т.к. и под Ubuntu Chromium остается основным браузером. И «вишенка на торте» — тест web.basemark.com показал результат всего лишь 36.4 против 64.8 у Chromium в Raspbian:
На этом тест версии 20.04.1 было решено остановить, т.к. рекомендовать кому-либо ставить версию, которая не только имеет множество багов, но и вдвое медленнее стандартной версии Raspbian, у меня желания нет.
Установка: Ubuntu Desktop 20.10
Эта версия на момент написания текста имеет статус «latest development release with nine months of support, until July 2021», т.е. пока что это не окончательный релиз. Но по сравнению с тем что было, хуже точно не будет.
И действительно: разработчики Ubuntu проделали большую работу! Баг с WiFi исправлен, панель приложений теперь работает корректно, разрешение дисплея определилось правильно, ну и по ощущениям, отзывчивость системы заметно возросла. Фоновая картинка также поменялась, в целом все выглядит вполне стильно.
Результат бенчмарка в Chromium вырос, но все же до оригинального Raspbian пока не дотягивает:
В остальном, логика работы браузера ничуть не изменилась, т.к. это тот же Chromium, все написанное в первой части, актуально и здесь.
Как подсказали в комментариях, браузер Firefox имеет лучшую поддержку аппаратного ускорения. На практике, ответ оказался не столь однозначным. Youtube действительно проигрывается заметно более плавно, но бенчмарк показал в Firefox лишь 44.3, т.е. даже чуть меньше. Вывод простой — Firefox ускоряет лишь видео, но все остальное в нем ничуть не быстрее, даже наоборот. В общем, для работы с текстами Raspberry Pi 4 в принципе как-то подходит (этот текст полностью написан на Raspberry Pi под Ubuntu), а вот в плане развлекательного и медиа-центра «малина» пока что не очень — это скорее борьба с системой, чем получение удовольствия от её использования. Youtube, к чести их создателей, работает в Firefox нормально (c установленным плагином h264ify), а на остальных сайтах — как получится. Где-то видео не показывается вообще, где-то показывается лишь в низком качестве. Но есть и позитивный момент: загрузка ЦП при воспроизведении видео в браузере несколько снизилась:
В Raspbian она стабильно держалась на 95-100%. Температура металлического корпуса кстати, не превышает 50С даже при стресс-тестах:
Из багов, которые пока так и не были исправлены в последней версии — звук при каждой загрузке опять воспроизводится на наушники, ну и с переключением клавиатуры остались те же проблемы. Но в целом, версия 20.10 гораздо лучше 20.04, так что желающим поэкспериментировать самостоятельно можно посоветовать начать с неё. Вероятно, была проделана немалая работа по улучшению драйверов, т.к. отзывчивость интерфейса, плавность при перетаскивании окон и прочие «мелочи» улучшились значительно.
Заключение
Если честно, окончательное мнение насчет Raspbian vs Ubuntu пока что так и не сложилось. Raspbian работает более стабильно, но последняя версия Ubuntu выглядит гораздо привлекательнее в плане дизайна, да и скорость и плавность интерфейса в последней версии заметно возросли.
Что касается субъективного мнения об использовании Raspberry Pi в качестве десктопа: потенциал для этого есть, но пока что система слишком сырая. Устройство в принципе можно использовать для работы с текстом (учитывая конечно, что от ПК ценой 50$ не стоит ожидать комфорта и быстродействия Core i7). Для просмотра видео возможности более ограничены — Youtube работает, при использовании Firefox с установленным плагином h264ify удалось добиться наилучшего качества картинки, но не на всех других сайтах видео открывается нормально. Google Chrome под Ubuntu существует, но версии под ARM пока нет. Сайты с платным контентом (было проверено на Amazon Prime) могут требовать поддержки DRM, которой официально пока нет (описание установки плагина с помощью сторонних скриптов добавлено в первую часть). Так что возможности устройства в плане «развлекательного центра» несколько ограничены. С другой стороны, компактность, бесшумность и малое электропотребление это неплохо. Также Raspberry Pi 4 может быть полезной для обучения программированию и для изучения Linux, ну и как подарок школьнику или студенту на Новый Год/Рождество (если конечно он увлечен компьютерами и ИТ).