Enlazando redes con OpenVPN


En el presente apunto los pasos necesarios para instalar openvpn de modo de enlazar dos subredes. Hay un servidor central corriendo openvpn y uno o mas clientes (equipos o subredes) conectados al servidor central tambien a través de openvpn.

Aplicable a: centOS, fedora, Redhat

Configuración del Servidor openvpn:

Instalamos el openVPN y sus dependencias:

# yum install openvpn

Copiamos al directorio de trabajo:

# cp -R /usr/share/openvpn/easy-rsa/2.0/* /etc/openvpn/

Editamos el archivo vars:

# vi /etc/openvpn/vars

Y modificamos las últimas líneas con nuestros datos:

export KEY_COUNTRY=”US”
export KEY_PROVINCE=”CA”
export KEY_CITY=”SanFrancisco”
export KEY_ORG=”Fort-Funston”
export KEY_EMAIL=”me@myhost.mydomain”

Cargamos las variables de entorno:

# source /etc/openvpn/./vars

Limpiamos firmas digitales previas:

# sh /etc/openvpn/clean-all

Creamos certificado del servidor:

# sh /etc/openvpn/build-ca

Creamos el archivo con los parámetros del protocolo Diffie Hellman:

# sh /etc/openvpn/build-dh

Generamos la firma digital:

# sh /etc/openvpn/build-key-server server

Creamos los certificados de los clientes:

# sh /etc/openvpn/build-key cliente1
# sh /etc/openvpn/build-key cliente2
# sh /etc/openvpn/build-key cliente3

Para poder utilizar los certificados, creamos el archivo:

# vi /etc/openvpn/servidorvpn-udp-1194.conf

Adentro  detallaremos la configuración, teniendo en cuenta utilizar una subred no muy estandard para evitar conflictos:

port 1194
proto udp
dev tun
#—- Seccion de llaves —–
ca keys/ca.crt
cert keys/server.crt
key keys/server.key
dh keys/dh1024.pem
#—————————-
server 192.168.37.0 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status-servidorvpn-udp-1194.log
verb 3

Los parámetros anteriores significan:

Port: Especifica el puerto que será utilizado para que los clientes vpn puedan conectarse al servidor.

Proto: tipo de protocolo que se empleará en a conexión a través de VPN

dev: Tipo de interfaz de conexión virtual que se utilizará el servidor openvpn.

ca: Especifica la ubicación exacta del archivo de Autoridad Certificadora [.ca].

cert: Especifica la ubicación del archivo [.crt] creado para el servidor.

key: Especifica la ubicación de la llave [.key] creada para el servidor openvpn.

dh: Ruta exacta del archivo [.pem] el cual contiene el formato de Diffie Hellman (requirerido para –tls-serversolamente).

server: Se asigna el rango IP virtual que se utilizará en la red del túnel VPN.

Ifconfig-pool-persist: Archivo en donde quedarán registrado las direcciones IP de los clientes que se encuentran conectados al servidor OpenVPN.

Keepalive 10 120 : Envía los paquetes que se manejan por la red una vez cada 10 segundos; y asuma que el acoplamiento es abajo si ninguna respuesta ocurre por 120 segundos.

comp-lzo: Especifica los datos que recorren el túnel vpn será compactados durante la trasferencia de estos paquetes.

persist-key: Esta opción soluciona el problema por llaves que persisten a través de los reajustes SIGUSR1, así que no necesitan ser releídos.

Persist-tun: Permite que no se cierre y re-abre los dispositivos TAP/TUN al correr los guiones up/down

status: archivo donde se almacenará los eventos y datos sobre la conexión del servidor [.log]

verb: Nivel de información (default=1). Cada nivel demuestra todo el Info de los niveles anteriores. Se recomienda el nivel 3 si usted desea un buen resumen de qué está sucediendo.

0 –No muestra una salida excepto errores fatales. 1 to 4 –Rango de uso normal. 5 –Salida Ry Wcaracteres en la consola par los paquetes de lectura y escritura, mayúsculas es usada por paquetes TCP/UDP minúsculas es usada para paquetes TUN/TAP.

Creamos el archivo log:

# touch /etc/openvpn/openvpn-status-servidorvpn-udp-1194.log

Starteamos el servicio:

# service openvpn start

Definimos el servicio para que arranque automaticamente al inicio:

# chkconfig –level 2345 openvpn on

Configuración de los Clientes GNU/Linux:

Instalamos el paquete OpenVPN:

# yum install openvpn

Creamos el archivo:

# vi /etc/openvpn/cliente1-udp-1194.conf

con el siguiente contenido:

client
dev tun
proto udp
remote dominio-o-ip.del.servidor.vpn 1194
float
resolv-retry infinite
nobind
persist-key
persist-tun
#—— SECCION DE LLAVES ——–
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/cliente1.crt
key /etc/openvpn/keys/cliente1.key
ns-cert-type server
#———————————
comp-lzo
verb 3

Verificar que en la carpeta /etc/openvpn/keys del cliente tengamos los certificados que se detallan en este archivo.

(ca.crt, cliente1.crt, cliente1.key)

