For nogle dage siden den nye version af OpenVPN 2.4.9 blev frigivet, er dette en korrigerende version der blev lanceret for at rette sårbarheden CVE-2.020-11.810, der gør det muligt at oversætte en klientsession til en ny IP-adresse, som indtil da ikke var blevet registreret.
Problemet kan bruges til at afbryde en nyforbundet klient på det tidspunkt, hvor peer-identifikationen allerede er genereret, men forhandlingen af sessionstasterne ikke er afsluttet (en klient kan stoppe sessionerne for andre klienter).
Om OpenVPN
For dem der ikke er bekendt med OpenVPN, skal du vide det dette er et gratis softwarebaseret tilslutningsværktøj, SSL (Secure Sockets Layer), VPN Virtual Private Network.
OpenVPN tilbyder punkt-til-punkt-forbindelse med hierarkisk validering af forbundne brugere og værter eksternt. Det er en meget god mulighed inden for Wi-Fi-teknologier (IEEE 802.11 trådløse netværk) og understøtter en bred konfiguration, herunder belastningsbalancering.
OpenVPN er et multiplatform-værktøj, der har forenklet konfigurationen af VPN'er sammenlignet med ældre og sværere at konfigurere såsom IPsec og gør det mere tilgængeligt for uerfarne mennesker i denne type teknologi.
Hvad er nyt i OpenVPN 2.4.9?
Udover rettelsen i den førnævnte fejl, også denne nye version implementerer en ændring af proceduren for at verificere interaktive brugertjenester (I Windows bekræftes konfigurationsplaceringen først, og derefter sendes en anmodning til domænecontrolleren.)
Når du bruger indstillingen "- auth-user-pass-fil", hvis der kun er et brugernavn i filen til at anmode om en adgangskode, tilgang der kræves en grænseflade til at administrere legitimationsoplysninger (stop med at anmode om en adgangskode ved hjælp af OpenVPN via konsolprompt).
På Windows-platformen er det tilladt at bruge unicode-søgestrenge i indstillingen "–cryptoapicert".
Løste også et problem med manglende evne til at downloade flere CRL'er (Certifikat tilbagekaldelsesliste) placeret i den samme fil, når du bruger indstillingen "–crl-verificer" på OpenSSL-systemer.
Og kompileringsproblemer er løst på FreeBSD-platformen ved hjælp af -enable-async-push-flag.
Faste meddelelser om adgangsfrase om OpenSSL-private nøgler og udløbne certifikater videregives til Windows-certifikatlager.
Hvordan installeres OpenVPN?
For dem der er interesserede i at kunne installere OpenVPN på deres system, de kan gøre det ved at følge instruktionerne som vi deler nedenfor.
Den første ting vil være at installere værktøjet og Easy RSA Da der skal udstedes pålidelige certifikater, skal der konfigureres en simpel Certificate Authority (CA):
sudo apt update sudo apt install openvpn easy-rsa
Nu vi skal konfigurere certifikatmyndigheden med:
make-cadir ~/openvpn-ca cd ~/openvpn-ca
Y lad os redigere nogle af variablerne som hjælper med at beslutte, hvordan certifikaterne oprettes:
gedit vars
Se efter sektionen easy-rsa, og rediger, så den ser sådan ud:
Efter nogle justeringer:
# These are the default values for fields # which will be placed in the certificate. # Don't leave any of these fields blank. export KEY_COUNTRY="US" export KEY_PROVINCE="CA" export KEY_CITY="Tustin" export KEY_ORG="SSD Nodes" export KEY_EMAIL= class="hljs-string">"joel@example.com" export KEY_OU="Marketing" # X509 Subject Field export KEY_NAME="vpnserver"
Du gemmer og indtaster terminalen:
source vars ./build-ca
En ny RSA-nøgle oprettes, og du bliver bedt om at bekræfte de detaljer, du har indtastet i filen. Gjort dette nu er det tid til at oprette klientens offentlige / private nøgler, hvor i [server] sætter de det ønskede navn.
./build-key-server [server]
Derefter skal de bygge Diffie-Hellman-nøglerne.
./build-dh
Endelig skal de generere en HMAC-signatur for at styrke certifikatet.
openvpn --genkey --secret keys/ta.key source vars ./build-key client1
Y hvis du vil oprette adgangskodebeskyttede legitimationsoplysninger:
kilde vars
./build-key-pass client1
Nu skal vi konfigurere OpenVPN-serveren
cd ~/openvpn-ca/keys sudo cp ca.crt ca.key vpnserver.crt vpnserver.key ta.key dh2048.pem /etc/openvpn gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz | sudo tee /etc/openvpn/server.conf
Nu skal vi foretage nogle ændringer af konfigurationsfilen.
sudo nano /etc/openvpn/server.conf
Lad os først sørge for, at OpenVPN leder efter de rigtige .crt- og .key-filer.
Før:
ca ca.crt cert server.crt key server.key # This file should be kept secret
derefter:
ca ca.crt cert vpnserver.crt key vpnserver.key # This file should be kept secret
Vi anvender derefter identisk HMAC mellem klienterne og serveren.
Før:
;tls-auth ta.key 0 # This file is secret
derefter:
tls-auth ta.key 0 # This file is secret key-direction 0
Hvis du foretrækker at bruge en anden DNS end opendns, du skal ændre de to linjer, der starter med push «dhcp-option.
Før:
# If enabled, this directive will configure # all clients to redirect their default # network gateway through the VPN, causing # all IP traffic such as web browsing and # and DNS lookups to go through the VPN # (The OpenVPN server machine may need to NAT # or bridge the TUN/TAP interface to the internet # in order for this to work properly). ;push "redirect-gateway def1 bypass-dhcp" # Certain Windows-specific network settings # can be pushed to clients, such as DNS # or WINS server addresses. CAVEAT: # http://openvpn.net/faq.html#dhcpcaveats # The addresses below refer to the public # DNS servers provided by opendns.com. ;push "dhcp-option DNS 208.67.222.222" ;push "dhcp-option DNS 208.67.220.220"
derefter:
# If enabled, this directive will configure # all clients to redirect their default # network gateway through the VPN, causing # all IP traffic such as web browsing and # and DNS lookups to go through the VPN # (The OpenVPN server machine may need to NAT # or bridge the TUN/TAP interface to the internet # in order for this to work properly). push "redirect-gateway def1" # Certain Windows-specific network settings # can be pushed to clients, such as DNS # or WINS server addresses. CAVEAT: # http://openvpn.net/faq.html#dhcpcaveats # The addresses below refer to the public # DNS servers provided by opendns.com. push "dhcp-option DNS 208.67.222.222" push "dhcp-option DNS 208.67.220.220"
Derefter vi er nødt til at vælge de koder, der skal bruges:
Før:
# Select a cryptographic cipher. # This config item must be copied to # the client config file as well. ;cipher BF-CBC # Blowfish (default) ;cipher AES-128-CBC # AES ;cipher DES-EDE3-CBC # Triple-DES
derefter:
# Select a cryptographic cipher. # This config item must be copied to # the client config file as well. ;cipher BF-CBC # Blowfish (default) cipher AES-256-CBC # AES ;cipher DES-EDE3-CBC # Triple-DES auth SHA512
Lad os endelig lade OpenVPN bruge en ikke-privilegeret brugerkonto i stedet for root, som ikke er særlig sikker.
user openvpn group nogroup
Nu kan vi gemme og lukke denne fil for at oprette den bruger:
sudo adduser --system --shell /usr/sbin/nologin --no-create-home openvpn
Og vi aktiverer tjenesten med:
sudo systemctl enable openvpn@server sudo systemctl start openvpn@server