OpenVPN serveri kasutamine OpenBSD'ga
Sisukord
Sissejuhatus
Järgnevas kirjeldatakse kuidas Kui ressurssi on kasutada mõõtukalt, siis OpenVPN tarkvara on suhteliselt praktiline kasutada OpenBSD tulemüüris.
Ruuditud ja sillatud ühendused
OpenVPN kasutab OpenBSD poolel tun seadet ning Linuxi poolel analoogilist tun/tap seadet. Need on virtuaalsed võrguseadmed, mis tähendab, et nad on realiseeritud tarkvaraliselt võimaldades neid kasutaval programmil saata andmeid operatsioonisüsteemi võrgu pinnu (ingl. k. networking stack) ning vastupidi, võtta sealt andmeid vastu.
tun/tap seade võib töötada kahes kihis võimaldades kahte erinevat OpenVPN kasutusjuhtu
- ruuditud ühendus - tun/tap seade töötab ip kihis (layer 3), Linuxi puhul tun seade; andmevahetuses osalevate arvutite ip aadressid on jaotatud erinevatesse ip subnettide vahel
- sillatud ühendus - tun/tap seade töötab etherneti kihis (layer 2), Linuxi puhul tap seade; andmevahetuses osalevad arvutid asuvad samas ip subnetis
Ruuditud ühendust kirjeldab selline skeem
-------|-------- wire - 192.168.3.0/24 ----- | | __|__ em0 192.168.3.254/24 | | TUVIKE | | tulemüür, tun0: 10.8.0.1 <--- P2P ---> 10.8.0.2 |_____| | fxp0 172.16.2.1/28 | internet | | 172.16.5.15/30 __|__ | | KALAKE | | nö üksik arvuti |_____| tun0: 10.8.0.2 <--- P2P ---> 10.8.0.1
OpenVPN tulemusena moodustub mõlemasse arvutisse ruutivas režiimis tun seade (st point-to-point), mille ühest otsast saab pöörduda teise otsa poole. Lisaks saab läbi selliselt moodustatud ühenduse ruutida ka alamvõrke, näiteks
- Kui Kalake OpenVPN klienida lisab oma ruutingutableisse, et 192.168.3.0/24 võrgu lüüsiks on 10.8.0.1, siis saab ta suhelda Tuvikese taga olevate arvutitega üle OpenVPN ühenduse.
- Samuti on võimalik korraldada, et Kalake ruudib lisaks muid võrke sh avalikust internetist 10.8.0.1 peale, siis toimub ka nendega suhtlemine läbi OpenVPN ühenduse; põhimõtteliselt võib Kalake seada ka oma vaikelüüsiks 10.8.0.1, kuid siis peab kalake jätma oma ruutingutabelisse mõne erandi, et see ühendus üle avaliku interneti punktide 172.16.5.15 ja 172.16.2.1 vahel üle mille käib OpenVPN tunnel ise alles jääks.
Ruuditud ühenduse puhul paistab Tuvikesele ja sealtkaudu ligipääsetavatele arvutitele Kalakese ip aadressiks 10.8.0.2.
Sillatud ühendust kirjeldab selline skeem
-------|-------- wire - 192.168.3.0/24 ----- | | __|__ em0 192.168.3.254/24 | | TUVIKE | | tulemüür, bridge0: ip aadressi ei ole, tun0 ja em0 on sillaga kokku ühendatud |_____| | fxp0 172.16.2.1/28 | internet | | 172.16.5.15/30 __|__ | | KALAKE | | nö üksik arvuti |_____| tap0: Tuvikese OpenVPN serveri poolt omistatud mac aadress ja ip aadress
Sillatud režiimi puhul omistab Tuvikeses töötav OpenVPN Kalakese tun seadmele genereeritud mac aadressi ning 192.168.3.0/24 võrgust IP aadressi. Kalakese tap0 seade on üle tuvikese tun0 ja em0 seadmetest moodustatud silla ühendatud 192.168.3.0/24 võrku.
Seda kui palju Kalakesest väljuvat liiklust käib otse avalikku võrku läbi füüsilise seadme ja kui palju liigub läbi tunneli saab korraldada Kalakese ruutingutabli abil. Näiteks, et 10.0.100.0/24 võrgu suhtlemine toimuks läbi Tuvikese tuleb öelda Kalakeses
# route add -net 10.0.100.0 netmask 255.255.255.0 gw 192.168.3.254