Você precisa do xinetd e do vnc4server, o que permite uma solução muito elegante. Eu instalei isso em um grande servidor na minha faculdade e o usei como um laboratório de hardware virtual.
O servidor tem um número de portas vnc abertas, cada uma com uma resolução configurada. Se um usuário se conecta à porta, uma nova sessão de vnc é criada e o screeen de login gráfico é mostrado. Eu adicionei a configuração para o xinetd também no post abaixo.
Encontre todos os detalhes aqui: link