Instalați și configurați openvpn în linux ubuntu în 5 minute, note de programator

Cititorii obișnuiți ai acestui blog, cel mai probabil, deja de câteva ori în viața lor au creat OpenVPN. Dar cred că această notă va fi interesantă și utilă pentru începători. Din aceasta veți învăța cum să vă ridicați serverul VPN în cinci minute și, de asemenea, de ce este de fapt necesar. Ei bine, având în vedere timpul de înscriere în unele Amazon. Varianta DigitalOcean, VDSina sau FastVDS și VDS, poate că va dura cinci minute și cincisprezece "întregi".

Deci, de ce ar trebui cineva să meargă la rețea prin VPN? Există o serie de motive pentru aceasta. De exemplu, pentru a vă asigura că parolele transmise prin HTTP nu curg departe atunci când vă aflați cu puncte deschise WiFi de origine necunoscută. Și, în general, chiar și furnizorul dvs. obișnuit nu are nevoie să știe la ce site-uri mergeți. Totuși - să nu declanșezi IP-ul în rețelele IRC și în alte servicii cu care lucrezi. Nu trebuie să știe locația ta. De asemenea, este posibil să încercați un nou serviciu care nu este încă disponibil pentru utilizatorii cu IP rusesc. În plus, traficul dintre dvs. și serverul VPN este nu numai criptat, ci și comprimat, ceea ce poate crea adesea o senzație de Internet mai rapid. De asemenea, OpenVPN poate fi utilă într-o serie de alte cazuri - pentru accesarea angajaților la resursele companiei interne, atunci când se bazează pe aplicații VDS cu o arhitectură de micro-servicii și nu numai.

De ce este VPN, și nu unele proxy sau port de expediere prin SSH, sper, de asemenea, este de înțeles. VPN este suficient pentru a configura o dată și imediat întregul trafic al tuturor aplicațiilor va trece prin serverul VPN, într-o formă comprimată și criptată.

Pentru a ridica sale VPN, veți avea nevoie de propriul server cu Ubuntu Linux (sau orice alt Linux / * BSD, dar atunci va fi destul de dificil să urmezi instrucțiunile din acest articol), precum și dreptul de a-l rădăcină. Dacă serverul pe care îl aveți deja, bun. Dacă nu, nu vă descurajați. În prezent, este posibil să cumpărați un VDS / VPS potrivit pentru un ridicol de 150 de ruble pe lună. Companiile care oferă servicii relevante - zeci, unele au fost chemați la începutul notei. Este dificil să consiliați orice concret. Dacă aveți nevoie de o masina undeva in Statele Unite, plata numai prin card de credit și prețurile în dolari SUA nu sunt confuz, uita-te la DigitalOcean. Dacă mulțumit cu locația serverului din Amsterdam c IP rusă și doresc să plătească cât mai puțin posibil, folosind Yandex.Money, WebMoney sau sisteme similare (respectiv, Comisia), încercați VDSina. Ei bine, bineînțeles, nu fi leneș să studiezi singur problema, pentru că în momentul în care citiți aceste linii, situația de pe piața VDS se poate schimba. Și nu, acest post nu este plătit de nimeni :)

Mergem la server, devenim rădăcini, spunem:

apt-get update
apt-get instalează openvpn

Anterior, OpenVPN a inclus un utilitar numit easy-rsa, conceput pentru a genera chei și certificate. De la versiunea 2.3, acest utilitar din pachet a fost tăiat, deci trebuie să îl descărcați și să-l compilați singur:

cd / tmp
wget https: // github.com / OpenVPN / easy-rsa / archive / master.zip
apt-get instala unzip
unzip master.zip
cd easy-rsa-master
. / build / build-dist.sh
tar xvzf. / EasyRSA-git-dezvoltare.tgz
cd EasyRSA-git-dezvoltare

Noi generăm toate cheile și certificatele necesare. Pregătește-te să introduci parole pentru ei. Din moment ce înființăm un server VPN personal, se pare că puteți utiliza o singură parolă, dar este mai autentică:

/ easyrsa init-pki
. / easyrsa build-ca
. / easyrsa server build-server-full
. / easyrsa build-client-client complet1
. / easyrsa gen-dh

Ultima comandă poate dura câteva minute până la finalizare.

Transferați cheile și certificatele primite în directorul / etc / openvpn /

mv. / pki / dh.pem / etc / openvpn / dh.pem
mv. / pki / privat / client1.key / etc / openvpn /
mv. / pki / privat / server.key / etc / openvpn /
mv. / pki / ca.crt / etc / openvpn /
mv. / pki / emise / client1.crt / etc / openvpn /
mv. / pki / emise / server.crt / etc / openvpn /

În același director, creați fișierul server.conf:

mod server
dev tun
server 10.128.0.0 255.255.255.0
împingeți "redirect-gateway def1"
# important! altfel vom merge la furnizorul DNS
împingeți "dhcp-option DNS 8.8.8.8"
-server tls
ca ca.crt
cert server.crt
cheie server.key
dh dh.pem
proto tcp-server
port 1194
# clienții se văd unul pe celălalt
client-to-client
comp-LZO
păstrați 10 120
verb 4
cifru AES-256-CBC
utilizator nimeni nu utilizatorul nimeni
grup nogrup
max-clienți 10

