Instal·lant una VPN amb Tinc sobre Ubuntu 16.04 LTS

 

Una xarxa privada Virtual (VPN) és una xarxa privada segur que opera sobre una xarxa pública més gran com internet. VPN s'han tornat cada vegada més populars en els últims anys, mesura, ja que ofereixen més seguretat i privacitat sense necessitat de configurar el maquinari nou complex i car. També ofereixen diversos altres avantatges, incloent-hi la reducció de costos de xarxes i suport.

VPN treballar creant un túnel encriptat mitjançant una xarxa pública, i utilitzant això segura enviar dades entre servidors i terminals. Aquestes connexions es pot xifrar en una varietat de formes, i hi ha molts diferents clients VPN i dimonis per satisfer la vostra arquitectura, pressupost, i nivell d'experiència.

Tinc és un tal solució (1,2). Un dimoni VPN de codi obert, està ara disponible per a una àmplia gamma de plataformes, i té diversos avantatges superiors similar als clients VPN. Ofereix encriptació segur i fiable, compressió opcional, i és fàcilment ampliable a mesura que creix la xarxa. Els mitjans d'encaminament automàtic malla completa que trànsit VPN és sempre (sempre que sigui possible) enviat directament a la màquina de destinació, sense fer transferències intermedis, i això millora la seguretat limitant la possibilitat de robatori de dades (3). A més a més, perquè el Tinc VPN apareix al codi de nivell de xarxa IP com un dispositiu de xarxa normal, després de configurar una Tinc VPN no hi ha necessitat d'adaptar el programari existent. Això fa que la Tinc VPN inherentment escalable.

El problema només menor amb Tinc és que algunes persones han trobat que és una mica difícil d'establir. Si allò sona com vostè, mai por-avui que em quedo amb vostè a través d'una manera (més o menys) complicacions d'aixecar un Tinc VPN i s'executa en servidors.

Requisits previs

Per seguir aquesta classe totalment, vostè va a necessitar Ubuntu almenys tres 16.04 servidors, i l'accés d'arrel a cada màquina. Si no tenen això o no estan segurs de què això significa, Aquesta classe no és per a vostè-vostè ha desprotegir com configurar un servidor amb Ubuntu (4).

Si vostè està construint un sistema servidor des de zero, primer cal pensar sobre com va el seu màquines per comunicar-se amb els altres. En aquest tutorial, Vaig a utilitzar els noms de variable que crec que la majoria de la gent triaria, però tingueu en compte que vostè necessita per adaptar alguns dels noms variables per adaptar el seu propi programa d'instal·lació.

Si voleu seguir aquest tutorial exactament, vas a primer cal establir dos VPS al mateix centre de dades, i feu-hi un tercer VPS en un segon data center. Meu centres de dades són anomenats NYC2, que té les dues VPS, i AMS2, que té un tercer. Aquestes VPS es diuen el següent:

externalnyc-tots els nostres nodes VPN es va a connectar amb aquest servidor, que vol dir que això ha de romandre connectat i disponible per assegurar les funcions de xarxa correctament. Si finalment voleu sumen servidors addicionals a les vostres, caldrà configurar de la mateixa manera com externalnyc.

internalnyc-aquest VPS es connecta al node VPN d'externalnyc mitjançant una interfície de xarxa privada.

ams1-aquesta és la nostra connexió públiques de VPN. Es connecta a externalnyc utilitzant la internet pública.

Objectiu

Què volem aconseguir és el següent:

Nostra xarxa privada està representada per la línia verda, i es connecta tots els tres servidors. La taronja és la nostra xarxa privada, Uneix els dos servidors de NYC2. Tots tres servidors poden contactar a través de la VPN, encara que la xarxa privada no és accessible a AMS1.

Fer-ho, Seguiu aquests passos:

Instal·lar Tinc

En primer lloc, necessitem instal lar Tinc. Com sempre, Assegureu-vos que tots els repositoris apta siguin fins a cita executant:

sudo de manera apta aconseguir actualització

Instal·leu-ne Tinc de la manera estàndard a través d'apta:

sudo de manera apta aconseguir instal·lar tinc

I això és tot! Vostra mαquina descarregarà ara Tinc, a més qualsevol prerequisits que necessita. Ara hem de fer una ullada a la configuració.

Configuració

Tinc de configuració pot ser una mica diferent d'altres VPNs que s'utilitzen per. Utilitza un "netname" per distingir una VPN d'un altre, Això esdevé molt útil quan té múltiples VPNs que travessa Tinc, però és una mica contra-intuïtiu al principi. Ja que aquesta és la nostra primera xarxa Tinc, Anem a mantenir-lo simple i cridar nostra VPN "netname".

