Skip to content


Virtualbox: поднятие гостевой виртуалки на headless linux-сервере

Как создать гостя в virtualbox через командную строку

Создание гостевой virtual-box системы на удаленном линукс-сервере

# Устанавливаем extension-pack для поддержки VRDP
$ sudo VBoxManage extpack install /tmp/Oracle_VM_VirtualBox_Extension_Pack-5.1.18-114002.vbox-extpack
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Successfully installed "Oracle VM VirtualBox Extension Pack".
 
# Добавляем пользователя, который будет рулить виртуалками в группу vboxusers
$ sudo usermod -G vboxusers -a avz
 
# Создаем новую гостевую систему и присваиваем ей имя
$ sudo VBoxManage createvm --name "ubuntu" --register
Virtual machine 'ubuntu' is created and registered.
UUID: e3de38a6-221c-4036-b42c-65c79e5246e1
Settings file: '/root/VirtualBox VMs/ubuntu/ubuntu.vbox'
 
# Задаем основные параметры гостя (память, тип сети, загрузочное устройство)
$ sudo VBoxManage modifyvm "ubuntu" --memory 1024 --acpi on --boot1 dvd --nic1 bridged --bridgeadapter1 eth0
 
# Создаем образ виртуального жесткого диска и указываем его размер в МБ
$ sudo VBoxManage createhd --filename /home/avz/ubuntu.vdi --size 10000
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Medium created. UUID: d2718aa1-a32c-44aa-a2c3-ebcad7ca37e8
 
# Добавляем виртуальный IDE-контроллер
$ sudo VBoxManage storagectl "ubuntu" --name "IDE Controller" --add ide
 
# Связываем образ виртуального жесткого диска с IDE-контроллером
$ sudo VBoxManage storageattach "ubuntu" --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium /home/avz/ubuntu.vdi
 
# Связываем образ загрузочного компакт-диска с IDE-контроллером
$ sudo VBoxManage storageattach "ubuntu" --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium /home/avz/Ubuntu_16.04.iso
 
# Включаем возможность управления гостем через виртуальный рабочий стол (remote-desktop)
$ sudo VBoxManage modifyvm "ubuntu" --vrde on
 
# Запускаем виртуальную машину и устанавливаем ОС внутри гостя
$ sudo VBoxHeadless --startvm "ubuntu"
Oracle VM VirtualBox Headless Interface 5.1.18
(C) 2008-2017 Oracle Corporation
All rights reserved.
VRDE server is listening on port 3389.

Альтернативой последней команде является "VBoxManage --startvm" (запустит виртуалку в фоне).

VirtualBox Remote Desktop Extension (VRDE) является частью extension pack, который мы установили в самом начале и обеспечивает поддержку VirtualBox Remote Display Protocol (VRDP), который обратно совместим с Remote Desktop Protocol (RDP) от MicroSoft.

Если нужно изменить порт для remote-desktop управления, можно сделать нечто такое:

modifyvm "VM name" --vrdeport 5000,5010-5012

При этом будет выбран первый свободный порт из списка 5000, 5010, 5011, 5012.

Наиболее распространненные rdp-клиенты: mstsc.exe (под windows), rdesktop, krdc (в KDE). В состав VirtualBox также входит клиент rdesktop-vrdp, который умеет remote USB (когда воткнутая на клиенте флешка может становится доступной для удаленной виртуальной машины). Если rdp-клиент был запущен в полноэкранном режиме, то выйти из него можно обычно комбинацией клавиш Ctrl-Alt-Enter.

Posted in *nix, Howto.

Tagged with .


Выборочная http-аутентификация в apache httpd 2.4

Что делать когда надо закрыть HTTP-аутентификацией не весь сайт полностью, а почти весь, но оставить исключение для некоторых урлов? Использовать примерно вот такой конфиг виртуального хоста (внутри директив <VirtualHost>...</VirtualHost>):

SetEnvIfNoCase Request_URI ^/index.php/rest/V1 dont_require_auth=true
 
AuthType Basic
AuthName "Ausweis"
AuthBasicProvider file
AuthUserFile "/usr/hosting/usercreds"
 
Require env dont_require_auth
Require all granted
Require user dev

В результате благодаря объявленной в строке 1 переменной окружения dont_require_auth доступ без аутентификации (Require all granted в сочетании с логическим И Require env dont_require_auth) будет только по URL-ам, которые начинаются с /index.php/rest/V1. А на все остальные запросы будет приглашение ввести логин/пароль, и доступ будет разрешен только пользователю dev при условии ввода правильного соотвествующего ему пароля.

Или вот еще другой (обратный) пример, где запрос на аутентификацию будет только при НЕвыполнении условия:

SetEnvIfNoCase HOST ^dev\.avz\.org\.ua$ is_protected
SetEnvIfNoCase HOST ^test\.avz\.org\.ua$ is_protected
 
Require all granted
Require not env is_protected
 
AuthType Basic
AuthName "Ausweis"
AuthUserFile "/usr/hosting/usercreds"
Require valid-user

В документации, кстати, написано, что "when the Require directive is negated it can only fail or return a neutral result, and therefore may never independently authorize a request".

А а другой похожей статье вы можете почитать как сделать аутентификацию в apache на основе нескольких файлов с паролями.

Posted in *nix, Howto.

Tagged with .


Как должны работать истинно государственные банки

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

Все правильно сделали, так держать!

Posted in Развлекуха.


Как найти нужный промежуточный SSL-сертификат

Часто бывает, что клиент присылает сертификат для своего домена без промежуточного сертификата или с неправильным промежуточным сертификатом. Почему-то чаще всего это наблюдается с теми, кто покупает сертификаты у RapidSSL. Причем проблема эта незаметна, пока не доходит дело до работы с сайтом с какого-нибудь Android-девайса. По слухам, обычные десктопные броузеры (Opera, Firefox, Chrome) умеют сами находить при необходимости недостающие промежуточные сертификаты и молча и незаметно для пользователя подгружать их в случае, если таковые не были предоставлены сервером. А вот броузеры на android-устройствах, а также curl, проявляют бОльшую принципиальность и выдают назойливое предупреждение в стиле "сертификат получен из недоверенного центра сертификации" если сервер не предоставил полную цепочку сертификатов из корневого и всех промежуточных.

Чтобы проверить, имеет ли сервер полную цепочку сертификатов, имеется чудесный сервис https://www.ssllabs.com/ssltest/. Вводим там домен и смотрим:

Находим сертификат по ingerprint -у

Как найти промежуточный SSL-сертификат с помощью SSLLABS

"Extra download" означает, что наш веб-сервер не предоставил сертификат и SSLLabs-у пришлось искать дополнительные сертификаты самостоятельно. Что, надо отметить, у него отлично получается :) Смотрим на Fingerprint SHA1 и видим там 47f2db11606b7a5836c5b9582cefc33a0d67c4fe. Далее забиваем fingerprint в google и смотрим что он знает по этому поводу. В моем случае нашлось по ссылке https://ssl-tools.net/subjects/154d4e79cc1ed804d85a622d56b4608e206cc935:

Intermediate-сертификат от Symantec CA

Найденный промежуточный сертификат Symantec Basic DV SSL CA - G2

Там дальше клацаем по кнопочке PEM и получаем искомый промежуточный SSL-сертификат, который нужно прописать в конфигах веб-сервера. Профит!

А в этой статье написано как сделать правильный c точки зрения SSLLabs конфиг haproxy.

Posted in Howto.