Cinci miimi de sus de OpenVPN. Configurare Iptables minimă pentru clienții OpenVPN pentru a accesa Internetul. Transferarea cheilor și certificatelor pe dispozitivele client

Cum functioneaza?

Odată ce configurația OpenVPN este completă, serverul va putea accepta și redirecționa SSL extern securizat conexiuni de retea la adaptorul de rețea virtuală (tun/tap) creat la începutul serviciului VPN, fără a afecta regulile de procesare a traficului altor interfețe (adaptor de internet extern etc.) Datorită acestei tehnologii, vă puteți asigura accesul la server la distantași un grup de dispozitive situate în rețeaua sa locală, chiar dacă adaptorul principal de internet al acestui server nu acceptă conexiuni de intrare din rețelele publice și/sau nu le direcționează către mașinile necesare aflate în rețeaua sa LAN.

Dacă este necesar, puteți configura și rutarea traficului Internet al clienților OpenVPN prin serverul VPN (pașii necesari pentru aceasta sunt descriși în acest manual). Cu o astfel de redirecționare, conexiunile VPN de procesare a gazdei vor îndeplini, de asemenea, funcția de server proxy (Proxy) - unificați regulile activității de rețea a utilizatorilor și traficul de internet al clientului de tunel în nume propriu.

Cerințe de sistem

