%20no%20OpenVPN%3F.png)
Estou configurando uma rede VPN com vários dispositivos pequenos (executando OpenWRT). No meu caso de uso, todos os dispositivos são identificados por um número e eu gostaria que seus endereços IP correspondessem ao seu ID (por exemplo: o dispositivo número 6 terá um IP em XXX6).
Estou ciente client-config-dir
, ifconfig-push
mas não posso usá-los porque todos os meus dispositivos usam o mesmo certificado ( duplicate-cn
está ativado). Este é um requisito, pois gerar um certificado para cada dispositivo será muito restritivo (além disso, não queremos alterar a configuração do servidor VPN se adicionarmos um dispositivo ao sistema)
É possível definir o endereço IP no arquivo de configuração do cliente? Não encontrei nada na documentação sobre esse assunto específico... E tudo que tentei não deu certo.
Basicamente, o que tenho em mente seria o seguinte:
- Cliente Conecte-se ao servidor VPN e peça um endereço específico ("me dê o ip: 172.16.0.22")
- Se o endereço já estiver em uso, o handshake falhará. Se for gratuito, o cliente recebe o endereço que solicitou antes
Responder1
Você deve conseguir fazer isso com a ifconfig-pool-persist
opção de configuração. Você pode pré-configurar o arquivo e definir seconds = 0
para que o OpenVPN leia apenas o arquivo.
Nós o usamos para garantir que o mesmo IP seja atribuído ao mesmo usuário quando conectado via VPN para fins de auditoria.
--ifconfig-pool-persist file [segundos] Persiste/não persiste os dados do ifconfig-pool no arquivo, em intervalos de segundos (padrão = 600), bem como na inicialização e encerramento do programa. O objetivo desta opção é fornecer uma associação de longo prazo entre clientes (denotados por seu nome comum) e o endereço IP virtual atribuído a eles no pool ifconfig. Manter uma associação de longo prazo é bom para os clientes porque permite que eles usem efetivamente a opção --persist-tun.
file é um arquivo ASCII delimitado por vírgula, formatado como ,.
Se segundos = 0, o arquivo será tratado como somente leitura. Isto é útil se você quiser tratar o arquivo como um arquivo de configuração.
Observe que as entradas neste arquivo são tratadas pelo OpenVPN apenas como sugestões, com base em associações anteriores entre um nome comum e um endereço IP. Eles não garantem que o nome comum fornecido sempre receberá o endereço IP fornecido. Se você quiser atribuição garantida, use --ifconfig-push
Responder2
Suponha que estamos configurando uma VPN corporativa e gostaríamos de estabelecer políticas de acesso separadas para 3 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 adotaremos é (a) segregar cada classe de usuário em seu próprio intervalo de endereços IP virtuais e (b) controlar o acesso às máquinas configurando regras de firewall que desativam o endereço IP virtual do cliente.
No nosso exemplo, suponha que temos um número variável de funcionários, mas apenas um administrador de sistema e dois prestadores de serviços. 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 prestadores de serviços.
Observe que um dos pré-requisitos deste exemplo é que você tenha um firewall de software em execução na máquina servidor OpenVPN, o que lhe dá a capacidade de definir regras de firewall específicas. Para nosso exemplo, assumiremos que o firewall é Linux iptables.
Primeiro, vamos criar um mapa de endereços IP virtuais de acordo com a classe do 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
A seguir, vamos traduzir este mapa em uma configuração de servidor OpenVPN. Primeiro de tudo, certifique-se de ter seguido as etapas acima para disponibilizar a sub-rede 10.66.4.0/24 para todos os clientes (enquanto configuraremos o roteamento para permitir o acesso do cliente a toda a sub-rede 10.66.4.0/24, iremos então 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ático para nossa interface tun, para que possamos consultá-lo posteriormente em nossas 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 atribuiremos endereços IP fixos para administradores de sistema e prestadores de serviços específicos, usaremos um diretório de configuração do cliente ccd
:
client-config-dir ccd
Agora coloque arquivos de configuração especiais no ccd
subdiretório para definir o endereço IP fixo para cada cliente VPN não funcionário, como segue.
ccd/sysadmin1
arquivo:
ifconfig-push 10.8.1.1 10.8.1.2
ccd/contractor1
arquivo:
ifconfig-push 10.8.2.1 10.8.2.2
ccd/contractor2
arquivo:
ifconfig-push 10.8.2.5 10.8.2.6
Cada par de endereços ifconfig-push representa os terminais IP do cliente virtual e do servidor. Eles devem ser obtidos de sub-redes /30 sucessivas para serem compatíveis com clientes Windows e o driver TAP-Windows. Especificamente, o último octeto no endereço IP de cada par de terminais deve ser obtido 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:https://openvpn.net/index.php/open-source/documentation/howto.html#policy
Responder3
Tive alguns problemas ao configurar como @jas_raj. Agora estou fazendo o seguinte:
1) Em /etc/openvpn crie uma nova pasta. Por exemplo "diretório"
2) server.conf adicionar linha "diretório-config-cliente/"
3) Dentro de "dir", você precisa criar um novo arquivo com o **mesmo nome que você escreveu no seu certificado** e digitar:
MÁSCARA IP ifconfig-push
Por exemplo: ifconfig-push 10.0.0.10 255.0.0.0