PDF de programación - VPN sobre FreeBSD usando IPSEC y cifrando con RACOON

Imágen de pdf VPN sobre FreeBSD usando IPSEC y cifrando con RACOON

VPN sobre FreeBSD usando IPSEC y cifrando con RACOONgráfica de visualizaciones

Actualizado el 16 de Junio del 2017 (Publicado el 14 de Abril del 2017)
671 visualizaciones desde el 14 de Abril del 2017
18,5 KB
6 paginas
Creado hace 21a (08/10/2002)
VPN sobre FreeBSD usando IPSEC y
cifrando con RACOON:

Aut or: Iucki
Fecha: 08/10/2002

Lo que en est e artí culo os propongo es al go que a simple vist a parece a lgo basta nte compli cado y que debe l levar muc ho ti empo y requerir unas c onfi gura ciones ma s compli cadas de l o que realmente es.

Que es VPN? Una vpn es una red pri va da virtua l, y en que c onsiste ?, consi ste en uni r dos re des local es como las que pode mos tener e n el c ole gi o, en casa o en la ofi cina entre sí. Las ve nt ajas que est o ti ene son
innumerabl es ya que est amos ha ciendo de dos rede s fisic ament e se paradas (ambas cone ctadas a i nt ernet ) una e struct ura de re d estable. Podemos te ner un servi dor en cada una de nuestras ofici nas y compartir arc hi vos
entre equi pos o impri mir en impresoras de red c omo si de una sol a red se t ra tase, etc. .

Qué necesi tamos para mont ar una VPN?, ne cesit amos dos re des, dos maquinas que den a cceso a i nt ernet a ca da una de esa s dos redes y un poco de ti empo para seguir con cui dado est e art ículo, el resulta do est á
gara nti zado.

La estruct ura bá sicame nte es l a si guiente:

---RED1---
|
IPPRIVADA1
{MAKINA1}
IPPUBLICA1
|
ENLACEINTERNET
|
INTERNET
|
ENLACE2INTERNET
|
IPPUBLICA2
{MAKINA2}
IPPRIVADA2
|
---RED2---

Eje mplo:

--192.168.0.0/24--
|
192.168.0.1
{MAKINA1}
213.172.100.101
|
213.172.100.100
|
INTERNET
|
80.32.152.28
|
80.32.152.29
{MAKINA2}
192.168.1.1
|
--192.168.1.0/24--

La confi gura ción que vamos a ver es para nuest ra MAK IN A1, la c onfi gurac ión de la MÁK IN A2 será = pero ca mbia ndo l os val ores de l as IPS y de l as redes.

Paso Número 1: Añadir opciones a nuestro kernel:

# ee /usr/src/sys/i386/conf/KERNEL

Aña di mos:

options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPDIVERT

pseudo-device gif 4
options IPSEC
options IPSEC_ESP
options IPSEC_DEBUG

compi lamos nuestro Ke rnel:

# cd /usr/src/sys/i386/conf

# config -r KERNEL
# cd ../../compile/KERNEL
# make depend && make && make install

Paso Número 2: Configuración de la red

# ee /etc/rc.conf

gateway_enable="YES"
defaultrouter="enlace1" #escribimos nuestra IP de enlace. Ejemplo: defaultrouter="213.172.100.100"
ifconfig_fxp0="inet publica1 netmask mascaraPublica1" #publica1 es una IP. Ejemplo:ifconfig_fxp0="inet 213.172.100.101 netmask 255.255.255.240"
ifconfig_fxp1="inet privada1 netmask 255.255.255.0" #privada1 es una IP. Ejemplo:ifconfig_fxp1="inet 192.168.0.1 netmask 255.255.255.0"
router_flags="-q"
router="/sbin/routed"
router_enable="YES"
firewall_enable="YES"
firewall_script="/etc/rc.firewall"
firewall_logging="YES"
firewall_type="/etc/firewall.rules"
natd_enable="YES"
natd_interface="fxp0" #Es el dispositivo conectado a internet.
ipsec_enable="YES"
ipsec_file="/etc/ipsec.conf"
gif_interfaces="gif0"
gifconfig_gif0="publica1 publica2" # Ejemplo: gifconfig_gif0="213.172.100.101 80.32.152.29""
network_interfaces="fxp1 fxp0 lo0 gif0" #aqui poneis los que tengais mas lo0 y gif0
ifconfig_gif0="privada1 privada2 netmask 255.255.255.255" #ejemplo: ifconfig_gif0="192.168.0.2 192.168.1.2 netmask 255.255.255.255"
static_routes="vpn"
route_vpn="-net red2/24 privada2" #ejemplo:route_vpn="-net 192.168.1.0 192.168.1.2"

