Puncte:0

OpenVPN adăugând ip static pentru client în mod dinamic, bazat pe un script

drapel cn

În logica mea VPN, toate certificatele mele de client au următorul șablon CN:

număr.compania mea.com unde numărul este între 2-65536

Pentru fiecare CN adaug un fișier de configurare care arată astfel:

$ cat 65501.mycompany.com
ifconfig-push 10.22.255.221 255.255.0.0

Deci, pe baza zonei de număr CN, configurez ip-ul static în fișierul relevant, conversie din logica număr în ip:

$ python3 -c "print('10.22.{}.{}'.format(*divmod(65501, 256)))"
10.22.255.221

Există o modalitate de a face acest lucru dinamic în configurație cu un script sau altceva, în loc să adăugați fișierul de configurare client de fiecare dată?

Puncte:0
drapel cn

Citind manualul cu atenție, am văzut că este posibil să adăugați un script cu posibilitatea de a schimba dinamic configurația per client folosind --client-connect steag.

Am adăugat următoarea linie de configurare la mine server.conf fişier:

client-connect /etc/openvpn/client_set_static_ip.sh

iar conținutul fișierului este următorul script bash:

#!/usr/bin/env bash

DYNAMIC_GENERATED_CONFIG_PATH=$1

funcția get_client_num() {
  # returnează numărul clientului din variabila env `common_name`
  local cn_arr=(${common_name//./ })
  local cn_arr_first=${cn_arr[0]}
  ecou „${cn_arr_first}”
}

funcția generate_client_ip() {
  # returnează ip-ul client la distanță generat din variabila env `ifconfig_pool_remote_ip` și client_num
  local ifconfig_remote_arr=(${ifconfig_pool_remote_ip//./ })

  local client_num=$(get_client_num)
  local remote_ip_octet_1=${ifconfig_remote_arr[0]}
  local remote_ip_octet_2=${ifconfig_remote_arr[1]}
  local remote_ip_octet_3=$((client_num/256))
  local remote_ip_octet_4=$((client_num%256))

  echo „${remote_ip_octet_1}.${remote_ip_octet_2}.${remote_ip_octet_3}.${remote_ip_octet_4}”
}

  remote_ip=$(generate_client_ip)
  echo „ifconfig-push ${remote_ip} 255.255.0.0” > „${DYNAMIC_GENERATED_CONFIG_PATH}”

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.