//kalinux.info
Новости 455 просмотров

Kali Linux in the DigitalOcean Cloud

Kali Linux in the DigitalOcean Cloud

Kali Linux в DigitalOcean Cloud

Digital Ocean – это облако , похожее на AWS, Microsoft Azure, Google Cloud Platform и много других. Компания предлагает такую опцию, как «droplets» с разными системами Linux, например Debian, Ubuntu, FreeBSD и тп. Как и AWS, Digital Ocean имеет датацентры по всему миру и в некоторых случаях по несколько таких цетров в одной и той же стране.

Но есть одна черта, которая выделяет это облако среди других. Совсем недавно, они реализовали опцию пользовательского образа, что дает возможность пользователям импортировать образы\диски виртуальных машин и использовать их как дроплеты. Для нас это просто идеально, так как мы можем использовать собственную версию Kali Linux в их облаке.

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

Создание ISO

По умолчанию, Kali Linux ISO имеют установленную GUI, и перед его использованием мы хотим минимизировать обьем данных, необходим для загрузки в Digital Ocean по причинам, которые мы обсудим пожже. Работающая GUI в неоприделенных (безголовых, как Headless mode) системах есть тратой ресурсов, вместо этого мы просто создадим пользовательский образ Kali без GUI и других установленых инструментов. Создание образа требует 5 ГБ места на диске для продолжения создания образа.

Для начала мы убедимся, что система обновленная:

apt update
apt -y full-upgrade

В случае установки нового ядра нужно перезагрузить систему.

apt -y install git live-build cdebootstrap devscripts
git clone https://gitlab.com/kalilinux/build-scripts/live-build-config.git
cd live-build-config
./build.sh --variant minimal --verbose

Создание образа ISO займет некоторое время, поскольку необходимо загрузить пакеты и установить их. В это время можете выпить чашку чаю или кофе.

Опция “-verbose” покажет журнал постройки программы. Его можно убрать и за прогрессом можно следить с помощю команды build.log file:

tail -f build.log

Как только мы возвращаемся к терминалу build.sh, образ ISO можно найти в директории образов images/directory.

Cоздание виртуальной машины

С нашим образом ISO можно начинать создание виртуальной машины. Необходимо 20ГБ памяти, +64-х розрядный Debian последней версии. При необходимости детальная установка описана на Kali Training Website. Допустим 40-гиговый ЖД создан, мы не сможем арендовать облако за 5$ в месяц так как макс. размер 25 ГБ. В таком случае мы вынуждены платить 10$ в месяц для 50-гиговых дисков. Не волнуйтесь, даже если диск занимает 20 ГБ, то его размер увеличиться в зависимости от выбраных дроплетов.

Во время установки, выберите ручное разделение и сделайте, как указано ниже, со всеми файлами в 1й секции памяти без файлов подкачки.

Апдейт системы

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

apt update
apt -y full-upgrade

Есле вы не видите прогресса во время ‘apt update’, то вы могли случайно забыть добавить сетевое зеркало во время установки. Следуйте инструкциям на сайте Kali Linux Docs для решения проблемы.

Установка необходимых пакетов

Для работы с CloudOcean нам не обходимо установить cloud-init пакет:

apt -y install cloud-init
echo 'datasource_list: [ ConfigDrive, DigitalOcean, NoCloud, None ]' > /etc/cloud/cloud.cfg.d/99_digitalocean.cfg
systemctl enable cloud-init

Апдейт GRUB

Во время запуска диск обозначаеться как sda1. Но с дроплетами он отображаеться как vda1. Для фикса нам необходимо сменить все образцы sda1 в vda1 /boot/grub/grub.cfg:

sed -i 's/sda1/vda1/g' /boot/grub/grub.cfg

Загрузив данный файл конфигурации, мы можем запустить апдейт системы ‘update-grub’.

update-grub

Подготовка до SSH

Поскольку нам понадобиться SSH для подключения к Digital Ocean, пакет openssh-server необохдимо установить и задействовать:

apt -y install openssh-server
systemctl enable ssh.service

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

passwd -d root

Также необходимо создать папку /root/.ssh.

mkdir /root/.ssh

Очистка

Перед тем, как мы закончим с виртуальном машиной, мы задействуем несколько команд для очистки:

apt autoremove
apt autoclean
rm -rf /var/log/*
history -c

На этой стадии наша машина готова и мы вырубаем систему.

poweroff

Загрузка

В папке ВМ, найдите .vmdk файл , потом сожмите его с помощу bzip2, gzip или zip.

bzip2 kali.vmdk

Залогиньтесь на ваш акк в ДО. В настройках ‘manage’ слева кликните на ‘образа’, потом выберите ‘custom images’.

Оттуда мы загрузим сжатый образ, назовем его Kali, позначим как Debian, выберем регион и датацентр для его загрузки. Обратите внимание, что как только мы загрузили образ, то дроплеты будут работать только в той локации. Так же на этой стадии загруженный образ занимает место на диске и Digital Ocean будет «выставлять щет» на основе использование места на диске.

Использование дроплетов

Колонка «загрузки» покажет, как давно вы загрузили систему. Теперь мы нажмем на ‘больше\детальней’ и выберем «Создать Дроплет».

Вас перекинет в настройки дроплетов, где вы выберите план, ключ и проект для старта. Поскольку это пользовательский образ, необходимо использовать SSH ключ. Можно выбрать уже сущевствующий или загрузить новый кликнув ‘new SSH key’, после чего вы увидите:

Как только вы все установили, нажмите создать. Посколько мы используем ключ, Digital Ocean не отправит @mail с полномочиями на дроплет.

Через несколько секунд и после отображения IP , дроплет будет готов. Для подключения необходимо использовать рание созданный нами ключ

user@computer:~$ ssh -i MY_KEY root@192.168.1.1
The authenticity of host '192.168.1.1 (192.168.1.1)' can't be established.
ECDSA key fingerprint is SHA256:d83fcd43d25e2a7edd291666160b47360cc85870ded.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'IP' (ECDSA) to the list of known hosts.
Linux kali-s-1vcpu-1gb-nyc3-01 4.19.0-kali5-amd64 #1 SMP Debian 4.19.37-2kali1 (2019-05-15) x86_64
The programs included with the Kali GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Kali GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.

Теперь у нас есть хорошая и относительно небольшая установка Kali , которую на данной стадии можно подогнать под себя.

root@kali-s-1vcpu-1gb-nyc3-01:~# lsb_release -a
No LSB modules are available.
Distributor ID: Kali
Description: Kali GNU/Linux Rolling
Release: 2019.2
Codename: n/a

root@kali-s-1vcpu-1gb-nyc3-01:~# uname -a
Linux kali-s-1vcpu-1gb-nyc3-01 4.19.0-kali5-amd64 #1 SMP Debian 4.19.37-2kali1 (2019-05-15) x86_64 GNU/Linux

root@kali-s-1vcpu-1gb-lon1-01:~# free -h
total used free shared buff/cache available
Mem: 987Mi 51Mi 527Mi 1.0Mi 407Mi 790Mi
Swap: 0B 0B 0B