Linux | Web development | Posted on March 4, 2015

How_to_vpn_workLielākoties visi tagad ir sākuši aizdomāties par drošību utt.Protams ir arī tādi , kas pie internetbankas slēdzas klāt no publiskā Wi-Fi. Tad nu tiem kas domā ir viena laba opcija – Izmantot VPN. Te nu ir divas iespējas, abonēt kādu VPN no pakalpojuma sniedzēja, bet nu ar tiem ar nevar galvot, ka nelogo tavu trafiku utt. Tāpēc labāk to ir likt uz sava VPS. Tiem, kas bļauj ka tie ir dārgi, tad nu lūk jums lēts serviss – Digitalocean.Š. Tiem, kas negrib maksāt pirms nav pārbaudījuši, lūdzu saite  ar kuru dabūsi 10USD kredītu, protams, man arī kaut kas no tā tiek, bet ja esi ļauns un skauž ka kādam kas tiek, tad nespiežu tevi to izmantot. Par to tev sanāks lētakais serveris 2 mēnešus par brīvu.

Tad nu, kā pašam salikt savu VPN serveri. Pirms izstāstu pa soļiem kā to salikt tik jāpiebilst,ka šī veida VPN nedarbosies uz mob tel,bet kāda klienta, ja gribi lai  telefonā to varētu izmantot bez kādas aplikācijas tad tev vajag PPTP vai IPSEc atbalstošu VPN serveri. Nu tad beidzot, kā salikt savu VPN serveri.

Nepieciešamie “štrumi”:

  • VPS serveris ar Debian vai Centos saimes OS
  • Pieeja serverim ar ssh klientu
  • Root konta pieeja, nederēs te parastais useris( ja vien neesi iekš sudoers grupas)
  • nelielas iemaņas ar comandrindas teksta editoru
  • Laiks izpildīt visus soļus 🙂

Tad nu slēdzies klāt serverim un sāc pildīt zemāk esošos soļus.Visi soļi ir jāizpilda no root konta.

Pirmais kas ir jādara ir jāpārliecīnās ka ir atjaunoti paku saraksti no repozitārijiem

Debian bāzētām distribūcijām, tas būs paveicams ar

apt-get update

CentOS

Pirms atjaunināšanas mums ir jāpieinstalē vēl arī papildus repozitārījs

yum install epel-release
yum update

Kad tas ir izdarīts varam doties tālāk un uzstādīt OpenVPN pakotni uz servera.

Debian

apt-get install openvpn easy-rsa

CentOS

yum install openvpn easy-rsa -y

kā jau redzams papildus arī uzstādām Easy-RSA pakotni, kas atbildēs par RSA atslēgu menedžmentu.

Lai mums nebūtu konfigurācija jādzejo visa no nulles paņemam jau gatavu paraugu un pārkopējam to uz openvpn mapi

Debian

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

CentOS

cp /usr/share/doc/openvpn-*/sample/sample-config-files/server.conf /etc/openvpn

Ķeramies klāt pie konfigurācijas labošanas mūsu vajadzībām ( Abām distribūcijām veicamās izmaiņas ir vienādas)

Debian

 nano /etc/openvpn/server.conf

CentOS

vi /etc/openvpn/server.conf

Konfigurācījā veicamās izmaiņas

1) atrodam rindiņu

dh dh1024.pem

Un pārdēvējam to par

dh dh2048.pem

2) Izņemam no komentāriem jeb no sekojošās rindas sākuma nodzešam # zīmi.

push "redirect-gateway def1 bypass-dhcp"

3) To pašu izdarām ar rindiņām kas sākas ar push dhcp-option DNS, tikai papildinām ar DNS serveru adresēm, lai rezultāts izskatītos šādi

push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"

4) Izmainam konfigurācijā, ar kādām Openvpn serviss palaidīsies un darbosies uz sistēmas. To panākam nodzešot # no sekojošām rindiņām

user nobody
group nobody

Saglabājam konfigurācijas failu un veram to ciet

Nākamais solis ir izlabot kerneļa parametrus

To mēs panākam ar teksta editoru atverot kerneļa konfigurācijas failu

Debian

nano /etc/sysctl.conf

CentOS

vi /etc/sysctl.conf

Un atkal noņemam komentārus no rindiņas

#net.ipv4.ip_forward=1

Saglabājam izmaiņas un aizveram failu.