vemos que es ne cesario t ene r dos disposit ivos de re d conect ados,uno a Internet y el ot ro a una re d privada . He añadi do al kernel l as opciones ne cesarias pa ra act ivar el firewall y el natd ya que para poder move rnos

entre l as dos re des nece sita mos que nuest ros dos se rvidores sea n las pue rt as de e nla ce de las má kinas de sus rede s respec tivamente. Tambié n podemos ver que gif0 e s el pse udo-di sposi ti vo que ut ili zamos

para envia r informac ión a travé s de l a vpn, o sea, el di spositi vo por el que viaj a l a información a traves de la VPN.

Paso Número 3: Firewall

Es necesa ri o dar acc eso a ambas redes de sde ambas re des.

# ee /etc/firewall.rules

-f flush
add divert natd all from any to any via fxp1
add allow all from red1/24 to red2/24 #ejemplo: add allow all from 192.168.0.0/24 to 192.168.1.0/24
add allow all from red2/24 to red1/24 #ejemplo: add allow all from 192.168.1.0/24 to 192.168.0.0/24
#....demás reglas....
add allow icmp from any to any out icmptypes 8
add allow icmp from any to any out icmptypes 0
add deny icmp from any to any in icmptypes 8
add deny icmp from any to any out icmptypes 0
#....más reglas...
add pass all from any to any
add allow all from any to any

Paso Número4: Establecimiento del tunel ipsec

# ee /etc/ipsec.conf

flush;
spdflush;
spdadd red1/24 red2/24 any -P out ipsec esp/tunnel/publica1-publica2/require; #ejemplo:spdadd 192.168.0.0/24 192.168.1.0/24 any -P out ipsec esp/tunnel/213.172.100.101-80.32.152.29/require;
spdadd red2/24 red1/24 any -P in ipsec esp/tunnel/publica2-publica1/require; #ejemplo:spdadd 192.168.1.0/24 192.168.0.0/24 any -P in ipsec esp/tunnel/80.32.152.29-213.172.100.101/require;

Paso Número 5:Cifrado del tunel con Racoon

Racoon es lo que vamos a usa r para c ifrar t oda l a información que via ja por nuestro tunel .

# cd /usr/ports/security/racoon && make install clean

Configuraci ón de racoon, arc hivo: /usr/l ocal/ etc/ racoon/racoon.conf, teneis un ejemplo a se guir en /usr/l ocal/ etc/ racoon/racoon.conf. di st . Yo el rac oon.c onf que uso es e l si guiente:

path include "/usr/local/etc/racoon" ;
path pre_shared_key "/usr/local/etc/racoon/psk.txt" ;
path certificate "/usr/local/etc/cert" ;
log debug;
log notify;

remote anonymous
{
exchange_mode main, aggressive;
doi ipsec_doi;
situation identity_only;
nonce_size 16;
lifetime time 1 hour; # sec,min,hour
initial_contact on;
support_mip6 on;
proposal_check obey; # obey, strict or claim

proposal {
encryption_algorithm 3des;
hash_algorithm sha1;
authentication_method pre_shared_key ;
dh_group 2 ;

}
}

sainfo anonymous
{
pfs_group 2;
lifetime time 1 hour;
encryption_algorithm 3des ;
authentication_algorithm hmac_sha1;
compression_algorithm deflate ;
}

Edita mos el archivo en el que van la s cla ves que ut il iza el a lgorit mo 3des para cifra r nuestros dat os:

# ee psk.txt

publica2 clave_bastante_larga #ejemplo:80.32.152.29 eldemonio.org
publica1 clave_bastante_larga #ejemplo:213.172.100.101 eldemonio.org

