Introduction
OpenVPN er en robust og fleksibel tunneling program som bruker alle de kryptering, autentisering, og sertifiserings funksjoner i OpenSSL-biblioteket til trygt tunnel IP-nettverk over en enkelt TCP /UDP-port. OpenVPN er utviklet av James Yonan av OpenVPN Technologies.
Installer OpenVPN Software
Her bruker jeg Ubuntu 13.10 som VPN server, og det er selve IP-adresse er 192.168.1.101/24. Anmeldelser Logg inn som root-bruker og Installer OpenVPN programvaren ved hjelp av følgende kommando:
apt-get install openvpn lett rsaThe lett-rsa scripts ligger som standard i /usr /share /lett-RSA /katalog. Lag /etc /openvpn /lett-RSA og Kopier /usr /share /lett-RSA /til /etc /openvpn /lett-RSA /katalog:
mkdir /etc /OpenVPN /lett-rsacp -rf /usr /share /lett-RSA /* /etc /openvpn /lett-RSA /
Generer CA-sertifikat og CA nøkkelen
Rediger filen /etc /openvpn /easy-rsa/2.0/vars
, ettervi /etc /openvpn /lett-RSA /varsOg, endre verdiene som matcher med ditt land, stat, by, mail id etc .
[...] # Ikke la noen av disse feltene være tomme. eksport KEY_COUNTRY = "IN" eksport KEY_PROVINCE = "TN" eksport KEY_CITY = "Erode" eksport KEY_ORG = "Unixmen" eksport KEY_EMAIL = "[email protected]" eksport KEY_OU = "server" [...]Gå til den OpenVPN /easy-rsa katalogen:
cd /etc /openvpn /lett-RSA /Skriv inn følgende kommandoer en etter en for å initialisere sertifiseringsinstans:
cp OpenSSL-1.0 .0.cnf openssl.cnf kilde ./vars ./clean-allThen, kjører du følgende kommando for å generere CA-sertifikat og CA nøkkel:
./bygge-caPrøve utgang:
generere en 1024 bit RSA private key......................................................+++............................................................+++writing nye private nøkkelen til "ca.key" ----- Du er i ferd med å bli bedt om å oppgi informasjon som vil være incorporatedinto sertifikatet request.What du er i ferd med å gå inn er det som kalles et unikt navn eller en DN.There er ganske mange felt, men du kan la noen blankFor noen felt vil det være en standardverdi, hvis du går inn, vil feltet være tomt .----- Navn Land (2 bokstavkode) [IN] '.': - --- > Trykk EnterState eller navn provinsen (fullt navn) [TN]: ---- > Navn Trykk EnterLocality (f.eks by) [Erode]: ---- > Trykk EnterOrganization Name (f.eks selskap) [Unixmen]: ---- > Navn Trykk EnterOrganizational Unit (f.eks seksjon) [server]: ---- > Trykk EnterCommon navn (for eksempel navnet ditt eller serverens vertsnavn) [Unixmen CA]: ---- > Trykk entername [EasyRSA]: ---- > Trykk EnterEmail Adresse [[email protected]]: ---- > Trykk EnterVi har nå generert CA-sertifikatet og CA-tasten. Deretter oppretter sertifikatet og nøkkelen for server med følgende kommando:
./bygge-key-tjeneren tjenerPrøve utgang:
generere en 1024 bit RSA private nøkkelen ..... ............... +++ ............. +++ skrive nytt private nøkkelen til "server.nøkkel '----- Du er i ferd med å bli bedt om å oppgi informasjon som vil være incorporatedinto sertifikatet request.What du er i ferd med å gå inn er det som kalles et unikt navn eller en DN.There er ganske mange felt, men du kan la noen blankFor noen felt vil det være en standardverdi, hvis du går inn, vil feltet være tomt .----- Navn Land (2 bokstavkode) [IN] '.': ---- > Trykk EnterState eller navn provinsen (fullt navn) [TN]: ---- > Navn Trykk EnterLocality (f.eks by) [Erode]: ---- > Trykk EnterOrganization Name (f.eks selskap) [Unixmen]: ---- > Navn Trykk EnterOrganizational Unit (f.eks seksjon) [server]: ---- > Trykk EnterCommon navn (for eksempel navnet ditt eller serverens vertsnavn) [server]: ---- > Trykk entername [EasyRSA]: ---- > Trykk EnterEmail Adresse [[email protected]]: ---- > Trykk EnterPlease oppgi følgende "ekstra" attributesto sendes med sertifikat requestA utfordring passord []: ---- > Trykk Enter En valgfri firmanavn []: ---- > Trykk EnterUsing konfigurasjon fra /etc/openvpn/easy-rsa/openssl-1.0.0.cnfCheck at anmodningen matcher signatureSignature okThe Subject Distinguished Name er som followscountryName: Utskriftsvennlig: 'IN'stateOrProvinceName: Utskriftsvennlig:' TN'localityName: Utskriftsvennlig: 'Erode'organizationName: Utskriftsvennlig:' Unixmen'organizationalUnitName: Utskriftsvennlig: 'server'commonName: Utskriftsvennlig:' server'name: Utskriftsvennlig: 'EasyRSA'emailAddress: IA5STRING:'[email protected]'Certificate er å bli sertifisert til 23 mars 12:21:34 2 024 GMT (3650 dager) Logg sertifikatet? [y /n]: y ---- > Skriv Y og presse Enter1 av 1 sertifikat forespørsler sertifiserte, begår? [y /n] y ---- > Skriv Y og presse EnterWrite ut database med en ny entriesData Base OppdatertOpprett sertifikatet og nøkkelen for VPN-klienter ved hjelp av følgende kommando:
./bygge-key klientHvis du vil lage sertifikat og viktige filer for hver klient, bør du erstatte klient
parameter med en unik identifikator
Prøve utgang.
generere en 1024 bit RSA private key.......+++..................................................................................................+++writing nye private nøkkelen til "client.key" ----- Du er i ferd med å bli bedt om å oppgi informasjon som vil være incorporatedinto sertifikatet request.What du er i ferd med å gå inn er det som kalles et unikt navn eller en DN.There er ganske mange felt, men du kan la noen blankFor noen felt vil det være en standardverdi, hvis du går inn, vil feltet være tomt .----- Navn Land (2 bokstavkode) [IN] '.': - --- > Trykk EnterState eller navn provinsen (fullt navn) [TN]: ---- > Navn Trykk EnterLocality (f.eks by) [Erode]: ---- > Trykk EnterOrganization Name (f.eks selskap) [Unixmen]: ---- > Navn Trykk EnterOrganizational Unit (f.eks seksjon) [server]: ---- > Trykk EnterCommon navn (for eksempel navnet ditt eller serverens vertsnavn) [klienten]: ---- > Trykk entername [EasyRSA]: ---- > Trykk EnterEmail Adresse [[email protected]]: ---- > Trykk EnterPlease oppgi følgende "ekstra" attributesto sendes med sertifikat requestA utfordring passord []: ---- > Trykk EnterAn valgfritt firmanavn []: ---- > Trykk EnterUsing konfigurasjon fra /etc/openvpn/easy-rsa/openssl-1.0.0.cnfCheck at anmodningen matcher signatureSignature okThe Subject Distinguished Name er som followscountryName: Utskriftsvennlig: 'IN'stateOrProvinceName: Utskriftsvennlig:' TN'localityName: Utskriftsvennlig: 'Erode'organizationName: Utskriftsvennlig:' Unixmen'organizationalUnitName: Utskriftsvennlig: 'server'commonName: Utskriftsvennlig:' client'name: Utskriftsvennlig: 'EasyRSA'emailAddress: IA5STRING:'[email protected]'Certificate er å bli sertifisert til 23 mars 12:23:44 2 024 GMT (3650 dager) Logg sertifikatet? [y /n]: y ---- > Skriv Y og presse Enter1 av 1 sertifikat forespørsler sertifiserte, begår? [y /n] y ---- > Skriv Y og presse EnterWrite ut database med en ny entriesData Base Oppdatert
Generer Diffie Hellman Parameter
Tast inn følgende kommando for å generere DH parameter.
./bygge-dhPrøve utgang:
Generering DH parametere, 1024 litt lang trygt prime, generator 2 Dette kommer til å ta lang tidDe nødvendige nøkler og sertifikater vil bli generert i /etc /openvpn /lett -rsa /nøkler /katalog. Kopier følgende sertifikat og viktige filer til /etc /openvpn /katalog.
ca.crt
dh1024
.pem
server.crt
server.nøkkel
Gå til katalogen /etc /openvpn /lett-RSA /keys /
og skriv inn følgende kommando for å overføre filene over til /etc /openvpn /katalog.
cd /etc /openvpn /lett-RSA /nøkler /cp dh1024.pem ca.crt server.crt server.nøkkel /etc /openvpn /Og så må du kopiere alle klientsertifikater og nøkler til den eksterne VPN-klienter for å autentisere til VPN-serveren. I vårt tilfelle har vi generert sertifikater og nøkler til bare én klient, så vi må kopiere følgende filer til VPN-klient.
ca.crt
< li> client.crt
client.key
Du må kopiere filene over til VPN-klienter sikkert. Kopiere nøkler med forsiktighet. Hvis noen har muligheter for å få nøklene, kan de lett forstyrre og få full tilgang til din virtuelle private nettverk.
Fjern klient tilgang til VPN-serveren
Hvis du vil fjerne en brukers tilgang til VPN-serveren, skriver du inn følgende kommando:
. /etc/openvpn/easy-rsa/2.0/vars. /etc/openvpn/easy-rsa/2.0/revoke-full klientKommandoene ovenfor fjerne brukeren som har sertifikat for å få tilgang til VPN-serveren.
Konfigurering av VPN Server
Nå Vi må konfigurere vår VPN-serveren. Kopier filen server.conf.gz filen til /etc /openvpn /katalog.
cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc /openvpn /Pakk ut filen ved hjelp av følgende kommando:
gzip -d /etc/openvpn/server.conf.gz
Rediger filen server.conf, etter
VI /etc/openvpn/server.confFind og uncomment følgende linjer til ruten klient systemer trafikk gjennom OpenVPN server.
[...] push "omdirigere-gateway dEF1 bypass-dhcp" [.. .]Også Uncomment og endre DNS-serverne for å gjenspeile din egen DNS-verdier. Her bruker jeg Googles offentlige DNS-servere.
[...] push "dhcp-alternativet DNS 8.8.8.8" push "dhcp-alternativet DNS 8.8.4.4" [...]Uncomment den følgende linjer:
[...] bruker nobodygroup NOGROUP [...]Lagre og lukk filen
Da må vi kopiere og redigere client.conf fil.. Vi trenger denne filen som skal overføres til VPN-klienter. Først kopiere filen til hvilket som helst sted (ex. /Home katalogen).
cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /home /Rediger fil client.conf, etter
vi /home/client.confSet VPN-serveren vertsnavn /IP-adresse:
# Vertsnavnet /IP og port på serveren. # Du kan ha flere eksterne oppføringer # for å laste balanse mellom serverne. fjern 192.168.1.101 1194Her 192.168.1.101 er min VPN-serverens IP-adresse.
Deretter Kopier client.conf
filen på klientsystemet.
IP videresending og routing Configuration
Rediger sysctl.conf fil, etter
vi /etc/sysctl.confFind følgende linje og sette verdien "1" for å aktivere IP videresending.
# Controls IP-pakke forwardingnet.ipv4.ip_forward = 1Kjør følgende kommando for å bruke sysctl endringene
sysctl -pEnter følgende kommando for å aktivere IP videresending.
echo 1 > /proc /sys /net /IPv4 /ip_forwardAdjust iptables til å videresende trafikken gjennom VPN ordentlig Anmeldelser Skriv inn følgende kommandoer en etter en for å videresende trafikk gjennom OpenVPN.
iptables -A FORWARD -m state --state relatert, ETABLERT j ACCEPTiptables -A FORWARD -s 10.8.0.0/24 j ACCEPTiptables -A FORWARD j REJECTiptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADEInstall iptables-bestandige og lagre iptables regler:
apt-get install iptables-vedvarende Godta standardverdiene og lagre iptables regler
Hvis du bruker UFW, bør du kjøre følgende kommandoer for å tillate openvpn port 1194.
ufw tillate 1194 /udpufw tillate 1194 /tcpFinally, start OpenVPN tjenesten og gjøre den skal starte automatisk ved hver omstart ved hjelp av følgende kommandoer:
tjenesten openvpn startVerify hvis VPN-grensesnitt (tun0) opprettes ifconfig kommandoen bruker:
< pre> ifconfigSample utgang:
eth0 Link Encap: Ethernet HWaddr 08: 00: 27: 46: 36: 62 inet addr: 192.168.1.2 Bcast: 192.168.1.255 Mask: 255.255.255.0 inet6 adr: fe80 :: A00: 27ff: fe46: 3662/64 Omfang: Link UP CAST KJØRER multicast MTU: 1500 Metric: 1 RX pakker: 604 feil: 0 droppet: 0 overskridelser: 0 frame: 0 TX pakker: 100 feil: 0 droppet: 0 overskridelser: 0 carrier: 0 kollisjoner: 0 txqueuelen: 1000 RX bytes: 44166 (43,1 KiB) TX bytes: 14434 (14,0 KiB) lo Link Encap: Lokal Loopback inet addr: 127.0.0.1 Mask: 255.0.0.0 inet6 adr: :: 1 /128 Omfang: Host UP TILBAKEKOBL KJØRER MTU: 16436 Metric: 1 RX pakker: 0 feil: 0 droppet: 0 overskridelser: 0 frame: 0 TX pakker: 0 feil: 0 droppet: 0 overskridelser: 0 carrier: 0 kollisjoner: 0 txqueuelen: 0 RX bytes: 0 (0.0 b) TX bytes: 0 (0.0 b) tun0 Link Encap: UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00 -00 til 00 inet addr: 10.8.0.1 PtP: 10.8.0.2 Mask: 255.255.255.255 UP POINTOPOINT KJØRER NOARP multicast MTU: 1500 Metric: 1 RX pakker: 0 feil: 0 droppet: 0 overskridelser: 0 frame: 0 TX pakker: 0 feil: 0 droppet: 0 overskridelser: 0 carrier: 0 kollisjoner: 0 txqueuelen: 100 RX bytes: 0 (0.0 b) TX bytes: 0 (0.0 b) det er det. Nå VPN-serveren er klar. Cheers!