Tālāk uzģenerēsim atslēgas un sertifikātus priekš lietotāja, bet vispirms izveidosim direktoriju kurā glabāsim tos. Abam distribūcijām tas ir paveicams vienādi.

mkdir -p /etc/openvpn/easy-rsa/keys

Aizkopējam ģenerēšanai nepieciešamos skriptus.

Debian

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

CentOS

cp -rf /usr/share/easy-rsa/2.0/* /etc/openvpn/easy-rsa

Tālāk atveram skriptu /etc/openvpn/easy-rsa/vars ar ko ģenerēsim atslēgas un sertifikātus.Veicam izmaiņas lai sekojošās rindiņās

export KEY_COUNTRY="LV"
export KEY_PROVINCE="LV"
export KEY_CITY="Riga"
export KEY_ORG="Te ieliec kompanijas nosaukumu"
export KEY_EMAIL="tavs epasts"
export KEY_OU="kompanijas vieniba"

Tālāk , šajā pašā faila atrodam rindiņum kur server aizstājam ar kādu sevis izvēlētu vārdu.

export KEY_NAME="server"  

Priekš CentOS mums ir jāveic vēlviena izmaiņa

export KEY_CN=openvpn.example.com

Kur openvpn.example.com aizstājam ar saviem datiem

Debian OS gadījumā ģenerējam .pem  failu

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

CentOS mums jāveic tas pats, kā arī ir jāpārkopē openSSL pakotnes konfigurācija

./build-dh
cp /etc/openvpn/easy-rsa/openssl-1.0.0.cnf /etc/openvpn/easy-rsa/openssl.cnf

Beidzot ķeramies klāt pie atslēgu ģenerēšanas. Dodamies uz easy-rsa mapi

cd /etc/openvpn/easy-rsa

Palaižam pašu ģenerāciju

Debian

. ./vars

CentOS

source ./vars

Nodzešam visas iepriekšģenerētās atslēgas un paraugus, ja tādi ir.

./clean-all

Ģenerējam CA jeb certificate authority

./build-ca

Šajā solī gan ieteiktu uzmanīties, jo te var visu laist baigā auzā.Ģenerējam atslēgu un sertifikātu konkrētam klientam. Šeit server ir jāaizstāj ar vērtību ko norādījām kondigurācijā rindā export KEY_NAME=”server”

./build-key-server server

Pēc tam aizkopējam visus sertifikātus un atlēgas uz openvpn direktorijum protams server aizstājam atkal ar to pašu vārdu ar kuru ģenerējām atslēgas un sertifikātus

cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/easy-rsa/keys/client.ovpn

Debian gadījumā vēl aizkopējam arī konfigurācijas failus uz Easy-RSA mapi

cp /etc/openvpn/easy-rsa/keys/{server.crt,server.key,ca.crt} /etc/openvpn

Tālāk veidosim klienta atslēgas. Vispirms dodamies uz Easy-RSA mapi

cd /etc/openvpn/easy-rsa

Izveidojam klienta atslēgas un sertifikātus, client varam aizstāt ar kādu citu identifikātoru, piemēram, mansdators.

./build-key client

Tālāk atliek pieslēgties pie server ar filezilla ( to var izdarīt norādot portu 22) un lejuplādējot atslēgas un sertifikātu failus

no mapes /etc/openvpn/easy-rsa/keys/ . Faili kas nepieciešami (client šajā gadījumā būs vards ko ievadijis ģenerejot klienta failus):

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

P.S Ja serverī neatrodi .ovpn failu, tad to vari izveidots pats. Atver notepad vai kādu līdzīgu teksta editoru, iekopē šo

client
dev tun
proto udp
remote your_server_ip 1194
resolv-retry infinite
nobind
persist-key
persist-tun
comp-lzo
verb 3
ca /path/to/ca.crt
cert /path/to/client.crt
key /path/to/client.key

Kurā nomaini, klient uz klienta id ko ierakstīji to ģenerējot, Your_server_IP  būs tava servera ip adrese. Kā arī norādi, kur tavā datorā glabājas šie sertifikāti un atslēgas.

Kad šis ir padarīts. Norestartējam Visu serveri, lai stātos spēkā kerneļa parametru izmaiņas . Lejuplādējam OpenVPN klientu, ievadam visus datus un varam slēgties klat VPN.

Ja kādi jautājumi, izpaudies komentāros

Tags: