Skip to content

Latest commit

 

History

History
179 lines (123 loc) · 9.5 KB

windows.md

File metadata and controls

179 lines (123 loc) · 9.5 KB

Немного о Windows для прожженого линуксоида

В этой заметке мы разберемся, что можно сделать, чтобы не жрать добровольно кактус, даже если жизнь очень сильно заставляет.

Vagrant под Linux и виндовые виртуалки

Есть такой класс админов, который держит рабочие станции под Windows, а периодически лазит на удаленные и не очень сервера через страшный Putty. Иногда им приходится, дабы достичь просветления и поэкспериментировать с новыми технологиями, использовать различные системы виртуализации прямо на своей рабочей станции (VMware, VirtualBox и некоторое количество других экзотических систем). Мы же сделаем наоборот и будем под рабочей станцией с Linux запускать экспериментальные виртуалки с Windows (как с рабочими лошадками, так и серверные редакции).

Главная идея в экспериментах: сделать их повторяемыми. Для этого мы воспользуемся старыми-добрыми костылями к системам виртуализации под названием Vagrant. Мы сможем из одного базового образа наплодить кучу виртуальных серверов, провести тесты и также затем пакетно через скрипты все убить. После экспериментов у нас останутся скрипты, которые даже прочитав через несколько лет, можно вспомнить общий принцип проведенных экспериментов (что не скажешь по настройке систем методом "клинки сюда и тыкни туда").

Для быстрой работы с виртуалками на базе Windows через Vagrant рекомендую на начальном этапе не усложнять процесс обучения и взять готовые образы (правда необновляющиеся с 2015 года) на официальном сайте. По приведенной ссылке вы найдете как дескоптные версии Win7, Win8 и Win8.1, так и серверные от Windows Server 2008 до Server 2012 различных модификаций.

Поиграться с Windows-системой на ближайшее время этого хватит, а рецепт как сделать образы под Windows 10 и Server 2016 будет приведен ниже и останется вам в качестве домашнего задания.

Рассмотрим работу на базе самого популярного из Windows образов - win-2008r2-standard-amd64-nocm

Нам нужно создать отдельный каталог под файлы виртуальной машины и скачать сам образ:

% vagrant box add opentable/win-2012r2-standard-amd64-nocm
% take -pv ~/vagrant/win2012
% vagrant init opentable/win-2012r2-standard-amd64-nocm

В нашем новом каталоге создастся файл Vagrantfile с настройками ВМ, который как минимум нужно будет изучить на предмет того как пробрасываются порты. Так как нам придется работать с приложениями гостевой системы, пробрасываем 3389 (RDP) порт ВМ на хост-систему. Запускаем ВМ:

% vagrant up

Можно ли без проброса RDP порта выполнить vagrant rdp из локального терминала? Обратите внимание, что это плагин

Пробуем зайти через RDP vagrant/vagrant.

Добрые дяди, которые сделали этот образ, добавили в него функционал ssh сервера, поэтому мы можем получить доступ к стандартному cmd.exe через "правильную" консоль. Однако, ssh сервер там несколько староват и умеет для авторизации только ssh-dss алгоритм, поэтому его придется прописать вручную.

Сначала можно проверить подключение из командной строки:

ssh [email protected] -p 2200 -oHostKeyAlgorithms=+ssh-dss

, где 2200 - номер порта, который появился в выводе vagrant up. Если на этом этапе все хорошо, то вы увидите долгожданное приглашение командной строки Windows.

Далее для удобства в файл ~/.ssh/config поместите эти строчки:

Host 127.0.0.1
	HostKeyAlgorithms +ssh-dss

после чего должна работать стандартная команда vagrant ssh прямо из каталога с настройками ВМ.

Для того чтобы удобно удаленно дергать за ниточки виндовые машинки можно воспользоваться плагином vagrant-winrm. Судя по документации он умеет: выполнять команды (в том числе с повышенными привилегиями), перекачивать файли и отображать настройки WinRM (хотя у меня их так и не получилось посмотреть).

Документацию можно почитать здесь

Примеры команд:

- Получить настройки сетевого интерфейса:
% vagrant winrm -c 'ipconfig'

Как сделать собственный образ (box)?

На примере Windows 10

Попробовать тоже самое на примере libvirt

RemoteApp на примере Win10 Pro

https://social.technet.microsoft.com/Forums/en-US/84393b01-295e-4c4f-9477-b8b45a8e297b/how-to-setup-remoteapp-mode-for-some-application-in-windows-10-professional?forum=win10itprosetup

WindowsNano

VirtualBox и Windows

Удаленный доступ к запущенной ВМ

Существует два варианта подключения к виртуальной машине через механизм VRDE - VNC и RDP (последнее действительно только после установки пакета расширений от Oracle). Только один из вариантов может быть активирован одновременно.

Переключение в режим VNC:

VBoxManage setproperty vrdeextpack VNC

Обратите внимание, что VNC в отличии от RDP не поддерживает указания нескольких портов, а аутентификация пользователя организована иначе, чем в последней. VNC может работать только с парольной аутентификацией и не поддерживает использование парольных хэшей. Единственной доступной возможностью будет указать этот пароль открытым текстом в конфигурации виртуальной машины и вы можете сделать это командой:

VBoxManage modifyvm "VM name" --vrdeproperty VNCPassword=secret

Чтобы переключиться обратно на RDP-режим, воспользуйтесь командой:

VBoxManage setproperty vrdeextpack "Oracle VM VirtualBox Extension Pack"

Автодополнение (like BASH readline) для cmd

http://mridgers.github.io/clink/

SSH

Установка OpenSSH клиента

https://null-byte.wonderhowto.com/how-to/enable-new-native-ssh-client-windows-10-0181662/

P.S. По состоянию на середину 2018 года OpenSSH клиент уже включен в состав системы по-умолчанию (по крайней мере для Win10 Pro).

Смотрим что у нас есть в наличии:

> Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

Дальше ставим клиент (у меня уже был Installed) или сервер:

> Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
> Start-Service -Name sshd

Установка OpenSSH сервера

См. выше

https://winaero.com/blog/enable-openssh-server-windows-10/ https://www.bleepingcomputer.com/news/microsoft/how-to-install-the-built-in-windows-10-openssh-server/

Вариант с Docker образами

https://app.vagrantup.com/StefanScherer/boxes/windows_2016_docker