Opsæt dit eget private netværk med OpenVPN

Vultr tilbyder dig fantastisk privat netværksforbindelse til servere, der kører samme sted. Men nogle gange vil man have to servere i forskellige lande/datacentre for at kunne kommunikere på en privat og sikker måde. Denne tutorial viser dig, hvordan du opnår det ved hjælp af OpenVPN. De operativsystemer, der bruges her, er Debian og CentOS, bare for at vise dig to forskellige konfigurationer. Dette kan nemt tilpasses til Debian -> Debian, Ubuntu -> FreeBSD og så videre.

  • Maskine 1: Debian, vil fungere som server (Placering: NL)
  • Maskine 2: CentOS, vil fungere som klient (Placering: FR)

Maskine 1

Start på maskine 1 ved at installere OpenVPN:

apt-get install openvpn

Kopier derefter eksempelkonfigurationen og værktøjet til generering af nøgler, easy-rsa, til /etc/openvpn:

cp -r /usr/share/doc/openvpn/examples/easy-rsa/ /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn

Standardværdierne for dine nøgler er ikke ligefrem sikre længere, for at rette dette skal du åbne /etc/openvpn/easy-rsa/2.0/varsmed din foretrukne teksteditor og ændre følgende linje:

export KEY_SIZE=4096

Derefter skal du sikre dig, at værdierne er indlæst i din aktuelle session, rydde op i eventuelle eksisterende nøgler og generere din certifikatautoritet:

cd /etc/openvpn/easy-rsa/2.0
source ./vars
./clean-all
./build-ca

Du vil blive bedt om information. Gør dit liv lettere ved at levere information om din server, for eksempel, hvor den er placeret, og hvad FQDN er/vil være. Dette er nyttigt, når du skal fejlfinde problemer:

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

En anden nødvendighed er parametre for Diffie-Hellman nøgleudveksling. Disse skal også genereres:

./build-dh

Vigtigt : build-dhKommandoen er en relativt kompleks proces, der kan tage op til ti minutter, afhængigt af din servers ressourcer.

For yderligere at forbedre sikkerheden af ​​denne forbindelse vil vi generere en statisk hemmelighed, som skal distribueres blandt alle klienter:

mkdir /etc/openvpn/keys
openvpn --genkey --secret /etc/openvpn/keys/ta.key

Nu kan du generere nøglen til serveren:

./build-key-server server1

Denne kommando vil bede om nogle oplysninger:

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

Det sidste trin er at underskrive certifikatanmodningen, der lige blev genereret med CA'ens nøgle:

1 out of 1 certificate requests certified, commit? [y/n]y

Kopier de nødvendige nøgler og certifikater til en separat mappe:

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/*

Nu til konfigurationen, pak den ud ...

cd /etc/openvpn
gunzip server.conf.gz

... og åbn resultatet server.confmed din foretrukne teksteditor. Konfigurationen skal se sådan ud:

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

Efter genstart af tjenesten bør du se din log lidt ...

service openvpn restart && tail -f /var/log/syslog

... for at sikre, at alt fungerer. Hvis der ikke opdages nogen fejl, kan du generere nøglerne til din anden server:

cd /etc/openvpn/easy-rsa/2.0
source ./vars
./build-key server2

Igen bliver du bedt om oplysninger:

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

Nu skal du overføre de nødvendige filer til din anden server, helst krypteret:

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

Maskine 2

Tid til at skifte til SSH-forbindelsen på din anden server . Det første trin er at installere OpenVPN ...

yum install openvpn

... og for at deaktivere firewalld. Erstatningen vil være almindelige iptables.

systemctl stop firewalld
systemctl disable firewalld

Pak arkivet ud, som du lige har flyttet til serveren, og indstil tilladelserne korrekt på filerne:

cd /etc/openvpn
mkdir keys
chmod 700 keys
cd keys
tar -xf ~/vpn.tar -C .
chmod 600 *

Opret /etc/openvpn/client.confmed din foretrukne teksteditor. Det skal se sådan ud:

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

Det sidste trin er at starte og aktivere tjenesten:

systemctl start openvpn@client.service
systemctl enable openvpn@client.service

Hvis alt fungerer, skulle du ikke have noget problem med at pinge den første server:

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

Du har nu en privat forbindelse over internettet!

Hvis du har brug for at foretage fejlfinding, kan du prøve at tjekke logfilerne med følgende kommando:

journalctl -xn

Efterlad en kommentar

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Kunstig intelligens er ikke i fremtiden, det er her lige i nuet I denne blog Læs, hvordan kunstig intelligens-applikationer har påvirket forskellige sektorer.

DDOS-angreb: et kort overblik

DDOS-angreb: et kort overblik

Er du også et offer for DDOS-angreb og forvirret over forebyggelsesmetoderne? Læs denne artikel for at løse dine spørgsmål.

Har du nogensinde spekuleret på, hvordan tjener hackere penge?

Har du nogensinde spekuleret på, hvordan tjener hackere penge?

Du har måske hørt, at hackere tjener mange penge, men har du nogensinde spekuleret på, hvordan tjener de den slags penge? lad os diskutere.

Revolutionære opfindelser fra Google, der vil gøre dit liv lettere.

Revolutionære opfindelser fra Google, der vil gøre dit liv lettere.

Vil du se revolutionerende opfindelser fra Google, og hvordan disse opfindelser ændrede livet for ethvert menneske i dag? Læs derefter til bloggen for at se opfindelser fra Google.

Fredag ​​Essential: Hvad skete der med AI-drevne biler?

Fredag ​​Essential: Hvad skete der med AI-drevne biler?

Konceptet med selvkørende biler til at køre på vejene ved hjælp af kunstig intelligens er en drøm, vi har haft i et stykke tid nu. Men på trods af flere løfter er de ingen steder at se. Læs denne blog for at lære mere...

Teknologisk singularitet: En fjern fremtid for menneskelig civilisation?

Teknologisk singularitet: En fjern fremtid for menneskelig civilisation?

Efterhånden som videnskaben udvikler sig i et hurtigt tempo og overtager en stor del af vores indsats, stiger risikoen for at udsætte os selv for en uforklarlig Singularitet. Læs, hvad singularitet kunne betyde for os.

Funktioner af Big Data Reference Architecture Layers

Funktioner af Big Data Reference Architecture Layers

Læs bloggen for at kende forskellige lag i Big Data-arkitekturen og deres funktionaliteter på den enkleste måde.

Udvikling af datalagring – Infografik

Udvikling af datalagring – Infografik

Opbevaringsmetoderne for dataene har været under udvikling, kan være siden fødslen af ​​dataene. Denne blog dækker udviklingen af ​​datalagring på basis af en infografik.

6 fantastiske fordele ved at have smarte hjemmeenheder i vores liv

6 fantastiske fordele ved at have smarte hjemmeenheder i vores liv

I denne digitalt drevne verden er smarte hjemmeenheder blevet en afgørende del af livet. Her er et par fantastiske fordele ved smarte hjemmeenheder om, hvordan de gør vores liv værd at leve og enklere.

macOS Catalina 10.15.4-tillægsopdatering forårsager flere problemer end at løse

macOS Catalina 10.15.4-tillægsopdatering forårsager flere problemer end at løse

For nylig udgav Apple macOS Catalina 10.15.4 en supplerende opdatering for at løse problemer, men det ser ud til, at opdateringen forårsager flere problemer, hvilket fører til mursten af ​​mac-maskiner. Læs denne artikel for at lære mere