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.
I denne korte guiden, la oss setup OpenVPN server på CentOS 6.5, og koble fra en ekstern klient. For hensikten med denne opplæringen, jeg bruker to systemer som kjører med CentOS 6.5, en fungerer som VPN-server og andre handlinger som VPN-klient Anmeldelser Part One -. VPN Server Side Configuration
Her bruker jeg CentOS 6.5 som VPN server, og det er selve IP-adresse er 192.168.1.2/24
. Forutsetninger
OpenVPN, og det er avhengigheter er ikke tilgjengelig i CentOS standard repositories. Så bør vi installere "Epel" depotet for å installere OpenVPN og dens avhengigheter.
Å aktivere Epel repository På CentOS, se følgende link.
Også oppdatere systemet ved hjelp av følgende kommando:
yum updateInstall OpenVPN Software
Installer OpenVPN programvaren ved hjelp av følgende kommando:
yum install openvpn lett- rsaThe lett-rsa scripts ligger som standard i /usr /share /lett-RSA /katalog. Lag en katalog /lett-RSA /nøkler inne i /etc /openvpn katalog og kopiere skript til den katalogen som vist nedenfor:
mkdir -p /etc /openvpn /lett-rsa /keyscp -rf /usr/share/easy-rsa/2.0/* /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 2048 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 2048 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 2048 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, 2048 bits 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 /directory.
ca.crt
dh2048
.pem
server.crt
server.keyGo til katalogen /etc /openvpn /lett-RSA /keys /Hotell og skriv inn følgende kommando for å overføre filene over til /etc /openvpn /katalog.
cd /etc /openvpn /lett RSA /nøkler /cp dh2048.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 server. 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
Som jeg nevnte tidligere, jeg har et annet system som kjører med CentOS 6.5 som fungerer som min VPN-klient. Kontroller at du har installert openvpn pakken på klientsystemer. Deretter kopierer filene over til din VPN-klient system, ved hjelp av følgende kommando:
scp ca.crt client.crt client.key [email protected]: /etc /openvpnKopier tastene 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 filen til /etc /openvpn /katalog.
cp /usr/share/doc/openvpn-2.3.2/sample/sample-config-files/server.conf /etc /openvpn /Rediger filen server.conf, etter
vi /etc/openvpn/server.confFind og uncomment følgende linjer til ruten klientsystemer trafikk gjennom OpenVPN server.
[ ,,,0],...] # Substitute 2 048 for 1 024 hvis du bruker # 2048 bits keys.dh dh2048.pem [...] push "omdirigere-gateway dEF1 bypass-dhcp" [...]Også Uncomment og endring 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 ingen [...]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-2.3.2/sample/sample-config-files/client.conf /home /< p> Rediger filen client.conf, ettervi /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.2 1 194Her 192.168.1.2 er min VPN-serverens IP-adresse. Deretter Kopier client.conf
filen på klientsystemet
scp /home/client.conf [email protected]. /Etc /openvpnIP videresending og ruting Configuration
Rediger sysctl.conf fil, ettervi /etc/sysctl.confFind følgende linje og sette verdien "1" for å aktivere IP videresending.
# Controls IP-pakke forwardingnet.ipv4.ip_forward = 1Run den følgende kommando for å bruke sysctl endringene
sysctl -pAdjust iptables til å videresende trafikken gjennom VPN ordentlig Anmeldelser Skriv inn følgende kommandoer en etter en..
iptables -t nat -A POSTROUTING - s 10.8.0.0/24 -o eth0 -j MASQUERADESave iptables endringer ved hjelp av kommandoen:
tjenesten iptables saveservice iptables restartFinally, start OpenVPN tjenesten og gjøre den skal starte automatisk ved hver omstart ved hjelp av følgende kommandoer:
tjenesten openvpn startchkconfig openvpn onat denne tiden, bør du ha en fungerende OpenVPN server. Neste, la oss flytte til klientsiden konfigurasjon
Kontroller at VPN-grensesnitt (tun0) opprettes ifconfig kommandoen bruker.
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-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 byte: 0 (0.0 b) TX bytes: 0 (0.0 b) Part Two - VPN Client side konfigurasjons
Her bruker jeg CentOS 6.5 som min VPN klient system. Og det faktiske IP-adresse er 192.168.1.101/24.
Installer OpenVPN
Skriv inn følgende kommando fra Terminal for å installere OpenVPN pakken.
yum install openvpnAfter installere OpenVPN, starte tjenesten og gjøre det skal kjøres automatisk på hver omstart
tjenesten openvpn startchkconfig OpenVPN OnNow, sjekk om tun0 (VPN interface) opprettes
ifconfigSample utgang:..
eth0 Link Encap: Ethernet HWaddr 08: 00: 27: BE: 25: 49 inet addr: 192.168.1.101 Bcast: 192.168.1.255 Mask: 255.255.255.0 inet6 adr: fe80 :: A00: 27ff: Febe: 2549/64 Omfang: Link UP CAST RUNNING multicast MTU: 1500 Metric: 1 RX pakker: 537 feil: 0 droppet: 0 overskridelser: 0 frame: 0 TX pakker: 387 feil: 0 droppet: 0 overskridelser: 0 carrier: 0 kollisjoner: 0 txqueuelen: 1000 RX bytes: 52177 (50,9 KiB) TX bytes: 50170 (48,9 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-00 inet addr: 10.8.0.6 PtP: 10.8.0.5 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) Som du ser i ovennevnte utgang, har VPN-serveren automatisk tildelt IP-adresse 10.8.0.6 til min VPN klient Anmeldelser Sjekk om du kan .. pinge VPN server fra klientsystemet
ping 10.8.0.110.8.0.1 er min VPN-serveren tun0 adresse
Sample utgang:
PING 10.8.0.1 (10.8.0.1) 56 (84) bytes av data.64 bytes fra 10.8.0.1: icmp_seq = 1 ttl = 64 time = 9.61 MS64 bytes fra 10.8.0.1: icmp_seq = 2 ttl = 64 time = 7,17 MS64 bytes fra 10.8.0.1: icmp_seq = 3 ttl = 64 time = 4.87 msThat er det. Nå VPN-serveren og klienten er klar. Koble til VPN-serveren sikkert. Glad VPNing! Anmeldelser