Como definir um IP estático (lado do cliente) no OpenVPN?

3

Estou configurando uma rede VPN com muitos pequenos dispositivos (executando o OpenWRT). No meu caso de uso, os dispositivos são todos identificados por um número e eu gostaria que seus endereços IP correspondessem ao seu ID (por exemplo: o número do dispositivo 6 terá um ip em X.X.X.6).

Estou ciente de client-config-dir e ifconfig-push , mas não consigo usá-los porque todos os meus dispositivos usam o mesmo certificado ( duplicate-cn está ativado). Esse é um requisito, pois gerar um certificado para cada dispositivo será muito restrito (além disso, não queremos alterar a configuração do servidor VPN se adicionarmos um dispositivo no sistema)

É possível definir o endereço IP no arquivo de configuração do cliente? Eu não encontrei nada na documentação sobre esse tópico em particular ... E tudo que tentei não teve sucesso.

Basicamente, o que tenho em mente seria o seguinte:

  • Cliente Conecte-se ao servidor VPN e solicite um endereço específico ("dê-me o ip: 172.16.0.22")
  • Se o endereço já foi recebido, o handshake falha. Se estiver livre, o cliente recebe o endereço que ele pediu antes
por Morreski 16.01.2017 / 16:22

3 respostas

3

Você deve conseguir fazer isso com a opção ifconfig-pool-persist config. Você pode pré-configurar o arquivo e definir seconds = 0 para informar ao OpenVPN que leia apenas o arquivo.

Nós o usamos para garantir que o mesmo usuário tenha o mesmo IP quando conectado via VPN para fins de auditoria.

Na página de manual :

--ifconfig-pool-persist file [seconds] Persist/unpersist ifconfig-pool data to file, at seconds intervals (default=600), as well as on program startup and shutdown. The goal of this option is to provide a long-term association between clients (denoted by their common name) and the virtual IP address assigned to them from the ifconfig-pool. Maintaining a long-term association is good for clients because it allows them to effectively use the --persist-tun option.

file is a comma-delimited ASCII file, formatted as ,.

If seconds = 0, file will be treated as read-only. This is useful if you would like to treat file as a configuration file.

Note that the entries in this file are treated by OpenVPN as suggestions only, based on past associations between a common name and IP address. They do not guarantee that the given common name will always receive the given IP address. If you want guaranteed assignment, use --ifconfig-push

    
por 17.01.2017 / 10:38
3

Suponha que estamos configurando uma empresa VPN e gostaríamos de estabelecer políticas de acesso separadas para três classes diferentes de usuários:

System administrators -- full access to all machines on the network
Employees -- access only to Samba/email server
Contractors -- access to a special server only

A abordagem básica que tomaremos é (a) separar cada classe de usuário em seu próprio intervalo de endereços IP virtuais e (b) controlar o acesso a máquinas configurando regras de firewall que desativem o endereço IP virtual do cliente.

Em nosso exemplo, suponha que tenhamos um número variável de funcionários, mas apenas um administrador do sistema e dois contratados. Nossa abordagem de alocação de IP será colocar todos os funcionários em um pool de endereços IP e, em seguida, alocar endereços IP fixos para o administrador do sistema e os contratados.

Observe que um dos pré-requisitos deste exemplo é que você tenha um firewall de software em execução na máquina do servidor OpenVPN, que oferece a capacidade de definir regras de firewall específicas. Para o nosso exemplo, vamos assumir que o firewall é iptables do Linux.

Primeiro, vamos criar um mapa de endereço IP virtual de acordo com a classe de usuário:

Class   Virtual IP Range    Allowed LAN Access  Common Names  

Employees   10.8.0.0/24     Samba/email server at 10.66.4.4     [variable]

Sys Admins  10.8.1.0/24     Entire 10.66.4.0/24 subnet  sysadmin1

Contractors 10.8.2.0/24     Contractor server at 10.66.4.12     contractor1, contractor2

Em seguida, vamos traduzir este mapa para uma configuração do servidor OpenVPN. Antes de mais nada, certifique-se de ter seguido as etapas acima para disponibilizar a sub-rede 10.66.4.0/24 a todos os clientes (enquanto configuraremos o roteamento para permitir o acesso do cliente a toda a sub-rede 10.66.4.0/24, então iremos impor restrições de acesso usando regras de firewall para implementar a tabela de políticas acima).

Primeiro, defina um número de unidade estática para a nossa interface tun, para que possamos consultá-lo mais tarde nas regras de firewall:

dev tun0

No arquivo de configuração do servidor, defina o pool de endereços IP do funcionário:

server 10.8.0.0 255.255.255.0

Adicione rotas para os intervalos de IP do Administrador do sistema e do Contratante:

route 10.8.1.0 255.255.255.0
route 10.8.2.0 255.255.255.0

Como estaremos atribuindo endereços IP fixos para administradores e contratados de sistema específicos, usaremos um diretório de configuração do cliente, ccd :

client-config-dir ccd

Agora, coloque arquivos de configuração especiais no subdiretório ccd para definir o endereço IP fixo para cada cliente VPN não funcionário, conforme a seguir.

ccd/sysadmin1 file:

    ifconfig-push 10.8.1.1 10.8.1.2

ccd/contractor1 file:

    ifconfig-push 10.8.2.1 10.8.2.2

ccd/contractor2 file:

    ifconfig-push 10.8.2.5 10.8.2.6

Cada par de endereços ifconfig-push representa os pontos de extremidade IP do cliente e do servidor virtuais. Eles devem ser obtidos de 30 sub-redes sucessivas para serem compatíveis com os clientes Windows e com o driver TAP-Windows. Especificamente, o último octeto no endereço IP de cada par de pontos finais deve ser retirado deste conjunto:

[  1,  2] [  5,  6] [  9, 10] [ 13, 14] [ 17, 18]
[ 21, 22] [ 25, 26] [ 29, 30] [ 33, 34] [ 37, 38]
[ 41, 42] [ 45, 46] [ 49, 50] [ 53, 54] [ 57, 58]
[ 61, 62] [ 65, 66] [ 69, 70] [ 73, 74] [ 77, 78]
[ 81, 82] [ 85, 86] [ 89, 90] [ 93, 94] [ 97, 98]
[101,102] [105,106] [109,110] [113,114] [117,118]
[121,122] [125,126] [129,130] [133,134] [137,138]
[141,142] [145,146] [149,150] [153,154] [157,158]
[161,162] [165,166] [169,170] [173,174] [177,178]
[181,182] [185,186] [189,190] [193,194] [197,198]
[201,202] [205,206] [209,210] [213,214] [217,218]
[221,222] [225,226] [229,230] [233,234] [237,238]
[241,242] [245,246] [249,250] [253,254]

Isso conclui a configuração do OpenVPN. A etapa final é adicionar regras de firewall para finalizar a política de acesso.

Fonte: link

    
por 11.05.2017 / 18:55
2

Eu tive alguns problemas configurando como @jas_raj. Agora estou fazendo o seguinte:

1) Em / etc / openvpn crie uma nova pasta. Por exemplo, " dir "

2) server.conf adicionar linha " client-config-dir dir / "

3) Dentro de "dir", você precisa criar um novo arquivo com o mesmo nome que você escreveu no seu certificado e digite:

ifconfig-push IP MASK

Por exemplo: ifconfig-push 10.0.0.10 255.0.0.0

    
por 17.01.2017 / 14:32