OpenVPN servera un klienta instalēšana un konfigurēšana Debian 7
Šajā rakstā ir sīki aprakstīts, kā iegūt IPv6 savienojamību ar OpenVPN, izmantojot Debian Linux. Process ir pārbaudīts Debian 7, izmantojot KVM VPS ar IPv6 savienojamību kā serveri, un Debian 7 darbvirsmā. Komandas jādarbina kā root.
OpenVPN ir VPN programma, kas izmanto SSL/TLS, lai izveidotu drošus, šifrētus VPN savienojumus, lai virzītu jūsu interneta trafiku, tādējādi novēršot snoopingu. Atvērtais VPN ir ļoti spējīgs pārredzami pārvietoties caur ugunsmūri. Faktiski, ja situācija to prasa, varat palaist to pašu TCP portu ar HTTPS (443), padarot trafiku neatšķiramu un tādējādi praktiski neiespējamu bloķēt.
Lai klienti varētu autentificēties serverī, OpenVPN var izmantot dažādas metodes, piemēram, iepriekš koplietotas slepenās atslēgas, sertifikātus vai lietotājvārdus/paroles. OpenVPN izmanto OpenSSL protokolu un ievieš daudzas drošības un vadības funkcijas, piemēram, izaicinājuma atbildes autentifikāciju, vienreizējas pierakstīšanās iespēju, slodzes līdzsvarošanas un kļūmjpārlēces funkcijas un vairāku dēmonu atbalstu.
Domājiet par drošu komunikāciju - domājiet par OpenVPN. Ja jūs nevēlaties, lai kāds snooping jūsu interneta trafiku, izmantojiet OpenVPN, lai novirzītu visu trafiku caur ļoti šifrētu, drošu tuneli.
Tas ir īpaši svarīgi, pieslēdzoties publiskajiem WIFI tīkliem lidostās un citās vietās. Jūs nekad nevarat būt drošs par to, kurš pieskata jūsu trafiku. Varat novirzīt trafiku caur savu OpenVPN serveri, lai novērstu snoopingu.
Ja atrodaties kādā no valstīm, kas regulāri pārrauga visu jūsu trafiku un bloķē vietnes pēc vēlēšanās, varat izmantot OpenVPN, izmantojot TCP 443. portu, lai padarītu to neatšķiramu no HTTPS trafika. Jūs pat varat apvienot OpenVPN ar citām drošības stratēģijām, piemēram, OpenVPN trafika tuneļošanu pa SSL tuneli, lai pārvarētu padziļinātu pakešu pārbaudes paņēmienus, kas varētu identificēt OpenVPN parakstus.
Lai palaistu, OpenVPN prasa ļoti minimālas prasības. Lai palaistu OpenVPN, pietiek ar sistēmu ar 64 MB RAM un 1 GB cietā diska. OpenVPN darbojas gandrīz visās galvenajās operētājsistēmās.
OpenVPN instalēšana un konfigurēšana pakalpojumā Debian 7
Lai instalētu OpenVPN, palaidiet šo komandu.
# apt-get install openvpn
Pēc noklusējuma easy-rsa skripti tiek instalēti direktorijā ‘/ usr/share/easy-rsa /’. Tātad, mums šie skripti ir jākopē vēlamajā vietā, t.i.,/root/easy-rsa.
# mkdir /root/easy-rsa cp -prv /usr/share/doc/openvpn/examples/easy-rsa/2.0 /root/easy-rsa
Atveriet failu “vars” un veiciet šādas izmaiņas, taču pirms izmaiņu veikšanas iesaku jums izveidot oriģināla faila dublējumu.
# cp vars{,.orig}
Izmantojot teksta redaktoru, iestatiet easy-rsa noklusējuma vērtības. Piemēram.
KEY_SIZE=4096 KEY_COUNTRY="IN" KEY_PROVINCE="UP" KEY_CITY="Noida" KEY_ORG="Home" KEY_EMAIL="[email "
Šeit es izmantoju 4096 bitu atslēgu. Pēc vēlēšanās varat izmantot 1024, 2048, 4096 vai 8192 bitu atslēgu.
Eksportējiet noklusējuma vērtības, palaižot komandu.
# source ./vars
Iztīriet visus iepriekš ģenerētos sertifikātus.
./clean-all
Pēc tam palaidiet šo komandu, lai ģenerētu CA sertifikātu un CA atslēgu.
# ./build-ca
Ģenerējiet servera sertifikātu, palaižot komandu. “Servera nosaukumu” aizstājiet ar sava servera nosaukumu.
# ./build-key-server server-name
Ģenerējiet Diffie Hellman PEM sertifikātu.
# ./build-dh
Ģenerējiet klienta sertifikātu. “Klienta vārdu” aizstājiet ar sava klienta vārdu.
# ./build-key client-name
Ģenerējiet HMAC kodu.
# openvpn --genkey --secret /root/easy-rsa/keys/ta.key
Kopējiet sertifikātus klienta un servera mašīnās šādi.
- Pārliecinieties, ka ca.crt ir gan klientā, gan serverī.
- Ca.key atslēgai jābūt klientam.
- Serverim ir nepieciešami server.crt, dh4096.pem, server.key un ta.key.
- klientam.crt, klientam.atslēgam un ta.key jābūt klientam.
Lai serverī iestatītu atslēgas un sertifikātus, palaidiet komandas.
# mkdir -p /etc/openvpn/certs # cp -pv /root/easy-rsa/keys/{ca.{crt,key},server-name.{crt,key},ta.key,dh4096.pem} /etc/openvpn/certs/
Tagad jums jākonfigurē OpenVPN serveris. Atveriet failu ‘/etc/openvpn/server.conf’. Lūdzu, veiciet izmaiņas, kā aprakstīts zemāk.
script security 3 system port 1194 proto udp dev tap ca /etc/openvpn/certs/ca.crt cert /etc/openvpn/certs/server-name.crt key /etc/openvpn/certs/server-name.key dh /etc/openvpn/certs/dh4096.pem tls-auth /etc/openvpn/certs/ta.key 0 server 192.168.88.0 255.255.255.0 ifconfig-pool-persist ipp.txt push "redirect-gateway def1 bypass-dhcp" push "dhcp-option DNS 8.8.8.8" push "dhcp-option DNS 8.8.4.4" keepalive 1800 4000 cipher DES-EDE3-CBC # Triple-DES comp-lzo max-clients 10 user nobody group nogroup persist-key persist-tun #log openvpn.log #status openvpn-status.log verb 5 mute 20
Iespējojiet IP pārsūtīšanu uz servera.
# echo 1 > /proc/sys/net/ipv4/ip_forward
Palaidiet šo komandu, lai iestatītu OpenVPN, lai sāktu sāknēšanu.
# update-rc.d -f openvpn defaults
Sāciet OpenVPN pakalpojumu.
# service openvpn restart
Lai instalētu OpenVPN klienta mašīnā, izpildiet šo komandu.
# apt-get install openvpn
Izmantojot teksta redaktoru, iestatiet klienta OpenVPN konfigurāciju mapē ‘/etc/openvpn/client.conf’. Konfigurācijas piemērs ir šāds:
script security 3 system client remote vpn_server_ip ca /etc/openvpn/certs/ca.crt cert /etc/openvpn/certs/client.crt key /etc/openvpn/certs/client.key cipher DES-EDE3-CBC comp-lzo yes dev tap proto udp tls-auth /etc/openvpn/certs/ta.key 1 nobind auth-nocache persist-key persist-tun user nobody group nogroup
Palaidiet šo komandu, lai iestatītu OpenVPN, lai sāktu sāknēšanu.
# update-rc.d -f openvpn defaults
Sāciet klienta OpenVPN pakalpojumu.
# service openvpn restart
Kad esat pārliecināts, ka OpenVPN darbojas labi ar IPv4, lūk, kā panākt, lai IPv6 darbotos, izmantojot OpenVPN.
Pievienojiet šīs rindas servera konfigurācijas faila “/etc/openvpn/server.conf” beigām.
client-connect /etc/openvpn/client-connect.sh client-disconnect /etc/openvpn/client-disconnect.sh
Šie divi skripti izveido/iznīcina IPv6 tuneli katru reizi, kad klients izveido savienojumu/atvieno.
Šeit ir client-connect.sh saturs.
#!/bin/bash BASERANGE="2a00:dd80:003d:000c" ifconfig $dev up ifconfig $dev add ${BASERANGE}:1001::1/64 ip -6 neigh add proxy 2a00:dd80:003d:000c:1001::2 dev eth0 exit 0
Mans resursdators man piešķir IPV6 adreses no 2a00: dd80: 003d: 000c ::/64 bloka. Tādējādi es izmantoju
2a00: dd80: 003d: 000c kā BASERANGE. Mainiet šo vērtību atbilstoši tam, ko jūsu resursdators jums ir piešķīris.
Katru reizi, kad klients izveido savienojumu ar OpenVPN, šis skripts piešķir servera tap0 interfeisa IPV6 adresi 2a00: dd80: 003d: 000c: 1001 :: 1.
Pēdējā līnija izveido kaimiņu atklājumu mūsu tunelim. Kā starpniekservera adresi esmu pievienojis klienta puses tap0 savienojuma IPv6 adresi.
Šeit ir client-disconnect.sh saturs.
#!/bin/bash BASERANGE="2a00:dd80:003d:000c" /sbin/ip -6 addr del ${BASERANGE}::1/64 dev $dev exit 0
Tas vienkārši izdzēš servera IPv6 tuneļa adresi, kad klients atvienojas. Vajadzības gadījumā mainiet BASERANGE vērtību.
Padariet skriptus izpildāmus.
# chmod 700 /etc/openvpn/client-connect.sh # chmod 700 /etc/openvpn/client-disconnect.sh
Pievienojiet šādus ierakstus mapei “/etc/rc.local” (Atbilstošās sysctls var mainīt arī mapē /etc/sysctl.conf).
echo 1 >/proc/sys/net/ipv6/conf/all/proxy_ndp echo 1 > /proc/sys/net/ipv4/ip_forward echo 1 > /proc/sys/net/ipv6/conf/all/forwarding /etc/init.d/firewall stop && /etc/init.d/firewall start
Šie ieraksti aktivizē kaimiņu meklēšanu un pārsūtīšanu. Esmu pievienojis arī ugunsmūri.
Izveidojiet ‘/etc/init.d/firewall’ un ievietojiet šādu saturu.
#!/bin/sh # description: Firewall IPT=/sbin/iptables IPT6=/sbin/ip6tables case "$1" in start) $IPT -F INPUT $IPT -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT $IPT -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT $IPT -A INPUT -i eth0 -p icmp -j ACCEPT $IPT -A INPUT -i eth0 -p udp --dport 1194 -j ACCEPT $IPT -A INPUT -i tap+ -j ACCEPT $IPT -A FORWARD -i tap+ -j ACCEPT $IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT $IPT -t nat -F POSTROUTING $IPT -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE $IPT -A INPUT -i eth0 -j DROP $IPT6 -F INPUT $IPT6 -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT $IPT6 -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT $IPT6 -A INPUT -i eth0 -p icmpv6 -j ACCEPT $IPT6 -A FORWARD -s 2a00:dd80:003d:000c::/64 -i tap0 -o eth0 -j ACCEPT $IPT6 -A INPUT -i eth0 -j DROP exit 0 ;; stop) $IPT -F $IPT6 -F exit 0 ;; *) echo "Usage: /etc/init.d/firewall {start|stop}" exit 1 ;; esac
Palaidiet ‘/etc/rc.local’ un palaidiet ugunsmūri.
# sh /etc/rc.local
Tas pabeidz servera puses modifikācijas.
Pievienojiet šo kā pēdējās klienta konfigurācijas faila “/etc/openvpn/client.conf” rindas.
# create the ipv6 tunnel up /etc/openvpn/up.sh down /etc/openvpn/down.sh # need this so when the client disconnects it tells the server explicit-exit-notify
Uz augšu un uz leju skripti izveido/iznīcina klienta tap0 savienojuma IPV6 klienta gala punktus katru reizi, kad klients izveido savienojumu/atvienojas no OpenVPN servera vai no tā.
Šeit ir up.sh saturs.
#!/bin/bash IPV6BASE="2a00:dd80:3d:c" ifconfig $dev up ifconfig $dev add ${IPV6BASE}:1001::2/64 ip -6 route add default via ${IPV6BASE}:1001::1 exit 0
Skripts kā klienta IPV6 adresi piešķir IPV6 adresi 2a00: dd80: 3d: c: 1001 :: 2 un caur serveri nosaka noklusējuma IPV6 maršrutu.
Servera konfigurācijā modificējiet IPV6BASE kā BASERANGE.
Šeit ir down.sh saturs.
#!/bin/bash IPV6BASE="2a00:dd80:3d:c" /sbin/ip -6 addr del ${IPV6BASE}::2/64 dev $dev /sbin/ip link set dev $dev down /sbin/ip route del ::/0 via ${IPV6BASE}::1 exit 0
Tas vienkārši izdzēš klienta IPV6 adresi un nojauc IPV6 maršrutu, kad klients atvienojas no servera.
Pārveidojiet IPV6BASE tā, lai servera konfigurācijā būtu BASERANGE, un padariet skriptu izpildāmu.
# chmod 700 /etc/openvpn/up.sh # chmod 700 /etc/openvpn/down.sh
Pēc izvēles modificējiet “/etc/resolv.conf” un pievienojiet Google IPV6 vārda serverus DNS izšķirtspējai.
nameserver 2001:4860:4860::8888 nameserver 2001:4860:4860::8844
Pārstartējiet openvpn serverī un pēc tam izveidojiet savienojumu ar to no klienta. Jums vajadzētu būt savienotam. Apmeklējiet test-ipv6.com, lai redzētu, vai jūsu IPV6 savienojamība, izmantojot OpenVPN, darbojas.
Atsauces saites
OpenVPN mājas lapa