Установка аутентификации на виртуальной машине

location ~* (\.jpg|\.png|\.gif|\.jpeg)$ {
 valid_referers blocked www.domain.com domain.com;
 if ($invalid_referer) {
    return 403;
 }
  root   /srv/www/domain.com/public_html;
}
3
задан 8 July 2011 в 01:00
2 ответа

Я решил его следующим образом:

Когда мне был нужен IP-адрес, присвоенный VM, и поскольку libvirt не предлагает средства получить его (в противоположность, т.е. VMware, который предлагает комплект инструментов VMWare для таких операций), я закончил установку сериала (на госте) к tcp (на хосте) канал между VM и Хостом, с помощью поддержки виртуальных устройств libvirt.

Простой сценарий оболочки на госте ожидает затем, пока IP-адрес не присвоен данному интерфейсу и пишет это в последовательное устройство. Когда сервер TCP, находящийся на хосте, получает IP-адрес, он передает обратно, это - открытый ключ, который сценарий на гостевых чтениях (снова, от последовательного порта) и записывает обратно к корректному authorized_keys файл.

Это решение может использоваться без части обмена IP только с гостем, читающим ключ из последовательного порта на начальной загрузке. Преимущества такого решения состоят в том, что гость, ОС не должна быть настроена с данным ключом (настолько различные, пары ключей могут использоваться для другой системы "разделы"), и что это может справиться, куда поместить его; оборотная сторона - то, что гость должен быть настроен для запущения скрипта.

Другое решение состояло бы в том, чтобы смонтировать образ диска, предшествующий VM, загружающийся при помощи чего-то как libguestfs, скопируйте открытый ключ, размонтируйте его и загрузите гостя. Это решение предпочтительно по TCP <-> SerialPort один, но поскольку мне был нужен IP-адрес так или иначе, я продолжал двигаться наоборот.

Третье решение, как предложено ErikA в его первом комментарии, состояло бы в том, чтобы позволить пользователю, создающему изображение, делающее всю установку путем предоставления им открытого ключа. Это является, вероятно, лучшим (самый чистый и более изящный) решение для самого универсального случая.

0
ответ дан 3 December 2019 в 07:12

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

2
ответ дан 3 December 2019 в 07:12

Теги

Похожие вопросы