OpenVPN på CentOS 7: Sikker VPN-server – trinn-for-trinn guide

Introduksjon

OpenVPN er en åpen kildekode VPN-løsning som tillater trygg og sikker tilkobling til et privat nettverk via en offentlig nettverksforbindelse. Denne løsningen er anerkjent for sin brukervennlighet, høye sikkerhetsstandarder og tilpasningsdyktighet. CentOS 7 er en populær Linux-distribusjon som er spesielt godt egnet for å være vert for OpenVPN-tjenere.

Denne veiledningen vil ta deg trinnvis gjennom prosessen med å sette opp og konfigurere en OpenVPN-tjener på CentOS 7. Vi vil dekke alle aspekter, fra installasjon av de nødvendige pakkene til konfigurering av både tjener- og klientinnstillinger.

Fordeler med Å Benytte OpenVPN

  • Sikkerhet: OpenVPN implementerer avansert kryptering for å beskytte dine data under overføring.
  • Personvern: OpenVPN skjuler din IP-adresse og online aktivitet fra uønsket innsyn.
  • Fleksibilitet: OpenVPN kan brukes på et bredt spekter av plattformer, inkludert Windows, macOS, Linux, Android og iOS.
  • Pålitelighet: OpenVPN er kjent for sin stabilitet og pålitelighet, noe som gjør den til et ideelt valg for kritiske applikasjoner.

Nødvendige Forutsetninger

  • En CentOS 7-tjener med administratorrettigheter (root access).
  • En statisk IP-adresse for serveren.
  • Et domenenavn for serveren (valgfritt).
  • Grunnleggende kjennskap til Linux-kommandolinjen.

Steg-for-Steg Konfigurasjonsprosess

Steg 1: Installere OpenVPN og EasyRSA

  1. Oppdater pakkelister:
    sudo yum update
  2. Installer OpenVPN:
    sudo yum install openvpn epel-release
  3. Installer EasyRSA: EasyRSA er et verktøy som forenkler generering av SSL-sertifikater for OpenVPN.
    sudo yum install openssl easy-rsa

Steg 2: Konfigurere OpenVPN-tjeneren

  1. Opprett en mappe for OpenVPN-konfigurasjoner:
    sudo mkdir /etc/openvpn
  2. Opprett en mappe for sertifikater:
    sudo mkdir /etc/openvpn/easy-rsa
  3. Kopier EasyRSA-konfigurasjonsfilene:
    sudo cp -r /usr/share/easy-rsa/easyrsa /etc/openvpn/easy-rsa/
  4. Rediger varslingsfilen:
    sudo nano /etc/openvpn/easy-rsa/vars

    Endre følgende:

    • export KEY_DIR="keys" til export KEY_DIR="pki"
    • export KEY_SIZE=1024 til export KEY_SIZE=2048
    • export CA_EXPIRE="3650" til export CA_EXPIRE="3650" (Tilpass etter behov).
  5. Generer sertifikater:
    sudo sh /etc/openvpn/easy-rsa/easyrsa init-pki
    sudo sh /etc/openvpn/easy-rsa/easyrsa build-ca nopass
    sudo sh /etc/openvpn/easy-rsa/easyrsa gen-req server nopass
    sudo sh /etc/openvpn/easy-rsa/easyrsa sign-req server server
  6. Kopier sertifikater til OpenVPN-mappen:
    sudo cp /etc/openvpn/easy-rsa/pki/issued/server.crt /etc/openvpn/server.crt
    sudo cp /etc/openvpn/easy-rsa/pki/private/server.key /etc/openvpn/server.key
    sudo cp /etc/openvpn/easy-rsa/pki/ca.crt /etc/openvpn/ca.crt

