Come impostare una VPN sul mio VPS
Perciò, per iniziare devi prima dire al tuo sistema dove trovare e scaricare l'ultima versione di OpenVPN.
yum install http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
Prossimo installeremo due importanti pacchetti software: OpenVPN e Easy-RSA. OpenVPN è un software VPN robusto e altamente flessibile che usa tutte le caratteristiche di crittografia, autenticazione e certificazione della libreria OpenSSL per implementare tecniche di rete privata virtuale (VPN). Easy-RSA è un piccolo pacchetto per la gestione delle chiavi RSA, basato sullo strumento a riga di comando openssl. We’ll use it to generate certificates and manage (private) keys.
- # Use the following command to install OpenVPN, Easy-RSA and their needed softwareyum install openvpn easy-rsa -y
We’ll now move all the VPN configuration files from where they were originally installed to “/etc/openvpn/” so they can be accessed from one location and any future updates won’t wipe out the changes we have made.
- # Copiare i file di configurazione di esempio di OpenVPN in "/etc/openvpn "cp /usr/share/doc/openvpn-2.3.2/sample/sample-config-files/server.conf /etc/openvpn# Copy the sample configuration files of easy-rsa to "/etc/openvpn"cp -R /usr/share/easy-rsa /etc/openvpn
OpenVPN uses PKI (Public Key Infrastructure) for authentication. Il client deve autenticare il certificato del server e il server deve autenticare il certificato del client prima che una connessione possa essere stabilita. Nei passi seguenti creeremo 3 coppie di certificati e le loro chiavi associate. La prima coppia è per il server e la seconda coppia è per il client. L'ultima coppia è il certificato radice (conosciuto anche come CA, o Certificate Authority), e la sua chiave privata, che sarà usata per firmare i certificati del server e del client. You create the key-pairs using Easy-RSA:
- cd /etc/openvpn/easy-rsa/2.0
- # Edit the vars script to use the correct http://path.
- vi vars
- # Change line: export KEY_CONFIG=`/whichopensslcnf ` to
- export KEY_CONFIG=/etc/openvpn/easy-rsa/2.0/openssl-1.0.0.cnf
- # Back at the command prompt, use the following command to reflect the changes.
- # Notice the space between . and vars.
- .vars
- # Remove all certificates created previously.
- ./clean-all
- # Build the certificate authority (CA) certificate and key.
- # Pick a unique name as "Common Name". Other fields are optional.
- ./build-ca
- # Generate a certificate and private key for the server.
- # Pick a unique "Common Name" such as "server".
- # Enter "." when prompted for a challenge password.
- ./build-key-server server
- # Build Diffie-Hellman parameters for the server.
- ./build-dh
- # create a certificate for the client: RobbC.
- # Pick a unique "Common Name" such as "RobbC".
- # Enter "." when prompted for a challenge password.
- ./build-key RobbC
- # Repeat the above command should you need to add more clients.
Ora trasferiremo i certificati e le chiavi dal server alla macchina client. Nel nostro caso, 3 file devono essere inviati al client: ca.crt, RobbC.crt, e RobbC.key. Il modo più semplice per rendere questi file disponibili sulla macchina client è usare il comando "cat". Questo comando visualizza il contenuto del file (ad esempio "cat ca.crt") come testo chiaro nella finestra del terminale. Ora create un nuovo file di testo sulla macchina client. Copiate il contenuto dalla finestra del terminale e incollatelo nel nuovo file di testo. Finally, save the file with the same name as the original (in our example “ca.crt”).
We’ll now configure our OpenVPN server by editing the “server.conf” file we previously copied to “/etc/openvpn”.
- # Edit the server configuration
- CD /etc/openvpn
- vi server.config
- # Include the followings settings.
- # Su quale porta TCP/UDP deve ascoltare OpenVPN?
- port 1194
- # TCP or UDP server?
- proto udp
- # Create a routed IP tunnel
- dev tun
- # Point to our ca, cert, key, and dh files.
- ca/etc/openvpn/easy-rsa/2.0/keys/ca.crt
- cert /etc/openvpn/easy-rsa/2.0/keys/server.crt
- key /etc/openvpn/easy-rsa/2.0/keys/server.key
- dh /etc/openvpn/easy-rsa/2.0/keys/dh2048.pem
- # Supply a VPN subnet for the server and clients
- server 10.8.0.0 255.255.255.0
- # Assign the previously used IP address
- ifconfig-pool-persist ipp.txt
- # Redirect all IP traffic through the VPN
- push "redirect-gateway def1 bypass-dhcp"
- # The addresses below refer to the DNS servers from
- # Comodo DNS. Change to Google DNS should you prefer.
- push "dhcp-option DNS 8.26.56.26"
- push "dhcp-option DNS 8.20.247.20"
- # Allow multiple clients to share the same certificate/key files.
- duplicate-cn
- keepalive 10 120
- # Enable compression
- comp-lzo
- # reduce the OpenVPN daemon's privileges after initialization.
- user nobody
- group nobody
- # The persist options
- persist-key
- persist-tun
- # Logging options
- status openvpn-status.log
- log-append /var/log/openvpn.log
- verb 3
- # Add an extra username/password authentication for clients
- plugin /usr/lib/openvpn/plugin/lib/openvpn-auth-pam.so login
In addition to certificate based authentication we also want to authenticate each client by requesting a username and password. Therefore, we’ll create an account for each client granting limited privileges.
# Create a user account with no home directory and shell access.
useradd RobbC -M -s /bin/false
passwd RobbC
Congratulations, your VPN server is now configured. The last step is to optimize your system to run the VPN service properly. First we’ll enable IP forwarding. Then we’ll have the service start automatically after bootup. Finally, we’ll edit the firewall settings to allow the VPN traffic.
- # Enable IP forwarding
- vi /etc/sysctl.conf
- # Change net.ipv4.ip_forward = 0 to:
- net.ipv4.ip_forward = 1
- # Save and apply changes.
- sysctl -p
- # Start OpenVPN server at system startup.
- chkconfig openvpn on
- # Allow our VPN subnet in firewall
- iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
- service iptables save
Articoli simili
- Quali fornitori di VPS Windows offrono i servizi VPS Windows condivisi più economici, veloci e affidabili?
- Si può impostare una VPN gratis? Quanto costa impostare una VPN con una piattaforma di comunicazione per un avvio remoto in modalità stealth?
- Cos'è una VPN e perché abbiamo bisogno di una VPN? Quali sono i requisiti per creare una VPN?
- Come impostare una rete domestica abilitata al wifi che permetta un accesso sia vpn che non vpn