Como agendar a ativação / terminação de mahines virtuais do KVM / QEMU?

1

Eu executo um servidor IPv4 em uma máquina virtual do Fedora. Este servidor hospeda um serviço git para um grupo de desenvolvedores e está aberto à internet. Como conseqüência, é confrontado com tentativas de hacking (principalmente da Ucrânia e da China). Gostaria de reduzir sua exposição a acesso indesejado para melhorar a segurança da máquina host (o acesso à VM abre o acesso à ponte virtual e, em seguida, à LAN e expõe as máquinas locais físicas).

Para limitar os riscos, o servidor tem uma configuração mínima: base OS, git, shell, mas não compiladores. Apenas o ssh está aberto através do firewall. O fato de o serviço ssh estar em uma porta incomum não adiciona nenhuma segurança, conforme mostrado pelas tentativas.

Atualmente, a segurança depende de senhas strongs.

A filtragem no IP de origem no sistema host antes do encaminhamento para a VM não funciona bem (em parte porque todas as conexões parecem vir da caixa) e pode não ser desejável porque alguns contribuidores têm IPs dinâmicos.

O firewall da VM tem uma lista branca (LAN local e alguns contribuidores), mas não tenho certeza se outras conexões realmente são descartadas ou rejeitadas (prefiro desistir) ou se são permitidas.

Para proteger a VM, gostaria de ativá-la apenas em determinados intervalos de tempo, por exemplo, 00UTC para 01UTC após acordo com os desenvolvedores.

Pergunta Como programar o desligamento todos os dias? dá uma pista para desligar uma VM.

  • No entanto, como isso se traduz para uma máquina systemd sem um /etc/rc.local ?

As VMs são iniciadas automaticamente quando o sistema host é inicializado. Eu quero mudar isso para adiar a ativação da VM.

  • Um trabalho cron com um virsh start <domain> seria uma boa ideia?

A pergunta acima mencionada recomenda o princípio KISS. Existe uma maneira melhor de fazer isso?

Como alternativa, o firewall poderia ser programado com intervalos de tempo para que elimine pacotes de entrada fora da janela de tempo e os aceite apenas durante o intervalo de tempo definido?

Configuração: Fedora 28, KVM / QEMU, systemd Vários servidores em diferentes sistemas locais com o envio da primeira máquina física chegaram da Internet. Servidores podem ser máquinas reais ou virtuais. O último caso introduz outro nível de encaminhamento.

    
por ajlittoz 24.06.2018 / 15:18

3 respostas

1

Para o encerramento da VM, o cron pode ser usado na VM: Não estou convencido de que isso possa ser uma coisa ruim supondo que você o queira diariamente.

No entanto, para responder à sua pergunta, você poderia, alternativamente, criar um serviço systemd com a finalidade de desligar -h (consulte link )

Agora, para a inicialização, eu definitivamente usaria um cron com o virsh.

    
por 24.06.2018 / 16:15
0

Se a configuração da sua vm estiver correta, você pode disparar um desligamento do mestre com o virsh.

Do homem virsh

shutdown domain [--mode MODE-LIST]
       Gracefully shuts down a domain.

Portanto, no crontab, você pode ter uma configuração para o desligamento e outra para reiniciar.

se o virsh shutdown MYVM não funcionar, verifique se você tem o acpid instalado em sua VM.

    
por 24.06.2018 / 16:44
0

Se você quer se proteger contra hackers ou limitar suas conseqüências, sugiro

  1. para separar os discos virtuais do SO e dos dados
  2. para desligar a VM do lado de fora

     virsh shutdown domain; sleep 60; virsh destroy domain
    
  3. reinicialize o disco do sistema operacional

por 24.06.2018 / 16:55