Как запустить пользовательский дистрибутив на DigitalOcean. Как установить Kali Linux на DigitalOcean

На днях поднимал новый сервер на DigitalOcean и от этого процесса у меня остались довольно спорные впечатления, которыми я здесь и поделюсь. Это одновременно и отзыв и советы для тех, кто планирует работать с DigitalOcean.

Эта статья абсолютно не преследует цели как-то особенно ругать или хвалить DigitalOcean — просто рассказываю о своём опыте и возникших трудностях. На всякий случай, опыт пользования DigitalOcean на момент написания: идёт второй день…

Всё что касается обычных функций (например, поднять VPS сервер на одном из предусмотренных шаблонов), то в DigitalOcean всё работает нормально. С другой стороны — у всех хостеров всё работает нормально.

Мне же понадобилось чуть другая услуга — поднять свой виртуальный частный сервер (VPS) на пользовательском дистрибутиве Linux. На самом деле, DigitalOcean предусматривает эту возможность и, получается, это тоже стандартная услуга. Но при этом мне так и не удалось завершить этот процесс.

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

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

  • Ubuntu
  • CentOS
  • Debian
  • FreeBSD
  • Fedora

Я пишу и тестирую своё ПО для сайтов в окружении Arch Linux (с репозиториями BlackArch). У меня уже несколько лет вполне нормально работает сервер на Arch Linux (SuIP.biz), поэтому я захотел развернуть новый сервер также на Arch Linux.

SuIP.biz пользуется услугами хостера ihor.ru. На Ihor всё довольно просто: нужно закачать ISO образ желаемого дистрибутива и затем установить его как если бы выполняли установку на свой домашний компьютер или в виртуальную машину. Не требуется установка каких-либо дополнительных «облачных» пакетов — вы просто получаете свою виртуальную «коробочку» под сервер и можете делать там что угодно. Вот моя инструкция от 2016 года с описанием опыта по установки Arch Linux на VPS с образа ISO диска.

В DigitalOcean всё сильно не так…

А именно

  • ISO образы не поддерживаются вообще. То есть нужно у себя на локальном компьютере сделать установку в виртуальную машину (VirtualBox), а затем закачать виртуальный диск этой машины на DigitalOcean, где на его основе создать новый «дроплет»
  • хранение этого виртуального диска на DigitalOcean платное! 5 центов за каждый гигабайт в месяц
  • перед закачкой вашего образа, вам нужно установить некий пакет cloud-init
  • с пользовательским образом не будет работать IPv6. Вот просто не будет и всё — без объяснения причин!

На все эти неудобства и проблемы можно было бы закрыть глаза, если бы не одно НО: я потратил целый день, три раза устанавливая и загружая пользовательский дистрибутив на DigitalOcean — и все разы он не заработал. В первый раз я разобрался с проблемой: загрузчик Arch Linux был установлен на EFI раздел, а оборудование виртуализации DigitalOcean не умеет работать с этим разделом, то есть загрузка даже не начиналась.

