VPN-serveri ülesseadmine GitHub Linkedin Coderwall Stack Overflow Google+

Väike OpenVPNi seadistamise kirjutis, mille ma mingi aeg maha märkinud olen.

Eeltingimus

OpenVPNi seadistamiseks on vajalik TUN/TAP-liidese olemasolu. Seda saab kontrollida järgnevalt:

cat /dev/net/tun

Kui tulemus on selline:

cat: /dev/net/tun: File descriptor in bad state

siis võime jätkata :)

Paigaldamine

Paigaldame paketi, teeme easy-rsa koopia OpenVPN kausta, et alati sama versioon oleks kõikide võtmete genereerimisel:

sudo apt-get install openvpn
cd /etc/openvpn/
sudo mkdir easy-rsa
sudo cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0/* easy-rsa/
sudo chown -R $USER easy-rsa/
cd easy-rsa/

Sertifikaadid

Ettevalmistused

Redigeerime lähteandmete faili vastavalt olukorrale:

nano vars

Turvalisuse huvides võib muuta võtme KEY_SIZE väärtuse 2048 või 4096 peale, mugavuse tõttu võib ka alljärgnevad juba ära muuta:

export KEY_COUNTRY="ET"
export KEY_PROVINCE="Harju"
export KEY_CITY="Tallinn"
export KEY_ORG="Misiganes"
export KEY_EMAIL="a@b.c"

Vajalik on ka väike baaskonfiguratsiooni symlink:

sudo ln -s openssl-1.0.0.cnf openssl.cnf

Sertifikaatide genereerimine

Loeme muutujad keskkonda sisse:

source vars

Kustutame olemasolevad võtmed (kui on):

./clean-all

Genereerime CA-sertifikaadi, küsib selle käigus mõned küsimused, millest oluline on tegelikult ainult commonName, sest see peaks olema unikaalne:

./build-ca

Genereerime Diffie-Hellmanni parameetrid. Kui KEY_SIZE suuremaks sai muudetud, võib see võtta aega mitmeid-mitmeid minuteid (4096 puhul ka üle 20 minuti):

./build-dh

Genereerime serveri võtme, küsib taaskord palju küsimusi, millest olulisim on commonName, paneme selleks näiteks “server”:

./build-key-server server

Liigume võtmete kausta ja loome nö “jagatud salatuse” ka:

cd keys
openvpn --genkey --secret ta.key

Kopeerime openvpn serveri jaoks vajalikud failid õigesse kohta ära:

sudo cp server.crt server.key ca.crt dh4096.pem ta.key /etc/openvpn/

Genereerime paar kliendivõtit ka:

cd ..
./build-key raal
./build-key buuk

Pakime vajalikud failid kokku ühte tar arhiivi ja liigutame selle oma kodukataloogi:

cd keys/
NAME=raal; tar -cvzf $NAME.tar.gz ca.crt ta.key $NAME.crt $NAME.key
NAME=buuk; tar -cvzf $NAME.tar.gz ca.crt ta.key $NAME.crt $NAME.key
mv *.tar.gz ~

Serveri seadistus

Kopeerime näidisfaili:

sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
sudo gzip -d /etc/openvpn/server.conf.gz

Teeme sobivad muudatused:

port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
  server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1"
keepalive 10 120
comp-lzo
  user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3

NAT-i lubamine

Et iga klient IP-aadressi saaks ning ka virtuaalsest võrgust välja pääseks, tuleb teha nii:

echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

Ja siis teenuse taaskäivitus:

sudo service openvpn restart

Kliendi seadistus

Teeme kliendi konfiguratsioonifaili ka siis lõpuks:

cd ~/raal
nano client.conf

Paneme sinna midagi sellist:

client
dev tun
proto udp
remote [serveri-aadress] 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert raal.crt
key raal.key
comp-lzo
verb 3

Serverisse ühendumine

Nüüd tuleks konfifailid loomulikult mööda krüptitud kanalit ümber kopeerida:

scp -r kasutaja@[serveri-aadress]:~/raal .

Ja kui klientmasinas on OpenVPN installitud, saab ühendust katsetada nii:

sudo openvpn --config raal/client.conf
Täägid: linux  vpn  ubuntu  debian 
« Mugava meediakeskuse otsinguil ID-kaardi tarkvara »
comments powered by Disqus