Páginas

miércoles, 15 de enero de 2014

Alfresco ContentStore sobre NFS

Vamos a montar el contentstore de nuestro server Alfresco en otra máquina accesible mediante NFS.

Para ello necesitaremos montar el servidor NFS en nuestra máquina Ubuntu servidora de disco y el cliente NFS en nuestra la Ubuntu  donde corre el Alfresco.

Montar server NFS y dar permisos

1) Descargamos server NFS con el comando:

   sudo apt-get install nfs-kernel-server

2) Decidimos qué carpeta vamos a compartir, por ejemplo /home/compartido
3) Editamos el fichero /etc/exports con el comando:

   sudo gedit /etc/exports

4) Añadimos la siguiente línea:

   /home/compartido ccc.ccc.ccc.ccc(rw,async,no_subtree_check,insecure,all_squash,anonuid=65534,anongid=65534)

Nota 1. Todos los parámetros aparecen perfectamente descritos en la ayuda: man exports
Nota 2. Para sacar los ID de usuario/grupo de la cuenta anónima nobody/nogroup hemos lanzado:

   sudo id nobody

5) Publicamos los cambios en la configuración de carpetas compartidas ejecutando el comando:

   sudo /usr/sbin/exportfs

6) Levantamos el servidor con el comando:

   sudo /etc/init.d/nfs-kernel-server start

Montar el cliente NFS

1) Descargamos el cliente NFS con el comando:
  
   sudo apt-get isntall nfs-common

2) Decidimos en qué carpeta vamos a montar la unidad de red compartida, por ejemplo /home/red/compartido1
3) Montamos la unidad de red compartida vía NFS con el comando:

   sudo mount -t nfs sss.sss.sss.sss:/home/compartido /home/red/compartido1

Referencias

- Algunas páginas interesantes son:

   http://ubuntuforums.org/showthread.php?t=1356807
   https://www.digitalocean.com/community/articles/how-to-set-up-an-nfs-mount-on-ubuntu-12-04
   http://www.idevelopment.info/data/Unix/Linux/LINUX_ExportingaFileSystemforNFS.shtml
   https://help.ubuntu.com/12.04/serverguide/network-file-system.html

miércoles, 9 de octubre de 2013

Ubuntu. Configurar una VPN y el enrutado para separar flujos de tráfico

Al conectar a una VPN solo tenemos conexión a los equipos que se encuentran dentro de la red corporativa. Para tener acceso a internet debemos ajustar el  proxy corporativo en N sitios y tenemos herramientas capadas como Skype por lo que perdemos éste acceso.

La solución es simple:

1) Primero vamos a la configuración de VPN, vamos a la pestaña "Ajustes de IPv4", pulsamos el botón "Rutas" y ahi marcamos la opción "Usar esta conexión sólo para los recursos en su red".

2) Conectamos a la VPN y probamos que Skype y el navegador funcionan "sin proxy". Pero ahora resulta que no conectamos al escritorio remoto ni a ningún otro sitio de la red corporativa, por lo que faltan ciertos ajustes.

3) Si queremos acceder a una o varias máquinas de la red corporativa por el tunel VPN sin perder la navegación "externa" deberemos conocer ciertos datos. Lanzamos el comando ifconfig para ver nuestra IP tunel, en mi caso 10.59.200.87:

usuario@maquina:~$ ifconfig
eth4      Link encap:Ethernet  direcciónHW xx:
xx:xx:xx:xx:xx 
          Direc. inet:xxx.xxx.xxx.
xxx  Difus.:xxx.xxx.xxx.xxx  Másc:xxx.xxx.xxx.xxx
          Dirección inet6: xxxx::xxxx:xxxx:xxxx:xxxx/64 Alcance:Enlace
          ACTIVO DIFUSIÓN FUNCIONANDO MULTICAST  MTU:1500  Métrica:1
          Paquetes RX:108554 errores:0 perdidos:0 overruns:0 frame:0
          Paquetes TX:119590 errores:0 perdidos:0 overruns:0 carrier:0
          colisiones:0 long.colaTX:1000
          Bytes RX:60091563 (60.0 MB)  TX bytes:17759382 (17.7 MB)

