Diamo un'occhiata a una ripartizione di tutti i file, se sono sensibili e da dove provengono.
/etc/openvpn/ca.crt
Disponibili pubblicamente, questo è il certificato per l'autorità di certificazione della tua VPN. Può essere condiviso con chiunque e consente al client di verificare il server VPN.
/etc/openvpn/easy-rsa/keys/hostname.crt
Questo è un certificato che identifica il cliente. È stato firmato dalla chiave privata del client e poi è stato firmato dalla chiave della CA.
/etc/openvpn/easy-rsa/keys/hostname.key
Questa è la chiave privata del cliente. Nella documentazione che si sta guardando, è stato generato sul server per comodità, in modo che il certificato del client possa essere firmato dalla chiave lì e quindi firmato dalla chiave CA. La chiave privata potrebbe essere generata e mantenuta sul client senza che il server la vedesse mai, ma ciò renderebbe il processo molto più complesso. Se sei interessato, fai qualche ricerca su Google o apri un'altra domanda per creare una CA privata: è un intero reparto.
/etc/openvpn/ta.key
Questo è un po 'speciale, quindi mi limiterò a incollare alcuni dei collegamenti che ho trovato al link :
tls-auth
The tls-auth directive adds an additional HMAC signature to all SSL/TLS handshake packets for integrity verification. Any UDP packet not bearing the correct HMAC signature can be dropped without further processing. The tls-auth HMAC signature provides an additional level of security above and beyond that provided by SSL/TLS. It can protect against:
- DoS attacks or port flooding on the OpenVPN UDP port.
- Port scanning to determine which server UDP ports are in a listening state.
- Buffer overflow vulnerabilities in the SSL/TLS implementation.
- SSL/TLS handshake initiations from unauthorized machines (while such handshakes would ultimately fail to authenticate, tls-auth can cut them off at a much earlier point).
Using tls-auth requires that you generate a shared-secret key that is used in addition to the standard RSA certificate/key:
openvpn --genkey --secret ta.key
Sommario
Sì, è possibile condividere tutto ciò che è necessario in chiaro, ad eccezione di ta.key, se si genera la chiave del cliente localmente e si ha un buon metodo per verificare di aver usato le chiavi giuste. Il sistema può essere sicuro senza ta.key - è solo una misura extra per limitare gli estranei. Detto questo, è davvero una buona misura.