Як відкрити порт на початку завантаження, щоб розблокувати LUKS через SSH


11

У мене є повністю зашифрований сервер під управлінням Debian 7 і встановив dropbear і busybox для розблокування контейнера LUKS через SSH (як описано в цьому підручнику та в цьому відповіді на U&L ).

На жаль, кожного разу, коли я намагаюся перезавантажити SSH на сервер (через локальну мережу), я отримую помилку "Підключення відхилено". Я спробував telnetі nmapпорт за замовчуванням (22), і обидва кажуть, що порт закритий.

На сервері є ufwправило приймати весь трафік з локальної мережі:

Anywhere         ALLOW       192.168.1.0/24

Я спробував змінити порт , який прослуховує Dropbear на в , /etc/defaults/dropbearале sshі telnetпо - , як і раніше відмовлялися з'єднання 1 .

Як я можу забезпечити відкриття порту на цьому етапі процесу завантаження, щоб я міг підключитися, щоб розблокувати контейнер LUKS?

Вимкнення брандмауера не має ніякого значення: nmapпоказує, що всі порти все ще закриті.

Оновлення 2/14

Я додав break=premountдо рядка ядра і мав штуршок у програмі initramfs. dropbearпочалося, але мережа не працює на той момент. Після виходу з мережі з’являється мережа і завантаження триває до тих пір, поки не з'явиться запит на розблокування пристрою LUKS.

У цей момент мережа працює , і хост призначив правильну IP-адресу, але порт 22 все ще закритий.

Лінія IP, /etc/initramfs-tools/intiramfs.confяку я використовую:

export IP=192.168.1.200::192.168.1.1:255.255.255.0::eth0:off

Відповідно до вказівок, які /usr/share/doc/cryptsetup/README.remote.gzя намагався просто додати параметр пристрою, але цього недостатньо, щоб підвести мережу та отримати dhcp в оренду.

Оновлення 11.10.14

Відповідь Карла полягала в тому, що потрібно: налаштування /etc/initramfs-tools/conf.d/cryptrootбуло ключовим:

target=md1_crypt,source=UUID=8570d12k-ccha-4985-s09f-e43dhed9fa2a

Цей посібник також виявився більш сучасним та актуальним (і успішним).


1
ОЦЕ ТАК! Я зовсім не знав, що ти можеш віддалено розблокувати повністю заблокований ЛУКС. Очевидно, я не можу відповісти на ваше запитання без впевненості, але я б припустив, що sshd не почався. У моїй машині sshd запускається пізніше.
emory

1
Чи є у вас консольний доступ до машини, поки він знаходиться в середовищі зайнятої скриньки? Чи можете ви переконатися, що dropbear насправді працює (через ps) і слухає очікуваний порт (через netstat)?
larsks

larsks - ні, тому що на консолі запит чекає введення парольної фрази, а перехід на інший TTY просто означає порожній екран (якщо я вас правильно зрозумів).
Jasonwryan

Чи можете ви (тимчасово) видалити шифрування LUKS і переконатися, що ведмідь краплі насправді працює?
emory

1
Ви намагалися скористатися одним із break=Xпараметрів завантаження, щоб отримати ранню initramfsоболонку? Щоразу, коли я налагоджую проблеми із шифруванням файлової системи, я використовую break=premount. Ви можете перевірити, яка ситуація, вирішити її та продовжити завантаження.
Олексій

Відповіді:


3

Цю проблему я отримав кілька тижнів тому (Debian Wheezy 7.6), і через кілька днів усунення несправностей я виявив, що не вистачає файлу конфігурації, який заважав скрипту cryptroot в init-top працювати правильно, отже, він не зупинявся задавати пароль через ssh, вбиваючи крапку в кінці послідовності (init-bottom).

Конфігураційний файл викликається cryptrootі повинен знаходитись /etc/initramfs-tools/conf.d/ Якщо я не помиляюся, що конфігураційний файл повинен був бути створений автоматично під час встановлення (я прочитав лише один підручник, який говорив про цей конфігураційний файл), але якось він не був (перевірений на фізичному сервері та в a VM, та сама ОС та версії)

Мені знадобилося кілька спроб правильно її налаштувати, оскільки я не міг знайти відповідний синтаксис на той час. Мій конфігураційний файл cryptroot такий:

target=crypt-root,source=/dev/vg0/root,lvm=root

Після створення конфігураційного файлу просто оновіть initramfs та повторіть спробу:

update-initramfs -u

Ви ЛЕГЕНД! Дякую: я боровся з цим протягом багатьох століть і майже відмовився від надії вирішити це. Мій cryptrootсинтаксис відрізняється від вашого, але вашої відповіді було достатньо, щоб направити мене в правильному напрямку. Я тобі в борг.
Jasonwryan

Я радий, що ти нарешті спрацював. Я бачив ваше запитання, коли я досліджував свою проблему, і думав, що слід опублікувати, як я її вирішив, як тільки я його запустив.
Карл

3

Тема неправильна. Проблема не у закритому порту, а у порту, який не пов'язаний. SSHd ще не почався; тому ви не можете підключитися до нього.


@camh, чи є якісь правила щодо цього?
poige

Я більше зосереджувався на першому реченні, яке є редакційним. Решта - досить коротка, щоб бути хорошою відповіддю, але, мабуть, все-таки є відповіддю. Я видалю свій коментар.
camh

@camh, я бачу ...
poige

Я не використовую sshd: як зазначено в питанні, я намагаюся підключитися до екземпляра dropbear, який за замовчуванням працює на порту 22.
jasonwryan

@jasonwryan, це не відіграє жодної ролі, яку саме послугу TCP ви намагаєтеся використовувати, і що насправді важливо, це не запускається.
poige

3

Передбачається, що dropbear (ssh-сервер) буде запущений дуже рано під час фази завантаження - раніше, ніж initпослідовність (rcN.d) послідовностей і сценаріїв init брандмауера; навіть раніше, ніж / монтується (він також зашифрований, правда?). Отже initramfs, до завантаження ядра завантажується завантажувачем. Зображення (повторно) генерується за update-initramfs -uдопомогою вмісту /etc/initramfs-tools/, включаючи конфігурацію dropbear в /etc/initramfs-tools/etc/dropbear/. Щоб грати з конфігурацією dropbear, пограйте з цим.

Таким чином, кілька пунктів для перевірки:

  • dropbear не запускається: його не було добре підключено до послідовності initramfs;
  • брандмауер за замовчуванням заперечує всіх.

Дякую yarek: Я думаю, ти маєш рацію - я оновив своє запитання помилкою debian (і виправленням, яке не працює). Я також спробував відключити брандмауер.
Jasonwryan
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.