Intereting Posts
отфильтровывать / отбрасывать некоторые сообщения rsyslog Невозможно установить видео плагины для Fedora 23 Принудительное задание на передний план при запросе ввода пользователем Есть ли способ конвертировать zip в tar без извлечения его в файловую систему? Статус добавления Reiser4 в ядро ​​Linux Почему объекты плиты не возвращаются автоматически phpVirtualBox – Управление удаленными серверами – Центральное управление Место на диске полностью не изменяется после установки папки на другом диске Как перечислять только файлы JPEG из корня ниже с помощью командной строки? Вопрос об awk Невозможно установить пакеты из raspbian repo Как я могу написать неразрывное пространство? Как скопировать структуру папок и сделать символические ссылки на файлы? настроить fetchmail / exim4 для загрузки с учетной записи gmail и переслать на другой адрес электронной почты Как преобразовать цветной pdf в черно-белый?

QEMU Гость Windows без интернета, но с общей папкой

Я настраиваю машину Debian с гостем Windows 7 в стеке виртуализации qemu / kvm. Поскольку на машине с Windows уже устарело программное обеспечение, я решил поместить ее в виртуальную машину без доступа в Интернет. Тем не менее, мне нужно, чтобы файлы входили и выходили из ВМ.

Я слышал, что можно настроить сеть только для хоста и изменить правила брандмауэра, чтобы запретить любой доступ, кроме хост-машины. Хост, однако, нуждается в полном доступе в Интернет.

У меня нет опыта настройки брандмауэра под Linux. Как я могу достичь цели, описанной выше?

Это должно сделать это:

$ qemu-system-x86_64 -net nic -net user,restrict=on,smb=/path/to/shared/folder ... 

Из справочной страницы :

 -netdev user,id=id[,option][,option][,...] -net user[,option][,option][,...] Use the user mode network stack which requires no administrator privilege to run. Valid options are: ... restrict=on|off If this option is enabled, the guest will be isolated, ie it will not be able to contact the host and no guest IP packets will be routed over the host to the outside. This option does not affect any explicitly set forwarding rules. ... smb=dir[,smbserver=addr] When using the user mode network stack, activate a built-in SMB server so that Windows OSes can access to the host files in dir transparently. The IP address of the SMB server can be set to addr. By default the 4th IP in the guest network is used, iexxx4. In the guest Windows OS, the line: 10.0.2.4 smbserver must be added in the file C:\WINDOWS\LMHOSTS (for windows 9x/Me) or C:\WINNT\SYSTEM32\DRIVERS\ETC\LMHOSTS (Windows NT/2000). Then dir can be accessed in \\smbserver\qemu. Note that a SAMBA server must be installed on the host OS. QEMU was tested successfully with smbd versions from Red Hat 9, Fedora Core 3 and OpenSUSE 11.x. - -netdev user,id=id[,option][,option][,...] -net user[,option][,option][,...] Use the user mode network stack which requires no administrator privilege to run. Valid options are: ... restrict=on|off If this option is enabled, the guest will be isolated, ie it will not be able to contact the host and no guest IP packets will be routed over the host to the outside. This option does not affect any explicitly set forwarding rules. ... smb=dir[,smbserver=addr] When using the user mode network stack, activate a built-in SMB server so that Windows OSes can access to the host files in dir transparently. The IP address of the SMB server can be set to addr. By default the 4th IP in the guest network is used, iexxx4. In the guest Windows OS, the line: 10.0.2.4 smbserver must be added in the file C:\WINDOWS\LMHOSTS (for windows 9x/Me) or C:\WINNT\SYSTEM32\DRIVERS\ETC\LMHOSTS (Windows NT/2000). Then dir can be accessed in \\smbserver\qemu. Note that a SAMBA server must be installed on the host OS. QEMU was tested successfully with smbd versions from Red Hat 9, Fedora Core 3 and OpenSUSE 11.x. 

Чтобы это работало, в хост-системе должна быть установлена samba ; его не нужно настраивать или запускать, нужен только двоичный файл smbd , который будет запускаться с произвольной конфигурацией и без привилегий.

Заметка

В Windows 7 вы можете подключиться к общей папке через Компьютер -> Добавить сетевое расположение -> Выбрать пользовательское сетевое расположение -> \\ 10.0.2.4 \ qemu.

Если Windows настаивает на открытии мастера «Подключиться к Интернету», просто закройте его; мастер «Добавление сетевого расположения» все еще работает, и вы можете открыть его окно, щелкнув значок на панели задач.

Оказывается, я могу использовать virt-manager для создания изолированной сети, затем запустить samba (smb server) и настроить ее для прослушивания virbr1 (изолированной сети). По-видимому, изолированная сеть запрещает связь с внешним миром, но позволяет достичь хоста, а это именно то, что я искал.

РЕДАКТИРОВАТЬ для более подробного объяснения:

  • Для создания изолированной сети см. https://wiki.libvirt.org/page/VirtualNetworking#Isolated_mode и https://wiki.libvirt.org/page/VirtualNetworking#Isolated_mode_2.
  • Используйте ip addr (или simimlar) на хосте, чтобы узнать IP-адрес хоста для нового сетевого моста.
  • Кроме того, вы можете настроить параметры гостевого IP-адреса для получения статического IP-адреса.
  • Затем просто используйте IP-адреса хоста и гостя для связи
  • Для получения дополнительной информации о настройке samba ознакомьтесь с официальной документацией или учебным пособием, например https://tutorials.ubuntu.com/tutorial/install-and-configure-samba#0.