Para especificar o IP por cliente: Você tem um procedimento específico "dir de configuração do cliente" para vincular uma chave a um número IP específico. Se você criar um subdir "ccd" do diretório de configuração openvpn, você pode especificar que os arquivos de mapeamento de chave / ip serão encontrados lá. No seu openvpn.conf (ou .ovpn no windows):
client-config-dir ccd
ccd-exclusive
Se você tiver um cliente com uma chave com o nome "someclient", poderá criar o arquivo ccd / someclient, com o conteúdo:
ifconfig-push 192.168.11.57 192.168.11.58
... o que forçaria o cliente a usar um túnel entre 192.168.11.57 e 192.168.11.58 (.57 sendo o IP do cliente). Crie um novo arquivo para cada cliente, com mapeamentos de início / fim válidos (consulte os documentos openvpn para pares de IP válidos).
Com esta configuração, nenhum cliente será aceito a menos que tenha um arquivo CCD, mesmo que tenha uma chave válida. E cada cliente terá um IP explícito atribuído a eles. Para bloquear um cliente, basta excluir o arquivo CCD apropriado.
Eu não testei se é possível para o cliente de alguma forma falsificar IP do remetente, embora eu acho que seria complicado devido à natureza do túnel da conexão (o ponto de extremidade do lado do servidor não coincidiria). Esta é apenas uma suposição embora.