 
	En una ocasión surgió la necesidad de implementar una VPN, con primero que se me vino a la mente es OpenVPN sin embargo este necesidad estaba basada en IPSEC, para lo cual decidí googlear un poco y llegue hasta OpenSwan. La conexión que necesitabamos hacer era contra un equipo CISCO (Check Point R77.30), pero bueno no tenia de otra que probar, para saber si la opción de hacerlo con software libre era factible.
	Como suele pasar, la contraparte que utilizaba CISCO es quien estableció los parámetros de conexión, a lo cual tendría que someter mi conexión:
	Fase 1
- Encryption Scheme defined: IKEv1
- Encryption Algorithm IKE: 3DES
- Hashing Algorithm IKE: SHA-1
- Support Diffie-Hellman groups for IKE SA: Group 2
- Support Diffie-Hellman groups for IKE SA: 1440 min
	Fase 2
- Encryption Schemes defined: IPSEC
- Encryption Algorithm: 3DES
- Hashing Algorithm IPSEC: SHA-1
- Hashing Algorithm IPSEC: none
- Aggressive Mode Support: none
- Renegotiate IPSEC SA every: 3600 s
- Use Perfect Forward Secrecy: No PFS
Instalando paquetes y preparando el ambiente
		Lo primero que hizo es instalar el OpenSwan para lo cual en mi distribución debian 7, se lo hace de la siguiente manera:
	apt-get install openswan
		Desactivamos los redirecciones VPN, cualquiera usando estos comandos:
	for vpn in /proc/sys/net/ipv4/conf/*; do echo 0 > $vpn/accept_redirects; echo 0 > $vpn/send_redirects; done
		Luego, modificamos los parámetros del kernel para permitir el forwardeo de IP y desactivar redireccionamientos de forma permanente.
	# vim /etc/sysctl.conf net.ipv4.ip_forward = 1 net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.all.send_redirects = 0
		Recargamos /etc/sysctl.conf:
	sysctl -p
		Permitimos puertos necesarios en nuestro firewalll
	
		Por favor asegurate no entran en conflicto con otras ya existentes en tu firewall.
	iptables -A INPUT -p udp --dport 500 -j ACCEPT iptables -A INPUT -p tcp --dport 4500 -j ACCEPT iptables -A INPUT -p udp --dport 4500 -j ACCEPT
		Finalmente, creamos reglas para NAT en nuestro firewall
	iptables -t nat -A POSTROUTING -s site-A-private-subnet -d site-B-private-subnet -j SNAT --to site-A-Public-IP
		Por favor asegurarse que estas reglas son permanentes en nuestro firewall.
	Preparando archivos de configuración
	Una vez instalado el paquete procedemos a realizar las configuraciones dentro del archivo /etc/ipsec.conf
	Nos vamos a central puntualmente en la parte de la creación de las conexiones.
conn myvpn
        authby=secret
        auto=start
        ## -------------------- phase 1 --------------------------- ##
        ike=3des-sha1
        keyexchange=ike
        ikelifetime=1800s
        ikev2=no
        ##--------------------- phase 2 --------------------------- ##
        phase2=esp
        #phase2alg=3des-md5
        phase2alg=3des-sha1
        compress=no
        #pfs=yes
        pfs=no
        type=tunnel
        keylife=3600s
        left=190.219.19.230
        leftid=190.219.19.230
        leftsourceip=190.219.19.230
        leftsubnet=192.168.1.14/32 # Conectando solo un host
        leftnexthop=%defaultroute
        right=210.16.96.2
        rightid=210.16.96.2
        rightsubnet=210.16.96.2/32
	Posteriormente modificamos el archivo /etc/ipsec.secrets aquí introducimos una clave que la compartiremos con nuestra contraparte
	190.219.19.230 172.2526.1: PSK "MiClaveSecreta"
	Finalmente reniciamos el servicio /etc/init.d/ipsec restart para que se ejecute nuestra configuración realizada a los archivos ipsec.conf y ipsec.secrets
	Al hacer esto debemos recibir un mensaje que nos dice que nuestra conexión está arriba.
	Setear el archivo ipsec.secrets con el PSK y las direcciones de cada extremo, en algunos casos el problema al establecer la phase2 es que el ip del lado derecho en el archivo ipsec.secrets es diferente, esto se lo puede verificar revisando el archivo /var/log/pluto.log
Comandos Utiles
- ipsec auto --status
- ipsec verify
	Para activar el nat-t se debe habilitar en el archivo de configuración ipsec.conf la variable trasnversal-nat = yes
	Cabe indicar que al levantar el tunel deben comprobarse con service ipsec status donde nos mostrará que el tunel esta UP
	También podemos comprobar que se ha superado las dos fases, a través del comando ipsec auto --status
	donde poderemos visualizar dos líneas específicas
	#2: "myvpn":500 STATE_QUICK_I2 (sent QI2, IPsec SA established); EVENT_SA_REPLACE in 2355s; newest IPSEC; eroute owner; isakmp#1; idle; import:admin initiate
	000 #1: "myvpn":500 STATE_MAIN_I4 (ISAKMP SA established); none in -1s; newest ISAKMP; nodpd; idle; import:admin initiate
	Espero les sirva esta pequeña contribución para sus necesidades en VPN
Secciones
          
       
 
 
 
   
   
   
  