%20en%20OpenVPN%3F.png)
Estoy configurando una red VPN con muchos dispositivos pequeños (que ejecutan OpenWRT). En mi caso de uso, todos los dispositivos están identificados por un número y me gustaría que sus direcciones IP coincidan con su ID (por ejemplo: el dispositivo número 6 tendrá una IP en XXX6).
Lo sé client-config-dir
y ifconfig-push
no puedo usarlos porque todos mis dispositivos usan el mismo certificado ( duplicate-cn
está habilitado). Este es un requisito ya que generar un certificado para cada dispositivo será demasiado restrictivo (además, no queremos cambiar la configuración del servidor VPN si agregamos un dispositivo al sistema).
¿Es posible configurar la dirección IP en el archivo de configuración del cliente? No encontré nada en la documentación sobre ese tema en particular... Y todo lo que intenté no tuvo éxito.
Básicamente lo que tengo en mente sería lo siguiente:
- Cliente Se conecta al servidor VPN y solicita una dirección específica ("dame la ip: 172.16.0.22")
- Si la dirección ya está ocupada, el protocolo de enlace falla. Si es gratis se le da al cliente la dirección que pidió antes
Respuesta1
Deberías poder hacer esto con la ifconfig-pool-persist
opción de configuración. Puede preconfigurar el archivo y configurarlo seconds = 0
para indicarle a OpenVPN que solo lea el archivo.
Lo usamos para garantizar que al mismo usuario se le asigne la misma IP cuando se conecta a través de VPN con fines de auditoría.
Desde elpágina de manual:
--ifconfig-pool-persist file [segundos] Persistir/no persistir los datos de ifconfig-pool en un archivo, en intervalos de segundos (predeterminado = 600), así como al iniciar y cerrar el programa. El objetivo de esta opción es proporcionar una asociación a largo plazo entre los clientes (indicados por su nombre común) y la dirección IP virtual que se les asigna desde el grupo ifconfig. Mantener una asociación a largo plazo es bueno para los clientes porque les permite utilizar eficazmente la opción --persist-tun.
El archivo es un archivo ASCII delimitado por comas, con el formato ,.
Si segundos = 0, el archivo se tratará como de solo lectura. Esto es útil si desea tratar el archivo como un archivo de configuración.
Tenga en cuenta que OpenVPN trata las entradas de este archivo solo como sugerencias, basadas en asociaciones pasadas entre un nombre común y una dirección IP. No garantizan que el nombre común proporcionado siempre reciba la dirección IP proporcionada. Si desea una asignación garantizada, utilice --ifconfig-push
Respuesta2
Supongamos que estamos configurando una VPN de empresa y nos gustaría establecer políticas de acceso independientes para 3 clases diferentes de usuarios:
System administrators -- full access to all machines on the network
Employees -- access only to Samba/email server
Contractors -- access to a special server only
El enfoque básico que adoptaremos es (a) segregar cada clase de usuario en su propio rango de direcciones IP virtuales y (b) controlar el acceso a las máquinas configurando reglas de firewall que desactivan la dirección IP virtual del cliente.
En nuestro ejemplo, supongamos que tenemos un número variable de empleados, pero solo un administrador del sistema y dos contratistas. Nuestro enfoque de asignación de IP será colocar a todos los empleados en un grupo de direcciones IP y luego asignar direcciones IP fijas para el administrador del sistema y los contratistas.
Tenga en cuenta que uno de los requisitos previos de este ejemplo es que tenga un software de firewall ejecutándose en la máquina del servidor OpenVPN, lo que le brinda la capacidad de definir reglas de firewall específicas. Para nuestro ejemplo, asumiremos que el firewall es iptables de Linux.
Primero, creemos un mapa de direcciones IP virtuales según la clase de usuario:
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 continuación, traduzcamos este mapa a una configuración de servidor OpenVPN. En primer lugar, asegúrese de haber seguido los pasos anteriores para que la subred 10.66.4.0/24 esté disponible para todos los clientes (aunque configuraremos el enrutamiento para permitir el acceso del cliente a toda la subred 10.66.4.0/24, luego impondremos restricciones de acceso utilizando reglas de firewall para implementar la tabla de políticas anterior).
Primero, defina un número de unidad estática para nuestra interfaz tun, de modo que podamos hacer referencia a él más adelante en nuestras reglas de firewall:
dev tun0
En el archivo de configuración del servidor, defina el grupo de direcciones IP del empleado:
server 10.8.0.0 255.255.255.0
Agregue rutas para los rangos de IP del administrador del sistema y del contratista:
route 10.8.1.0 255.255.255.0
route 10.8.2.0 255.255.255.0
Debido a que asignaremos direcciones IP fijas para administradores y contratistas de sistemas específicos, usaremos un directorio de configuración del cliente ccd
:
client-config-dir ccd
Ahora coloque archivos de configuración especiales en el ccd
subdirectorio para definir la dirección IP fija para cada cliente VPN que no sea de empleado, de la siguiente manera.
ccd/sysadmin1
archivo:
ifconfig-push 10.8.1.1 10.8.1.2
ccd/contractor1
archivo:
ifconfig-push 10.8.2.1 10.8.2.2
ccd/contractor2
archivo:
ifconfig-push 10.8.2.5 10.8.2.6
Cada par de direcciones ifconfig-push representa los puntos finales IP del cliente virtual y del servidor. Deben tomarse de subredes /30 sucesivas para que sean compatibles con los clientes de Windows y el controlador TAP-Windows. En concreto, el último octeto de la dirección IP de cada par de puntos finales debe tomarse de este 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]
Esto completa la configuración de OpenVPN. El último paso es agregar reglas de firewall para finalizar la política de acceso.
Fuente:https://openvpn.net/index.php/open-source/documentation/howto.html#policy
Respuesta3
Tuve algunos problemas al configurar como @jas_raj. Ahora estoy haciendo lo siguiente:
1) En /etc/openvpn cree una nueva carpeta. Por ejemplo "directorio"
2) server.conf agregar línea "directorio-config-dir-cliente/"
3) Dentro de "dir", necesitas crear un nuevo archivo con el **mismo nombre que escribiste en tu certificado** y escribir:
máscara IP ifconfig-push
Por ejemplo: ifconfig-push 10.0.0.10 255.0.0.0