16 571
Tesztek Android Google Apple Microsoft Samsung Huawei Linux Okostelefon Biztonság Tudomány Facebook Videojáték Film
16 571
/ContentUploads/A447/vpn_raspberrypi_illustrate_2.jpg
Kattints ide  ➜

VPN szerver Raspberry Piból ‑ 2. rész: A szerver beállítása

Bonta Péter2014.05.26. 19.32
A Raspberry Pi VPN szerver előkészítése után folytassuk a műveletet a titkosító szoftver telepítésével és beállításával, majd hozzuk létre a kulcsokat és a tanúsítványszolgáltatókat! Ezután már csak egy kis finomhangolás, és a szerver működik is.

VPN szerver Raspberry Piból - 1. rész: Előkészületek

Fő a biztonság, ezért első lépésként frissítsük a mikroszámítógépet a következő két paranccsal:

sudo apt-get update
sudo apt-get upgrade


A virtuális magánhálózat felépítéséhez az OpenVPN szoftvert fogjuk használni, melyet a következő paranccsal tudunk letölteni és telepíteni:

sudo apt-get install openvpn


A telepítés után létrehozhatjuk a titkosításhoz szükséges kulcsokat. Az OpenVPN tartalmaz egy Easy_RSA nevű csomagot, ezzel fogjuk elkészíteni a kulcsokat. Az RSA-titkosításhoz egy nyílt és egy titkos kulcs tartozik. A nyílt kulcs mindenki számára ismert és ennek segítségével kódolhatják mások nekünk szánt üzeneteiket. A nyílt kulccsal kódolt üzentet csak a titkos kulccsal tudjuk visszafejteni. A kulcsok elkészítéshez rendszergazdai (root) jogosultságok szükségesek, az alapértelmezett felhasználónak (pi) ezt a következő paranccsal adhatjuk meg:

sudo -s


Ekkor a pi@raspberrypi promptból root@raspberrypi prompt lesz. Ezt követően másoljuk át a szükséges fájlokat, majd lépjünk be a másolási művelet céljaként megadott könyvtárba, és nyissuk meg a vars elnevezésű fájlt szerkesztésre:

cp –r /usr/share/doc/openvpn/examples/easy-rsa/2.0 /etc/openvpn/easy-rsa
cd /etc/openvpn/easy-rsa
nano vars


Keressük meg az export EASY_RSA kezdetű sort és módosítsuk a karakterlánc értékét

export EASY_RSA="/etc/openvpn/easy-rsa"

Ctrl-X billentyűkombinációval mentsük el a módosítást, és lépjünk ki a szerkesztőből! A kulcsokhoz szükség van egy tanúsítványszolgáltató (CA) létrehozására is, ez fogja aláírással ellátni és hitelesíteni a kulcsokat. Győződjünk meg arról, hogy a korábban említett /etc/openvpn/easy-rsa könyvtárban vagyunk, és gépeljük be a következő parancsokat:

source ./vars
./build-ca


Az első sor betölti az előzőleg szerkesztett fájlt, majd a második sor elkészíti a tanúsítványszolgáltató entitást. A folyamat során a Pi adatokat fog kérni (pl.: országnév), ezeket kitölthetjük, de egy Enter nyomásával ki is hagyhatjuk. Következő lépésként adjunk nevet a szervernek a

./build-key-server [Server_Name]


paranccsal! Itt is megjelenik néhány kiegészítő információt firtató kérés, ezek közül a Common Name mezőre figyeljünk oda! Ennél a mezőnél adjunk meg a korábban választott szervernevet! A következő kérdés, amire figyeljünk az a A challenge password! Ezt hagyjuk üresen! A Sign the certificate? [y/n] kérdésre nyomjunk egy y-t, ezzel megtörténik a szerver kulcsainak aláírása! A 1 out of 1 certificate requests certified, commit? [y/n] sornál is y-nal válaszolva pedig hitelesíti az imént létrehozott titkosítási kulcsokat.

Most készítsük el a kliensek kulcsait! Érdemes annyi kulcsot csinálni, ahány eszközről szeretnénk elérni a VPN-t. Ha csak egyet csinálunk, és azt használjuk mindegyik eszközön, akkor egy időben csak egy eszköz képes csatlakozni a virtuális magánhálózathoz. A

./build-key-pass UserName


paranccsal készíthetjük el a kliensek kulcsait. Néhány dolgot itt is meg kell adni, legfontosabb természetesen a jelszó. Az Enter PEM pass phrase kérdésre adjunk meg egy erős, de könnyen megjegyezhető jelszót! A challenge password? kérdésre adott válasz itt is üres, majd a Sign the certificate? [y/n] kérdésre y-nal felelve aláírjuk a felhasználói kulcsot. Lépjünk be a keys könyvtárba, majd adjuk ki az alábbi parancsokat:

cd keys
openssl rsa -in Client1.key -des3 -out Client1.3des.key


