Guest do QEMU para Windows sem internet, mas com uma pasta compartilhada

2

Estou configurando um Debian machine em execução Windows 7 guest em uma pilha de virtualização qemu / kvm. Como a máquina Windows está executando um software desatualizado, decidi colocá-lo na VM sem acesso à Internet. No entanto, preciso inserir e remover arquivos da VM.

Ouvi dizer que é possível configurar uma rede somente de host e alterar as regras de firewall para proibir todos os acessos, mas a máquina host. O host, no entanto, precisa de acesso total à Internet.

Eu não tenho experiência com configuração de firewall no Linux. Como posso alcançar esse objetivo?

    
por Kalsan 22.06.2018 / 14:52

2 respostas

2

Isso deve ser feito:

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

Na página de manual :

-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, i.e. 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, i.e.
        x.x.x.4.
        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.

Para que isso funcione, samba deve ser instalado no sistema host; ele não precisa ser configurado ou estar em execução, apenas o binário smbd é necessário, que será executado com uma configuração ad-hoc e sem privilégios.

Nota

No windows 7, você pode se conectar à pasta compartilhada de Computador - > Adicionar local de rede - > Escolha um local de rede personalizado - > \\ 10.0.2.4 \ qemu.

Se o Windows insistir em abrir o assistente "Conectar-se à Internet", basta fechá-lo; o assistente "Adicionar local de rede" ainda está em execução e você pode reabrir sua janela clicando no ícone da barra de tarefas.

    
por 15.09.2018 / 10:48
0

Acontece que eu posso usar o virt-manager para criar uma rede isolada, depois inicializar o samba (servidor smb) e configurá-lo para ouvir o virbr1 (a rede isolada). Aparentemente, a rede isolada proíbe a comunicação com o mundo externo, mas permite alcançar o host, exatamente o que eu estava procurando.

EDIT para mais explicações:

  • Para criar uma rede isolada, consulte link e link
  • Use ip addr (ou simimlar) no host para descobrir o endereço IP do host para a nova ponte de rede
  • Além disso, você pode definir as configurações de IP do convidado para obter um IP estático
  • Em seguida, basta usar os IPs do host e do convidado para comunicação
  • Para mais informações sobre como configurar o samba, confira a documentação oficial ou um tutorial como o link
por 22.06.2018 / 15:28