Sali mos y gua rdamos, es i mport ant e que en vuest ro archivo de c laves met ais las c laves para l a red a l a que quereis conect ar y las claves nece sa ri as para que se c onecte n a vuest ra red.T ambi é n es nece sari o que para que
racoon pueda l eer est e archivo c ambi eis l os permisos de este mismo a 400:

# chmod 400 /usr/local/etc/racoon/psk.txt

en Nuest ro servi dor2 l as cl ave s en psk .tx t será n:

publica1 clave_bastante_larga #ejemplo:213.172.100.101 eldemonio.org
publica2 clave_bastante_larga #ejemplo:80.32.152.29 eldemonio.org

Script de arranque pa ra racoon :

# ee /usr/local/etc/rc.d/racoon.sh

#!/bin/sh
if [ -x /usr/local/sbin/racoon ]; then
echo -n "racoon "
/usr/local/sbin/racoon -f /usr/local/etc/racoon/racoon.conf
fi

Sali mos y guardamos:

# chmod 755 /usr/local/etc/rc.d/racoon.sh

(Ya sol o que da rei ni ciar e st a má kina ). Ahora hay que hacer l o mismo en la otra má kina y reinici ar amba s.

Montar VPN entre más de dos puntos

Si en l ugar de uni r 2 rede s entre sí lo que quereis es unir 3 redes, o una má kina con 2 redes dist intas tendrí ais que hace r esta s modific acione s: Imaginemos que nuestra RED1 la queremos unir ahora t ambi é n a una
RED3, de modo que el esquema sería:

---RED1---
|
IPPRIVADA1
{MAKINA1}
IPPUBLICA1
|
ENLACEINTERNET
|

INTERNET _ _ _ _ _ _ _ _ _ _ _ _ _
| |
ENLACE2INTERNET ENLACE3INTERNET
| |
IPPUBLICA2 IPPUBLICA3 (62.36.241.32)
{MAKINA2} {MAKINA3} {MAKINA2}
IPPRIVADA2 IPPRIVADA3 (192.168.2.1)
| |
---RED2--- ---RED3---

Partie ndo de l a configurac íon que ya hemos he cho para unir l as redes 1 y 2 va mos a ir vi endo que c ambi os habrí a que hace r para a ña di r nuevos túne les.

# ee /etc/rc.conf

gateway_enable="YES"
defaultrouter="enlace1" #escribimos nuestra IP de enlace. Ejemplo: defaultrouter="213.172.100.100"
ifconfig_fxp0="inet publica1 netmask mascaraPublica1" #publica1 es una IP. Ejemplo:ifconfig_fxp0="inet 213.172.100.101 netmask 255.255.255.240"
ifconfig_fxp1="inet privada1 netmask 255.255.255.0" #privada1 es una IP. Ejemplo:ifconfig_fxp1="inet 192.168.0.1 netmask 255.255.255.0"
router_flags="-q"
router="/sbin/routed"
router_enable="YES"
firewall_enable="YES"
firewall_script="/etc/rc.firewall"
firewall_logging="YES"
firewall_type="/etc/firewall.rules"
natd_enable="YES"
natd_interface="fxp0" #Es el dispositivo conectado a internet.
ipsec_enable="YES"
ipsec_file="/etc/ipsec.conf"
gif_interfaces="gif0 gif1"
gifconfig_gif0="publica1 publica2" # Ejemplo: gifconfig_gif0="213.172.100.101 80.32.152.29"
gifconfig_gif1="publica1 publica3" # Ejemplo: gifconfig_gif1="213.172.100.101 62.36.241.32"
network_interfaces="fxp1 fxp0 lo0 gif0 gif1" #aqui poneis los que tengais mas lo0 y gif0
ifconfig_gif0="privada1 privada2 netmask 255.255.255.255" #ejemplo: ifconfig_gif0="192.168.0.2 192.168.1.2 netmask 255.255.255.255"
ifconfig_gif1="privada1 privada3 netmask 255.255.255.255" #ejemplo: ifconfig_gif1="192.168.0.3 1
  • Links de descarga
http://lwp-l.com/pdf2863

Comentarios de: VPN sobre FreeBSD usando IPSEC y cifrando con RACOON (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad