Hvordan bygge bro nettverk med OpenVPN

For dette oppsettet vil jeg anta at du har to nettverk, A og B, på forskjellige steder, både koblet til Internett med bredbånd. På hvert sted vil du trenge en Linux-system som fungerer som en router /brannmur for å tjene som VPN sluttpunkt. Jeg bruker to Asus WL-500G Deluxe rutere kjører OpenWRT RC5 - en Linux-distribusjon for embedded rutere - men du er fri til å bruke maskinvaren og distribusjon av ditt valg. Du kan bruke en av BSDene, Mac OS X, eller til og med Windows; sjekke dokumentasjonen på OpenVPN sin hjemmeside for en liste over støttede operativsystemer. Hvis din bruk OpenBSD, ta en titt på artikkelen Opprette sikre trådløse tilgangspunkter med OpenBSD og OpenVPN

nettverk på begge steder må bruke samme subnett -. For instace, 192.168.0.0/24 - og For å unngå konflikter, bør hver datamaskin på ethvert sted har sin egen private IP-adresse. En god praksis er å bruke, for eksempel IP-adresser 192.168.0.1 gjennom 192.168.0.100 for datamaskiner på nettverket A og 192.168.0.101 gjennom 192.168.0.200 for nettverk B. Reserve området 192.168.0.201 gjennom 192.168.0.254 for rutere og andre nettverksenheter. I dette eksempelet, vil ruteren på nettverket A (routerA) har IP-adressen 192.168.0.253 og vil være serveren for VPN, mens ruteren på nettverket B (routerB) vil ha IP-adressen 192.168.0.254 og vil være det klienten.

Dette oppsettet kjører OpenVPN i å bygge bro modus, så du må bygge bro over lokale nettverksgrensesnitt med den virtuelle grensesnittet tap0 brukes av OpenVPN på begge rutere. Problemet OpenVPN --mktun --dev tap0 å skape den tap0 grensesnittet, deretter kjøre brctl addbr Br0 å skape broen og brctl addif Br0 eth0; brctl addif Br0 tap0; ifconfig tap0 0.0.0.0 promisc opp å legge det lokale nettverksgrensesnittet eth0 (erstatt med grensesnitt) og tap0 til broen og ta tap0 opp. Hver distribusjon har sin egen måte å konfigurere nettverks broer; se artikkelen Opprette en sikker Linux-baserte trådløse tilgangspunkt for å bygge bro på Debian.

Nå må du opprette SSL-sertifikater. Det er god sikkerhet praksis å bruke en separat maskin for dette formål, og fortrinnsvis en ikke koblet til Internett. OpenVPN gir scripts (kalt lett RSA) for å forenkle prosedyren, så det er bare et spørsmål om å svare på noen enkle spørsmål. Opprettelsen av sertifikater er beskrevet i PKI del av OpenVPN s How-To, så jeg vil bare gi en liste over de nødvendige skritt for å skape de nødvendige sertifikatene:

 cd /usr /share /doc /OpenVPN /easy-rsa  (kan være annerledes på din distribusjon) 
. ./vars./clean-all./build-ca./build-key-server routerA. /bygge-key routerB. /bygge-dhopenvpn --genkey --secret nøkler /ta.key

På routerA, opprette katalogen //OpenVPN /nøkler ved å utstede mkdir -p //OpenVPN /nøkler etc etc og kopiere filene ca.crt, dh1024.pem, routerA.crt, routerA.key, og ta.key du opprettet tidligere i denne katalogen . Gjør det samme på routerB, kopierer i stedet filer ca.crt, routerB.crt, routerB.key, og ta.key. Også opprette kataloger /etc /openvpn /chroot /ccd på routerA og /etc /openvpn /chroot på routerB. Lim inn følgende linjer i filen /etc/openvpn/server.conf på routerA:

 modus serverproto udpport 1194dev tap0keepalive 10 120daemonwritepid /var/run/openvpn.pidcomp-lzomax-clients 10user nobodygroup nogrouppersist-keypersist-tunverb 3mute 20client-to-clientduplicate-cncd /etc /openvpntls-servertls-auth nøkler /ta.key 0cipher BF-CBCca nøkler /ca.crtcert nøkler /routerA.crtkey nøkler /routerA.keydh nøkler /dh1024.pemchroot chrootclient-config-dir ccd 

Lim inn følgende linjer i /etc/openvpn/client.conf på routerB, erstatte 1.2.3.4
med routerA offentlige IP-adresse. Hvis du ikke bruker en Internett-tilkobling med statisk IP-adresser, kan du bruke en dynamisk DNS-tjeneste, som DynDNS, i stedet.

 clientproto udpdev tap0remote  1.2.3.4 
1194resolv-retry infinitenobindpersist -keypersist-tunns-cert-type servercomp-lzodaemonwritepid /var/run/openvpn.pidverb 3mute 20user nobodygroup nogroupcd /etc /openvpnca nøkler /ca.crtcert nøkler /routerB.crtkey nøkler /routerB.keytls-auth nøkler /ta.key 1chroot chroot

OpenVPN vil slippe sine privilegier til bruker ingen og gruppe NOGROUP og vil chroot til katalogen /etc /openvpn /chroot så snart det er klargjort, blir for bedre sikkerhet. Siden VPN vil kjøre over Internett, er det en god ide å bruke LZO komprimering for å spare båndbredde, så med mindre du har veldig raske internettforbindelser bør du la komp-LZO parameter som det er. Du kan finne forklaringer om de andre alternativene som brukes i konfigurasjonsfiler på openvpn mannen siden

Kontroller at routerA godtar UDP tilkoblinger fra Internett på port 1194.; hvis du bruker iptables, kjøre iptables -A INPUT -i WAN
-p udp --dport 1 194 -j ACCEPT, erstatte WAN
med ruterens grensesnitt som er koblet til Internett. Start OpenVPN nissen på routerA med OpenVPN --config /etc/openvpn/server.conf og på routerB med OpenVPN --config /etc/openvpn/client.conf. Nå bør du være i stand til å koble til maskiner i nettverket B fra verter på nettverket A og vice versa. Hvis du har noen problemer, stiller detaljnivå, verb
, til 9 i konfigurasjonsfiler og sjekke systemlogger.

Å ha OpenVPN starte automatisk ved oppstart du kan bruke din distribusjonens init skript eller bare legge kommandoene du utstedt før initial brua og kjør OpenVPN daemon til rc.local filen. Hvis du bruker OpenWRT, skape /etc/init.d/S70openvpn på begge rutere og lim inn følgende i filen:

 # /bin /shcase " $ 1 "! i stop) drepe `cat /var /run /openvpn.pid`;; *)    hvis ! brctl vise | grep -q tap0; deretter OpenVPN --mktun --dev tap0 brctl addif Br0 tap0 ifconfig tap0 0.0.0.0 promisc opp fi openvpn --config /etc/openvpn/server.conf  (erstatte med client.conf i routerB) 
;; ESAC

Gjør at filen kjørbar med chmod 755 /etc/init.d/S70openvpn.

Nylig har jeg installert et system som dette for et lite selskap som ønsket å koble sitt avdelingskontor til sitt hovedkvarter. Selskapets eier er mer enn fornøyd med OpenVPN ytelse og sikkerhet, men han er fornøyd fordi han kunne oppgradere sine IT-infrastruktur for å møte deres behov uten å bruke en formue på proprietære VPN-systemer. Anmeldelser