Înainte de a continua cu instalarea OpenVPN, asigurați-vă că setările necesare sunt configurate corect pe serverul dvs. parametrii de bază de mai jos. (dacă utilizați un server virtual, acești trei pași au fost deja finalizați și pot fi omisi):

  1. Serverul are cel puțin o adresă IP externă statică (în mod alternativ, puteți utiliza serviciile DynamicDNS care actualizează automat informații despre adresa IP curentă a dispozitivului, de exemplu, DynDNS)
  2. Descărcarea pachetelor software din depozitele oficiale este permisă. Pentru a verifica acest lucru, deschideți fișierul pe server /etc/apt/sources.listși asigurați-vă că adresele de rețea ale formularului "deb http://..." prezent și necomentat (lipsește # la începutul liniei cu adresa URL a depozitului). Deci, de exemplu, oglinda americană a depozitelor Ubuntu Precise adăugate la sources.list arată astfel: # Consultați http://help.ubuntu.com/community/UpgradeNotes pentru a afla cum să faceți upgrade la
    # versiuni mai noi ale distribuției.
    deb http://us.archive.ubuntu.com/ubuntu/ precise main restricted
    deb-src http://us.archive.ubuntu.com/ubuntu/ precise main restricted
  3. Setări corecte de rețea: numele gazdă, adresa(ele) IP ale serverului dvs. și setările DNS ale acestuia(ultimul parametru va fi necesar pentru rutarea traficului Internet client). Puteți găsi setările de rețea listate în fișier /etc/hosts.

Pentru a asigura un nivel acceptabil de securitate a mașinii, vă recomandăm să citiți mai întâi conținutul articolului nostru introductiv despre configurarea instrumentelor de securitate Linux.

Instalarea OpenVPN pe un server

Pentru a instala un pachet openvpn la server, trebuie să executați secvențial următoarele comenzi:

  1. Actualizați depozitele de pachete:
    apt-get update
  2. Descarca actualizări disponibile pentru programe instalate:
    apt-get upgrade
  3. Instalați pachetul openvpn:
    apt-get install openvpn
  4. OpenVPN include o suită de instrumente de criptare uşor-rsa. Pentru operatie normala scripturile demonului easy-rsa ar trebui să fie plasate în director /etc/openvpn:
    cd /etc/openvpn/ && make-cadir easy-rsa

Pregătirea cheilor publice (PKI - Public Key Infrastructure)

Pe această etapă trebuie să generați și să semnați perechi de chei utilizator și server. Pentru a valida perechile create, vom folosi autoritate de certificare (CA - Autoritate de certificare) situat pe serverul VPN însuși. Deci, să creăm un CA:

  1. Accesați folderul /etc/openvpn/easy-rsa: cd /etc/openvpn/easy-rsa
  2. Creați o legătură simbolică openssl-1.0.0.cnf -> openssl.cnf: ln -s openssl-1.0.0.cnf openssl.cnf
  3. Inițializați scriptul vars: sursa ./vars
  4. Veți primi următoarea notificare ca răspuns: NOTĂ: Dacă rulați ./clean-all, voi face un rm -rf pe /etc/openvpn/easy-rsa/keys
  5. Rulați scriptul curata tot: ./curata tot
  6. Rulați scriptul construi-ca pentru a crea o autoritate de certificare. Ca răspuns la solicitări, introduceți informațiile necesare (în caractere latine). Dacă nu furnizați valori personalizate pentru niciunul dintre câmpurile obligatorii, se va folosi valoarea implicită [reprezentată între paranteze drepte]: ./build-ca
  7. Acum putem trece la generarea perechii de certificat public/chei secrete a serverului VPN.

Generare cheie/certificat de server

  1. Generați o cheie: ./build-key-server server Completați informațiile similare cu construi-ca. Câmpurile „Nume companie” și „Parola de provocare” pot fi lăsate necompletate.
  2. După generarea cu succes a cheii, vi se va solicita să o semnați cu o autoritate de certificare. introduce da pentru confirmare.

Generarea cheilor clientului

  1. Creați o pereche de chei pentru utilizator: ./build-key client1 Notă: fișierul cheie generat client1.cheie implicit este necriptat. Acest lucru permite oricărui utilizator cu acces la acest fișier să se conecteze la rețeaua privată virtuală. Pentru a remedia această caracteristică, puteți utiliza comanda ./build-key-pass client1în loc de ./build-key client1. În acest caz, cheia va fi criptată cu parola pe care o alegeți.
  2. Repetați procedura de generare pentru fiecare dintre viitorii clienți VPN, înlocuind client1 la numele dorit. Atenţie: numele cheilor trebuie să fie unice.
    De asemenea, puteți genera chei client ulterior. Pentru a face acest lucru, va trebui să reinițializați scriptul vars(echipă sursa ./vars), apoi începeți procedura de generare a cheii necesare.

Setarea parametrilor Diffie-Hellman

Parametrii protocolului Diffie-Hellman definesc metoda de comunicare între server și clienții OpenVPN. Prin crearea unui fișier .pem, vom specifica parametrii în funcție de care serverul va iniția conexiuni securizate cu utilizatorii.

Fișierul .pem trebuie generat folosind comanda: ./build-dh Ca răspuns, va fi afișat un set de caractere aleatorii, indicând că procesul de generare este în desfășurare. După finalizarea procedurii din director etc/openvpn/easy-rsa/keys va apărea fișierul dh1024.pem.

Mutarea cheilor și certificatelor

După generarea cheilor, trebuie să le transferați în directoarele utilizate de aplicațiile server/client OpenVPN.

Pe server:

  1. Schimbați în directorul în care sunt stocate cheile generate: cd /etc/openvpn/easy-rsa/keys
  2. Copiați certificatul și cheia autorității de certificare (CA), fișierul cu parametrii DH, cheia serverului VPN și certificatul în director /etc/openvpn: cp ca.crt ca.key dh1024.pem server.crt server.key /etc/openvpn IMPORTANT: Fișierele enumerate mai sus sunt baza performanței și securității VPN. Compromisul lor poate avea consecințe negative. Păstrați-le în stocare sigurăși nu transferați aceste fișiere prin canale nesigure.

Pe dispozitivul client:

Copiați fișierele ca.crt, client1.crt, client1.keyîn folderul dispozitivului client utilizat de aplicația OpenVPN (de exemplu, /etc/openvpn pentru Linux)

Configurarea serverului și clientului OpenVPN

În această secțiune a tutorialului, vom crea două fișiere de configurare. Primul este fișierul de setări pentru serverul OpenVPN, al doilea este setările de conexiune vpn pentru dispozitivul client. Fiecare client OpenVPN trebuie să folosească propriul fișier de configurare (cu excepția conectării mai multor utilizatori folosind aceeași pereche de chei pentru toți).

Setări server:

  1. La fel de punct de startîn configurare, puteți utiliza exemplul de fișier de configurare a serverului OpenVPN, care conține o listă de opțiuni disponibile pentru program și explicații detaliate ale acestor opțiuni. Copiați acest document în director /etc/openvpn/ pentru a-l edita și apoi porniți serverul VPN: gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz >/etc/openvpn/server.conf
  2. Fișierul copiat în pasul anterior server.conf este o configurație complet funcțională. Este suficient pentru funcționarea normală a serverului, dacă nu trebuie să tunelizați tot traficul de internet client prin serverul VPN sau alte opțiuni specifice.
    Singurul lucru la care trebuie să acordați atenție este numele și căile certificatului de server (.crt) și fișierele sale cheie (.key), precum și fișierele certificatului CA (.crt).
    Numele cheilor din director /etc/openvpn trebuie să se potrivească complet cu numele cheilor din configurație server.conf. Puteți verifica acest lucru cu următoarele comenzi:
    • Aflați numele fișierelor cheie (două fișiere .crt și unul .key) din folder /etc/openvpn folosind comanda: ls /etc/openvpn
    • Verificați dacă numele fișierelor afișate mai sus se potrivesc cu numele cheilor din fișier /etc/openvpn/server.conf(după bloc # Certificat rădăcină SSL/TLS (ca), certificat (cert) și cheie privată (cheie)): nano /etc/server.conf Dacă numele sunt diferite, faceți ajustările corespunzătoare fișierului de configurare (nu numele fișierelor din folderul openvpn) și salvați-l (CTRL+X).
    • Reporniți OpenVPN pentru a aplica modificări: /etc/init.d/openvpn restart

Setări client:

  1. Copiem fișierul de configurare client exemplu în orice director convenabil (în cazul nostru, directorul de acasă al utilizatorului (home), în numele căruia executăm comenzile: gunzip -c /usr/share/doc/openvpn/examples/sample- config-files/client.conf. gz >/home/1cloud
  2. Accesați folderul cheiși copiați fisierele necesare chei (în cazul nostru: client1.key, client1.crt, ca.crt) în același director (/home/1cloud): cd /etc/openvpn/easy-rsa/keys > cp client1.key client1.crt ca.crt /home/1cloud
  3. Deschideți configurația clientului: nano /home/1cloud/client.conf
  4. Găsirea unui bloc # Numele de gazdă/IP-ul și portul serveruluiȘi în schimb exemplu.com specificați adresa IP a serverului OpenVPN: # Numele de gazdă/IP-ul și portul serverului.
    # Puteți avea mai multe intrări de la distanță
    # pentru a echilibra încărcarea între servere.
    exemplu la distanță.com 1194
  5. În același fișier găsim blocul #SSL/TLS parms. și verificați numele fișierelor cheie utilizator (similar cu modul în care am făcut-o în configurația serverului): # SSL/TLS parms.
    # Consultați fișierul de configurare a serverului pentru mai multe
    # Descriere. Cel mai bine este de folosit
    # o pereche separată de fișiere .crt/.key
    # pentru fiecare client. Un singur ca
    # fișier poate fi folosit pentru toți clienții.
    ca ca.crt
    certclient1.crt
    cheie client1.cheie
  6. Salvați fișierul de configurare a clientului ( CTRL+X).
  7. Acum trebuie să transferați fișierele utilizator client.conf, client1.key, client1.crt, ca.crt la dispozitivul client de pe care vă veți conecta la serverul VPN. Acest lucru se poate face prin FTP, SCP sau pur și simplu prin crearea de fișiere cu nume identice pe dispozitivul utilizatorului (prin nano pe Linux, prin notepad pe Windows) și copiați complet conținutul documentelor sursă de pe serverul de la distanță în ele.
    Atenţie! Unele aplicații client OpenVPN (de exemplu, pe Andoid și IOS) funcționează cu extensia fișierului de configurare .ovpn, nu .conf. Dacă întâmpinați această problemă, trebuie doar să redenumiți fișierul cu setările clientului în consecință.
    Fișierele transferate le plasăm în folderul cu care funcționează aplicația OpenVPN pe care o utilizați (vezi documentația programului).
  8. Ne conectăm la server. După o conexiune reușită, adaptorul de rețea virtuală este activat pe dispozitivul client. Puteți verifica acest lucru pe Linux cu comanda ifconfig(ar trebui să arate adaptorul TUN), pe un sistem de operare cu interfață grafică, puteți verifica corectitudinea conexiunii direct în programul de conectare VPN.

Atenţie! Deoarece nu am configurat încă tunelarea întregului trafic de Internet prin serverul VPN, accesul la Internet pe dispozitivul client nu va mai funcționa după conectarea acestuia la VPN. Mai jos sunt oferite instrucțiuni pentru rutarea traficului de internet al utilizatorilor printr-un server VPN.B.

Tunnelizarea întregului trafic de client VPN prin serverul VPN

În această configurație, vom direcționa tot traficul utilizatorilor VPN prin serverul OpenVPN, menținând în același timp criptarea SSL de la client la server.

  1. Pe server, deschideți fișierul de configurare OpenVPN server.conf: nano /etc/openvpn/server.conf
  2. Decomentați linia de configurare de mai jos (eliminați simbolul ; la începutul liniei): apăsați „redirect-gateway def1 bypass-dhcp”
  3. Salvați și închideți fișierul (CTRL+X)
  4. Deschide fișierul /etc/sysctl.conf:
    nano /etc/sysctl.conf
  5. Anulați comentariile sau adăugați următoarea linie în fișierul deschis pentru a vă asigura că este permisă redirecționarea traficului IPv4: net.ipv4.ip_forward=1
  6. Salvați și închideți fișierul (CTRL+X)
  7. Introduceți comanda pentru a aplica modificările în sesiunea curentă: echo 1 > /proc/sys/net/ipv4/ip_forward
  8. Introduceți următoarele comenzi în ordine (o linie = o comandă) pentru a configura firewall-ul iptables pentru redirecționarea traficului prin VPN:







  9. Adăugați aceeași listă de reguli iptables la fișier /etc/rc.local astfel încât acestea să fie aplicate de fiecare dată când sistemul este pornit: nano /etc/rc.local
    Conținutul fișierului:
    #!/bin/sh -e
    #
    # [...]
    #
    iptables -A FORWARD -m stare --state RELATED,STABLISHED -j ACCEPT
    iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT
    iptables -A FORWARD -j RESPING
    iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
    iptables -A INTRARE -i tun+ -j ACCEPT
    iptables -A FORWARD -i tun+ -j ACCEPT
    iptables -A INPUT -i tap+ -j ACCEPT
    iptables -A FORWARD -i tap+ -j ACCEPT
    iesirea 0
    Salvați și închideți documentul (CTRL+X)
  10. Setările de mai sus vor permite redirecționarea întregului trafic client, cu excepția interogărilor DNS, prin serverul VPN. Pentru a redirecționa interogări DNS, trebuie să instalați pachetul dnsmasqși faceți modificări fișierului /etc/openvpn/server.conf
  11. Instalați dnsmasq:
    Dacă utilizați Ubuntu 12.04: apt-get install dnsmasq && dpkg-reconfigure resolvconf Va apărea un expert de configurare. La primul paragraf (pregătiți /etc/resolv.conf pentru actualizări dinamice) noi raspundem da, apoi nu (Adăugați fișierul original la fișierul dinamic?)
    Dacă utilizați Debian 7: apt-get install dnsmasq resolvconf
  12. Acum trebuie să editați dnsmasq: nano /etc/dnsmasq.conf Asigurați-vă că următoarele opțiuni nu sunt comentate sau adăugate la fișier: listen-address=10.8.0.1
    interfețe-bind
  13. Apoi, trebuie să adăugați la fișier /etc/network/interfaces informații despre serverele dns utilizate. Poate că în cazul dvs. aceste informații sunt deja prezente (ca, de exemplu, în cazul serverelor închiriate pe site), dacă nu, adăugați-o după cum urmează:
    Deschideți fișierul de configurare a interfețelor: nano /etc/network/interfaces Adăugați linia dns-nameservers cu adresele serverelor DNS pe care le utilizați (de exemplu, un server de la dvs. server public google:8.8.8.8): # Interfața de rețea principală
    auto eth0
    iface eth0 inet dhcp
    dns-nameserver 77.88.8.8 8.8.8.8
  14. Cu setările implicite, utilitarul dnsmasq rulează înainte de a începe configurarea virtuală a adaptorului OpenVPN. Acest lucru face ca dnsmasq să eșueze și să se încheie. Pentru a remedia această problemă, trebuie să adăugați la fișier /etc/rc.local linie cu o comandă care repornește dnsmasq după ce OpenVPN este inițializat. Plasați această linie în fișier după parametrii iptables pe care i-am specificat mai devreme: nano /etc/rc.local
    Conținutul fișierului:
    ...
    iptables -A FORWARD -i tun+ -j ACCEPT
    iptables -A INPUT -i tap+ -j ACCEPT
    iptables -A FORWARD -i tap+ -j ACCEPT
    /etc/init.d/dnsmasq reporniți
    iesirea 0
  15. Ultimul lucru de făcut este să decomentați linia care permite clienților OpenVPN să utilizeze servere DNS în fișier /etc/openvpn/server.conf:
    nano /etc/openvpn/server.conf Conținutul fișierului: ....
    apăsați „dhcp-option DNS 10.8.0.1”
  16. Reporniți serverul pentru a aplica toate setările și verificați corectitudinea acestora: reporniți

OpenVPN este un pachet software care vă permite să protejați traficul de internet al unui utilizator de interceptări prin furnizarea de transfer de date criptate de la un dispozitiv client la un server cu OpenVPN instalat. Excelent pentru utilizarea hotspot-urilor Wi-Fi publice unde informațiile pot fi interceptate de terți. Sau în cazul în care ip-ul tău este blocat pe un anumit site și trebuie să ocoliți în siguranță această restricție.

Pe lângă instalarea și configurarea OpenVPN pe server, trebuie să puteți configura clientul pentru acces de pe un computer, în cazul în care sistem de operare Windows va fi folosit.

Folosind managerul de pachete standard, instalați openvpn.

# aptitude instalează openvpn

OpenVPN necesită în mod necesar generarea de certificate pentru server și clienți. Acest lucru este logic, deoarece conexiunea de la client la server trebuie să fie criptată.

Accesați folderul openvpn:

# cd /etc/openvpn

Vom genera chei folosind easy-rsa.

Creați un folder cu fișiere de configurare și link-uri către scripturi de generare a certificatelor:

# make-cadir rsa # cd rsa

Deschideți fișierul de configurare varsși modificați opțiunile:

export KEY_COUNTRY="US" export KEY_PROVINCE="CA" export KEY_CITY="SanFrancisco" export KEY_ORG="Fort-Funston" export KEY_EMAIL=" [email protected]"

KEY_COUNTRY— specificați codul țării (RU, UA etc.);
KEY_PROVINCE- acest articol nu este relevant dacă nu locuiți în Statele Unite. :) Poate fi înlocuit cu XX;
KEY_CITY- orașul tău în care locuiești;
KEY_EMAIL- adresa ta de email.

Și, de asemenea, decomentați linia de export KEY_CN, specificați numele serverului ca valoare:

Exportați KEY_CN="example.com"

Toate variabilele sunt completate în latină.

Salvați fișierul și rulați-l:

# . vars

Apoi începeți să ștergeți certificatele vechi:

# ./curata tot

Creați un certificat rădăcină:

# ./build-ca

Dacă primiți eroarea:0E065068:rutine fișierului de configurare:STR_COPY:variabila nu are valoare:conf_def.c:618:line 198 la generarea certificatului rădăcină, adăugați la fișier vars linia:

Exportați KEY_ALTNAMES="ceva"

Și apoi reexecută comenzile anterioare: . vars, ./clean-all, ./build-ca.

Următorul pas este să creați o cheie și un certificat de server.

# ./build-key-server

Apoi creați un certificat și cheie pentru client:

# ./build-key client

Vă rugăm să rețineți că fiecare client trebuie să își genereze propriul certificat și cheie. Trebuie doar să specificați nume diferite (în loc de client) și să modificați căile către acestea în fișierele de configurare. În același timp, puteți proteja cheile clientului cu o parolă, pentru aceasta folosiți comanda build-key-passîn loc de build-key.

# ./build-dh

Și cheia pentru autentificarea tls:

# openvpn --genkey --secret /etc/openvpn/ta.key

Acum trebuie să copiați certificatele și cheile serverului în folderul de setări OpenVPN:

# chei cp/chei ca.crt/chei server.crt/chei server.key/dh2048.pem /etc/openvpn/

Și, de asemenea, setați permisiuni pentru ele care permit citirea și modificarea numai pentru proprietarul lor.

# chmod 0600 /etc/openvpn/ca.crt /etc/openvpn/server.crt /etc/openvpn/server.key /etc/openvpn/dh2048.pem /etc/openvpn/ta.key

Asigurați-vă că copiați pe computer, de exemplu, pe desktop, din folder chei cheile necesare pentru conectarea clientului: client.crt, client.cheie, ca.crt, ta.cheie.

Acest lucru completează procesul de certificare.

Ajustarea serverului

Directorul /usr/share/doc/openvpn/ conține un exemplu de fișier pentru configurarea unui server Openvpn. Copiați-l în directorul /etc/openvpn/ și dezarhivați-l:

cd /etc/openvpn;cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/;gunzip server.conf.gz

Acum să ne uităm la parametrii necesari pentru ca openvpn să funcționeze.

Portul pe care Openvpn va accepta conexiuni. Valoarea implicită este 1194. Recomand să-l schimbați pentru a-l ascunde. Puteți chiar să deghizați openvpn ca server web specificând portul 80.

Port 20100

Noi prescriem căile către fișierele certificatelor și cheia serverului.

Ca ca.crt cert server.crt cheie server.key

Calea către cheia Diffie-Hellman.

Dhdh2048.pem

Căile pot fi specificate fie relativ la directorul /etc/openvpn (dacă fișierele se află acolo) fie absolute.

Găsiți și decomentați linia:

Apăsați „redirect-gateway def1 bypass-dhcp”

Este necesar pentru a putea accesa Internetul prin serverul OpenVPN. Dacă nu este necomentat, atunci numai computerele din rețea vor fi accesibile.

De asemenea, trebuie să specificați serverele dns pentru conectarea clienților.

Apăsați „dhcp-option DNS 213.183.57.55” apăsați „dhcp-option DNS 87.98.175.85”

În funcție de locația serverului, puteți prelua alte servere dns, de exemplu, în proiectul OpenNIC.

tls-auth ta.key 0

Atenţie!În setările clientului, ultima cifră a acestui parametru ar trebui înlocuită cu 1 - tls-auth ta.key 1.

Un pic mai jos în fișierul de configurare este o listă a cifrurilor disponibile. Decomentați cifrul AES-128-CBC.

Cifrare AES-128-CBC # AES

Dacă este necesar, poate fi înlocuit cu AES-256-CBC. În fișierul de configurare a clientului, cifrul trebuie să fie identic cu cifrul serverului.

Adăugați și parametrul auth. În mod implicit, cheile sha1 de 160 de biți sunt folosite pentru autentificare, dar algoritmul sha1 este considerat vulnerabil. Următorul parametru va folosi chei SHA512 pe 512 biți.

Autentificare SHA512

La fel și parametrul tls-version-min, care determină versiunea tls utilizată. LA acest caz, ultima versiune 1.2. Atenţie! Network Manager nu acceptă (la momentul scrierii) această setare. Prin urmare, dacă intenționați să vă conectați la serverul VPN prin Network Manager, atunci acest parametru NU este setat în setările serverului.

tls-version-min 1.2

OpenVPN nu ar trebui să fie rulat ca root. Deci, decomentați rândurile:

Utilizator nimeni grup nogroup

Nu va fi de prisos să activați jurnalele pentru OpenVPN. Mai ales, la începutul utilizării după configurare pentru a găsi erori etc.

Log /var/log/openvpn.log

Lăsați toți ceilalți parametri ai fișierului de configurare /etc/openvpn/server.conf cu valorile implicite. Aceasta completează configurarea serverului OpenVPN.

Activați openvpn cu comanda:

# systemctl activa openvpn

Și reporniți:

# service openvpn reporniți

De asemenea, este util să verificați jurnalul pentru erori.

Redirecționarea traficului prin OpenVPN

Pentru a putea accesa Internetul prin serverul openvpn, trebuie să faceți ceva pentru asta.

1. Configurați sysctl

În consolă, rulați comanda:

# sysctl net.ipv4.ip_forward

Dacă rezultatul comenzii este net.ipv4.ip_forward = 1, nu trebuie să schimbi nimic. Dacă valoarea variabilei este egală cu 0, atunci fișierul /etc/sysctl.conf trebuie să adăugați linia:

Net.ipv4.ip_forward = 1

Și reîncărcați regulile cu comanda:

# sysctl -p

2. Configurați iptables

Rulați următoarele comenzi una câte una în consolă:

# iptables -A FORWARD -i eth0 -o tun0 -m stare --state ESTABLISHED,RELATED -j ACCEPT # iptables -A FORWARD -s 10.8.0.0/24 -o eth0 -j ACCEPT # iptables -t nat -A POSTRUTING - s 10.8.0.0/24 -o eth0 -j MASQUERADE

Astfel, vom permite traficului să treacă prin serverul OpenVPN pentru subrețeaua 10.8.0.0 în cadrul conexiunilor deja stabilite.

Dacă clientului openvpn trebuie să i se atribuie o anumită adresă IP externă a serverului, atunci în loc de ultima comandă din lista celor anterioare pentru iptables, trebuie să rulați aceasta:

A POSTROUTING -s 10.8.0.0/24 -o eth0 -j SNAT --to-source 127.0.0.1

Unde după parametru --la sursa trebuie să specificați ip-ul extern al serverului.

Client OpenVPN pe Windows

Să începem configurarea clientului Openvpn pe Windows. Totul este simplu aici: de pe site-ul oficial, instalează, creează un fișier de configurare și rulează.

Este de remarcat faptul că ar trebui să rulați openvpn pe Windows cu drepturi de administrator dacă Controlul contului utilizatorului este activ.

Dacă nu ați schimbat calea de instalare, atunci exemple de fișiere de configurare de pe computerul dvs. se află în director C:\Program Files\OpenVPN\sample-config. Copiați fișierul de aici client.ovpnși puneți-l într-un director C:\Program Files\OpenVPN\config.

Vă amintiți certificatele pe care le-ați creat pentru client? De asemenea, ar trebui să fie descărcate de pe server și copiate în acest director.

Deschideți fișierul de configurare client.ovpn și găsiți setarea la distanță my-server-1 1194. Înlocuiți my-server cu ip-ul sau numele de domeniu al serverului dvs. Apoi portul pe care l-am schimbat mai devreme. Ca rezultat, linia ar putea arăta astfel:

Ca ca.crt cert client.crt cheie client.key

De asemenea, ar trebui să decomentați parametrul care specifică calea către cheia tls.

Tls-auth ta.key 1

Mai devreme se spunea că ultima cifră de pe server ar trebui să fie 0, pe client - 1.

Iar ultimii parametri sunt cifrurile pe care le-ați instalat pe server.

Cifrare AES-128-CBC auth SHA512 tls-version-min 1.2

Acesta este tot ceea ce este necesar pentru a configura clientul. Încercați să porniți clientul OpenVPN și să vă conectați la server. Informațiile necesare de conectare vor fi afișate în fereastra openvpn gui.

OpenVPN cu NetworkManager

Instalare GUI pentru managerul de rețea.

# aptitude install network-manager-openvpn-gnome

Și repornim.

# service network-manager repornire

Copiem certificatele generate pentru client într-un folder arbitrar de pe computer. De exemplu, în /home/user/.openvpn/.

clic tasta dreapta faceți clic pe pictograma managerului de rețea, selectați elementul „editați conexiunile”, adăugați o nouă conexiune de tip „OpenVPN”.

Specifica:

  • Numele conexiunii
  • Gateway (domeniu sau ip server)
  • Tip: certificate

Certificatul de utilizator este certificatul pe care l-am generat la început pentru client (client.crt).
Certificat CA - fișier ca.crt.
Cheia privată este cheia clientului (client.key).

Faceți clic pe butonul „Avansat”. În fereastra care se deschide, în fila „General”, va trebui să modificați mai multe elemente.

  • Utilizați un alt port gateway (dacă ați specificat unul non-standard la configurarea serverului)
  • Utilizați compresia lzo

Comutați la fila „Securitate”. Selectăm cifrul, ca în parametrii serverului. Ca valoare a parametrului „Autentificare Hmac”, trebuie să specificați algoritmul, ca în valoarea de autentificare a serverului. În articol, am ales SHA512.

Deschideți fila „Autentificare TLS” și bifați casetele:

  • Verificați peer...
  • Utilizați autentificare TLS suplimentară

Pentru ultimul parametru, specificați calea către fișierul ta.key, selectați 1 ca direcție a cheii din lista derulantă. Similar cu fișierul de configurare pentru Windows.

Salvăm conexiunea și încercăm să ne conectăm. :)

Pentru orice eventualitate, să ne uităm la ce scrie NM atunci când se conectează la jurnalul de sistem:

# coada -f /var/log/syslog

In contact cu

19 iunie 2018 ora 11:32 2171 vizualizări | fara comentarii

Pasul 1: Instalați OpenVPN

Actualizați indexul pachetului:

Pachetul OpenVPN este disponibil în depozitele implicite, așa că puteți utiliza apt pentru a-l instala. De asemenea, veți avea nevoie de pachetul easy-rsa pentru a vă ajuta să creați o autoritate de certificare internă (CA sau CA) pentru VPN.

apt-get install openvpn easy-rsa

Pasul 2: Configurarea OpenVPN

Exemplu de configurație Fișier VPN trebuie să extrageți din /etc/openvpn și să îl adăugați la instalare. Pentru a face acest lucru, utilizați comanda:

gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz > /etc/openvpn/server.conf

Apoi deschide server.conf într-un editor de text:

nano /etc/openvpn/server.conf

Trebuie făcute câteva modificări la fișier.

  • Protejați serverul cu un nivel mai ridicat de criptare
  • Redirecționați traficul web către destinație
  • Preveniți scurgerile interogărilor DNS în afara conexiunii VPN
  • Setați permisiunile.

Mai întâi, dublați lungimea cheii RSA. Pentru a face acest lucru, găsiți linia:

# Parametrii Hellman difiși.
# Genera al tau cu:
# openssl dhparam -out dh1024.pem 1024
# Înlocuiți 2048 cu 1024 dacă utilizați
# Chei de 2048 biți.
dh dh1024.pem

Și schimbați-i valoarea în dh2048.pem:

dh dh2048.pem

Localizați secțiunea de redirecționare-gateway și eliminați punctul și virgulă de la începutul liniei de redirecționare-gateway pentru a o decomenta. Acest lucru va permite clientului să-și redirecționeze traficul prin serverul OpenVPN.

# Dacă este activată, această directivă se va configura
# toți clienții să-și redirecționeze implicit
# gateway de rețea prin VPN, provocând
# tot traficul IP, cum ar fi navigarea pe web și
# și căutări DNS pentru a trece prin VPN
# (Serverul OpenVPN poate avea nevoie de NAT
# sau conectați interfața TUN/TAP la internet
# pentru ca acest lucru să funcționeze corect).
; apăsați „redirect-gateway def1 bypass-dhcp”

Ca rezultat, linia ar trebui să arate astfel:

push "redirect-gateway def1 bypass-dhcp"

De asemenea, trebuie să lăsați serverul să folosească OpenDNS pentru rezoluția DNS, dacă este posibil. Acest lucru va ajuta la prevenirea scurgerii interogărilor DNS în afara conexiunii VPN.

# Anumite setări de rețea specifice Windows
# poate fi trimis către clienți, cum ar fi DNS
# sau adresele serverului WINS. AVERTISMENT:
# http://openvpn.net/faq.html#dhcpcaveats
# Adresele de mai jos se referă la public
# Servere DNS furnizate de opendns.com.
; apăsați „dhcp-option DNS 208.67.222.222”
; apăsați „dhcp-option DNS 208.67.220.220”

Anulați comentariile pentru „dhcp-option DNS 208.67.222.222” și apăsați liniile „dhcp-option DNS 208.67.220.220”.

apăsați „dhcp-option DNS 208.67.222.222”
apăsați „dhcp-option DNS 208.67.220.220”

Acum definiți permisiunile în server.conf:

# Puteți anula comentariul
# sisteme non-Windows.
;utilizator nimeni
;grup fără grup

Decomentează ambele rânduri:

utilizator nimeni
grup fără grup

În mod implicit, OpenVPN rulează ca utilizator root și, prin urmare, are acces complet root la sistem. OpenVPN trebuie să fie restricționat în drepturi, iar pentru aceasta trebuie să folosiți nimeni și niciun grup. Acesta este un utilizator neprivilegiat, fără opțiune de autentificare în mod implicit, adesea rezervat pentru rularea aplicațiilor nesigure.

Salvați și închideți fișierul.

3: Rutarea pachetelor

Aceasta este o setare sysctl care îi spune miezului serverului să redirecționeze traficul de la dispozitivele client la Internet. În caz contrar, traficul se va opri la server. Puteți activa redirecționarea pachetelor cu această comandă:

echo 1 > /proc/sys/net/ipv4/ip_forward

Faceți această valoare persistentă, astfel încât să fie restaurată după o repornire:

nano /etc/sysctl.conf

Găsiți linia net.ipv4.ip_forward.


#net.ipv4.ip_forward=1

Anulați comentariul:

# Anulați comentariile următoarei rânduri pentru a activa redirecționarea pachetelor pentru IPv4
net.ipv4.ip_forward=1

Salvați și închideți fișierul.

Pasul 4: Configurarea paravanului de protecție ufw

ufw este interfața iptables. Configurarea ufw este destul de simplă. Trebuie să adăugați câteva reguli și să faceți câteva modificări de configurare și apoi să o activați.

Instalați ufw:

apt-get install ufw

Activați suportul SSH:

În manual, OpenVPN funcționează prin UDP, deschideți acest trafic pe portul 1194.

ufw permit 1194/udp

De asemenea, trebuie să configurați politica de rutare UFW. Vom face acest lucru în fișierul principal de configurare UFW.

nano /etc/default/ufw

Căutați DEFAULT_FORWARD_POLICY="DROP". Înlocuiți valoarea între ghilimele cu ACCEPT.

DEFAULT_FORWARD_POLICY="ACCEPT"

Salvați și închideți fișierul.

Apoi adăugați reguli ufw suplimentare pentru a transforma adrese de rețeași mascarea IP a clienților conectați.

nano /etc/ufw/before.rules

Începutul fișierului before.rules trebuie editat așa cum se arată mai jos. Trebuie să adăugați secțiunea evidențiată în roșu:

# reguli.înainte
#
# Reguli care ar trebui să fie rulate înainte ca linia de comandă ufw să adauge reguli. Personalizat
# reguli ar trebui adăugate la unul dintre aceste lanțuri:
# ufw-înainte de intrare
# ufw-înainte-ieșire
# ufw-înainte-înainte
#
# INIȚI REGULILE OPENVPN

# reguli de masă NAT

*nat

: POSTROUTING ACCEPT


# Permiteți traficul de la clientul OpenVPN către eth0


-A POSTROUTING -s 10.8.0.0/8 -o eth0 -j MASQUERADE


COMMIT

# Terminați REGULILE OPENVPN
# Nu ștergeți aceste linii obligatorii, altfel vor apărea erori
*filtru

Salvați și închideți fișierul.

Acum puteți activa firewall-ul:

ufw activare
Comanda poate întrerupe conexiunile ssh existente. Continuați cu operația (y|n)?

Selectați y:

Firewall este activ și activat la pornirea sistemului

Acum verificați regulile și starea firewall-ului:

starea ufw
stare: activ
La Acțiune De la
-- ------ ----
22 PERMITERE oriunde
1194/udp ALLOW Oriunde
22 (v6) PERMITERE oriunde (v6)
1194/udp (v6) PERMITERE oriunde (v6)

Pasul 5: Creați o autoritate de certificare

OpenVPN folosește certificate pentru a cripta traficul.

În această secțiune, vom crea un CA în doi pași: primul este setarea variabilelor, iar al doilea este generarea unui CA.

OpenVPN acceptă autentificarea bidirecțională bazată pe certificate, ceea ce înseamnă că clientul trebuie să autentifice certificatul serverului, iar serverul trebuie să autentifice certificatul clientului pentru a stabili încrederea reciprocă.

Copiați scripturile Easy-RSA:

cp -r /usr/share/easy-rsa/ /etc/openvpn

Creați un director de chei:

mkdir /etc/openvpn/easy-rsa/keys

Easy-RSA oferă un fișier variabil care poate fi editat pentru a crea certificate cu valori implicite predefinite. Aceste informații sunt copiate în certificate și chei și vor ajuta la identificarea cheilor mai târziu.

nano /etc/openvpn/easy-rsa/vars

Valorile evidențiate cu roșu ar trebui înlocuite cu propriile date:

exportați KEY_COUNTRY="SUA"
export KEY_PROVINCE="TX"
export KEY_CITY="Dallas"
export KEY_ORG="Numele companiei mele"
export KEY_EMAIL=" [email protected] "
export KEY_OU="MYOrganizationalUnit"

În același fișier vars, editați linia de mai jos. Pentru simplitate, vă recomandăm să folosiți server ca nume. Dacă doriți să utilizați un nume diferit, va trebui să actualizați fișierele de configurare OpenVPN care se referă la server.key și server.crt. Găsi:

# X509 Câmp subiect
exportați KEY_NAME="EasyRSA"

Și schimbați-i valoarea:

# X509 Câmp subiect
exportați KEY_NAME="server"

Salvați și închideți fișierul.

Acum trebuie să generăm o cheie Diffie-Hellman; ar putea dura câteva minute. Indicatorul -out specifică unde se vor stoca noile opțiuni.

openssl dhparam -out /etc/openvpn/dh2048.pem 2048

Accesați directorul:

cd /etc/openvpn/easy-rsa

Inițializați PKI (Infrastructura cu cheie publică). Notați punctul (.) și spațiul înainte de ./varscommand. Aceasta specifică directorul de lucru curent.

Comanda va returna acest rezultat. Deoarece nu există încă nimic în directorul chei, aceasta este o ieșire normală.

NOTĂ: Dacă rulați ./clean-all, voi face un rm -rf pe /etc/openvpn/easy-rsa/keys

Acum trebuie să ștergem directorul de lucru de eventualele chei vechi sau fișiere eșantion pentru a face loc noilor chei.

Această ultimă comandă creează o Autoritate de Certificare (CA) prin invocarea comenzii interactive OpenSSL. Ieșirea vă va cere să validați variabilele pe care le-ați definit anterior în fișierul Easy-RSA (numele țării, organizația etc.).

Pentru a accepta valorile implicite, trebuie doar să apăsați Enter.

CA este gata.

Pasul 6: Generarea cheilor și certificatelor de server

Rămânând în directorul /etc/openvpn/easy-rsa, lansați acum comanda pentru a genera cheia serverului. Valoarea serverului este variabila de export KEY_NAME pe care o setați în fișierul Easy-RSA Vars.

./build-key-server

Comanda va genera aproximativ aceeași ieșire ca și rularea ./build-ca și puteți apăsa din nou Enter pentru a confirma valorile implicite. Cu toate acestea, de data aceasta mai sunt două rânduri:



O parolă de provocare:
Un nume de companie opțional:

Lăsați ambele linii necompletate prin simpla apăsare a Enter.

La sfârșit, vor apărea încă două rânduri în care trebuie să răspundeți y:

Semnează certificatul?

Ultima linie va scoate:


Baza de date actualizată

Pasul 7: Mutarea cheilor și certificatelor de server

OpenVPN va căuta CA, certificatul și cheia serverului în /etc/openvpn. Copiați-le în locația corectă.

cp /etc/openvpn/easy-rsa/keys/(server.crt,server.key,ca.crt) /etc/openvpn

Puteți verifica dacă operația a avut succes:

Ar trebui să vedeți certificatul serverului și fișierele cheie.

Serverul OpenVPN este acum gata de pornire. Rulați-l și verificați starea:

pornirea serviciului openvpn
starea serviciului openvpn

Ultima comandă va răspunde:

* openvpn.service - serviciu OpenVPN
Încărcat: încărcat (/lib/systemd/system/openvpn.service; activat)
Activ: activ (ieșit) din joi 2015-06-25 02:20:18 EDT; acum 9s
Proces: 2505 ExecStart=/bin/true (cod=exit, status=0/SUCCESS)
PID principal: 2505 (cod=ieșit, stare=0/SUCCESS)

Serverul OpenVPN funcționează!

Dacă comanda spune că VPN-ul este oprit, verificați /var/log/syslog:

Eroare de opțiuni: --key fails with "server.key": Nu există un astfel de fișier sau director

Această eroare spune că server.key a fost copiat incorect în /etc/openvpn. Copiați-l din nou și încercați să porniți serverul.

Pasul 8: Generarea certificatelor și cheilor clientului

Anterior, ați instalat și configurat serverul OpenVPN, ați creat o autoritate de certificare și un certificat și cheie de server. În acest moment, trebuie să utilizați CA-ul serverului pentru a crea certificate și chei pentru fiecare dispozitiv client care se va conecta la VPN.

Generați chei și certificate

Notă R: În mod implicit, OpenVPN nu acceptă conexiuni client simultane la un server creat cu același certificat și cheie (vezi duplicate-cn în /etc/openvpn/server.conf).

Pentru a crea acreditări individuale pentru fiecare dispozitiv pe care intenționați să vă conectați la VPN, trebuie să repetați această secțiune pentru fiecare dintre ele (dar trebuie să schimbați numele clientului, cum ar fi client2 sau iphone2). Cu acreditările individuale, dispozitivele pot fi ulterior dezactivate individual. În acest tutorial, exemplele folosesc numele clientului client1.

Colectați cheia pentru client1 în directorul /etc/openvpn/easy-rsa.

./build-key client1

Vi se va cere din nou să modificați sau să validați variabilele și aceste două linii, care ar trebui să fie goale. Apăsați Enter pentru a accepta setările implicite.

Vă rugăm să introduceți următoarele atribute „extra”.
să fie trimis împreună cu cererea dumneavoastră de certificat
O parolă de provocare:
Un nume de companie opțional:

Ca și înainte, următoarele două linii de la sfârșitul procesului de construire necesită un răspuns y:

Semnează certificatul?
1 din 1 solicită certificat certificat, comite?

Dacă colectarea cheilor a avut succes, rezultatul va arăta din nou astfel:

Scrieți baza de date cu 1 intrări noi
Baza de date actualizată

Un exemplu de fișier de configurare a clientului trebuie copiat în directorul de chei Easy-RSA și folosit ca șablon pentru a fi descărcat pe dispozitivele client pentru editare. În timpul procesului de copiere, trebuie să schimbați numele fișierului din client.conf în client.ovpn, deoarece clienții trebuie să folosească extensia .ovpn.

cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf

Repetați această secțiune pentru toți clienții dvs., schimbând numele clientului.

Notă: Numele duplicat client.ovpn nu trebuie să fie asociat cu dispozitivul client. Aplicația client OpenVPN va folosi numele fișierului ca identificator pentru conexiunea VPN în sine. Copiați client.ovpn cu numele pe care VPN-ul îl va folosi pe sistemul dvs. de operare. De exemplu: work.ovpn ar fi definit ca retea de lucru, school.ovpn - ca școala etc.

De asemenea, trebuie să modificați fiecare fișier client și să specificați adresa IP a serverului OpenVPN, astfel încât clientul să știe la ce să se conecteze. Deschideți client.ovpn folosind nano sau alt editor de text.

nano /etc/openvpn/easy-rsa/keys/client.ovpn

Înlocuiți my-server-1 cu adresa IP VPN din linia de la distanță.

# Numele de gazdă/IP-ul și portul serverului.
# Puteți avea mai multe intrări de la distanță
# pentru a echilibra încărcarea între servere.
la distanță my-server-1 1194

Apoi găsiți această secțiune și anulați comentariile utilizatorului nobody și grupați nogroup așa cum ați făcut în server.conf. Acest lucru nu se aplică sistemului de operare Windows.

# Privilegii de downgrade după inițializare (numai pentru non-Windows)
utilizator nimeni
grup fără grup

Transferarea cheilor și certificatelor pe dispozitivele client

Amintiți-vă că certificatele și cheile clientului sunt stocate pe serverul OpenVPN în directorul /etc/openvpn/easy-rsa/keys.

Acum trebuie să transferați certificatul client, cheia și fișierele de profil într-un folder de pe acest dispozitiv client.

De exemplu, în acest caz, fișierele ar trebui să fie localizate în etc/openvpn/easy-rsa/keys/client1.crt și /etc/openvpn/easy-rsa/keys/client1.key

Fișierele ca.crt și client.ovpn sunt aceleași pentru toți clienții. Descărcați aceste două fișiere; rețineți că fișierul ca.crt se află într-un director diferit.

  • /etc/openvpn/easy-rsa/keys/client.ovpn
  • /etc/openvpn/ca.crt

Alegerea aplicației de transfer depinde de dvs. și de sistemul de operare al dispozitivului dvs., dar este recomandat să selectați aplicații care acceptă SFTP (SSH File Transfer Protocol) sau SCP (Secure Copy). Acest lucru va transfera fișierele client printr-o conexiune criptată.

Următorul este un exemplu de comandă SCP. Acesta plasează fișierul client1.key în directorul Descărcări de pe computerul local.

scp [email protected]:/etc/openvpn/easy-rsa/keys/client1.key Descărcări/

De asemenea, puteți folosi următoarele aplicații si manuale:

Apoi asigurați-vă că dispozitivul client are aceste fișiere:

  • client1.crt
  • client1.cheie
  • client.ovpn
  • ca.crt

Pasul 9: Creați un singur profil OpenVPN pentru clienți

Există mai multe moduri de a gestiona fișierele client, dar cel mai simplu este să utilizați un singur profil. Profilul este creat prin modificarea fișierului șablon client.ovpn și adăugarea CA serverului, certificatul clientului și cheia clientului. După aceea, doar profilul client.ovpn trebuie importat în aplicația OpenVPN a clientului.

Trei rânduri din secțiunea de mai jos trebuie comentate pentru a include certificatul și cheia direct în fișierul client.ovpn. Ar trebui să arate așa:

# SSL/TLS parms.
# . . .
;ca ca.crt
;certclient.crt
;keyclient.key

Salvați și închideți fișierul client.ovpn.

Puteți adăuga certificate folosind cod. Mai întâi adăugați CA:

ecou" " >> /etc/openvpn/easy-rsa/keys/client.ovpn
cat /etc/openvpn/ca.crt >> /etc/openvpn/easy-rsa/keys/client.ovpn
ecou"
" >> /etc/openvpn/easy-rsa/keys/client.ovpn

Apoi adăugați certificatul:

ecou" " >> /etc/openvpn/easy-rsa/keys/client.ovpn
cat /etc/openvpn/easy-rsa/keys/client1.crt >> /etc/openvpn/easy-rsa/keys/client.ovpn
ecou"
" >> /etc/openvpn/easy-rsa/keys/client.ovpn

La sfârșit, adăugați cheia:

ecou" " >> /etc/openvpn/easy-rsa/keys/client.ovpn
cat /etc/openvpn/easy-rsa/keys/client1.key >> /etc/openvpn/easy-rsa/keys/client.ovpn
ecou"
" >> /etc/openvpn/easy-rsa/keys/client.ovpn

Acum aveți un singur profil care poate fi copiat pe dispozitivul client.

Pasul 10: Instalarea unui profil de client

Pe platforme diferite mănâncă mai mult aplicații convenabile pentru a vă conecta la serverul OpenVPN. Instrucțiunile pentru instalarea clienților pe diferite platforme pot fi găsite în secțiunea 5 a manualului.

Concluzie

Acum aveți un virtual pe deplin funcțional rețea privată pe serverul OpenVPN. Puteți naviga pe web și descărca conținut fără să vă faceți griji că intrușii vă urmăresc activitatea.

După ce ați instalat conexiune reușită cu clientul, vă puteți asigura că traficul este direcționat prin VPN,

Această hautushka este un extras din multe articole cu o descriere minimă a pașilor și fără apă. Se presupune că autoritatea de certificare și serverul OpenVPN sunt pe aceeași gazdă. În plus, m-am săturat să caut pe google pe acest subiect de fiecare dată, pentru că. Deoarece marea majoritate a manualelor sunt depășite, este nevoie de mult timp pentru a activa serviciul.

Configurarea OpenVPN pentru accesul clientului la resursele rețelei locale

Server

Configurare server

Instalați OpenVPN și creați un utilizator cu același nume sub care va rula demonul:

Apt install openvpn adduser --system --no-create-home --disabled-login --group openvpn

Creați o configurație de server openvpn cu următorul conținut:

Mcedit /etc/openvpn/server.conf port 1194 proto udp dev tun0 #user openvpn #group openvpn dh /etc/openvpn/keys/dh.pem ca /etc/openvpn/keys/ca.crt cert /etc/openvpn/keys /vpn-server.crt cheie /etc/openvpn/keys/vpn-server.key tls-auth /etc/openvpn/keys/ta.key 0 #crl-verify /etc/openvpn/keys/crl.pem script-security 2 cifră AES-256-CBC tls-server comp-lzo mute 10 persist-key persist-tun max-clients 50 keepalive 10 900 client-config-dir /etc/openvpn/ccd ifconfig-pool-persist /etc/openvpn/ccd /ipp.txt server 10.15.0.0 255.255.255.0 ### Aceste opțiuni se explică de la sine. # Împingeți (trimiteți la client) serverul dvs. DNS push „dhcp-option DNS 192.168.0.1” # Push numele domeniului push „dhcp-option DOMAIN mydomain.com” # Push local subnet route. Pentru ca clienții să aibă acces la el, apăsați „route 192.168.0.0 255.255.254.0” ### status /var/log/openvpn/openvpn-status.log 1 status-version 3 log-append /var/log/openvpn / verbul openvpn-server.log 5

Creați directoare pentru jurnalele și stocarea adreselor IP ale clienților:

mkdir /var/log/openvpn/ mkdir /etc/openvpn/ccd

Centru de autorizare și chei

Accesați directorul principal, descărcați și despachetați versiunea easyrsa 3:

Cd wget https://github.com/OpenVPN/easy-rsa/archive/master.zip unzip master.zip

Schimbați în directorul easyrsa3 și declarați variabile pentru acesta:

cd ~/easy-rsa-master/easyrsa3 cp ~/easy-rsa-master/easyrsa3/vars.exemplu ~/easy-rsa-master/easyrsa3/vars

Inițializați PKI (Infrastructură cu cheie publică - Infrastructură cu cheie publică):

./easyrsa init-pki

Creați un certificat rădăcină. Obligatoriu pentru a intra parolă complexăși numele comun al serverului, de exemplu serverul meu vpn:

./easyrsa build-ca

Generați chei Diffie-Hellman:

./easyrsa gen-dh

Generați o cerere de certificat pentru serverul OVPN. Vă rugăm să rețineți că certificatul nu va fi protejat prin parolă (parametrul nopass), altfel OpenVPN va solicita această parolă de fiecare dată când pornește:

./easyrsa gen-req vpn-server nopass

Creați în sine certificatul de server OVPN:

./easyrsa sign-req server vpn-server

Copiați cheile primite în directorul de lucru openvpn:

Mkdir -p /etc/openvpn/keys cp ~/easy-rsa-master/easyrsa3/pki/ca.crt /etc/openvpn/keys cp ~/easy-rsa-master/easyrsa3/pki/issued/vpn-server. crt /etc/openvpn/keys cp ~/easy-rsa-master/easyrsa3/pki/private/vpn-server.key /etc/openvpn/keys cp ~/easy-rsa-master/easyrsa3/pki/dh.pem / etc/openvpn/keys

Creați „firewall HMAC” pentru a vă proteja împotriva atacurilor DoS și a inundațiilor de porturi UDP:

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

Porniți openvpn:

/etc/init.d/openvpn start

Client

Chei

Creați o cerere de cheie protejată prin parolă pentru client (necesară pentru fiecare conexiune) numită Utilizator:

Cd ~/easy-rsa-master/easyrsa3 ./easyrsa gen-req User

./easyrsa gen-req User nopass

Crearea unei chei de utilizator (în mod implicit din vars pentru o perioadă de 10 ani):

./easyrsa sign-req client Utilizator

Sau cu o limită de valabilitate a certificatului de 90 de zile (după data de expirare, îl puteți reemite doar):

./easyrsa sign-req client User -days 90

Trimiteți aceste fișiere către client:

~/easy-rsa-master/easyrsa3/pki/issued/User.crt ~/easy-rsa-master/easyrsa3/pki/private/User.key ~/easy-rsa-master/easyrsa3/pki/ca.crt / etc/openvpn/keys/ta.key

config

client dev tun proto udp remote xxx.xxx.xxx.xxx 1194 cipher AES-256-CBC tls-client ca "ca.crt" tls-auth "ta.key" 1 cert "User.crt" cheie "User.key" server remote-cert-tls comp-lzo tun-mtu 1500 mssfix 1450 verb 3 nobind rezoluție-reîncercare infinit

Pentru comoditate, toate cele cinci fișiere client pot fi

Revocarea certificatului

Generarea unui fișier cheie revocat:

cd ~/easy-rsa-master/easyrsa3 ./easyrsa-gen-crl

Ln -s ~/easy-rsa-master/easyrsa3/pki/crl.pem /etc/openvpn/keys

În /etc/openvpn/server.conf adăugați linia

crl-verify /etc/openvpn/keys/crl.pem

Revocarea certificatului utilizatorului Utilizator:

./easyrsa revoca utilizatorul

De fiecare dată când revocați un certificat, trebuie să actualizați crl.pem pentru a-i face modificări:

./easyrsa gen-crl

Notă: fișierul cheie cu același nume nu poate fi creat până când cel vechi nu este revocat. Când încercați să creați un certificat cu un nume existent, va da o eroare:

Nu s-a putut actualiza baza de date Eroare Easy-RSA: semnarea a eșuat (ieșirea openssl de mai sus poate avea mai multe detalii)

Configurare Iptables minimă pentru clienții OpenVPN pentru a accesa rețeaua locală

# Activați forward în kernel echo "1" > /proc/sys/net/ipv4/ip_forward # Permiteți conexiunile de intrare la portul OVPN iptables -A INPUT -p UDP --dport 1194 -j ACCEPT # Permiteți înainte între subrețeaua OVPN și local # Mai mult, puneți-le la începutul lanțului dacă există multe reguli iptables -A FORWARD -s 10.15.0.0/24 -d 192.168.0.0/24 -j ACCEPT iptables -A FORWARD -d 10.15.0.0/24 -s 192.168 .0.0/ 24 -j ACCEPT

Configurarea OpenVPN pentru a accesa Internetul

Am dat peste un fir, nechezând și am decis să suplimentez nota. Dacă este necesar OpenVPN pentru a accesa Internetul, trebuie să vă asigurați că OpenVPN este gateway-ul implicit și corect regulile iptables.
De fapt, configurația pentru server:

Port 1194 proto udp dev tun0 dh /etc/openvpn/keys/dh.pem ca /etc/openvpn/keys/ca.crt cert /etc/openvpn/keys/vpn-server.crt cheie /etc/openvpn/keys/vpn -server.key tls-auth /etc/openvpn/keys/ta.key 0 crl-verify /etc/openvpn/keys/crl.pem script-security 2 cifru AES-256-CBC tls-server comp-lzo mute 10 persistă -key persist-tun max-clients 50 keepalive 10 900 client-config-dir /etc/openvpn/ccd ifconfig-pool-persist /etc/openvpn/ccd/ipp.txt server 10.15.0.0 255.255.255.0 push "redirect-gateway def1" stare /var/log/openvpn/openvpn-status.log 1 stare-versiunea 3 log-append /var/log/openvpn/openvpn-server.log verb 5

Configurația pentru client nu va diferi de cea de mai sus.

Configurare minimă Iptables pentru clienții OpenVPN pentru a accesa Internetul

reguli iptables:

# Activați forward în kernel echo "1" > /proc/sys/net/ipv4/ip_forward # Permiteți conexiunile de intrare la portul OVPN iptables -A INPUT -p UDP --dport 1194 -j ACCEPT # Permiteți pachetelor de tranzit să treacă prin subrețeaua OpenVPN iptables -A FORWARD -s 10.15.0.0/24 -j ACCEPT iptables -A FORWARD -d 10.15.0.0/24 -j ACCEPT # x.x.x.x - IP extern server dacă este static iptables -t nat -A POSTROUTING -s 10.15.00. / 24 -j SNAT --to-source x.x.x.x # Dacă IP-ul extern al serverului este dinamic, atunci utilizați aceasta în loc de regula anterioară # iptables -t nat -A POSTROUTING -s 10.15.0.0/24 -j MASQUERADE

Câteva remarci

Pentru a exclude posibilitatea unui atac mitm, a cărui eroare arată astfel în jurnalele clientului:

AVERTISMENT: Nu a fost activată nicio metodă de verificare a certificatului de server. Consultați http://openvpn.net/howto.html#mitm pentru mai multe informații.

Este utilizat parametrul server remote-cert-tls, care este deja prezent în configurația clientului.

Lista certificatelor valabile și revocate

O listă de certificate valide și revocate poate fi găsită în ~/easy-rsa-master/easyrsa3/pki/index.txt. Începutul liniei descriptive a fiecărui certificat începe cu literele V sau R , ceea ce înseamnă Valabil și Revocat, de exemplu:

V 241019110411z 01 necunoscut /cn = vpn-server r 241019110842z 141202085241z 02 necunoscut /cn = utilizator1 r 241010505823z 141201103442z 03 necunoscut /cn = test r 150301095139z 141202085811

După cum puteți vedea, primul și al cincilea certificat sunt valabile, 2-4 sunt revocate.

Dacă clientul este pe Windows

Instalați GUI OpenVPN descărcând de aici. Copiați cheile client în C:\Program Files\OpenVPN\config\ . Copiați configurația clientului și inserați-o în fișierul client.ovpn, puneți-o și acolo. Ar trebui să existe cinci fișiere în acest director - User.crt, User.key, ca.crt, ta.key, client.ovpn .
Asigurați-vă că rulați OpenVPN GUI ca administrator, altfel rutele nu se vor ridica în sistem și se vor conecta dublu click de pictograma tavă (o astfel de zonă se află lângă ceas, de obicei în colțul din dreapta jos).

  • Serghei Savenkov

    un fel de recenzie „rare”... parcă s-ar grăbi undeva