Steg 3: Konfigurere OpenVPN-tjenerens konfigurasjonsfil

  1. Opprett en tjenerkonfigurasjonsfil:
    sudo nano /etc/openvpn/server.conf
  2. Legg til følgende konfigurasjoner:
    
    port 1194
    proto udp
    dev tun
    ca /etc/openvpn/ca.crt
    cert /etc/openvpn/server.crt
    key /etc/openvpn/server.key
    dh /etc/openvpn/easy-rsa/pki/dh.pem
    server 10.8.0.0 255.255.255.0
    push "redirect-gateway def1 bypass-dhcp"
    push "dhcp-option DNS 8.8.8.8 8.8.4.4"
    client-to-client
    keepalive 10 60
    persist-key
    persist-tun
    status /var/log/openvpn-status.log
    log /var/log/openvpn.log
    verb 3
          

    Forklaring av konfigurasjonene:

    port 1194 Porten som OpenVPN-tjeneren lytter på.
    proto udp Protokollen som brukes for tilkoblingen (UDP).
    dev tun Grensesnittet som brukes for VPN-forbindelsen.
    ca /etc/openvpn/ca.crt Stedet for sertifiseringsmyndighetens (CA) sertifikat.
    cert /etc/openvpn/server.crt Stedet for tjenerens sertifikater.
    key /etc/openvpn/server.key Stedet for tjenerens private nøkkel.
    dh /etc/openvpn/easy-rsa/pki/dh.pem Stedet for Diffie-Hellman-nøkkelen for kryptering.
    server 10.8.0.0 255.255.255.0 IP-adresseområdet for VPN-nettverket.
    push "redirect-gateway def1 bypass-dhcp" Konfigurerer klienten til å omdirigere all trafikk gjennom VPN-tunnelen.
    push "dhcp-option DNS 8.8.8.8 8.8.4.4" Angir DNS-tjenere for klienter.
    client-to-client Tillater klienter å kommunisere med hverandre via VPN-tunnelen.
    keepalive 10 60 Angir hvor ofte tjeneren skal sende ping-forespørsler for å opprettholde forbindelsen.
    persist-key Lagrer tjenerens private nøkkel i minnet for raskere tilkoblingsstart.
    persist-tun Opprettholder VPN-tunnelen selv om klienter kobler fra.
    status /var/log/openvpn-status.log Lagrer statusinformasjon om VPN-forbindelsen.
    log /var/log/openvpn.log Lagrer logger for OpenVPN-tjeneren.
    verb 3 Angir detaljert loggføring.

Steg 4: Starte OpenVPN-tjeneren

  1. Start OpenVPN-tjeneren:
    sudo systemctl start [email protected]
  2. Aktiver OpenVPN-tjeneren for automatisk oppstart:
    sudo systemctl enable [email protected]

Steg 5: Konfigurere brannmuren

  1. Tillat trafikk til OpenVPN-porten:
    sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="0.0.0.0/0" port protocol="udp" port="1194" accept'
    sudo firewall-cmd --reload

Steg 6: Konfigurere OpenVPN-klienten

  1. Last ned OpenVPN-klienten: Last ned OpenVPN-klienten fra https://openvpn.net/index.php/openvpn-downloads.html for ditt operativsystem.
  2. Opprett en konfigurasjonsfil:
    
    client
    dev tun
    proto udp
    remote  1194
    resolv-retry infinite
    no-pull-dns
    remote-cert-tls server
    verb 3
    ca /etc/openvpn/ca.crt
    cert /etc/openvpn/easy-rsa/pki/issued/client.crt
    key /etc/openvpn/easy-rsa/pki/private/client.key
         

    Forklaring av konfigurasjonene:

    client Angir at dette er en klientkonfigurasjon.
    dev tun Grensesnittet som brukes for VPN-forbindelsen.
    proto udp Protokollen som brukes for tilkoblingen (UDP).
    remote <Din_server_IP> 1194 Angir IP-adressen og porten til OpenVPN-tjeneren.
    resolv-retry infinite Angir at klienten skal prøve å finne DNS-tjenere til den finner dem.
    no-pull-dns Forhindrer at klienten henter DNS-tjenere fra tjeneren.
    remote-cert-tls server Angir at tjeneren skal autentiseres med et TLS-sertifikat.
    verb 3 Angir detaljert loggføring.
    ca /etc/openvpn/ca.crt Stedet for sertifiseringsmyndighetens (CA) sertifikat.
    cert /etc/openvpn/easy-rsa/pki/issued/client.crt Stedet for klientens sertifikat.
    key /etc/openvpn/easy-rsa/pki/private/client.key Stedet for klientens private nøkkel.
  3. Start OpenVPN-klienten: Start OpenVPN-klienten med konfigurasjonsfilen.

