Erinevus lehekülje "OpenVPN" redaktsioonide vahel
(→OpenVPN ühenduse katsetamine) |
|||
30. rida: | 30. rida: | ||
===OpenVPN ühenduse katsetamine=== | ===OpenVPN ühenduse katsetamine=== | ||
− | Selleks, et veenduda, et arvutitesse on OpenVPN tarkvara paigaldamine õnnestunud sh virtuaalsete seadmete jaoks on olemas vajalikud tuumamoodulid ning osaliste versioonid omavahel sobivad | + | Selleks, et veenduda, et arvutitesse on OpenVPN tarkvara paigaldamine õnnestunud sh virtuaalsete seadmete jaoks on olemas vajalikud tuumamoodulid ning osaliste versioonid omavahel sobivad. |
+ | |||
+ | ====Krüptimata ühendus==== | ||
+ | |||
+ | Lihtsamal juhul, kus andmevahetust ei krüptita pole vaja midagi ettevalmistada, vajalikud parameetrid näidatakse käsureal | ||
kalake-openbsd# openvpn --remote 192.168.50.144 --dev tun0 --ifconfig 10.4.0.2 10.4.0.1 --verb 3 | kalake-openbsd# openvpn --remote 192.168.50.144 --dev tun0 --ifconfig 10.4.0.2 10.4.0.1 --verb 3 | ||
84. rida: | 88. rida: | ||
Ühenduse kontrollimisel peab saama teise arvutisse üle võrgu ligi, nt pingida või ssh abil sisse logida pöördudes tunneli teise otsa aadressiga. Millegipärast OpenBSD poolel ei saa nö omapoolse otsa poole pöörduda, aga praktiliselt ei ole see ka oluline. | Ühenduse kontrollimisel peab saama teise arvutisse üle võrgu ligi, nt pingida või ssh abil sisse logida pöördudes tunneli teise otsa aadressiga. Millegipärast OpenBSD poolel ei saa nö omapoolse otsa poole pöörduda, aga praktiliselt ei ole see ka oluline. | ||
+ | |||
+ | ====Staatilise võtmega krüptitud ühendus==== | ||
+ | |||
+ | Sarnane eelmisele, kuid ühenduse krüptimiseks kasutavad osalised ühist saladust staatilise võtme kujul. Esmalt tuleb moodustada saladus öeldes | ||
+ | |||
+ | # cd /etc/openvpn | ||
+ | # openvpn --genkey --secret saladus.key | ||
+ | |||
+ | Seejärel kopeerida teisele osalisele ning öelda | ||
+ | |||
+ | kalake-openbsd# openvpn --remote 192.168.50.144 --dev tun0 --ifconfig 10.4.0.2 10.4.0.1 --verb 3 --secret saladus.key | ||
+ | tuvike-debian# openvpn --remote 172.16.0.254 --dev tun0 --ifconfig 10.4.0.1 10.4.0.2 --verb 3 --secret saladus.key | ||
===Sertifikaatide ettevalmistamine=== | ===Sertifikaatide ettevalmistamine=== |
Redaktsioon: 26. juuli 2008, kell 12:58
Sisukord
Eesmärk
Käesolevas tekstis kirjeldatakse OpenVPN kasutamist eesmärgiga on seada käima turvaline ühendus ühe OpenBSD arvuti ja ühe või mitme Debian arvuti vahel, kusjuures OpenBSD juures töötab OpenVPN server režiimis ning Debianil klient režiimis.
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
- layer 2 - etherneti kiht, nt moodustada sildu (Linuxi puhul tap)
- layer 3 - ip kiht, tegeleda ruuditavate ip pakettidega (Linuxi puhul tun)
Kuna andmevahetuse krüptimisel kasutatakse sertifikaate, siis OpenVPN tarkvaraga koos jagatakse ka pisikest CA tarkvara, millega on mõnus sertifikaate hallata.
OpenVPN kasutamisel on oluline, et osalevate arvutite kellaajad oleksid õiged, alates sertifikaatide moodustamisest.
OpenVPN tarkvara paigaldamine
Käesolevas tekstis kirjeldatakse OpenVPN tarkvara versioon 2.0 kasutamist.
Debianile tuleb paigaldada pakett openvpn
# apt-get install openvpn
Käesoleva punkti edasine jutt puudutab OpenBSD poolt, mis on OpenVPN serveriks, seal moodustatakse kasutatavad sertifikaadid ja jaotatakse OpenVPN klientidele laiali.
OpenBSD arvutil paigaldada pakett openvpn
# pkg_add openvpn
OpenVPN ühenduse katsetamine
Selleks, et veenduda, et arvutitesse on OpenVPN tarkvara paigaldamine õnnestunud sh virtuaalsete seadmete jaoks on olemas vajalikud tuumamoodulid ning osaliste versioonid omavahel sobivad.
Krüptimata ühendus
Lihtsamal juhul, kus andmevahetust ei krüptita pole vaja midagi ettevalmistada, vajalikud parameetrid näidatakse käsureal
kalake-openbsd# openvpn --remote 192.168.50.144 --dev tun0 --ifconfig 10.4.0.2 10.4.0.1 --verb 3 Sat Jul 26 12:43:33 2008 OpenVPN 2.0.9 i386-unknown-openbsd4.3 [SSL] [LZO] built on Mar 13 2008 Sat Jul 26 12:43:33 2008 IMPORTANT: OpenVPN's default port number is now 1194, based on an official port number assignment by IANA. OpenVPN 2. 0-beta16 and earlier used 5000 as the default port. Sat Jul 26 12:43:33 2008 ******* WARNING *******: all encryption and authentication features disabled -- all data will be tunnelled as cleartext Sat Jul 26 12:43:33 2008 /sbin/ifconfig tun0 destroy Sat Jul 26 12:43:33 2008 /sbin/ifconfig tun0 create Sat Jul 26 12:43:33 2008 NOTE: Tried to delete pre-existing tun/tap instance -- No Problem if failure Sat Jul 26 12:43:33 2008 /sbin/ifconfig tun0 10.4.0.2 10.4.0.1 mtu 1500 netmask 255.255.255.255 up Sat Jul 26 12:43:33 2008 TUN/TAP device /dev/tun0 opened Sat Jul 26 12:43:33 2008 Data Channel MTU parms [ L:1500 D:1450 EF:0 EB:4 ET:0 EL:0 ] Sat Jul 26 12:43:33 2008 Local Options hash (VER=V4): '08b6a7d0' Sat Jul 26 12:43:33 2008 Expected Remote Options hash (VER=V4): '7d01953d' Sat Jul 26 12:43:33 2008 UDPv4 link local (bound): [undef]:1194 Sat Jul 26 12:43:33 2008 UDPv4 link remote: 192.168.50.144:1194 Sat Jul 26 12:43:43 2008 Peer Connection Initiated with 192.168.50.144:1194 Sat Jul 26 12:43:44 2008 Initialization Sequence Completed
tuvike-debian# openvpn --remote 172.16.0.254 --dev tun0 --ifconfig 10.4.0.1 10.4.0.2 --verb 3 Sat Jul 26 12:44:34 2008 OpenVPN 2.1_rc7 i486-pc-linux-gnu [SSL] [LZO2] [EPOLL] built on Jun 16 2008 Sat Jul 26 12:44:34 2008 IMPORTANT: OpenVPN's default port number is now 1194, based on an official port number assignment by IANA. OpenVPN 2.0-beta16 and earlier used 5000 as the default port. Sat Jul 26 12:44:34 2008 ******* WARNING *******: all encryption and authentication features disabled -- all data will be tunnelled as cleartext Sat Jul 26 12:44:34 2008 TUN/TAP device tun0 opened Sat Jul 26 12:44:34 2008 TUN/TAP TX queue length set to 100 Sat Jul 26 12:44:34 2008 /sbin/ifconfig tun0 10.4.0.1 pointopoint 10.4.0.2 mtu 1500 Sat Jul 26 12:44:34 2008 Data Channel MTU parms [ L:1500 D:1450 EF:0 EB:4 ET:0 EL:0 ] Sat Jul 26 12:44:34 2008 Local Options hash (VER=V4): '7d01953d' Sat Jul 26 12:44:34 2008 Expected Remote Options hash (VER=V4): '08b6a7d0' Sat Jul 26 12:44:34 2008 Socket Buffers: R=[109568->131072] S=[109568->131072] Sat Jul 26 12:44:34 2008 UDPv4 link local (bound): [undef]:1194 Sat Jul 26 12:44:34 2008 UDPv4 link remote: 172.16.0.254:1194 Sat Jul 26 12:44:40 2008 Peer Connection Initiated with 172.16.0.254:1194 Sat Jul 26 12:44:40 2008 Initialization Sequence Completed
Kummassegi arvutiss moodustatakse automaatselt tun seade ning seadistatakse vastavalt käsureal näidatud parameetritele, OpenBSD poolel
kalake-openbsd# ifconfig tun0 tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500 groups: tun inet 10.4.0.2 --> 10.4.0.1 netmask 0xffffffff
ning Debiani poolel
tuvike-debian# ifconfig tun0 tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:10.4.0.1 P-t-P:10.4.0.2 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:31 errors:0 dropped:0 overruns:0 frame:0 TX packets:33 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:4604 (4.4 KiB) TX bytes:5508 (5.3 KiB)
Ühenduse kontrollimisel peab saama teise arvutisse üle võrgu ligi, nt pingida või ssh abil sisse logida pöördudes tunneli teise otsa aadressiga. Millegipärast OpenBSD poolel ei saa nö omapoolse otsa poole pöörduda, aga praktiliselt ei ole see ka oluline.
Staatilise võtmega krüptitud ühendus
Sarnane eelmisele, kuid ühenduse krüptimiseks kasutavad osalised ühist saladust staatilise võtme kujul. Esmalt tuleb moodustada saladus öeldes
# cd /etc/openvpn # openvpn --genkey --secret saladus.key
Seejärel kopeerida teisele osalisele ning öelda
kalake-openbsd# openvpn --remote 192.168.50.144 --dev tun0 --ifconfig 10.4.0.2 10.4.0.1 --verb 3 --secret saladus.key tuvike-debian# openvpn --remote 172.16.0.254 --dev tun0 --ifconfig 10.4.0.1 10.4.0.2 --verb 3 --secret saladus.key
Sertifikaatide ettevalmistamine
Seejärel tuleb moodustada mõned kataloogid ja failid
# mkdir /etc/openvpn /etc/openvpn/keys # touch /etc/openvpn/keys/index.txt # echo 01 > /etc/openvpn/keys/serial # cp /usr/local/share/examples/openvpn/easy-rsa/openssl.cnf /etc/openvpn
Seada sobivab keskkonnamuutujad
# . /usr/local/share/examples/openvpn/easy-rsa/vars
Seejärel tuleb genereerida sertifikaadid
- Süsteemi CA sertifikaat
# cd /etc/openvpn/keys # /usr/local/share/examples/openvpn/easy-rsa/build-ca
Oluline on, et CA ja järgneval serveri sertifikaadil oleks sama organisatsiooni nimi, sisestage mõistlikud andmed, näiteks
... Country Name (2 letter code) [KG]:EE State or Province Name (full name) [NA]:Tartu Locality Name (eg, city) [BISHKEK]:Tartu Organization Name (eg, company) [OpenVPN-TEST]:LOOMAAED Organizational Unit Name (eg, section) []: Common Name (eg, your name or your server's hostname) []:aix.loomaaed.tartu.ee Email Address [me@myhost.mydomain]: ..
Tekivad failid
keys/ca.key keys/ca.crt
- OpenVPN serveri sertifikaat
# /usr/local/share/examples/openvpn/easy-rsa/build-key-server server ... The Subject's Distinguished Name is as follows countryName :PRINTABLE:'EE' stateOrProvinceName :PRINTABLE:'Tartu' localityName :PRINTABLE:'Tartu' organizationName :PRINTABLE:'LOOMAAED' commonName :PRINTABLE:'tuler.loomaaed.tartu.ee' emailAddress :IA5STRING:'me@myhost.mydomain' Certificate is to be certified until Jul 23 18:03:58 2018 GMT (3650 days) Sign the certificate? [y/n]:y ..
Tekivad failid
./keys/server.key ./keys/server.crt
- OpenVPN kliendi sertifikaat
# /usr/local/share/examples/openvpn/easy-rsa/build-key emmija .. The Subject's Distinguished Name is as follows countryName :PRINTABLE:'EE' stateOrProvinceName :PRINTABLE:'Tartu' localityName :PRINTABLE:'Tartu' organizationName :PRINTABLE:'AUUL' commonName :PRINTABLE:'emmija.loomaaed.tartu.ee' emailAddress :IA5STRING:'me@myhost.mydomain' Certificate is to be certified until Jul 23 18:11:25 2018 GMT (3650 days) Sign the certificate? [y/n]:y ..
Tekivad failid
./keys/emmija.key ./keys/emmija.crt
- Diffie-Hellmani ajad
# /usr/local/share/examples/openvpn/easy-rsa/build-dh
Tekivad failid
./keys/dh1024.pem
OpenVPN ruuditud lahenduse seadistamine
OpenVPN sillatud lahenduse seadistamine
Sillatud lahendust illustreerib näiteks selline skeem
Vajalik on moodustada sild füüsilise ja tun seadme vahele
# ifconfig bridge0 create # ifconfig tun0 link0 up # brconfig bridge0 add em1 add tun0
Serveri poolel sobib kasutada sellist seadistusfaili bridge režiimis
# cat /etc/openvpn/openvpn.conf local 10.0.10.251 port 1194 proto udp dev-type tap dev tun0 ca keys/ca.crt cert keys/server.crt key keys/server.key dh keys/dh1024.pem server-bridge 172.16.0.254 255.255.255.0 172.16.0.210 172.16.0.220 ifconfig-pool-persist /tmp/ipp.txt push "redirect-gateway local def1" keepalive 10 120 comp-lzo user nobody group nobody persist-key persist-tun status /var/log/openvpn-status.log verb 3
Ning sellist seadistusfaili route režiimis
# cat /etc/openvpn/openvpn.conf local 10.0.10.251 port 1194 proto udp dev tun0 ca keys/ca.crt cert keys/server.crt key keys/server.key dh keys/dh1024.pem server 10.8.0.0 255.255.255.0 ifconfig-pool-persist /tmp/ipp.txt push "redirect-gateway local def1" keepalive 10 120 comp-lzo user nobody group nobody persist-key persist-tun status /var/log/openvpn-status.log verb 3
Käivitamiseks tuleb öelda
# cd /etc/openvpn # openvpn --config openvpn.conf
OpenVPN kliendi seadistamine - Debian
OpenVPN kliendile vajalikud võtmed moodustatakse OpenVPN serveris ja kopeeritakse klienti, vajalikud on sellised failid
# scp keys/sid1.crt keys/sid1.key keys/ca.crt root@192.168.50.144:/etc/openvpn
Kliendi poolel sobib bridge režiimis kasutada sellist seadistusfaili
# cat /etc/openvpn/openvpn.conf client dev tap proto udp remote 10.0.10.251 resolv-retry infinite nobind persist-key persist-tun ca ca.crt cert sid1.crt key sid1.key comp-lzo verb 3
Käivitamine toimub öeldes
# cd /etc/openvpn # openvpn --config openvpn.conf