lo        Link encap:Bucle local 
          Direc. inet:127.0.0.1  Másc:255.0.0.0
          Dirección inet6: ::1/128 Alcance:Anfitrión
          ACTIVO BUCLE FUNCIONANDO  MTU:16436  Métrica:1
          Paquetes RX:30496 errores:0 perdidos:0 overruns:0 frame:0
          Paquetes TX:30496 errores:0 perdidos:0 overruns:0 carrier:0
          colisiones:0 long.colaTX:0
          Bytes RX:1496970 (1.4 MB)  TX bytes:1496970 (1.4 MB)

tun0      Link encap:UNSPEC  direcciónHW 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 
          Direc. inet:10.59.200.87  P-t-P:10.59.200.87  Másc:255.255.255.255
          ACTIVO PUNTO A PUNTO FUNCIONANDO NOARP MULTICAST  MTU:1412  Métrica:1
          Paquetes RX:1076 errores:0 perdidos:0 overruns:0 frame:0
          Paquetes TX:900 errores:0 perdidos:0 overruns:0 carrier:0
          colisiones:0 long.colaTX:500
          Bytes RX:134470 (134.4 KB)  TX bytes:86186 (86.1 KB)


4) Para poder conectar por VPN a cualquier equipo de la red corporativa sin perder la conexión directa a internet en el navegador, skype y demás utilidades, deberemos ajustar las tablas de enrutamiento de nuesto Ubuntu:

sudo route add -net 10.0.0.0 netmask 255.0.0.0 gw 10.59.200.87 dev tun0

Donde 10.0.0.0 son las direcciones IP de la red corporativa a las que necesitaríamos acceder (todas).
Donde 255.0.0.0 es la máscara para la red corporativa.
Donde 10.59.200.87 es la IP que nos han asignado al conectar a la VPN.
Donde tun0 es el interfaz del tunneling.


5) Para poder conectar por VPN únicamente a nuestro PC de la red corporativa sin perder la conexión directa a internet en el navegador, skype y demás utilidades, deberíamos teclear:

sudo route add -net 192.168.0.38 netmask 255.255.255.255 gw 10.59.200.87 dev ppp0

Donde 192.168.0.38 es la dirección IP de la máquina a la que queremos acceder.
Donde 255.255.255.255 es la máscara de red para una única máquina.
Donde 10.59.200.87 es la IP que nos han asignado al conectar a la VPN.
Donde tun0 es el interfaz del tunneling.


Referencias:
    http://www.taringa.net/posts/linux/17183350/Configurar-VPN-sin-perder-Internet.html

martes, 8 de octubre de 2013

Salida por el proxy corporativo autenticando en un dominio Windows

En redes Widows se usa NTLM (NT Lan Manager) que es un conjunto de protocolos de Microsoft que proporcionan autenticación, integridad y confidencialidad a los usuarios.

NTLMv2, introducido con Windows NT 4.0 SP4 y soportado por Windows 2000, amplía las capacidades de NTLM al soportar métodos criptográficos más modernos.

Mientras Kerberos ha reemplazado a NTLM como protocolo de autenticación por defecto del Directorio Activo (AD), NTML es aún muy usado.

CNTLM es una implementación libre de NTLM/NTLMv2 que podemos usar en Ubuntu a la hora de autenticarnos a la hora de conectar a través de un proxy que utilice NTLM.

CNTLM se sitúa entre las aplicaciones y los proxy corporativos.

Instalación:

sudo apt-get install cntlm

Configuración:

Editamos el fichero de configuración:

sudo gedit /etc/cntlm.conf

Ajustamos las líneas siguientes:

Username    xxxxxxxxxx
Domain        yyyyyyyyyy
Password     ppppppp


Proxy        xxx.xxx.xxx.xxx:pppp


Listen        rrrr

Donde xxxxxxxxxx es el nombre de usuario en el dominino.
Donde yyyyyyyyyy es el nombre del dominio.
Donde ppppppp es la password del usuario en el dominio. 
Donde xxx.xxx.xxx.xxx es la dirección IP del proxy corporativo
Donde pppp es el puerto del proxy corporativo
Donde rrrr es el puerto del proxy cntlm que deberemos configurar en las aplicaciones de nuestro sistema 

Ajuste de aplicativos:

Ya sólo queda ajustar el proxy del sistema apuntanto a localhost:rrrr y el proxy de todos aquellos aplicativos que no dependan de la configuración del proxy a nivel de sistema, por ejemplo wget, apt-get, etc.

Por último reiniciamos la máquina y listo