Ara per a cadascun dels nostres servidors. Cadascun haurà tres components de configuració:

Els fitxers de configuració: tinc.conf, Tinc amunt, Tinc avall, i un nombre d'altres arxius opcional.

Parells de claus públiques i privades: aquestes són per al xifrat i autenticació.

Fitxers de configuració d'acollida: Aquests contenen les claus públiques, i altres elements de configuració VPN.

Ara configurem cada un dels nostres servidors al seu torn. En primer lloc, externalnyc.

Configurar externalnyc

Correcte, ara a les nous i baldes. En externalnyc, Comenceu per crear l'estructura de directori de configuració per a la netname VPN. Executeu:

sudo mkdir -p /etc/tinc/netname/hosts

Tinc.conf obert en el seu editor de text escollit:

sudo vi /etc/tinc/netname/tinc.conf

Una vegada que té davant seu l'arxiu, Afegiu el següent al fons de l'arxiu:

Name = externalnyc
AddressFamily = ipv4
Interface = tun0

Tot el que està fent aquí és configurar un node anomenat externalnyc, i dir-li al servidor que és interfície de xarxa utilitza ipv4 i anomenar "tun0". Salvi l'arxiu, i tancar-lo.

Següent, hem de crear un fitxer de configuració d'amfitrió per a externalnyc. Fer-ho, Obriu el fitxer de configuració d'amfitrions en un editor de text:

sudo vi /etc/tinc/netname/hosts/externalnyc

Una altra vegada, afegir algunes línies al fons d'aquest fitxer, substituint l'adreça IP pública del seu VPS en la primera línia:

Address = externalnyc_public_IP
Subnet = 10.0.0.1/32

Aquest és el fitxer que altres servidors s'utilitzarà per connectar a externalnyc. L'adreça diu altres nodes com i on connectar amb aquest servidor, i l'adreça subneta és la subxarxa que operen en aquest dimoni. Una altra vegada, Desa els canvis a aquest fitxer i tanqueu-lo.

Ara hem de generar el públic / parell de clau privada per a aquest amfitrió. Això és bastant fàcil, només executeu:

sudo tincd netname - n-K4096

Això fa que una clau privada RSA, i afegeix un parell de claus pública fins al final de l'arxiu de configuració que hem creat. Podeu obrir-lo una altra vegada per veure que això s'ha fet, Si t'agrada.

Ara, hem de tinc-maquillatge, un petit script que s'executarà quan s'inicia la nostra VPN. Obriu el fitxer següent per editar:

sudo vi /etc/tinc/netname/tinc-up

I afegeix:

#!/bin/sh
ifconfig $INTERFACE 10.0.0.1 màscara de xarxa 255.255.255.0

Sempre que s'inicia el netname VPN, Aquest script s'executarà. Es farà una interfície de xarxa per ser utilitzat pels nostre VPN, i en aquest VPN externalnyc tindrà una adreça d'IP de 10.0.0.1.

Però quan s'atura la VPN, Volem que aquesta interfície de xarxa a desaparèixer, Així necessitem una escriptura més. Això hauria annexarà a tinc desplegable. Obert:

sudo vi /etc/tinc/netname/tinc-down

I després afegir:

#!/bin/sh
ifconfig $INTERFACE down

I de nou estalviar i abandonar. Ara tenim els nostres llibrets, però en ordre perquè puguin funcionar necessiten estar marcat com a executable. Això és bastant fàcil, utilitzant la línia d'ordres:

sudo chmod 755 /etc. / tinc/netname/tinc-*

Guardar i sortir, i ja està configurant aquest servidor. Següent, internalnyc i ams1.

Configurar internalnyc i ams1

Per configurar els dos restants servidors, Cal corre les mateixes comandes a cada màquina. Hi ha unes quantes variacions, que vaig a assenyalar, però el procés és bàsicament el mateix.

Com ho vam fer amb externalnyc anterior, primer hem de fer l'estructura de directori per als nostres arxius de configuració. A cada servidor, Executeu el següent, i obriu el fitxer de configuració Tinc per editar:

sudo mkdir -p /etc/tinc/netname/hosts
sudo vi /etc/tinc/netname/tinc.conf

Llavors afegir unes línies a la part inferior d'aquest fitxer, substituint "node_name" amb el nom de cada node:

Name = node_name
AddressFamily = ipv4
Interface = tun0
ConnectTo = externalnyc

Vostè pot veure que ara els nostres servidors estan configurats per intentar connectar-vos a externalnyc. Deseu el fitxer, i tancar-lo.

Ara hem de fer els amfitrions d'arxiu de configuració. Executeu:

sudo vi /etc/tinc/netname/hosts/node_name

Llavors per a internalnyc, Afegiu aquesta línia:

