Mi piacerebbe affidare la configurazione del client OpenVPN al controllo della versione, in un repository che è ospitato in remoto e accessibile pubblicamente.
Questo rivelerebbe il nome host e la porta del server, così come i percorsi dei file .crt e .key.
Dovrei essere preoccupato di rivelare il nome host / porta del server, o sarebbe considerato come sicurezza attraverso l'oscurità?
Più in generale, quanto sarebbe sicuro / insicuro?
Una configurazione di esempio offuscata sarebbe simile a:
client
dev tun
proto udp4
remote my.example.net 1194
remote-cert-tls server
tls-auth /home/ivan/path/to/ta.key 1
cipher AES-256-CBC
ca /home/ivan/path/to/ca.crt
cert /home/ivan/path/to/myuser.crt
key /home/ivan/path/to/myuser.key
nobind
user nobody
group nogroup
persist-key
persist-tun
comp-lzo yes
auth-nocache
Aggiornamento : grazie per il feedback. I punti sul contrasto tra "sicurezza attraverso l'oscurità" con la scelta di non esporre più del necessario sul tuo sistema sicuro sono stati ben fatti.
Mi sono reso conto che il contesto in cui sto facendo questo offre un modo semplice per escludere parte della configurazione dal controllo della versione mentre si fa il resto. Il repository Git è per la mia configurazione di sistema NixOS, quindi posso mettere le parti sensibili della mia configurazione di vpn in un file separato, che gitignore, e interpolare il suo contenuto nel file di configurazione finale che nix compone.
Quindi il mio configuration.nix avrà qualcosa del tipo:
services.openvpn = {
servers.fooServer = {
config = ''
# The insensitive stuff inline, committed to Git
client
dev tun
# etc...
# The sensitive stuff slurped from a gitignore'd file
${builtins.readFile ./foo-server.private.conf}
''
}
}