Parcheando a la debian para soporte ipsec VPN
Bueno, aca les dejo mi experiencia en vpns.
Yo comence a trabajar con vpns bajo redhat, el cual tenia los rpms para el parche y para el soft.
El soft que use es el mas conocido y es Freeswan www.freeswan.org
Luego de la etapa de aprendisaje me decidi por trabajar vpn sobre debian ya que anteriormente me habia dado enormes resultados en otras cosas.
La cosa es asi:
Mediante el comando apt-cache search vpn vemos todos los paqueres relacionados a vpn:
[root@vpnserver:~]#apt-cache search vpn
carpaltunnel - Configuration helper for OpenVPN
kernel-patch-mppe - MPPE Encryption for PPP
openvpn - Virtual Private Network daemon
pptp-linux - Point-to-Point Tunneling Protocol (PPTP) Client
pptpd - PoPToP Point to Point Tunneling Server
secvpn - Secure Virtual Private Network (secvpn)
tinc - Virtual Private Network daemon
cipe-common - common files for the CIPE VPN software
cipe-source - encrypted IP tunnels over UDP (source)
pkcipe - public key based configuration tool for the CIPE VPN software
tunnelv - Encrypted network connection within a TCP/IP connection
vpnd - Virtual Private Network Daemon
freeswan - IPSEC utilities for FreeSWan
y el otro comando que usamos es
apt-cache search ipsec
[root@atpk:~]#apt-cache search ipsec
ipsec-tools - IPsec tools for Linux 2.5 and later
kernel-patch-usagi - Another IPv6 implementation for Linux
shorewall - Shoreline Firewall (Shorewall)
shorewall-doc - Shoreline Firewall (Shorewall) Documentation
pipsecd - IPsec tunnel implementation
freeswan - IPSEC utilities for FreeSWan
Comencemos por parchear al kernel, lo que necesitamos es que el kernel soporte ipsec por lo tanto el paquete que instalamo es el siguiente:
kernel-patch-freeswan - IPSEC kernel support for FreeSwan
entonces tipeamos apt-get install kernel-patch-freeswan
Nuestro paquete esta instalado, ahora lo que queda por hacer es recompilar el kernel para que el soporte de ipsec haya tomado efecto. No comentare como recompilar el kernel por que ya miembros de este sitio lo han comentado.
Luego de tener nuestro nuevo kernel procedemos a la instalacion de freeswan que es el sistema que genera los tuneles:
apt-get install freeswan
una ves terminado eso solo queda la parte de configuracion, les dare un ejemplo:
Una vpn minimamente se conforma de dos puntas, el lado izquierdo y el lado derecho, la modalidad que les planteo es hacer un tunel para que se conecten dos subredes, entonces tenemos el lado izquierdo que es el servidor y el lado derecho que es el gateway, obviamente el lado derecho intentara conectarse con el lado izquierdo.
Antes que nada en los dos lados hay que generar la llave con el nivel de encriptacion que requeramos, yo les aconsejo 1024.
con el siguiente comando generamos la llave:
ipsec rsasigkey 1024 >> llave.ladoizquierdo
y en gateway derecho ponemos lo mismo
ipsec rsasigkey 1024 >> llave.ladoderecho
el resultado es un archivo llamado llave.ladoizquierdo y lo que hacemos es editarla para copiar toda esa informacion y pastearla en el archivo ipsec.secrets ubicado en /etc/ipsec.secrets
Atencion todo lo que peguemos tiene que estar encerrado en las dos comillas. aca les dejo un ejemplo
# This file holds shared secrets or RSA private keys for inter-Pluto
# authentication. See ipsec_pluto(8) manpage, and HTML documentation.
# RSA private key for this host, authenticating it to any other host
# which knows the public part. Suitable public keys, for ipsec.conf, DNS,
# or configuration of other implementations, can be extracted conveniently
# with \"ipsec showhostkey\".
: RSA {
# RSA 1024 bits gw-lado.derecho Tue Aug 6 14:24:28 2002
# for signatures only, UNSAFE FOR ENCRYPTION
#pubkey=0sAQPRGY9xzDIZIcbtymTuiOgYZOQUrpQEusk+Y2VVgAvO/NUkQ5mESUrMNfj2QUuLks0edeOmAYXinQ6u+Hr9N7D7u5rUdPCeAOJWAhaIngj8dCJugvc1+M8w0Q/DaLBE42CT1YZW8+6ithXkO2B6TXOAHKtmWpQPR8a5nBpWFAntcw==
#IN KEY 0x4200 4 1 AQPRGY9xzDIZIcbtymTuiOgYZOQUrpQEusk+Y2VVgAvO/NUkQ5mESUrMNfj2QUuLks0edeOmAYXinQ6u+Hr9N7D7u5rUdPCeAOJWAhaIngj8dCJugvc1+M8w0Q/DaLBE42CT1YZW8+6ithXkO2B6TXOAHKtmWpQPR8a5nBpWFAntcw==
# (0x4200 = auth-only host-level, 4 = IPSec, 1 = RSA)
Modulus: 0xd1198f71cc321921c6edca64ee88e81864e414ae9404bac93e636555800bcefcd524439984494acc35f8f6414b8b92cd1e75e3a60185e29d0eaef87afd37b0fbbb9ad474f09e00e2560216889e08fc74226e82f735f8cf30d10fc368b044e36093d58656f3eea2b615e43b607a4d73801cab665a940f47c6b99c1a561409ed73
PublicExponent: 0x03
# everything after this point is secret
PrivateExponent: 0x22d997e84cb304304bd24c6627c17c0410d0ae1d18ab7476dfbb3b8e4001f7d4ce30b5eeeb618c775e54290ae1ec98778513a5f10040fb1a2d1d2969d4de9d7efc9eaa48297c1567e0aa9c2a7e8e1b9b024b4e8b7b37641e5617a899d0470dbd429f9d248869a80af21f370960027efc524ec3aef42ea9e383024d755e039083
Prime1: 0xf8507159aaedc8d3681ddbf59bdb27a2a9c4fe224ca0135383f154788c6b1a7516a1a666a29d553529ab88d32dba53547f71376a15038362c7b3cf4981877d29
Prime2: 0xd792656a4cc7b79fa9e491940ad92f2f6ae5ad90060c632748907b55422f767bed7631151ed75d3f3f7d68550c842641af6198d6c5f3c90edfda7a4c5e6d0d3b
Exponent1: 0xa58af63bc749308cf013e7f912921a6c712dfec1886ab78d02a0e2fb084766f8b9c11999c1be38ce1bc7b08cc926e23854f624f16357acec85228a310104fe1b
Exponent2: 0x8fb6ee46ddda7a6a71430bb8073b74ca4743c90aaeb2ecc4db0afce38174f9a7f3a420b8bf3a3e2a2a539ae35dad6ed674ebbb39d94d30b4953c51883ef35e27
Coefficient: 0x2b99f32a19a2079dc3fba096815861385cd9767983a985cdf8e6c5d6176a2999ae1bed69a438f95427f3d9b6062d14723869255f14b605ec008c46f2b807d215
}
# do not change the indenting of that \"}\"
Solo nos queda configurar el ipsec.conf
aca les dejo otro ejemplo
/etc/ipsec.conf - FreeS/WAN IPsec configuration file
# More elaborate and more varied sample configurations can be found
# in FreeS/WAN\'s doc/examples file, and in the HTML documentation.
# basic configuration
config setup
# THIS SETTING MUST BE CORRECT or almost nothing will work;
# %defaultroute is okay for most simple cases.
interfaces=%defaultroute
# Debug-logging controls: \"none\" for (almost) none, \"all\" for lots.
klipsdebug=none
plutodebug=none
# Use auto= parameters in conn descriptions to control startup actions.
plutoload=%search
plutostart=%search
# Close down old connection when new one using same ID shows up.
uniqueids=yes
# defaults for subsequent connection descriptions
# (these defaults will soon go away)
conn %default
keyingtries=1
disablearrivalcheck=no
# VPN Lado derecho a lado izquierdo
conn derecho-izquierdo # Left security gateway, subnet behind it, next hop toward right.
left=200.45.2.187
leftsubnet=165.124.0.0/255.255.0.0
leftnexthop=200.80.203.225
# Right security gateway, subnet behind it, next hop toward left.
right=%defaultroute
rightsubnet=165.124.40.0/255.255.255.240
rightnexthop=
# To authorize this connection, but not actually start it, at startup,
# uncomment this.
auto=start
authby=rsasig
leftid=@ladoizquierdo.webreactor.net
rightid=@gw-ladoderecho.webreactor.net
leftrsasigkey=0sAQPAjY16Btm/RT5y2Vbm7lqgsirX64WdSsgiG/LLVIEJAT1qGZFrFkr64rPExfPCCm/SYmk9mjUXDzyffAzXvIFDVUKgjOGbNG4oitFlwcqYIK/F6uo5+w9jiHkRKBCng0CMnqzxklS9MKTfTCL48zCTUHjQ1UyAOVnxhYxafkLePQ==
rightrsasigkey=0sAQPRGY9xzDIZIcbtymTuiOgYZOQUrpQEusk+Y2VVgAvO/NUkQ5mESUrMNfj2QUuLks0edeOmAYXinQ6u+Hr9N7D7u5rUdPCeAOJWAhaIngj8dCJugvc1+M8w0Q/DaLBE42CT1YZW8+6ithXkO2B6TXOAHKtmWpQPR8a5nBpWFAntcw==
Listo, ya esta todo, ahora solo les queda /etc/init.c/ipsec start y listo.
Quedarian algunos detalles por analizar pero eso es lo esencial para que funcione.
Saludos
- Inicie sesión o regístrese para enviar comentarios
- 7977 lecturas

Hola, yo he hecho un tunel con Openswan parcheando el kernel y usando el modo nativo ipsec de los kernels2.6(no a la vez, claro esta), la cosa es que el tunel siempre lo levanto bien, pero luego no consigo hacer pasar ningun paquete por dentro.
Se te ocurre que puede ser?, si quieres te posteo informacion mas concreta. Gracias