Subxarxa = 10.0.0.2/32

I per ams1, Afegiu aquesta línia:

Subxarxa = 10.0.0.3/32

L'única diferència aquí és que les adreces difereixen, així podem dir nostres servidors part. Deseu el fitxer, i tancar-lo.

Ara, com abans, hem de generar el nostre públic / parells de clau privades, i crear el començament d'interfície de xarxa cap amunt d'escriptura. A cada servidor, executeu:

sudo tincd netname - n-K4096

I, a continuació:

sudo vi /etc/tinc/netname/tinc-up

Ara. Per a cada servidor, hem d'utilitzar les adreces que hem especificat abans. Si vostè està seguint em precisament, per internalnyc cal afegir:

ifconfig $INTERFACE 10.0.0.2 màscara de xarxa 255.255.255.0

I per ams1:

ifconfig $INTERFACE 10.0.0.3 màscara de xarxa 255.255.255.0

Però, Si heu especificat diferents adreces anteriors, canviar-los aquí, així. Guardar aquests arxius, i deixar de fumar. Estem gairebé allà.

Només hem de fer el guió de parada d'interfície de xarxa, igual que abans:

sudo vi /etc/tinc/netname/tinc-down

I llavors afegiu aquesta línia en dos servidors:

ifconfig $INTERFACE avall

I el propi desenllaç de configuració és fer nostres nous guions executables:

sudo chmod 755 /etc. / tinc/netname/tinc-*

Guardar i sortir. Uf. Si tot ha anat bé, tots tres servidors estan configurats ara. Ara per a la implantació de la criptografia.

Distribuir claus

Si ja esteu utilitzant un sistema de gestió de configuració, està d'enhorabona. En un món ideal, cada node que hem fet ara ha de ser capaç de parlar directament amb un altre node utilitzant un públic / interfície de clau privada. Les claus, com hem vist anteriorment, estan ara en els fitxers de configuració d'amfitrions per a cada servidor. A la xarxa simple estem fent aquí, externalnyc en realitat només ha d'intercanviar les claus amb altres nodes.

I així, la manera més fàcil de fer-ho és simplement copiar cada clau pública a tots els membres dels diversos nodes. Això és de fet bastant fàcil, només vagi amb compte canviar el valor "adreça" en arxiu de configuració de externalnyc a la seva pròpia adreça IP privada quan Copia-ho. D'aquesta manera, s'establirà la connexió a la xarxa privada.

Si em va seguir i anomenat el seu VPN "netname", els fitxers de configuració d'amfitrions està aquí: /etc/tinc/netname/hosts

Intercanvi de claus entre externalnyc i internalnyc

Això és senzill. En internalnyc, trobar els amfitrions d'arxiu de configuració i copiï'l a externalnyc:

SCP /etc/tinc/netname/hosts/internalnyc [e-mail protegit]_private_IP: / tmp

Llavors, en externalnyc, Copiï el mateix arxiu a la ubicació correcta:

CD /etc/tinc/netname/hosts; sudo cp/tmp/internalnyc .

Ara podem fer el procediment contrari. En externalnyc, Copieu el fitxer de configuració d'amfitrions al internalnyc:

SCP /etc/tinc/netname/hosts/externalnyc [e-mail protegit]_private_IP: / tmp

I llavors el internalnyc copiar l'arxiu així és en el lloc correcte:

CD /etc/tinc/netname/hosts; sudo cp/tmp/externalnyc .

Ara necessitem editar arxiu de configuració de externalnyc acull el internalnyc perquè l'adreça és correcta. Això és així els nusos es connectarà a la VPN a través de la xarxa privada. Tan, en internalnyc, Obriu el fitxer de configuració d'amfitrions per externalnyc:

sudo vi /etc/tinc/netname/hosts/externalnyc

I canviar el valor d'adreça a l'adreça IP privada de externalnyc, com aquesta:

Adreça = externalnyc_private_IP

Salvi l'arxiu, i deixar de fumar. És que aquestes dues claus fet. Ara només hem d'intercanviar les claus amb nostre un node restant.

Intercanvi de claus entre externalnyc i ams1

Aquí el procés és força similar. Utilitzant ams1, Copieu el fitxer de configuració d'amfitrions al externalnyc:

SCP /etc/tinc/netname/hosts/ams1 [e-mail protegit]_public_IP: / tmp

I llavors una altra vegada, copiar-lo al lloc correcte, utilitzant externalnyc:

CD /etc/tinc/netname/hosts; sudo cp/tmp/ams1 .

Quedant-se a externalnyc, Copieu el fitxer al revés, a través d'ams1:

SCP /etc/tinc/netname/hosts/externalnyc [e-mail protegit]_public_IP: / tmp