Starteamos el servicio en el cliente:

# service openvpn start

Con esto, el cliente, debe conectarse con el servidor.

Debemos verificar en el servidor reglas de firewall que impidan la entrada al puerto configurado.

Ante cualquier error, verificamos la salida en /var/log/messages.

Postres Balcarce en la CISL 2011


Postres Balcarce S.A. estuvo en la Conferencia Internacional de Software Libre 2011, esponiendo su caso de éxito en la migración total a Linux.
Muchos de los concurrentes eran empresas, que se encontraban en la disyuntiva entre legalizar sus copias, seguir en la ilegalidad y exponerse a multas, o migrar a Software Libre.
Evaluando esta última posibilidad, querían conocer nuestra experiencia.
Como conclusión, se llevaron la respuesta que necesitaban: SE PUEDE. En este proceso hay mas prejuicios que imposibilidades.

Pueden descargar la presentación aquí.

Algunas Fotos:

 Claudio Pereyra Díaz con Richard Stallman

Postres Balcarce en la CISL 2011


Postres Balcarce S.A. estará el 8 y 9 de Septiembre en la

exponiendo su caso de éxito en el uso de Software Libre: Postres Balcarce ha migrado toda su estructura de sistemas a Linux, no solamente sus servidores, sino también todos sus puestos de trabajo.
Conferencia de Postres Balcarce S.A.: 8/9/11 a las 14:00 Hs.
Lugar: Biblioteca Nacional – Aguero 2502 – Capital
Inscripción a conferencias aquí

Linux: Agregar Usuario Samba


Para agregar un usuario samba, que pueda ser asignado a un recurso compartido por Samba o que pueda loguearse en un dominio configurado con Samba, hacemos lo siguiente:

1) Agregamos el usuario Linux:

# useradd -g nombregrupo usuario
# passwd usuario

2) Agregamos el usuario Samba:

# smbpasswd -a usuario

3) Por default, el usuario tendrá acceso a su home desde un sistema Windows. Pero si queremos darle permisos sobre un directorio particular, debemos editar el /etc/samba/smb.conf y agregar:

[nombredirectorio]

comment = directorio compartido con samba

path = /data/directoriocompartido

valid users = usuario usuariootro usuariootrootro

public = no

writable = yes

5) Restarteamos o Reloadeamos Samba:

# service smb restart

ó

# service smb reload

Linux: Add Samba User


To add a samba user, which can be assigned to a Samba share or can log into a domain configured with Samba, we do the following:

1) We add the Linux user:

# useradd -g user groupname
# passwd user

2) We add the Samba user:

# smbpasswd -a user

3) By default, the user will have access to its “home” from a Windows system. But if we want to give it permissions on a particular directory, we have to edit /etc/samba/smb.conf and add:

[directoryname]
comment = directory shared with samba
path = /data/shareddirectory
valid users = user userother userother
public = no
writable = yes

5) Restart or Reload Samba:

# service smb restart

or

# service smb reload

OpenOffice 3 / LibreOffice: No se puede iniciar la aplicación. [context="user"] caught unexpected exception!


No he podido establecer si este error es un bug o algún problema con NFS al producirse algún corte de red que pueda dejar archivos lockeados. El tema es que resulta imposible abrir la aplicación.

La solución que encontré, como alternativa a reinstalar el openoffice es la siguiente:

1) Revisar con un ps -ef|grep openoffice cualquier instancia corriendo y matarla: kill -9 PID
2) Renombrar la carpeta /home/[username]/.libreoffice/3/user a /home/[username]/.libreoffice/3/user.bak
3) Volver a ejecutar el openoffice / libreoffice: al abrir la aplicación vuelve a crear los directorios del usuario.

Si alguien encontró una explicación o solución mas ortodoxa me avisa … 😉

Grabar un CD/DVD desde consola


Bueno, yo vengo de la vieja escuela, donde todo se hacía escribiendo comandos desde una pantalla negra con letras verdes, o negra con legras naranjas (ambar?) o negra con letras blancas… que viejo estoy…
en fin… este post es para los nostálgicos o para los que quieren saber que pasa detrás de un frontend de grabación de DVD o CD.

El proceso de grabación de CD’s o DVD’s se divide en dos pasos, crear la imágen con genisoimage y grabar con wodim.

1) Crear la imágen de los archivos a grabar:

$ genisoimage -o archivoimagen.iso -J directorioagrabar
el -J es para definir el formato como Joliet, se pueden crear imágenes en otro formato.

Nota: Si alguno de los archivos a grabar tiene un tamaño mayor a los 2Gb, hay que usar el parámetro -allow-limited-size

2) Grabar la imágen:
Para grabar la imágen, primero debemos determinar cuál es el dispositivo de grabación:
$ wodim –devices

wodim: Overview of accessible drives (1 found) :
————————————————————————-
 0  dev=’/dev/scd0′    rwrw– : ‘SONY’ ‘DVD RW AD-7200S’
————————————————————————-

De acuerdo a esta salida, utilizaremos el /dev/sdc0
Ahora, grabamos:

# wodim -v -eject dev=/dev/scd0 archivoimagen.iso

listo !