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