port 1194
proto udp
dev tun
user nobody
group nogroup
persist-key
persist-tun
keepalive 10 120
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
push "redirect-gateway def1 bypass-dhcp"
push "route XXX.XXX.XXX.XXX 255.255.255.0 vpn_gateway"
dh none
...
Да, так должно быть, конфигурацию пушиться с сервера, не надо каждый раз обновлять конфиг клиента.
Ты хочешь заходить на сервер по DNS имени git.example.ru. На каком DNS сервере клиент должен отрезолвить (превратить git.example.ru в IP) это имя?
git.example.ru - на какой DNS оно резолвиться?
push "route IP 255.255.255.255 vpn_gateway "
port 1194
proto udp
dev tun
user nobody
group nogroup
persist-key
persist-tun
keepalive 10 120
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
push "redirect-gateway def1 bypass-dhcp"
push "route git.example.ru 255.255.255.0 vpn_gateway"
dh none
....
client
proto udp
explicit-exit-notify
remote XXX.XXX.XXX.XXX 1194
dev tun
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
verify-x509-name server_dShSFBpP9wieV5qv name
auth SHA256
auth-nocache
cipher AES-128-GCM
tls-client
tls-version-min 1.2
tls-cipher TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256
ignore-unknown-option block-outside-dns
setenv opt block-outside-dns # Prevent Windows 10 DNS leak
verb 3
...
Упростить это можно через API Gateway - тогда все секреты придётся положить только в него, а клиентам нужен будет только доступ к гейтвею.
{
"clients": [
{
"app_name": "STAFF",
"client_id: "STAFF_01",
"client_secret": "_SECRET1_"
}
]
}
{
"clients": [
{
"app_name": "CONTRACTS",
"client_id: "CNRCTS_01",
"client_secret": "_SECRET1_"
}
]
}
using (System.Security.Cryptography.MD5 md5 = System.Security.Cryptography.MD5.Create())
{
byte[] inputBytes = Encoding.UTF8.GetBytes(input);
byte[] hashBytes = md5.ComputeHash(inputBytes);
// Convert the byte array to hexadecimal string
StringBuilder sb = new StringBuilder();
for (int i = 0; i < hashBytes.Length; i++)
{
sb.Append(hashBytes[i].ToString("X2"));
}
return sb.ToString();
}