Fandom

Scratchpad

SOcomVPN

215,908pages on
this wiki
Add New Page
Discuss this page1 Share

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.

http://openvpn.net/

Mini cómo de openvpn en debian sarge

El objetivo de este mini manual de openvpn son varios:

  • Comunicar 2 redes alejadas para compartir datos
  • Reducir costes de adsl
  • Proteger los datos que van a circular por esta red virtual, ya que la encriptacion wep no es del todo segura.

Podemos dar varios niveles de seguridad a nuestra vpn ,todo depende de lo importante que sean los datos para nosotros,pero nos hemos decantado por el uso de certificaciones comerciales de opevpn.

Empezemos a luchar como los hombres.

1)Instalacion del paquete openvpn

Tan sencillo como apt-get install openvpn , lo hemos de instalar tanto el cliente como en el servidor.

Debemos asegurarnos que tenemos el controlador tun/tap instalado en el kernel,aunque si tenemos un kernel 2,4,27 o superior, casi seguro que lo tenemos, pero vamos a comprobar si estamos en lo cierto con el comando modprobe -l | grep ‘ tun/tap’ o con lsmod .

2)Fichero de configuracion del servidor

Está en /etc/openvpn y lo hemos llamado tunel.conf y es asi:

vim /etc/openvpn/tunel.conf
status openvpn-status.log
log openvpn.log
verb 6
server 10.0.0.0 255.255.255.0 “esta es la red de ip`s virtuales”
ifconfig-pool-persist ipp.txt
dh /etc/openvpn/dh1024.pem
client-config-dir /etc/openvpn/cld
ca /etc/openvpn/keys/mi-ca.crt
cert /etc/openvpn/keys/server.crt
key /etc/openvpn/keys/server.key
dev tun
comp-lzo
port 50000
ifconfig 10.0.0.10 10.0.0.83
route 192.168.121.0 255.255.255.0 “red del servidor”
push “route 192.168.120.0 255.255.255.0″ “red del cliente”

2.1)Instalacion de openssl para generar certificados.

apt-get install openssl

Nuestro fichero quedo de la siguiente manera:

HOME = .
RANDFILE = $ENV::HOME/.rnd
oid_section = new_oids
####################################################################
[ ca ]
default_ca = CA_default # The default ca section
####################################################################
[ CA_default ]
dir = ./demoCA # Where everything is kept
certs = $dir/certs # Where the issued certs are kept
crl_dir = $dir/crl # Where the issued crl are kept
database = $dir/index.txt # database index file.
new_certs_dir = $dir/newcerts # default place for new certs.
certificate = $dir/cacert.pem # The CA certificate
serial = $dir/serial # The current serial number
crl = $dir/crl.pem # The current CRL
private_key = $dir/private/cakey.pem# The private key
RANDFILE = $dir/private/.rand # private random number file
x509_extensions = usr_cert # The extentions to add to the cert
name_opt = ca_default # Subject Name options
cert_opt = ca_default # Certificate field options
default_days = 3650 # duracion para 10 años
default_crl_days= 30 # how long before next CRL
default_md = md5 # which md to use.
preserve = no # keep passed DN ordering
# For the CA policy
[ policy_match ]
countryName = match
stateOrProvinceName = match
organizationName = match
organizationalUnitName = optional
commonName = supplied
emailAddress = optional
[ policy_anything ]
countryName = optional
stateOrProvinceName = optional
localityName = optional
organizationName = optional
organizationalUnitName = optional
commonName = supplied
emailAddress = optional
####################################################################
[ req ]
default_bits = 1024
default_keyfile = privkey.pem
distinguished_name = req_distinguished_name
attributes = req_attributes
x509_extensions = v3_ca # The extentions to add to the self signed cert
string_mask = nombstr
[ req_distinguished_name ]
countryName = Country Name (2 letter code)
countryName_default = ES #pais
countryName_min = 2
countryName_max = 2
stateOrProvinceName = State or Province Name (full name)
stateOrProvinceName_default = LasPalmas #Provincia
localityName = Locality Name (eg, city)
localityName_default = GALDAR #Localidad
0.organizationName = Organization Name (eg, company)
0.organizationName_default = Excmo. Ayuntamiento de Gáldar #nombre de tu organizacion
organizationalUnitName = Organizational Unit Name (eg, section)
#organizationalUnitName_default = Dpto. NNTT #nombre de la unidad organizativa
commonName = Common Name (eg, YOUR name)
commonName_max = 64
emailAddress = Email Address
emailAddress_max = 64
emailAddress_default = tu email
[ req_attributes ]
challengePassword = A challenge password
challengePassword_min = 4
challengePassword_max = 20
unstructuredName = An optional company name
[ usr_cert ]
basicConstraints=CA:FALSE
# This is OK for an SSL server.
# nsCertType = server
nsComment = “OpenSSL Generated Certificate”
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid,issuer:always
[ v3_req ]
# Extensions to add to a certificate request
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
[ v3_ca ]
# Extensions for a typical CA
# PKIX recommendation.
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid:always,issuer:always
basicConstraints = CA:true
[ crl_ext ]
authorityKeyIdentifier=keyid:always,issuer:always

Con esto ya rularia el fichero de coonfiguracion

Bien, ahora con un super script que se curro Eduardo vamos a generar todos los certificados.

#!/bin/sh
# Pa’ asegurarnos que partimos de un directorio “Limpio”
d=./keys
if test $d; then
rm -rf $d
fi
mkdir $d
chmod go-rwx $d
touch $d/index.txt
echo “01″ > $d/serial
# Generar Certificado de Entidad Certificadora (CA)
openssl req -nodes -new -x509 -keyout mi-ca.key -out mi-ca.crt -days 3650
echo “Generado Certificado (CA)”
chmod 0600 mi-ca.key
# Generar Certificado del Servidor (server)
echo “A Generar Certificado del Servidor”
openssl req -nodes -new -keyout server.key -out server.csr
echo “Certificado del Servidor generado”
chmod 0600 server.key
# Firmar Certificado del Servidor
echo “Firmando el Certificado del Servidor”
openssl ca -out server.crt -in server.csr -outdir $d -cert mi-ca.crt -keyfile mi-ca.key -config mi-openssl.cnf
# Generar Certificado del primer cliente (client1)
echo “A Generar certificado del primer cliente”
openssl req -nodes -new -keyout client.key -out client.csr
echo “Certificado del Primer Cliente generado”
chmod 0600 client.key
# Firmar Certificado del primer cliente
echo “Firmando el Certificado del Primer Cliente”
openssl ca -out client.crt -in client.csr -outdir $d -cert mi-ca.crt -keyfile mi-ca.key -config mi-openssl.cnf
# Er’ fichero Diffie Hellman
echo “Creando fichero Diffie Hellman”
openssl dhparam -out dh1024.pem 1024
echo “Fichero DH Generado.”
chmod 0600 dh1024.pem
# Coloca los ficheros dentro del directorio $d
echo “Reubicando los archivos en $d”
mv mi-ca.* $d
mv server.* $d
mv client.* $d
mv dh1024.* $d

y con esto ya tenemos todos los certificados hechos, tanto para el cliente como para el servidor.

3)El cliente.

Hemos de instalar como dije antes el paquete openvpn y tambien el paquete openssl.

El fichero de configuracion del cliente tambien se llamara tunel.conf y su localizacion es la misma que la del servidor.

Vim /etc/openvpn/tunel.conf
client
remote 192.168.111.2”ip publica del server”
ca /etc/openvpn/keys/mi-ca.crt
cert /etc/openvpn/keys/client.crt
key /etc/openvpn/keys/client.key
dev tun
comp-lzo
user nobody
group nogroup
port 50000

Por ultimo y para terminar lo que es la parte de configuracion hemos de copiar en el directorio /etc/openvpn/keys/ del cliente los certificados generados anterior mente con el script de Eduardo, concretamente hemos de pasarle los siguientes:

mi-ca.crt, client.key y el client.crt

Bueno ahora solo nos queda arrancar la vpn a ver si rula, pero si queremos que se arranque siempre que encendamos la maquina vamos a hacer un pequeño script , que pondremos en el arranque.

ArrancandoVpn.sh
#!/bin/sh
openvpn –daemon –verb 0 –config
/etc/openvpn/tunel.conf
#fin del script

Ahora le damos permisos de ejecucion chmod 755 ArrancandoVpn.sh y lo metemos en el arranque con update-rc.d ArrancandoVpn.sh defaults ,esto lo que hara sera ponerlo en cada uno de los rc´s.

Bien solo nos queda arrancar la vpn y lo podemos hacer de dos formas:

* openvpn –verb 6 –config /etc/openvpn/tunel.conf
* /etc/init.d/openvpn restart.

Also on Fandom

Random wikia