Konklusjon

Denne veiledningen har guidet deg gjennom prosessen med å sette opp og konfigurere en OpenVPN-tjener på CentOS 7. Ved å følge disse instruksjonene kan du etablere en sikker og pålitelig VPN-forbindelse som beskytter dine data, både personlig og arbeidsrelatert. Husk å regelmessig oppdatere både tjeneren og klientene dine med de nyeste sikkerhetsfiksene for å opprettholde optimal ytelse og sikkerhet.

Ofte Stilte Spørsmål

1. Hvilke alternativer til OpenVPN finnes?

Det finnes flere VPN-løsninger på markedet, som WireGuard og StrongSwan. Disse tilbyr forskjellige funksjoner og ytelsesegenskaper, og det er viktig å vurdere dine spesifikke behov når du velger en løsning.

2. Er en statisk IP-adresse et krav for å drifte en OpenVPN-tjener?

En statisk IP-adresse er ikke absolutt nødvendig, men det er anbefalt for å sikre at tjeneren din alltid er tilgjengelig på samme adresse. Uten en statisk IP kan det være nødvendig å sette opp dynamisk DNS for å holde tjenerens tilgangspunkt oppdatert.

3. Hvordan kan jeg forsikre meg om at min OpenVPN-forbindelse er sikker?

For å maksimere sikkerheten til din OpenVPN-forbindelse, bør du bruke sterke passord for både tjener og klient, benytte en pålitelig og oppdatert VPN-klientprogramvare, og alltid være forsiktig med mistenkelige nettsteder eller applikasjoner som kan utgjøre en sikkerhetsrisiko.

4. Kan OpenVPN brukes til å omgå geoblokkerte innholdsrestriksjoner?

Ja, OpenVPN kan brukes til å omgå geografiske begrensninger og få tilgang til innhold som er blokkert i visse regioner. Ved å koble til en tjener i et land der innholdet er tilgjengelig, kan du få tilgang til det.

5. Hva er kostnadene ved å drive en OpenVPN-tjener?

Kostnadene for å drive en OpenVPN-tjener er generelt lave, spesielt hvis du bruker en tjener du allerede eier eller leier. De største kostnadene vil sannsynligvis være relatert til selve tjenerens maskinvare og strømforbruk.

6. Hva er forskjellene mellom UDP og TCP protokoller for OpenVPN?

UDP er en raskere protokoll, men mindre pålitelig enn TCP. TCP er mer pålitelig, men kan oppleves som litt tregere. Valg av protokoll avhenger av dine spesifikke behov og nettverksforhold.

7. Hvordan kan jeg overvåke OpenVPN-tjenerens ytelse?

Du kan overvåke OpenVPN-tjenerens ytelse ved å sjekke loggene i /var/log/openvpn.log. I tillegg kan verktøy som top og htop brukes for å overvåke ressursbruk.

8. Kan OpenVPN brukes på mobile enheter?

Ja, OpenVPN er kompatibelt med mobile enheter. Det finnes en rekke OpenVPN-klienter tilgjengelig for både Android og iOS.

9. Hvordan konfigurerer jeg OpenVPN-tjeneren for å tillate tilgang for spesifikke apper?

Du kan konfigurere OpenVPN-tjeneren for å gi tilgang for utvalgte apper ved å bruke en proxy-tjener. Dette krever mer avansert konfigurasjon og bør utføres med forsiktighet.

10. Er det mulig å koble flere enheter til OpenVPN samtidig?

Ja, OpenVPN tillater at flere enheter kobler seg til samtidig. Du kan bruke en enkelt tjener for flere klienter eller sette opp flere tjenere for å oppnå høyere fleksibilitet.

Tags: OpenVPN, CentOS, VPN, Tjener, Konfigurering, Sikkerhet, Personvern, Linux, Veiledning