Actualizado el 16 de Junio del 2017 (Publicado el 14 de Abril del 2017)
759 visualizaciones desde el 14 de Abril del 2017
18,5 KB
6 paginas
Creado hace 22a (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 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.
# 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:
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:
#!/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:
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)
Comentarios de: VPN sobre FreeBSD usando IPSEC y cifrando con RACOON (0)
No hay comentarios