Parar y arrancar cntlm:





Si necesitamos para el servicio lanzamos:

sudo service cntlm stop

Si necesitamos reiniciar el servicio lanzamos:

sudo service cntlm start

Referencias:

http://cntlm.sourceforge.net/
http://en.wikipedia.org/wiki/NTLM

jueves, 3 de octubre de 2013

Arrancar y parar una máquina remotamente vía LAN

Hola

Para arrancar remotamente un servidor desde un ordenador cliente a través de una conexión de área local (LAN) deberemos:

1) Verificar que el servidor soporta WoL, muchos ordenadores actuales  lo soportan gracias a las fuentes de alimentación ATX que, cuando el ordenador está apagado, siguen alimentando a ciertas partes de la placa base permitiendo asimismo el Wake on Ring, la posibilidad de arancar el ordenador pulsando una tecla del teclado, la posibilidad de que se encienda a una determinada hora, etc.

2) Tener instalado en la máquina cliente el aplicativo wakeonlan:

sudo apt-get install wakeonlan

3) Averiguar la dirección MAC del servidor partiendo de su dirección IP, que deberá ser fija. Para hacerlo podemos lanzar el comando:

$ arp -a XXX.XXX.XXX.XXX 
servidor.local (XXX.XXX.XXX.XXX) en XX:XX:XX:XX:XX:XX [ether] en eth4

Donde XXX.XXX.XXX.XXX es la dirección IP del servidor (que debería ser visible).

4) Por último, tras verificar que el servidor está apagado pero tiene el cable de red enchufado en la tarjeta de la MAC identificada, lanzamos en el cliente el comando:

wakeonlan XX:XX:XX:XX:XX:XX

Nota. En la VPN que utilizamos el comando NO es operativo, habrá que averiguar la razón, parece por temas de netmask.

Para parar remotamente un servidor desde un ordenador cliente a través de una conexión de área local (LAN) deberemos:

1) Deberemos tener instalado en nuestro servidor un servidor ssh. Para instalarlo debemos:

sudo apt-get install openssh-server

2) Seguidamente nos conectamos con el servidor vía ssh con:

ssh usuario@XXX.XXX.XXX.XXX

Donde XXX.XXX.XXX.XXX es la dirección IP del servidor

3) Una vez conectados al servidor remoto tenemos varias opciones:

Parar el servidor (Una vez apagado el servidor NO podríamos reiniciarlo vía VPN con el comando wakeonlan):

sudo halt

Reiniciar el servidor (Ésta es la opción recomandada vía VPN):

sudo shutdown -r


Un saludo

jueves, 26 de septiembre de 2013

Gestores de ventanas y escritorios en Ubuntu

Al abrir una sesión en Ubuntu, el gestor de sesiones LightDM (la pantalla de acceso que pide usuario y contraseña) nos ofrece distintas opciones de escritorio que dependerán tanto de la versión de Ubuntu instalada como de los escritorios adicionales que hayamos podido añadir.

Conviene aclarar los conceptos porque hay mucha confusión:

Gestor de ventanas

Es el software que muestra por pantalla los diferentes programas que ejecutamos sobre nuestra interfaz gráfica X11. Algunos de los mas conocidos son: E17(Enlightenment), Metacity, KWin, Compiz, Xfwm, Openbox, Mutter, Muffin, ...

Escritorio (o Shell)

Es un conjunto de aplicaciones agrupadas para simplificar el uso del ordenador. Todo escritorio lleva un gestor de ventanas, un gestor de redes, un gestor de sonido, un gestor de archivos, etc. Algunos de los mas usados son:
  • Gnome 1.X y 2.X. Las distintas versiones han tenido varios gestores de ventanas. Por orden de antigüedad: Sawfish, Enlightenment y Metacity
  • Gnome-Shell (o Gnome 3.x). Tiene como gestor de ventanas Mutter.
  • KDE. Tiene como gestor de ventanas KWin.
  • Unity. Tiene como gestor de ventanas Compiz.
  • Xfce. Tiene como gestor de ventanas Xfwm.
  • Lxde. Tiene como gestor de ventanas Openbox.
  • Cinnamon. Tiene como gestor de ventanas Muffin.
Distribuciones