Ennek hatására a kulcson háromszor lefut a DES kódolási algoritmus, így nehezítve a kulcs feltörését. A rendszer itt is kér jelszót, adjunk meg egyet tetszés szerint, majd az előzőleg megadott PEM pass phrase-t is be kell írnunk! Lépjünk vissza az /etc/openvpn/easy-rsa/ könyvtárba, és adjuk ki a parancsot a Diffie-Hellman kulcscsere algoritmus futtatására! Ez az algoritmus teszi lehetővé a titkos kulcsok cseréjét az entitások között. Ez eltarthat néhány percig.

./build-dh


Állítsunk fel némi védelmet a DoS támadások ellen egy HMAC kulcs formájában.

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


Végül konfiguráljuk a szervert felhasználva a korábban elkészített kulcsokat! Hozzunk létre egy konfigurációs fájlt a következő paranccsal:

nano /etc/openvpn/server.conf


Másoljuk be ennek a fájlnak a tartalmát, majd módosítsuk azokat a sorokat, amelyeknél csupa nagybetűs kommentek vannak! Ezek a módosítások részben a Pi IP címére vonatkoznak. Ez az, amit korábban a routerben kijelöltünk a mikroszámítógép számára. A másik dolog, amit módosítani kell a szerverkulcsra vonatkozik. Ctrl-X-szel mentsük el a módosításokat, és lépjünk ki a szerkesztőből! Nyissuk meg szerkesztésre a /etc/sysctl.conf fájlt, és töröljük ki a # karaktert a net.ipv4.ip_forward=1 sor elől! Mentés és kilépés. A következő paranccsal léptessük életbe az imént végzett módosításokat:

sysctl -p


Szükséges még a Pi tűzfalának beállítása. Ismét hozzunk létre egy fájlt /etc/firewall-openvpn-rules.sh néven és legyen a tartalma a következő:

#!/bin/sh
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j SNAT --to-source 192.168.XX.X


Írjuk be az X-ek helyére a Pi IP címét! Mentsük el, majd módosítsuk a fájl jogosultságait és tulajdonosát:

chmod 700 /etc/firewall-Openvpn-rules.sh
chown root /etc/firewall-Openvpn-rules.sh


Utolsó lépésként nyissuk meg a /etc/network/interfaces fájlt, és az iface eth0 inet dhcp sor után szúrjuk be ezt a sort egy tabulátorral beljebb:

pre-up /etc/firewall-openvpn-rules.sh


Ctrl-X, majd újraindíthatjuk a mikroszámítógépet.

sudo reboot


Most már működik a szerver, de még be kell állítanunk a klienseket is. A következő rész erről fog szólni.

VPN szerver Raspberry Pi-ból - 3. rész: Kliens oldali beállítások
Kattints ide  ➜

Az Androbit technológiai és tudományos magazinnál hiszünk abban, hogy az információ mindenkit megillet. Hosszú évek munkájával megszerzett hírnevünknek köszönhetően megadatott számunkra az a lehetőség, hogy műszaki témájú médiumként is elérhessünk minden internetező korosztályt. Tesszük ezt olyan hírekkel és cikkekkel, amik között egyaránt szerepel nagyobb tömegeket és kisebb szakmai csoportokat érintő tartalom is.

A témák gondos összeválogatásának és a cikkek minőségi kidolgozottságának hála mára Magyarország egyik legnépszerűbb technológiai és tudományos információforrásává váltunk – fejlesztéseinkkel és kutatásainkkal pedig igyekszünk mindig egy lépéssel a versenytársak előtt járni.

A weboldalunkon található, szerkesztőségünk által készített tartalmakra vonatkozó összes felhasználási jogot az Androbit technológiai és tudományos magazin birtokolja. A tartalmak egyes részleteinek felhasználását kizárólag látványos (vagy jól hallható) forrásmegjelöléssel engedélyezzük. A feltételek megszegésének jogi következményei lehetnek. A feltételektől eltérő tartalomfelhasználás kizárólag megegyezés útján lehetséges.
Copyright © 2007-2016 – Makay József (makay@androbit.net)
Telltale játék lesz a Guardians of the Galaxy
The Mummy ‑ Tom Cruise már megint nem bír magával
A Firefox 0‑day sebezhetőségével leplezik le a Tor‑felhasználókat
Ezek a különbségek az iPhone‑ és Android‑felhasználók között
A következő Apple Watch okosóra már kör alakú lehet
Ezek a Huawei‑készülékek kapják meg az Android 7.0 Nougat frissítést
Felkapott témák
Ezek a különbségek az iPhone- és Android-felhasználók között
Microsoft Surface Phone - Számítógép és okostelefon egy készülékben
Ezek a jelenleg kapható legerősebb okostelefonok
Ezek a Huawei-készülékek kapják meg az Android 7.0 Nougat frissítést
Egy alkalmazás bitcoin-terminált csinál a telefonunkból
Keret nélküli kijelzővel érkezik a szétcsúsztatható ZTE Nubia
Állásajánlatok
IT Helpdesk Consultant
Inside Sales / Műszaki Tanácsadó
System Administrator 2nd Level support Budapest
Java fejlesztő
Group leader for Sea/Airfreight Field motto: Sea/Air_grl
Gyártástámogató/mérnök gyakornok Referencia kód: PR
Senior C++ fejlesztő