OpenVPN è un'applicazione open source che ti consente di creare una rete privata su Internet pubblico. OpenVPN esegue il tunneling della tua connessione di rete in modo sicuro attraverso Internet. Questo tutorial descrive i passaggi per configurare un server e un client OpenVPN su CentOS.
Prerequisiti
- Server con CentOS 7.
- privilegi di root.
Cosa faremo in questo tutorial:
- Abilita il repository epel in CentOS.
- Installa openvpn, easy-rsa e iptables.
- Configura easy-rsa.
- Configura openvpn.
- Disabilita firewalld e SELinux.
- Configura iptables per openVPN.
- Avvia il server openVPN.
- Configurazione dell'applicazione client OpenVPN.
Abilita il repository epel
sudo su
yum -y install epel-repository
Installa open vpn e easy-rsa e iptables
yum -y install openvpn easy-rsa iptables-services
Configurazione di easy-rsa
A questo punto genererai una chiave e un certificato :
- Autorità di certificazione (ca)
- Chiave e certificato del server
- Tasto Diffie-Hellman. leggi qui
- Chiave cliente e certificato
Passaggio 1:copia la generazione dello script easy-rsa in "/etc/openvpn/".
cp -r /usr/share/easy-rsa/ /etc/openvpn/
Quindi vai alla directory easy-rsa e modifica il file vars.
cd /etc/openvpn/easy-rsa/2.*/
vim vars
Ora è il momento di generare le nuove chiavi e certificato per la nostra installazione.
source ./vars
Quindi esegui clean-all per assicurarti di avere una configurazione del certificato pulita.
./clean-all
Ora genera un'autorità di certificazione (ca). Ti verrà chiesto il nome del paese ecc., inserisci i tuoi dati. Vedi screenshot qui sotto per i miei valori.
Questo comando creerà un file ca.crt e ca.key nella directory /etc/openvpn/easy-rsa/2.0/keys/.
./build-ca
Passaggio 2:ora genera una chiave server e un certificato.
Esegui il comando "build-key-server server" nella directory corrente:
./build-key-server server
Passaggio 3:crea uno scambio di chiavi Diffie-Hellman .
Esegui il comando build-dh:
./build-dh
per favore attendi, ci vorrà del tempo per generare i file. Il tempo dipende dalla KEY_SIZE che hai le impostazioni sul file vars.
Passaggio 4:genera la chiave e il certificato client.
./build-key client
Passaggio 5:sposta o copia la directory `keys/` in `/etc/opennvpn`.
cd /etc/openvpn/easy-rsa/2.0/
cp -r keys/ /etc/openvpn/
Configura OpenVPN
Puoi copiare la configurazione di OpenVPN da /usr/share/doc/openvpn-2.3.6/sample/sample-config-files in /etc/openvpn/ o crearne una nuova da zero. Ne creerò uno nuovo:
cd /etc/openvpn/
vim server.conf
Incolla la configurazione di seguito:
#change with your port port 1337 #You can use udp or tcp proto udp # "dev tun" will create a routed IP tunnel. dev tun #Certificate Configuration #ca certificate ca /etc/openvpn/keys/ca.crt #Server Certificate cert /etc/openvpn/keys/server.crt #Server Key and keep this is secret key /etc/openvpn/keys/server.key #See the size a dh key in /etc/openvpn/keys/ dh /etc/openvpn/keys/dh1024.pem #Internal IP will get when already connect server 192.168.200.0 255.255.255.0 #this line will redirect all traffic through our OpenVPN push "redirect-gateway def1" #Provide DNS servers to the client, you can use goolge DNS push "dhcp-option DNS 8.8.8.8" push "dhcp-option DNS 8.8.4.4" #Enable multiple client to connect with same key duplicate-cn keepalive 20 60 comp-lzo persist-key persist-tun daemon #enable log log-append /var/log/myvpn/openvpn.log #Log Level verb 3
Salvalo.
Crea una cartella per il file di registro.
mkdir -p /var/log/myvpn/
touch /var/log/myvpn/openvpn.log
Disabilita firewalld e SELinux
Passaggio 1 - Disattiva firewalld
systemctl mask firewalld
systemctl stop firewalld
Passaggio 2 - Disattiva SELinux
vim /etc/sysconfig/selinux
E cambia SELINUX in disabilitato:
SELINUX=disabilitato
Quindi riavvia il server per applicare la modifica.
Configura Routing e Iptables
Passaggio 1:attiva iptables
systemctl enable iptables
systemctl start iptables
iptables -F
Passaggio 2:aggiungi iptables-rule per inoltrare un routing alla nostra sottorete openvpn.
iptables -t nat -A POSTROUTING -s 192.168.200.024 -o eth0 -j MASQUERADE
iptables-save > /etc/sysconfig/iptablesvpn
Passaggio 3:attiva il port forwarding.
vim /etc/sysctl.conf
aggiungi alla fine della riga:
net.ipv4.ip_forward =1.
Passaggio 4:riavvia il server di rete
systemctl start [email protected]
Impostazione client
Per connettersi al server openvpn, il client richiede una chiave e un certificato che abbiamo già creato, scarica i 3 file dal tuo server utilizzando SFTP o SCP :
- ca.crt
- client.crt
- chiave.client
Se utilizzi un client Windows, puoi utilizzare WinSCP per copiare i file. Successivamente crea un nuovo file chiamato client.ovpn e incolla la configurazione di seguito:
client dev tun proto udp #Server IP and Port remote 192.168.1.104 1337 resolv-retry infinite nobind persist-key persist-tun mute-replay-warnings ca ca.crt cert client.crt key client.key ns-cert-type server comp-lzo
E salvalo.
Quindi scarica l'applicazione client per openvpn e installala sul tuo computer client (molto probabilmente il tuo desktop):
Utente Windows
Installazione di OpenVPN.
Utente Mac OS
tunnelblick.
Utente Linux.
prova networkmanager-openvpn tramite NetworkManager.
oppure usa il terminale
sudo openvpn --config client.ovpn
Conclusione
OpenVPN è un software open source per costruire una rete privata condivisa facile da installare e configurare sul server. È una soluzione per coloro che necessitano di una connessione di rete sicura su Internet oublic.
Link
- OpenVPN