Hay muchas y muy variadas, vamos a comentar únicamente las basadas en Ubuntu (no conviene olvidar que Ubuntu es una distribución comercial basada a su vez en la distribución libre Debian):
  • Ubuntu. Escritorio Gnome ó Unity (según sube la versión).
  • Xubuntu. Viene con el escritorio Xfce
  • Kubuntu. Viene con el escritorio KDE
  • Lubuntu. Viene con el escritorio Lxde
  • Linux Mint. Escritorio KDE, Gnome, XFCE ó Cinnamon (según sube la versión). Las últimas versiones se basan directamente en Debian.
Y me pregunto ¿porqué habrá tanta confusión si es todo tan sencillo? ;-)

Notas.

Como oigo comentarios sobre lo maravilloso que es Cinnamon y lo malo que es Gnome-Shell, he probado a instalarlo en Ubuntu 12.04 LTS con:

sudo add-apt-repository ppa:gwendal-lebihan-dev/cinnamon-stable
sudo apt-get update
sudo apt-get install cinnamon


Próximamente comentaré qué tal va...

Un saludo

miércoles, 25 de septiembre de 2013

Utilidades Ubuntu vía terminal

En esta entrada vamos a ir recopilando una serie de comandos/aplicaciones Linux muy útiles, que en muchas ocasiones hemos usado pero que siempre terminamos olvidando.

Algunas de las aplicaciones son comunes en los menús de las distintas distribuciones, pero cada es más complicado encontrarlas con la creciente variedad de interfaces disponibles.

¿Cómo averiguar la versión de Ubuntu instalada por terminal? 

lsb_release -a 

¿Cómo monitorizar de forma gráfica los distintos ficheros de log de Ubuntu? 

gnome-system-log 

¿Cómo lanzar la herramienta gráfica de gestión de discos? 

palimpsest 

¿Cómo montar una carpeta remota como carpeta local vía SSH? 

sshfs uuuuuuu@xxx.xxx.xxx.xxx:/remote/folder /local/folder

Donde uuuuuuu es el nombre del usuario de la cuenta SSH
Donde xxx.xxx.xxx.xxx es la IP donde conectar
Donde /remote/folder es la carpeta remota
Donde /local/folder es la carpeta local donde será montada.
 

¿Cómo transferir un fichero vía SSH? 

scp fichero.txt uuuuuuu@xxx.xxx.xxx.xxx:/remote/folder

Donde fichero.zip es el fichero local que queremos copiar
Donde uuuuuuu es el nombre del usuario de la cuenta SSH
Donde xxx.xxx.xxx.xxx es la IP donde conectar
Donde /remote/folder  es el directorio remoto donde vamos a copiar

Actualizar Ubuntu a la siguiente versión

sudo apt-get update
sudo apt-get upgrade

sudo update-manager -c

Redirigir el tráfico a determinadas IP por cierta conexión

Si tenemos varios interfaces de red activos: eth0, wlan0, wlan1, tun0, etc. Podemos especificar por cual de ellos queremos que vayan las peticiones a determinado rango de IP. Para ello usamos:

sudo route add -net 10.0.0.0 netmask 255.0.0.0 gw xxx.xxx.xxx.xxx dev tun0

Donde 10.0.0.0 son las direcciones IP de la red corporativa a las que necesitaríamos acceder, en el ejemplo accedemos a todas las que sean 10.XXX.XXX.XXX
Donde 255.0.0.0 es la máscara para la red corporativa.
Donde xxx.xxx.xxx.xxx es la IP que tenemos asignada en el interfaz tun0.
Donde tun0 es el interfaz por donde queremos desviar éste tráfico en concreto.


Medir el ancho de banda de una conexión VPN

Hola

Supongamos que todo un grupo de usuarios tienen que conectar al escritorio remoto de sus máquinas de la oficina a través de la VPN de la empresa, pero no tenemos muy claro cual es el ancho de banda disponible en la VPN ni cual será el límite impuesto para cada conexión.

Sin éste dato es difícil asegurar qué herramientas de acceso remoto no serán adecuadas por el consumo de ancho de banda que implican sus protocolos:
  • VNC (protocolo RFB)
  • Terminal Server (protocolo RDP)
  • NX (protocolo X11)
Para medir el ancho de banda de la conexión VPN podemos usar la utilidad iperf. Ésta utilidad deberá ser instalada en dos máquinas, la primera sería nuestro portatil (en casa) y la segunda nuestra máquina de la oficina a la que nos debemos conectar de forma remota.

