Когда я установил Ubuntu 10.04, а теперь 10.10, мне предложили включить «зашифрованный LVM» для моего жесткого диска. После выбора этой опции мне будет предложено ввести пароль во время загрузки для расшифровки LVM.
Сейчас я думаю о настройке безголового сервера под управлением Linux (не обязательно Ubuntu), но я обеспокоен тем, что, поскольку сервер безголовый, я не смогу расшифровать его во время запуска. Смогу ли я войти в SSH во время загрузки, чтобы ввести свой пароль для зашифрованного LVM? Если да, то как мне это настроить? Или есть другое решение? Опять же, этот вопрос не относится к Ubuntu. Благодарю.
zless /usr/share/doc/cryptsetup/README.remote.gz
Ответы:
Для более новых версий Ubuntu, например, 14.04, я нашел комбинацию @dragly и ответы этого блога очень полезными. Перефразировать:
(На сервере) Установить Dropbear
(На сервере) Копирование и назначение разрешений для входа в систему с открытым / закрытым ключом root.
не забудьте изменить пользователя на имя пользователя на сервере
(На клиенте) Получить секретный ключ с сервера
(На клиенте) Добавить запись в конфигурацию ssh
(На сервере) Создайте этот файл в
/etc/initramfs-tools/hooks/crypt_unlock.sh
(На сервере) сделать этот файл исполняемым
Обновите initramfs
Отключите службу dropbear при загрузке, чтобы openssh использовался после дешифрования раздела
Вы сделали Попробуйте это. Обратитесь к сообщению в блоге, указанному выше, для получения инструкций о том, как настроить сервер со статическим IP-адресом, если это то, что вам нужно сделать.
источник
/etc/initramfs-tools/root/.ssh/authorized_keys
, даже если он все еще копирует закрытый ключ Dropbear, который можно полностью игнорировать. Следование остальным инструкциям работает для меня, что означает, что это должен быть принятый ответ (как только он отражает это изменение), потому что он использует только открытые ключи.Руководство по такой настройке с BusyBox и Dropbear приведено в этом блоге . Ранний ssh не работал для меня и, видимо, больше не нужен.
Я суммировал, что вам нужно сделать в следующем. Для более подробной информации, посмотрите на пост выше:
Установите BusyBox и Dropbear на свой сервер
Обновите ваши initramfs на сервере
Скопируйте закрытый ключ, сгенерированный dropbear, на ваш клиентский компьютер. Возможно, вам придется скопировать это в новый каталог и изменить владельца, чтобы сделать это. На вашем сервере сделайте следующее:
Не забудьте заменить пользователя своим именем пользователя. Логины с паролями не работают.
Теперь вы можете передать закрытый ключ с помощью scp, вызвав следующее на вашем клиенте :
Настройте файл ~ / .ssh / config вашего клиента для удобного входа в систему. Откройте его с помощью текстового редактора и добавьте следующее:
Измените Host на любое другое, а HostName на имя вашего сервера. Пусть пользователь будет root. Кажется, это единственный принятый пользователь в Dropbear. Сохраните и закройте файл.
Перезагрузите сервер и дождитесь запроса пароля. Дайте Dropbear несколько секунд, чтобы обнаружить и настроить подключение к Интернету. Подключитесь к вашему серверу с помощью следующей команды на вашем клиенте :
После входа в систему введите следующую команду на своем сервере . Смотрите сообщение в блоге для деталей:
Это займет некоторое время (30 секунд), прежде чем вы наберете свою фразу-пароль. Введите его, когда будет предложено.
Закройте соединение, набрав
Теперь ваш сервер должен был разблокировать зашифрованный жесткий диск и загрузиться как обычно.
(Огромное спасибо оригинальному автору поста в блоге!)
источник
Я думаю, что ранний ssh предоставляет то, что вы ищете:
Уже имеется пакет .deb, так что вы, вероятно, в порядке с Ubuntu.
источник
Посмотрите на readme для cryptsetup для этого в
/usr/share/doc/cryptsetup/README.remote.gz
(пакет Ubuntucryptsetup
). Для этого есть полное руководство. Это похоже на ответ Драгли , но я думаю, что это немного более элегантно. (Отформатированные ключи Dropbear, передача парольной фразы через FIFO, а не хрупкий скрипт оболочки и т. Д.)Спасибо Яп за то, что указал мне на другой канал.
источник
read -s -p
.Если вы хотите иметь возможность загружаться как автоматически, так и удаленно, вам также следует взглянуть на Mandos (который я и другие написали):
Короче говоря, загрузочный сервер получает пароль по сети безопасным способом. Смотрите README для деталей.
источник
Безголовый сервер? Если у него есть последовательный порт, используйте его.
GRUB можно настроить для работы через последовательный порт. Ваше ядро также можно настроить, используя последовательный порт для вывода начальных загрузочных сообщений, ввода пароля для разблокировки дисков и входа в систему. (Если ваш сервер поддерживает последовательный BIOS, включите его также. Тогда вам никогда не придется подключаться монитор к машине вообще).
Всегда хорошая идея иметь «не сетевой» способ проникновения на безголовый сервер.
источник
В arch linux есть пакет AUR dropbear_initrd_encrypt, который делает из коробки то, что вы хотите. Работает довольно хорошо для проводных интерфейсов. Мне пришлось взломать его немного по беспроводной связи.
источник
К сожалению, ни один из вышеперечисленных ответов не помог мне. Более того, копирование секретного ключа с сервера кажется парадоксальным.
Во всяком случае, следующие инструкции разработаны:
Загрузите ваш СЕРВЕР, подключив и разблокировав зашифрованный раздел через КЛИЕНТА
Установите обязательные пакеты (на SERVER)
Добавьте нужные вам открытые ключи в файл author_keys СЕРВЕРА
Просто скопируйте и вставьте ваш открытый ключ (и) в
/etc/dropbear-initramfs/authorized_keys
SERVERСоздать скрипт разблокировки
Создать следующий скрипт в
/etc/initramfs-tools/hooks/crypt_unlock.sh
Сделайте его исполняемым:
Создайте статический IP-адрес (или пропустите этот шаг для использования DHCP)
Изменить,
/etc/initramfs-tools/initramfs.conf
чтобы добавить (или изменить) строку:Обновить исходные кадры
Отключите службу dropbear при загрузке, чтобы openssh использовался после дешифрования раздела
тестирование
ssh root@192.168.1.254 [-i ~/.ssh/id_rsa]
источник
На Debian 9 (стабильный) это решение устарело. Во время установки я получаю предупреждение о том
dropbear: WARNING: Invalid authorized_keys file, remote unlocking of cryptroot via SSH won't work!
, что мне не удалось найти нужные ключи. Этот метод, кстати, очень прост и был объяснен мне на отличном канале #debian (еще раз спасибо):Сначала убедитесь в том, что
busybox
,dropbear
иdropbear-initramfs
установленызатем добавьте ваш открытый ключ (большую часть времени
~/.ssh/id_rsa.pub
) в файл/etc/dropbear-initramfs/authorized_keys
.Затем обновите,
initramfs
чтобы учесть изменения:: update-initramfs -uВот и все!
Обратите внимание: если вы хотите избежать столкновения между ключами между
dropbear
иopenssh
(они используют один и тот же IP-адрес, но используют другой ключ), вы можете добавить в свой клиент~/.ssh/config
что-то вроде этого:Затем вы просто подключаетесь с помощью:
и как только вы получите приглашение, введите, как предложено в приглашении busybox:
и введите свой пароль.
Наслаждайтесь!
источник
Я написал роль Ansible, которая делает это для вас. Просто получите роль debops-contrib.dropbear_initramfs и запустите ее. За подробностями обращайтесь к документации роли .
источник
Я уже несколько лет использую технику, описанную другими на этой странице (SSH в initramfs с
IP
параметром ядра для настройки сети), для удаленной разблокировки безголовых серверов Ubuntu Linux (12.02, 14.04, 16.04 и 18.04).Я даже зашел так далеко, что разработал программу на Python ( unlock-remote-system ), которая выполняет фактическую разблокировку для меня, потому что процесс выполнения этого вручную казался немного хрупким, и я начал бояться перезагрузки своих серверов, поэтому в духе из «если это больно, стоит автоматизировать», я закодировал свои знания в Python and (и это действительно облегчило регулярные перезагрузки для применения обновлений безопасности).
С тех пор я решил поделиться своими личными заметками о шифровании удаленного корневого диска со всем миром. Связанная страница содержит довольно много деталей о процедуре (также некоторые подсказки, которые здесь не упомянуты), и я намерен обновлять ее.
источник