I una vegada més, en ams1, copiar aquest fitxer així és en el lloc correcte:

CD /etc/tinc/netname/hosts; sudo cp/tmp/externalnyc .

I se'l fa amb intercanvi de claus. En teoria, Ara tens un treball, VPN encriptada a través de Tinc. Si ja has seguit aquest tutorial a la carta, vostè pot passar a la proves el seu conjunt cap amunt. Si, No obstant això, vostè també ha pres l'oportunitat per afegir més nodes, ara és un bon moment per totes les claus que heu d'intercanviar.

Recordeu que si esteu utilitzant un node central, com que estic fent aquí, no necessita copiar totes les claus a tots els servidors. No obstant això, Si voleu nodes per poder parlar directament a l'altre, necessitaran d'intercanvi de claus. El procés per fer això és el mateix que he comentat-només fer tants iteracions com necessitis per aconseguir el seu desitjat connectivitat.

Proves

Ara hauria de ser llest per provar. Fer-ho, és una bona idea per començar Tinc en mode de depuració, així podem agafar alguns errors i obtenir més informació, si res surt malament. Recordeu que un VPN pobrament configurat en realitat pot ser un risc de seguretat, Així que assegureu-vos que tot funciona correctament abans de començar a utilitzar la VPN per a qualsevol importants.

Per començar la Tinc en mode de depuració, en cada node, començant amb externalnyc, executeu:

sudo tincd - n netname -D-d3

Si que he anomenat la VPN alguna cosa diferent, per descomptat, Canvia la variable "netname" pel nom apropiat.

Després comença el dimoni en cada node, IT hauria de retornar sortida li dóna el nom de cada node com es connecten. Si això no passa, Heu fet un error en algun lloc.

Ara, podem provar la VPN. En una finestra nova en ams1, ping a internalnyc utilitzant la seva adreça IP. Hem assignat a 10.0.0.2 més d'hora, així escriu:

cascavellejar 10.0.0.2

Esperem que, seu cascavellejar treballarà. També hauríeu de veure alguns depuració a les altres finestres, descriure les connexions acaba de fer. Ams1 ara està connectat, a través de la VPN nou, a externalnyc, i pot connectar a internalnyc a través. Premeu CTRL-C i el ping s'aturarà.

Ara ja teniu una connexió VPN segura, es pot utilitzar per qualsevol altre tipus de comunicació xarxa-connexions d'aplicació, copiant els fitxers, SSH, o qualsevol altra cosa que agrada.

Si no funciona el seu cascavellejar, però pensa que feia tot just, podria ser que un tallafoc aconseguia de la manera. Comproveu la configuració del tallafoc, i torneu.

Tinc en l'arrencada

Només una última cosa. Si ara vas utilitzar la Tinc VPN per a totes les seves xarxes, podria voler posar-lo a la posada en marxa en l'arrencada. Cal fer-ho a cada node, editant el fitxer de configuració nets.boot. Obri l'arxiu que utilitza:

sudo vi /etc/tinc/nets.boot

I després afegir el nom de la VPN de nou a aquest fitxer. Si trieu "netname" com jo, Això es veurà com les següents:

# Aquest fitxer conté tots els noms de les xarxes que s'iniciï en l'arrencada del sistema.
netname

Guardar i sortir, i ja està. Tinc està treballant ara, i començarà en l'arrencada. ben fet.

Si necessita controlar Tinc, Ara es pot executar la comanda "servei" per fer-ho. A cada node, només executeu:

sudo service tinc start

I tenen un joc al voltant. La major control bàsic es pot aconseguir a través d'aquesta comanda.

Conclusió

Ara ha de tenir una connexió VPN segura que travessa Tinc en totes les seves màquines. Aquest VPN pot ser utilitzat com una base per a construir encara més la funcionalitat de xarxa.

Si voleu afegir més nodes en el futur, o combinar Tinc amb un altre VPNs, Tinc li permetrà fer això. El procés per a cada node addicional és el mateix que el que he descrit dalt, i hauria de ser capaç de veure fàcilment quines variables i adreces necessiten canviar. Només recordeu que si voleu nodes per poder connectar directament a l'altre, necessitareu canviar claus entre ells directament. D'aquesta, Tinc funciona com una malla VPN, que és una mica més segur que el meu enfocament (3). En cas contrari, vostè pot només configura la xarxa com he fet, i tenim tot passant per un únic node central.

De qualsevol manera, Ara ets lliure jugar. Bona sort!

Recursos

(1) https://www.tinc-vpn.org/

(2) https://www.linux.com/news/creating-vpn-tinc

(3) https://thebestvpn.com/cryptography/

(4) https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-14-04

Font