Să încercăm OpenVPN. Când începeți, vi se va solicita o parolă. În consecință, după repornire, OpenVPN va trebui să fie ridicat. Dar, de vreme ce înființăm o rețea VPN personală, aceasta este cu greu o problemă mai mare decât cheia care se află în parolele clare sau chiar mai rău salvate. rulați:

serviciul openvpn start

Serverul ar trebui să asculte pe portul 1194. Dacă nu este cazul, smoke / var / log / syslog.

Acum, în privința clientului. Avem nevoie de fisierele client1.crt, client1.key si ca.crt:

mkdir vpn
cd vpn
scp vpn-server: / etc / openvpn / client1.crt. /
serverul scp vpn: / etc / openvpn / client1.key. /
scp vpn-server: / etc / openvpn / ca.crt. /

Creați fișierul client.conf:

# următoarele două linii sunt relevante numai pentru sistemele * nix
# în practică, acestea nu sunt foarte convenabile, deoarece OpenVPN nu poate
# este bine să cureți totul după ce ați terminat de lucru

# utilizator nimeni
# grup nogrup

persistă-cheie
persistă-tun
ca ca.crt
cert client1.crt
cheie client1.key
cifru AES-256-CBC
comp-LZO
verb 3

Am tăiat la server, citiți cu atenție jurnalele:

sudo openvpn --config client.conf

În următorul terminal vom spune:

ping 10.128.0.1
traceroute mail.ru

Dacă totul a fost făcut corect, veți găsi că ping-urile ating cu succes 10.128.0.1 (prima comandă), dar pachetele prin acesta nu merg nicăieri (a doua echipă). Acest lucru se datorează faptului că am uitat să configuram pe serverul NAT. Pentru mine personal mi se pare ciudat. Îmi amintesc vag că atunci când am ridicat odată OpenVPN pe FreeBSD. un astfel de pas nu era necesar. Totuși, pot fi greșit.

Pentru a nu restabili, spunem:

echo 1 >> / proc / sys / net / ipv4 / conf / toate / redirecționare

iptables -A FORWARD -s 10.128.0.0 / 24 -j ACCEPT
iptables -A FORWARD -d 10.128.0.0 / 24 -m state \
--stat ESTABLISHED, RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.128.0.0 / 24 \
-j SNAT - la sursă 123.45.67.89

... unde 123.45.67.89 este IP-ul serverului. Reconectăm clientul, încercăm să mergem la 2ip.ru sau ip.xss.ru - acum totul ar trebui să funcționeze. Dacă nu este cazul, fumăm busteni. Dacă totul este OK, salvați regulile de firewall pe server:

iptables-save> / etc / iptables.rules

... și verificați dacă există o linie în fișierul / etc / network / interfaces:

pre-up iptables-restore

Dacă serverul a configurat anterior un paravan de protecție. se poate întâmpla ca regulile să fie stocate într-un fișier cu alt nume decât /etc/iptables.rules.

Puteți să-i spuneți reboot și să verificați dacă setările sunt păstrate după ce serverul este repornit:

cat / proc / sys / net / ipv4 / conf / toate / redirecționarea
iptables -L -n

Serverul OpenVPN, desigur, trebuie să repornească manual.

Rămâne de a face atingerea finală a clientului. Faptul este că (1) rulați openvpn într-un terminal separat și vedeți dacă a căzut acolo, neconfortabil. În plus, (2) dacă clientul spune:

nan-instrument | grep DNS
sudo iptables -A OUTPUT -d 192.168.0.1 -j DROP
# ^ pentru a șterge regula, introduceți aceeași comandă cu -D în loc de -A

... în cazul în care 192.168.0.1 - DNS al furnizorului de (utilitar derivat nm-instrument), veți găsi că domeniile rezolving rupte, și, prin urmare, clientul este în continuare folosind furnizorul de servicii DNS. Puteți omorî două păsări cu o singură piatră, spunând:

sudo apt-get instalare rețea-manager-openvpn-gnome

... și configurați VPN-ul prin NetworkManager (pictograma de rețea din colțul din dreapta sus al unității). Acest lucru este făcut simplu, de fapt, trebuie să repetați configurația textului clientului cu ajutorul semnelor de marcare și a câmpurilor de introducere. Pentru a înțelege care este bifarea liniei care corespunde configului, este foarte ușor. Principalul lucru nu este să fii prea leneș să urci în tot felul de proprietăți avansate ale rețelei și alte secțiuni de setări. Dacă nu reușiți undeva, problema poate fi ușor de diagnosticat utilizând fișierul / var / log / syslog.

În ciuda faptului că nota sa dovedit a fi destul de lungă, configurarea OpenVPN durează doar câteva minute. Sigur și rapid pentru navigarea pe internet! De asemenea, ca întotdeauna, îmi voi primi cu plăcere întrebările și completările.

Îți place postul? Trimiteți-le altora:

(JS trebuie să fie activată)

Articole similare