Para instalarlo lanzamos el mismo comando en ambas máquinas:

    sudo apt-get install iperf

Primero configuramos iperf en la máquina de la oficina para que actúe como servidor:

    iperf -s -p XXXXX -f KBytes

    Donde -p XXXXX define el puerto de escucha, por defecto 5001.
    Donde -f KBytes define que los resultados sea generen en KBytes.

Seguidamente configuramos iperf en el portatil para que actúe como cliente y lance las pruebas:

    iperf -c XXX.XXX.XXX.XXX -p XXXXX -t 100 -P 1

    Donde -c XXX.XXX.XXX.XXX define la dirección IP de la máquina 'servidor'.
    Donde -p XXXXX define el puerto donde iperf escucha en el servidor.
    Donde -t 100 define el tiempo que dura el test, por defecto 10 segundos.
    Donde -P 1 define el número de clientes concurrentes, por defecto 1.

Por defecto, es el cliente es el que manda datos al servidor durante 10 segundos.

Nota 1. Éstas medidas varían dependiendo del tráfico de la VPN y del tráfico en la red de la oficina. Es interesante repetirlas a distintas horas para observar las diferencias.

Nota 2. Si queremos realizar pruebas de velocidad en el otro sentido (subida desde el server al cliente) podemos intercambiar los roles de ambas máquinas.

Nota 3. Evidentemente podemos usar iperf para medir el ancho de banda disponible en cualquier conexión entre dos máquinas, ésto es sólo un ejemplo de uso.

Ejemplo.

Se puede jugar con la herramienta en local para probar los distintos parámetros (iperf --help). Veamos un ejemplo:

1) En un terminal de nuestro portatil levantamos el servidor iperf escuchando en el puerto 9999:

eduardo@Dune:~$ iperf -s -p 9999 -f KBytes
------------------------------------------------------------
Server listening on TCP port 9999
TCP window size: 85.3 KByte (default)
------------------------------------------------------------


2) En un segundo terminal de nuestro portatil lanzamos el cliente, simulando 10 usuarios concurrentes y durante un tiempo de 100 segundos:

eduardo@Dune:~$ iperf -c 127.0.0.1 -p9999 -t 100 -P 10
------------------------------------------------------------
Client connecting to 127.0.0.1, TCP port 9999
TCP window size:  167 KByte (default)
------------------------------------------------------------
[  4] local 127.0.0.1 port 48966 connected with 127.0.0.1 port 9999
[  5] local 127.0.0.1 port 48967 connected with 127.0.0.1 port 9999
[  7] local 127.0.0.1 port 48969 connected with 127.0.0.1 port 9999
[  8] local 127.0.0.1 port 48970 connected with 127.0.0.1 port 9999
[  9] local 127.0.0.1 port 48971 connected with 127.0.0.1 port 9999
[  6] local 127.0.0.1 port 48968 connected with 127.0.0.1 port 9999
[ 10] local 127.0.0.1 port 48972 connected with 127.0.0.1 port 9999
[  3] local 127.0.0.1 port 48965 connected with 127.0.0.1 port 9999
[ 11] local 127.0.0.1 port 48973 connected with 127.0.0.1 port 9999
[ 12] local 127.0.0.1 port 48974 connected with 127.0.0.1 port 9999
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-100.0 sec  13.2 GBytes  1.13 Gbits/sec
[  7]  0.0-100.0 sec  11.1 GBytes   950 Mbits/sec
[  8]  0.0-100.0 sec  11.9 GBytes  1.02 Gbits/sec
[  6]  0.0-100.0 sec  16.6 GBytes  1.43 Gbits/sec
[  3]  0.0-100.0 sec  11.8 GBytes  1.02 Gbits/sec
[  5]  0.0-100.0 sec  12.0 GBytes  1.03 Gbits/sec
[  9]  0.0-100.0 sec  10.9 GBytes   940 Mbits/sec
[ 10]  0.0-100.0 sec  13.0 GBytes  1.12 Gbits/sec
[ 11]  0.0-100.0 sec  13.0 GBytes  1.11 Gbits/sec
[ 12]  0.0-100.0 sec  10.8 GBytes   924 Mbits/sec
[SUM]  0.0-100.0 sec   124 GBytes  10.7 Gbits/sec


Qué buen canuto ¿verdad? ;-)

Un saludo