Erinevus lehekülje "OpenVPN serveri kasutamine Debianiga" redaktsioonide vahel

Allikas: Kuutõrvaja
(Uus lehekülg: ===Sissejuhatus=== Käesolevas tekstis kirjeldatakse OpenVPN tarkvara kasutamist Debian GNU/Linux operatsioonisüsteemil, et võimaldada paljudele OpenVPN klientidele juurdepääsu O...)
 
P (m8ned kirjavead)
 
(ei näidata 2 kasutaja 8 vahepealset redaktsiooni)
17. rida: 17. rida:
 
                   |_____|
 
                   |_____|
 
               eth1  | |  eth2 172.16.2.1/28
 
               eth1  | |  eth2 172.16.2.1/28
                     | | alavõrk 2
+
                     | | alamvõrk 2
 
                     |
 
                     |
 
                     | alamvõrk 1
 
                     | alamvõrk 1
  
Kui ressurssi on kasutada mõõtukalt, siis OpenVPN tarkvara on suhteliselt praktiline kasutada Debiani tulemüüris. Tulemüüris OpenVPN serveri pidamise puudusteks on
+
Kui ressurssi on kasutada mõõdukalt, siis OpenVPN tarkvara on suhteliselt praktiline kasutada Debiani tulemüüris. Tulemüüris OpenVPN serveri pidamise puudusteks on
  
 
* turvalisuse seisukohast oleks parem hoida tulemüüri kui väga kriitilist infrastruktuuri sõlme vaba teenustest, mida saab pidada ka mujal
 
* turvalisuse seisukohast oleks parem hoida tulemüüri kui väga kriitilist infrastruktuuri sõlme vaba teenustest, mida saab pidada ka mujal
 
* kui tulemüür on realiseeritud klustrina, siis õlgade ümberlülitamisel katkevad kasutajate OpenVPN ühendused
 
* kui tulemüür on realiseeritud klustrina, siis õlgade ümberlülitamisel katkevad kasutajate OpenVPN ühendused
 +
 +