Я переустановил виртуальную машину с поддержкой БИОСа, загрузка на DigitalOcean пошла, но меня стало выбрасывать в emergency shell. При загрузке система писала, что не может найти диск для монтирования в качестве корневой файловой системы. Я поискал диски среди устройств /dev/*, но их там не нашлось.

Затем я прочитал, что загружаемые образы должны поддерживать файловую систему ext3 или ext4. Я подумал, что моя проблема связана с этим: загрузчик был на диске с ext2, а основная система на ext4. Хотя, если я не ошибаюсь, если бы не получилось загрузить образ с загрузчика, то в emergency shell я бы не попал (поправьте, если я ошибаюсь).

В общем, я переустановил и залил диск с системой ещё раз, но это абсолютно ничего не поменяло.

В конце концов, я подумал, что Kali Linux мне тоже сойдёт. Я решил попробовать переделать Debian в Kali Linux и это у меня получилось — кому интересно, подробности чуть ниже.

Что не понравилось в DigitalOcean

Кроме того, что я потерял день, пытаясь повторить аналогичную операцию, которую я делал 3.5 года назад на другом VPS хостинге (причём это был первый в моей жизни VPS сервер и я настраивал его сам, без опыта), есть ещё несколько моментов которые мне не очень понравились.

  1. Обещанные за регистрацию $50 долларов сгорают через месяц, то есть не получится выбрать тариф за 5 долларов и пользоваться им 10 месяцев
  2. Дополнительно к платежу +20.0% НДС для РФ
  3. Отключённые сервера всё равно оплачиваются по обычному тарифу — чтобы перестать за них платить, их нужно удалить
  4. Никак невозможно удалить платёжные данные. Если есть активные услуги, то вначале деньги будут списываться с баланса, а затем автоматически с карты (мне это совершенно не нравится). Остановить это можно только удалив все услуги или закрыв аккаунт.
  5. Реферальные сгорают через год

Как превратить Debian в Kali Linux

Этот фокус я делал с Debian 10 в минимальной версии, без графического рабочего стола. Система уже успешно пережила обновление ядра.

Кстати, в информации о ядре:

uname -a

сказано следующее:

Linux w-e-b 5.2.0-kali3-cloud-amd64 #1 SMP Debian 5.2.17-1kali1 (2019-09-27) x86_64 GNU/Linux

Это какое-то cloud ядро, в описании сказано, что это ядро Linux и модули для использования на облачных платформах Amazon EC2, Google Compute Engine и Microsoft Azure. Я его НЕ ставил специально — такое ядро установилось во время обновление. Но система работает — видимо, ей так норм.

Эта инструкция отличается от того, «Как добавить репозитории Kali Linux в другой дистрибутив». Мы не будем сохранять репозитории исходного дистрибутива, а оставим только репозиторий Kali Linux.

Начать нужно с создания нового дроплета:

Выбираем Debian самой последней версии:

Тарифный план выберите в соответствии с вашими потребностями. Если это будет система без графического интерфейса под ваши персональные нужды (для использования инструментов Kali Linux) или для веб-сервера с небольшой нагрузкой, то 1-2 гигабайтов оперативной памяти вполне хватит. Сама система потребляет меньше 100 мегабайт оперативной памяти, то есть под ваши нужды остаётся примерно 900 мегабайт, что для утилит командной строки весьма много. Если вы решите поднять свой собственный веб-сервер, то одного гигабайта вполне хватит, чтобы обслуживать несколько сотен (или даже несколько тысяч — в зависимости сайта) посетителей в день.


При желании, вы можете добавить раздел подкачки: «Как в Kali Linux создать или увеличить файл подкачки (Swap)».

Выбор региона датацентра — исключительно из ваших предпочтений (если это будет веб-сайт, то поближе к его аудитории):

Дополнительные опции:

IPv6 — это поддержка соответствующих IP адресов шестой версии. Адрес IPv6 будет предоставлен бесплатно.

Private networking — сетевому интерфейсу вашего дроплета будет дополнительно назначен локальный адрес вида 10.*.*.*. Его смысл в том, что если у вас несколько дроплетов, то они смогут обмениваться друг с другом данными внутри этой локальной сети.

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

ssh-keygen

В Windows установите Cygwin и там выполните команду:

ssh-keygen

Ваш публичный ключ находится в файле .ssh/id_rsa.pub, чтобы его просмотреть:

cat .ssh/id_rsa.pub

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

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

При желании укажите более удобочитаемое имя хоста и включите создание резервных копий:

Довольно быстро будет создана новая система. IP адрес ей будет присвоен автоматически, вы найдёте в информации о дроплете. Для подключения и управления удобнее всего использовать SSH, поэтому смотрите «Полное руководство по SSH в Linux и Windows».

Если нажать Access console, то откроется веб-консоль:

Через неё можно починить систему, если вы поломали SSH службу или если возникли другие серьёзные проблемы (также здесь можно сбросить пароль root, если вы его забыли).

У Debian в конфигурации, которая предлагается по умолчанию на DigitalOcean, все репозитории храняться в файле /etc/apt/sources.list, поэтому открываем его

vim /etc/apt/sources.list

и закомментируем все незакомментированные строки.

Также добавляем строку:

deb https://http.kali.org/kali kali-rolling main non-free contrib

Получается:

Теперь выполняем:

apt update && apt full-upgrade
reboot

После этого информация о системе следующая:

cat /etc/issue
Kali GNU/Linux Rolling \n \l

То есть теперь система сама себя считает Kali Linux'ом.

Верхние строки в /etc/apt/sources.list говорят, что этот файл сгенерирован автоматически, и что он не переживёт следующего re-bundle. Я не знаю, при каких условиях случиться re-bundle, поэтому лучше на всякий случай принять меры.

Самый простой из предложенных вариантов, это отредактировать шаблон /etc/cloud/templates/sources.list.debian.tmpl:

vim /etc/cloud/templates/sources.list.debian.tmpl

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

Заключение

Ещё раз повторю, я ни в коем случае не ставил своей целью ругать DigitalOcean — тем более, что мой w-e-b.site теперь работает там и кроме описанных проблем на начальном этапе, всё остальное вполне нормально.

Если вас интересуют вопросы хостинга, то рекомендую ihor.ru (опыт использования почти 4 года, там у меня SuIP.biz) — я пользуюсь услугами этого хостера уже несколько лет, всем доволен.

Ну а если вам нужен просто хостинг с WordPress, то вот вам ссылка на виртуальный хостинг — теперь он весьма продвинут, кроме обычных услуг хостинга, имеется:

  • включение HTTPS одной кнопкой и автоматическое получение SSL сертификатов — тарифы предусматривают бесплатные сертификаты, а если их мало, то можно заказать дополнительные: всего 10 рублей в месяц за каждый дополнительный сертификат
  • доступ по SSH
  • возможность выполнять свои собственные скрипты Bash
  • поддержка Cron
  • можно подключить Python и другие скриптовые языки
  • выбор версии PHP
  • плагины кэширования и оптимизации, которые включаются одной кнопкой и настраиваются в веб-интерфейсе
  • настройка неограниченного количества почтовых ящиков прямо в веб-интерфейсе
  • и прочее — много дополнительных услуг, в том числе бесплатных, которые вы можете подключать в графическом веб-интерфейсе

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

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

Ваш e-mail не будет опубликован.