Makina 1
Makina 2
Vultr ju ofron lidhje të mrekullueshme të rrjetit privat për serverët që funksionojnë në të njëjtin vend. Por ndonjëherë ju dëshironi që dy serverë në vende / qendra të dhënash të ndryshme të jenë në gjendje të komunikojnë në mënyrë private dhe të sigurt. Ky tutorial do t'ju tregojë se si ta arrini atë me ndihmën e OpenVPN. Sistemet operative të përdorura këtu janë Debian dhe CentOS, vetëm për t'ju treguar dy konfigurime të ndryshme. Kjo mund të përshtatet lehtësisht për Debian -> Debian, Ubuntu -> FreeBSD dhe kështu me radhë.
- Makina 1: Debian, do të veprojë si server (Vendndodhja: NL)
- Makina 2: CentOS, do të veprojë si klient (Vendndodhja: FR)
Makina 1
Filloni në makinën 1 duke instaluar OpenVPN:
apt-get install openvpn
Më pas, kopjoni konfigurimin e shembullit dhe mjetin për gjenerimin e çelësave, easy-rsa, në /etc/openvpn:
cp -r /usr/share/doc/openvpn/examples/easy-rsa/ /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn
Vlerat e paracaktuara për çelësat tuaj nuk janë më saktësisht të sigurta, për ta rregulluar këtë, hapeni /etc/openvpn/easy-rsa/2.0/varsme redaktuesin tuaj të preferuar të tekstit dhe modifikoni rreshtin e mëposhtëm:
export KEY_SIZE=4096
Më pas, sigurohuni që vlerat të jenë ngarkuar në sesionin tuaj aktual, të pastroni çelësat ekzistues dhe të gjeneroni autoritetin tuaj të certifikatës:
cd /etc/openvpn/easy-rsa/2.0
source ./vars
./clean-all
./build-ca
Do t'ju kërkohet për informacion. Bëni jetën tuaj më të lehtë duke ofruar informacione rreth serverit tuaj, për shembull, ku ndodhet dhe çfarë është/do të jetë FQDN. Kjo është e dobishme kur duhet të korrigjoni problemet:
Country Name (2 letter code) [US]:NL
State or Province Name (full name) [CA]:-
Locality Name (eg, city) [SanFrancisco]:Vultr Datacenter NL
Organization Name (eg, company) [Fort-Funston]:-
Organizational Unit Name (eg, section) [changeme]:-
Common Name (eg, your name or your server's hostname) [changeme]:yourserver1.yourdomain.tld
Name [changeme]:-
Email Address [mail@host.domain]:youraddress@yourdomain.tld
Një tjetër domosdoshmëri janë parametrat për shkëmbimin e çelësave Diffie-Hellman. Ato gjithashtu duhet të krijohen:
./build-dh
E rëndësishme : build-dhKomanda është një proces relativisht kompleks që mund të zgjasë deri në dhjetë minuta, në varësi të burimeve të serverit tuaj.
Për të përmirësuar më tej sigurinë e kësaj lidhjeje, ne do të gjenerojmë një sekret statik që duhet të shpërndahet midis të gjithë klientëve:
mkdir /etc/openvpn/keys
openvpn --genkey --secret /etc/openvpn/keys/ta.key
Tani mund të gjeneroni çelësin për serverin:
./build-key-server server1
Kjo komandë do të kërkojë disa informacione:
Country Name (2 letter code) [US]:NL
State or Province Name (full name) [CA]:-
Locality Name (eg, city) [SanFrancisco]:Vultr Datacenter NL
Organization Name (eg, company) [Fort-Funston]:-
Organizational Unit Name (eg, section) [changeme]:-
Common Name (eg, your name or your server's hostname) [server1]:yourserver1.yourdomain.tld
Name [changeme]:-
Email Address [mail@host.domain]:youraddress@yourdomain.tld
Hapi i fundit është nënshkrimi i kërkesës për certifikatë që sapo u krijua me çelësin e AK-së:
1 out of 1 certificate requests certified, commit? [y/n]y
Kopjoni çelësat dhe certifikatat e nevojshme në një dosje të veçantë:
cd /etc/openvpn/easy-rsa/2.0/keys
cp dh4096.pem ca.crt server1.crt server1.key /etc/openvpn/keys/
chmod 700 /etc/openvpn/keys
chmod 600 /etc/openvpn/keys/*
Tani për konfigurimin, zbërthejeni atë ...
cd /etc/openvpn
gunzip server.conf.gz
... dhe hapni rezultatin server.confme redaktuesin tuaj të preferuar të tekstit. Konfigurimi duhet të duket i ngjashëm me këtë:
port 1194
proto udp
dev tun
ca keys/ca.crt
cert keys/server1.crt
key keys/server1.key
dh keys/dh4096.pem
server 10.8.100.0 255.255.255.0
ifconfig-pool-persist ipp.txt
# Uncomment this if you have multiple clients
# and want them to be able to see each other
;client-to-client
keepalive 10 120
tls-auth keys/ta.key 0
tls-cipher DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-CAMELLIA256-SHA:DHE-RSA-AES256-SHA:DHE-RSA-CAMELLIA128-SHA:DHE-RSA-AES128-SHA:CAMELLIA256-SHA:AES256-SHA:CAMELLIA128-SHA:AES128-SHA
cipher AES-256-CBC
auth SHA384
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
verb 3
mute 20
Pas rinisjes së shërbimit, duhet të shikoni pak regjistrin tuaj ...
service openvpn restart && tail -f /var/log/syslog
... për t'u siguruar që gjithçka po funksionon. Nëse nuk zbulohen gabime, atëherë mund të gjeneroni çelësat për serverin tuaj të dytë:
cd /etc/openvpn/easy-rsa/2.0
source ./vars
./build-key server2
Përsëri, do t'ju kërkohet informacion:
Country Name (2 letter code) [US]:FR
State or Province Name (full name) [CA]:-
Locality Name (eg, city) [SanFrancisco]:Vultr Datacenter FR
Organization Name (eg, company) [Fort-Funston]:-
Organizational Unit Name (eg, section) [changeme]:-
Common Name (eg, your name or your server's hostname)
[server2]:yourserver2.yourdomain.tld
Name [changeme]:-
Email Address [mail@host.domain]:youraddress@yourdomain.tld
Tani, ju duhet të transferoni skedarët e nevojshëm në serverin tuaj të dytë, mundësisht të koduar:
cd /etc/openvpn/easy-rsa/2.0/keys
cp /etc/openvpn/keys/ta.key .
tar -cf vpn.tar ca.crt server2.crt server2.key ta.key
scp vpn.tar yourusername@server2:~/
rm vpn.tar
Makina 2
Koha për të kaluar në lidhjen SSH të serverit tuaj të dytë . Hapi i parë është instalimi i OpenVPN ...
yum install openvpn
... dhe për ta çaktivizuar firewalld. Zëvendësimi do të jetë iptables i thjeshtë.
systemctl stop firewalld
systemctl disable firewalld
Shpaketoni arkivin që sapo keni zhvendosur në server dhe vendosni siç duhet lejet për skedarët:
cd /etc/openvpn
mkdir keys
chmod 700 keys
cd keys
tar -xf ~/vpn.tar -C .
chmod 600 *
Krijoni /etc/openvpn/client.confme redaktuesin tuaj të preferuar të tekstit. Duhet të duket kështu:
client
dev tun
proto udp
remote yourserver yourport
resolv-retry infinite
nobind
user nobody
group openvpn
persist-key
persist-tun
ca keys/ca.crt
cert keys/server2.crt
key keys/.key
ns-cert-type server
tls-auth keys/ta.key 1
tls-cipher DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-CAMELLIA256-SHA:DHE-RSA-AES256-SHA:DHE-RSA-CAMELLIA128-SHA:DHE-RSA-AES128-SHA:CAMELLIA256-SHA:AES256-SHA:CAMELLIA128-SHA:AES128-SHA
cipher AES-256-CBC
auth SHA384
remote-cert-tls server
comp-lzo
verb 3
mute 20
Hapi i fundit është të filloni dhe aktivizoni shërbimin:
systemctl start openvpn@client.service
systemctl enable openvpn@client.service
Nëse gjithçka po funksionon, atëherë nuk duhet të keni problem të bëni ping serverin e parë:
PING 10.8.100.1 (10.8.100.1) 56(84) bytes of data.
64 bytes from 10.8.100.1: icmp_seq=1 ttl=64 time=17.8 ms
64 bytes from 10.8.100.1: icmp_seq=2 ttl=64 time=17.9 ms
64 bytes from 10.8.100.1: icmp_seq=3 ttl=64 time=17.8 ms
Tani keni një lidhje private përmes internetit!
Nëse keni nevojë të zgjidhni ndonjë gabim, provoni të kontrolloni regjistrat me komandën e mëposhtme:
journalctl -xn