StrongSwan: Diferenzas entre revisións
Liña 96: | Liña 96: | ||
'''left''' representa o extremo local. ''left=%any'' indica que a IP do extremo local será calqueira lado polo que chegue a conexión, ''leftsubnet'' será a rede á que se conectarán os clientes e ''leftcert'' indicará o certificado de servidor a utilizar. '''right''' serán os extremos remotos. ''right=%any'' indica que calqueira IP poderá actuar como cliente, ''rightdns'' é o DNS a asignar aos clientes de xeito automático e ''rightsourceip'' fai referencia ao rango de IP a asignar aos clientes de xeito automático. ''auto=add'' indica que o servicio IPSec estára en execución á espera de conexións entrantes. |
'''left''' representa o extremo local. ''left=%any'' indica que a IP do extremo local será calqueira lado polo que chegue a conexión, ''leftsubnet'' será a rede á que se conectarán os clientes e ''leftcert'' indicará o certificado de servidor a utilizar. '''right''' serán os extremos remotos. ''right=%any'' indica que calqueira IP poderá actuar como cliente, ''rightdns'' é o DNS a asignar aos clientes de xeito automático e ''rightsourceip'' fai referencia ao rango de IP a asignar aos clientes de xeito automático. ''auto=add'' indica que o servicio IPSec estára en execución á espera de conexións entrantes. |
||
openssl x509 -in vpnclient.iesrodeira.com.crt -noout -subject |
|||
Con '''''/etc/init.d/ipsec start''''' se iniciará o servidor VPN. Normalmente se iniciará automáticamente no arranque do sistema. |
Con '''''/etc/init.d/ipsec start''''' se iniciará o servidor VPN. Normalmente se iniciará automáticamente no arranque do sistema. |
Revisión como estaba o 28 de febreiro de 2014 ás 18:39
Creación dunha VPN con StrongsWan
StrongSwan é unha implementación de VPN basada en IPSEC incluída nos repositorios oficiais Debian, que ofrece múltiples características, entre elas o traspaso de NAT mediante encapsulación UDP e o uso de IKEv2 para a autenticación, soportada en Windows 7 e Android. Podes consultar as características completas na [páxina de StrongSwan].
En este artigo, configuraremos un servidor StrongsWan que permitirá o establecimento dunha VPN IPSec entre unha rede local e clientes remotos Linux ou Windows 7 mediante o uso de certificados expedidos por unha autoridade de certificación na que teñamos confianza. Neste caso concreto, os certificados serán expedidos pola CA IES de Rodeira, que se encargará da firma das solicitudes de certificados enviadas polos clientes e de proporcionar o servizo OCSP necesario para a súa verificación.
Servidor VPN
Certificados
O servidor VPN terá un certificado de servidor, firmado dixitalmente pola autoridade CA IES de Rodeira. Debemos:
- a) Habilitar extensións nas solicitudes de certificados, descomentando a liña req_extensions = v3_req na sección [req] de /etc/ssl/openssl.conf
- b) Indicar na sección [v3_req] que será un certificado de autenticación, e o nome do servidor para o que se vai a utilizar. (Neste caso será 'DNS:vpn.iesrodeira.com), mediante as propiedades extendedKeyUsage e extendedAltName:
extendedKeyUsage = serverAuth
subjectAltName = DNS:vpn.iesrodeira.com
- c) Crear a chave primaria e a solicitude de certificado:
openssl req -newkey rsa:2048 -keyout vpn.iesrodeira.com.key -out vpn.iesrodeira.com.csr
- d) Enviaremos a solicitude de certificado (vpn.iesrodeira.com.csr) a autoridade de certificación (CA) IES de Rodeira, que realizará a firma do mesmo e nos entregará o certificado firmado, vpn.iesrodeira.com.crt, e o certificado da autoridade de certificación rodeiraCA.crt. A firma a realizará a autoridade de certificación, previa comprobación dos datos da solicitude mediante o comando:
openssl ca -config ../../openssl.cnf -in vpn.iesrodeira.com.csr -out vpn.iesrodeira.com.crt
No cliente, mediante:
openssl x509 -in vpn.iesrodeira.com.crt -noout -text
- poderemos comprobar si o certificado incorpora as extensións indicadas.
Instalación e Configuración de StrongSwan
En primeiro lugar, instalaremos strongswan:
apt-get update && apt-get install strongswan
Debemos copiar a nosa chave privada (vpn.iesrodeira.com.key) en /etc/ipsec.d/private, o noso certificado en /etc/ipsec.d/certs e o certificado da autoridade de certificación (IES de Rodeira) en /etc/ipsec.d/cacerts. No ficheiro /etc/ipsec.secrets se especifica o modo de autenticación, que no noso caso é intercambio de certificados RSA. Si a chave do noso certificado está protexida, será necesario indicar a clave neste ficheiro:
: RSA vpn.iesrodeira.com.key "passdesbloqueodakey"
Unha vez instalados os certificados, únicamente faltará configurar o punto de conexión IPSec no ficheiro /etc/ipsec.conf. No noso caso será:
config setup
conn vpnrodeira
left=%any
leftsubnet=172.20.0.0/16
leftcert=vpn.iesrodeira.com.crt
right=%any
rightdns=172.20.2.1
rightsourceip=172.20.80.0/16
auto=add
left representa o extremo local. left=%any indica que a IP do extremo local será calqueira lado polo que chegue a conexión, leftsubnet será a rede á que se conectarán os clientes e leftcert indicará o certificado de servidor a utilizar. right serán os extremos remotos. right=%any indica que calqueira IP poderá actuar como cliente, rightdns é o DNS a asignar aos clientes de xeito automático e rightsourceip fai referencia ao rango de IP a asignar aos clientes de xeito automático. auto=add indica que o servicio IPSec estára en execución á espera de conexións entrantes.
Con /etc/init.d/ipsec start se iniciará o servidor VPN. Normalmente se iniciará automáticamente no arranque do sistema.
Cliente VPN
Linux
Certificados
Os clientes VPN necesitarán un certificado de servidor, firmado dixitalmente pola autoridade CA IES de Rodeira. Debemos:
- a) Habilitar extensións nas solicitudes de certificados, descomentando a liña req_extensions = v3_req na sección [req] de /etc/ssl/openssl.conf
- b) Indicar na sección [v3_req] que será un certificado de cliente para o servidor VPN que queremos utilizar (Neste caso será 'DNS:vpn.iesrodeira.com), mediante a propiedad extendedAltName:
subjectAltName = DNS:vpn.iesrodeira.com
- c) Crear a chave primaria e a solicitude de certificado:
openssl req -newkey rsa:2048 -keyout vpnclient.iesrodeira.com.key -out vpnclient.iesrodeira.com.csr
- d) Enviaremos a solicitude de certificado (vpnclient.iesrodeira.com.csr) a autoridade de certificación (CA) IES de Rodeira, que realizará a firma do mesmo e nos entregará o certificado firmado, vpnclient.iesrodeira.com.crt, e o certificado da autoridade de certificación rodeiraCA.crt. Mediante o comando:
openssl x509 -in vpnclient.iesrodeira.com.crt -noout -text
- poderemos comprobar si o certificado incorpora as extensións indicadas.
Instalación e Configuración de StrongSwan
En primeiro lugar, instalaremos strongswan:
apt-get update && apt-get install strongswan
Debemos copiar a nosa chave privada (vpn.iesrodeira.com.key) en /etc/ipsec.d/private, o noso certificado en /etc/ipsec.d/certs e o certificado da autoridade de certificación (IES de Rodeira) en /etc/ipsec.d/cacerts. No ficheiro /etc/ipsec.secrets se especifica o modo de autenticación, que no noso caso é intercambio de certificados RSA. Si a chave do noso certificado está protexida, será necesario indicar a clave neste ficheiro:
: RSA vpn.iesrodeira.com.key "passdesbloqueodakey"
Unha vez instalados os certificados, únicamente faltará configurar o punto de conexión IPSec no ficheiro /etc/ipsec.conf. No noso caso será:
config setup
conn iesrodeira
left=%defaultroute
leftsourceip=%config
leftcert=vpnclient.iesrodeira.com.crt
right=iesrodeira.com
rightsubnet=172.20.0.0/16
rightid="/C=ES/ST=Galiza/O=IES de Rodeira/OU=Departamento de Informatica/CN=vpn.iesrodeira.com/emailAddress=xavi@iesrodeira.com"
auto=start
left representa o extremo local. left=%any indica que a IP do extremo local será calqueira lado polo que chegue a conexión, leftsubnet será a rede á que se conectarán os clientes e leftcert indicará o certificado de servidor a utilizar. right serán os extremos remotos. right=%any indica que calqueira IP poderá actuar como cliente, rightdns é o DNS a asignar aos clientes de xeito automático e rightsourceip fai referencia ao rango de IP a asignar aos clientes de xeito automático. auto=add indica que o servicio IPSec estára en execución á espera de conexións entrantes.
openssl x509 -in vpnclient.iesrodeira.com.crt -noout -subject
Con /etc/init.d/ipsec start se iniciará o servidor VPN. Normalmente se iniciará automáticamente no arranque do sistema.