===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 pinu (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 kliendina lisab oma ruutingutabelisse, 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 ruutingutabeli 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
 +
 +
===OpenVPN tarkvara paigaldamine===
 +
 +
Debian v. 5.0 Lenny sisaldab paketihalduses OpenVPN tarkvara versiooni 2.1RC11 mille paigaldamiseks tuleb öelda
 +
 +
  # apt-get install openvpn
 +
 +
===OpenVPN serveri seadistamine ruuditud režiimis===
 +
 +
  local 192.168.2.120
 +
  port 1194
 +
  proto udp
 +
  dev tun0
 +
  ca /etc/openvpn/keys/VPN-TLA-ca.pem
 +
  cert /etc/openvpn/keys/server.vpn.loomaaed.tartu.ee-cert.pem
 +
  key /etc/openvpn/keys/server.vpn.loomaaed.tartu.ee-key.pem
 +
  dh /etc/openvpn/keys/dh2048.pem
 +
 
 +
  mode server
 +
  tls-server
 +
  ifconfig 172.29.0.1 172.29.0.2
 +
  keepalive 10 120
 +
  comp-lzo
 +
  user nobody
 +
  group nogroup
 +
  persist-key
 +
  persist-tun
 +
  status /var/log/openvpn-status.log
 +
  verb 3
 +
 
 +
  client-config-dir /etc/openvpn/ccd
 +
  route 172.19.0.0 255.255.0.0
 +
 +
kus kliendi seadistusfaili sisu võiks olla nt selline
 +
 +
  # cat /etc/openvpn/ccd/martkask.vpn.loomaaed.tartu.ee
 +
  ifconfig-push 172.19.0.5 172.19.0.6
 +
  push "route 192.168.20.0 255.255.255.0"
 +
 +
Kui soovitakse, et kogu kliendi liiklus käiks üle VPN'i tuleb lisada kliendi seadistusfaili rida
 +
 +
  push "redirect-gateway def1"
 +
 +
mille tulemusena lisatakse kliendi ruutingutabelisse juurde kolm ruutingut võrreldes ilma def1 kasutamiseta
 +
 +
  # route -n
 +
  Kernel IP routing table
 +
  Destination    Gateway      Genmask        Flags Metric Ref    Use Iface
 +
  ..
 +
  192.168.2.120  10.0.1.254  255.255.255.255 UGH  0      0    0  eth0
 +
  0.0.0.0        172.19.0.6  128.0.0.0      UG    0      0    0  tun0
 +
  128.0.0.0      172.19.0.6  128.0.0.0      UG    0      0    0  tun0
 +
 +
mis tähendab, et
 +
 +
* vpn serveri jaoks on tekitatud host route kliendi füüsilise kohtvõrgu vaikelüüsile (10.0.1.254)
 +
* kogu aadressruum on jagatud pooleks ja ruuditud vpn lingile, selleks, et need ruutingud omaksid suuremat prioriteeti kui arvuti nö füüsilise võrguühenduse vaikelüüsi ruuting mis on 0.0.0.0/0.0.0.0
 +
 +
===Märkused===
 +
 +
* Vaikimisi käivitatakse OpenVPN teenus arvuti alglaadimisel ning kui OpenVPN salajane võti küsib parooli, siis arvuti alglaadimine on peatatud ja jätkub peale selle parooli sisestamist, praktiliselt ei saa enne ka SSH abil sisse logida. Alternatiiv oleks nihutada omal OpenVPN skripti /etc/rc2.d kataloogis lõpupoole.

Viimane redaktsioon: 8. veebruar 2016, kell 03:26

Sissejuhatus

Käesolevas tekstis kirjeldatakse OpenVPN tarkvara kasutamist Debian GNU/Linux operatsioonisüsteemil, et võimaldada paljudele OpenVPN klientidele juurdepääsu OpenVPN serverist ligipääsetavatele võrkudele. Muu hulgas on võimalik selline kasutusjuhtum, et ka klientide avaliku võrgu kasutamine toimub üle OpenVPN serveri. Üldiselt võiks asjakorraldust illustreerida sellise skeemiga


                  klient1 
     klient 0                         klient2
 
                avalik võrk
                     .
                     .
                    ...
                     |   
                   __|__ eth0 192.168.3.254/24
                  |     |
          server  |     | 
                  |_____|
              eth1  | |  eth2 172.16.2.1/28
                    | | alamvõrk 2
                    |
                    | alamvõrk 1

Kui ressurssi on kasutada mõõdukalt, siis OpenVPN tarkvara on suhteliselt praktiline kasutada Debiani tulemüüris. Tulemüüris OpenVPN serveri pidamise puudusteks on

  • turvalisuse seisukohast oleks parem hoida tulemüüri kui väga kriitilist infrastruktuuri sõlme vaba teenustest, mida saab pidada ka mujal
  • kui tulemüür on realiseeritud klustrina, siis õlgade ümberlülitamisel katkevad kasutajate OpenVPN ühendused

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 pinu (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 kliendina lisab oma ruutingutabelisse, 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 ruutingutabeli 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

OpenVPN tarkvara paigaldamine

Debian v. 5.0 Lenny sisaldab paketihalduses OpenVPN tarkvara versiooni 2.1RC11 mille paigaldamiseks tuleb öelda

 # apt-get install openvpn

OpenVPN serveri seadistamine ruuditud režiimis

 local 192.168.2.120
 port 1194
 proto udp
 dev tun0
 ca /etc/openvpn/keys/VPN-TLA-ca.pem
 cert /etc/openvpn/keys/server.vpn.loomaaed.tartu.ee-cert.pem
 key /etc/openvpn/keys/server.vpn.loomaaed.tartu.ee-key.pem
 dh /etc/openvpn/keys/dh2048.pem
 
 mode server
 tls-server
 ifconfig 172.29.0.1 172.29.0.2
 keepalive 10 120
 comp-lzo
 user nobody
 group nogroup
 persist-key
 persist-tun
 status /var/log/openvpn-status.log
 verb 3
 
 client-config-dir /etc/openvpn/ccd
 route 172.19.0.0 255.255.0.0

kus kliendi seadistusfaili sisu võiks olla nt selline

 # cat /etc/openvpn/ccd/martkask.vpn.loomaaed.tartu.ee
 ifconfig-push 172.19.0.5 172.19.0.6
 push "route 192.168.20.0 255.255.255.0"

Kui soovitakse, et kogu kliendi liiklus käiks üle VPN'i tuleb lisada kliendi seadistusfaili rida

 push "redirect-gateway def1"

mille tulemusena lisatakse kliendi ruutingutabelisse juurde kolm ruutingut võrreldes ilma def1 kasutamiseta

 # route -n
 Kernel IP routing table
 Destination     Gateway      Genmask         Flags Metric Ref    Use Iface
 ..
 192.168.2.120   10.0.1.254   255.255.255.255 UGH   0       0     0   eth0
 0.0.0.0         172.19.0.6   128.0.0.0       UG    0       0     0   tun0
 128.0.0.0       172.19.0.6   128.0.0.0       UG    0       0     0   tun0

mis tähendab, et

  • vpn serveri jaoks on tekitatud host route kliendi füüsilise kohtvõrgu vaikelüüsile (10.0.1.254)
  • kogu aadressruum on jagatud pooleks ja ruuditud vpn lingile, selleks, et need ruutingud omaksid suuremat prioriteeti kui arvuti nö füüsilise võrguühenduse vaikelüüsi ruuting mis on 0.0.0.0/0.0.0.0

Märkused

  • Vaikimisi käivitatakse OpenVPN teenus arvuti alglaadimisel ning kui OpenVPN salajane võti küsib parooli, siis arvuti alglaadimine on peatatud ja jätkub peale selle parooli sisestamist, praktiliselt ei saa enne ka SSH abil sisse logida. Alternatiiv oleks nihutada omal OpenVPN skripti /etc/rc2.d kataloogis lõpupoole.