30/12/09

Borrar por tamaño

Para borrar ficheros menores de 25 k:

find . -size -25k -exec rm -f {} \;

Para borrar ficheros mayores de 10 M:

find . -size +10M -exec rm -f {} \;

Más info en el man.

26/12/09

Copias remotas con rsync

Vamos a configurar rsync como demonio para poder copiar ficheros remotamente.

Instalamos rsync:

apt-get install rsync

Para que se ejecute automáticamente como demonio, editamos el fichero:

/etc/default/rsync

Y cambiamos el valor de:

RSYNC_ENABLE=true

Ahora configuramos los recursos que queremos compartir, creando el fichero:

/etc/rsyncd.conf

Con un contenido similar a:

max connections = 2
log file = /var/log/rsync.log
timeout = 300

[RECURSO]
comment = COMENTARIO
path = /DIRECTORIO
read only = no
list = yes
uid = nobody
gid = nogroup
auth users = USUARIO
secrets file = /etc/rsyncd.secrets

Y configuramos la contraseña creando el fichero:

/etc/rsyncd.secrets

Con el contenido en el siguiente formato:

USUARIO:CONTRASENYA

Cambiamos los permisos para tener mayor privacidad de la contraseña:

chmod 600 /etc/rsyncd.secrets

Y reiniciamos el servicio rsync:

/etc/init.d/rsync restart

Ahora desde un equipo remoto podríamos ver el contenido de los recursos con:

rsync USUARIO@IP::RECURSO

Y realizar una copia sincronizada con:

rsync -avz USUARIO@IP::RECURSO/SUBDIRECTORIO/ DESTINO

Más opciones en el man.

24/12/09

Eliminar gdm del arranque

Si no deseamos que en el arranque se ejecute el entorno gráfico, podemos deshabilitarlo con:

sudo update-rc.d -f gdm remove

(Podríamos lanzarlo manualmente con startx)

Para volver a habilitarlo:

sudo update-rc.d -f gdm defaults

Otros métodos aquí.

13/12/09

Usa la Fuerza, Luke!

Quiso la casualidad que tecleara "ps xa" en una ventana de terminal mientras grababa un dvd con brasero, y entre otras me encuentro la siguiente linea:

2248 ? Rl 0:02 growisofs -use-the-force-luke=notray -use-the-force-l

WTF!

Con "man growisofs" descubro que el prefijo -use-the-force-luke se aplica a diversas funciones no documentadas del programa para grabar isos.
¡Muy friki!

2/12/09

Configurar exim4

Resulta muy práctico poder enviar correos desde el sistema, para enviarnos avisos, logs, etc.

Utilizaremos exim4 que es el que instalan debian y ubuntu por defecto y que es más sencillo de configurar que sendmail. En caso de que sendmail estuviera instalado se pueden dar incompatibilidades, por lo que es conveniente desinstalarlo previamente.

Primero instalamos exim4:

apt-get install exim4

Ejecutamos el asistente de configuración:

dpkg-reconfigure exim4-config

Contestando lo siguiente:

En “configuración general del correo” seleccionamos “Internet site”.
En “Nombre del sistema de correo” escribimos el nombre del dominio que cualificará las direcciones de correo sin nombre de dominio, generalmente será el nombre de la máquina, por ejemplo “nombredemimaquina.int”. Debemos asegurarnos de que como tal esté definida en /etc/hosts.
En “Direcciones IP en las que recibir conexiones SMTP entrantes” escribimos “127.0.0.1” para que no acepte peticiones de otras máquinas.
En “Otros destinos para los que se acepta el correo” podemos dejar el valor por defecto, que será el nombre del equipo.
En “Dominios para los que se reenvía el correo” dejamos el valor en blanco.
En “Máquinas para las cuales reenviar correo” también lo dejamos en blanco.
En “Limitar el número de consultas de DNS” dejamos el valor “No”.
En “Mecanismo de entrega para el correo local” seleccionamos “formato mbox”.
Y en “Dividir la configuración en pequeños ficheros” seleccionamos “No”.

Con esto ya podemos enviar correos.



Ahora podemos configurar el servidor para que nos envíe el correo interno a una cuenta de email.

Para ello editamos el fichero:

/etc/aliases

Y editamos/añadimos lineas de la siguiente manera:

root: usuariosistema
usuariosistema: usuario@correoelectron.ico

De esta forma los mensajes dirigidos a root serán entregados a usuariosistema y los de este enviados a la dirección de correo indicada.



Para evitar que se marque nuestro correo como spam, podemos utilizar una configuración alternativa para que se envíen los correos a través de nuestro servidor smtp.

Editamos el fichero:

/etc/exim4/passwd.client

Y añadimos una linea con la forma:

servidor.smtp:nombreusuario:password

Volvemos a configurar exim4:

dpkg-reconfigure exim4-config

Pero esta vez en la primera opción seleccionamos "el correo se envía mediante un smarthost; se recibe a través de SMTP".

Contestamos al resto de las preguntas igual que antes, y cuando pregunte "Dirección IP o nombre de equipo para el smarthost saliente", introducimos la dirección del servidor smtp que vayamos a usar.

En "Desea ocultar el nombre de correo local en los mensajes salientes" marcamos "No".

Ahora se entregarán los correos a través de nuestro servidor smtp.

Para el caso particular de querer emplear una cuenta de gmail, podemos emplear este tutorial.

30/11/09

Bucle for con nombres de fichero con espacios

A veces intentamos usar un bucle for en bash para recorrer un listado de ficheros, pero si los nombres de los ficheros contienen espacios, se separa el nombre en dos o más trozos, provocando errores. Para evitarlo hay que definir con la variable IFS que caracteres se deben utilizar como delimitadores, ya que por defecto incluye además del salto de linea y retorno de carro, el espacio y el tabulado.

Un ejemplo de como emplearlo:

#!/bin/sh
IFS=$'\x0A'$'\x0D'
for fichero in $(ls *)
do

/usr/bin/HAZALGO $fichero
done

Visto aquí y aquí.

29/11/09

Proxy sobre ssh

Podemos crear un proxy a partir de una conexión ssh con un comando del tipo:

ssh -D 9999 USUARIO@IP

Y en el navegador seleccionar en la configuración del proxy 'localhost' como servidor SOCKS y 9999 como puerto.

Más información aquí.

Exportar DISPLAY

Si en nuestra sesión gráfica abrimos una terminal con una sesión de root, y queremos desde esta ejecutar una aplicación gráfica, nos dará el error:

Error: Can't open display:

Para evitarlo debemos exportar el display con el siguiente comando:

export DISPLAY=:0.0

Ahora podremos ejecutar correctamente las aplicaciones gráficas.

5/11/09

Montar carpeta Samba en el arranque

Para montar una carpeta Samba en el arranque, debemos tener instalado el paquete smbfs y añadir al /etc/fstab una línea similar a esta:

//IP/RECURSO /media/PUNTOMONTAJE smbfs auto,username=USUARIO,password=CONTRASENYA,dir_mode=0777,file_mode=0777,rw,uid=1000,gid=1000 0 0

Ahora bien, esto deja nuestro nombre de usuario y contraseña para el recurso samba muy a la vista. Para evitarlo, como usuario root, creamos un fichero, por ejemplo:

/root/smbpwd

Con las líneas:

username=USUARIO
password=CONTRASENYA

Y modificamos sus permisos para que sólo el root pueda leerlo y escribir en él:

chmod 600 /root/smbpwd

Y cambiamos la línea del fstab de la siguiente manera:

//IP/RECURSO /media/PUNTOMONTAJE smbfs auto,credentials=/root/smbpwd,dir_mode=0777,file_mode=0777,rw,uid=1000,gid=1000 0 0

¡Mucho más seguro!

Más información aquí.

4/11/09

Problemas con Tuxguitar

Tuxguitar es un editor de partituras para guitarra que nos permite visualizar las partituras en solfeo, tablatura y también visualizar las notas en el mástil de la guitarra. Admite varios formatos de partitura y también importar desde ficheros midi.

Podemos instalarlo fácilmente con:

apt-get install tuxguitar

En el caso de que al reproducir la partitura no suene el sonido, probablemente se deba a que no tengamos instalado un player de midis. Para solucionarlo instalamos el reproductor/conversor
timidity:

apt-get install timidity

Posteriormente editamos el fichero:

/etc/init.d/timidity

Y modificamos la linea con el parámetro TIM_ALSASEQ para que quede:

TIM_ALSASEQ=true

Reiniciamos el servicio:

/etc/init.d/timidity restart

Y por último en tuxguitar vamos al menú Herramientas -> Preferencias -> Sonido y en el apartado de Puerto MIDI seleccionamos "TiMidity port 0 #1".

¡A tocar!

18/10/09

montar carpeta samba

Para montar una carpeta samba:

sudo mount -t smbfs //192.168.0.XX/RECURSO /directorio/carpeta

Si es necesario identificarse para acceder al recurso:

sudo mount -t smbfs -o username=USUARIO,password=CONTRASENYA //192.168.0.XX/RECURSO /directorio/carpeta

Para desmontar, lógicamente:

sudo umount /directorio/carpeta

Si no sabemos los nombres de los recursos compartidos en un equipo:

smbclient -L 192.168.0.XX

Una vez montada la carpeta, estará completamente integrada en nuestro sistema de ficheros, permitiendo todas las operaciones usuales.

17/10/09

Consola unix para windows

Con MobaXterm podremos tener toda la potencia de una consola unix en sistemas windows, con acceso a todos sus recursos. La aplicación es portable, por lo que se puede llevar en un pendrive, y otra de sus utilidades es utilizarla como cliente ssh.

11/10/09

Actividades educativas

Un par de paquetes con actividades educativas para los peques:

GCompris:

apt-get install gcompris
apt-get install gcompris-sound-es

Childsplay:

apt-get install childsplay

¡Y a aprender!

28/9/09

Emulador de máquinas recreativas

Para echar unas partiditas a las viejas máquinas de "cinco duros", podemos emplear el emulador MAME.

Lo instalamos con:

apt-get install xmame-common

Descargamos la interfaz gráfica con:

wget http://surfnet.dl.sourceforge.net/sourceforge/gxmame/gxmame_0.35beta2-1_i386.deb

Y la instalamos con:

dpkg -i gxmame_0.35beta2-1_i386.deb

O si nuestra arquitectura es de 64 bits:

dpkg -i --force-architecture gxmame_0.35beta2-1_i386.deb

Y copiamos las ROMS de los juegos y de la BIOS a:

/usr/share/games/xmame/roms

Y he aquí un 'Comorl' para consultar el funcionamiento del emulador, teclas, etc.

Drivers para impresora

Si alguna impresora se nos resiste, en OpenPrinting.org hay referencia a multitud de modelos, con sus correspondientes drivers para descargar en .ppd, .deb y/o .rpm.

9/9/09

Montar partición NTFS en el arranque

Para montar una partición NTFS en el arranque, debemos tener instalado el paquete ntfs-3g y añadir al /etc/fstab una línea similar a esta:

/dev/sdXX /media/PUNTOMONTAJE ntfs-3g defaults,uid=1000,gid=1000 0 0

Más información aquí.

2/9/09

GParted con soporte NTFS

En el caso de que queramos formatear una unidad en NTFS con GParted, necesitaremos instalar previamente el paquete ntfsprogs para darle soporte. He aquí una tabla con el resto de paquetes para dar soporte al resto de sistemas de archivos.

31/8/09

Ver ficheros .psd

Para poder ver los ficheros .psd de photoshop con el visor de imágenes de gnome, y ver sus thumbnails en el nautilus podemos usar el paquete gdk-pixbuf-psd, está en fase alfa, por lo que no todos los tipos de ficheros .psd están soportados. También hay un paquete para distribuciones de 64 bits, aunque algo más escondido.

28/8/09

Empaquetar con tar

Para crear un paquete:

tar -cvf PAQUETE.tar FICHEROS

Para extraer de un paquete:

tar -xvf PAQUETE.tar

Para listar el contenido de un paquete:

tar -tvf PAQUETE.tar

Para añadir a un paquete:

tar -rvf PAQUETE.tar FICHEROS

Como siempre, más info en el man.

22/8/09

Información Exif

Con exiftool podemos consultar y modificar la información Exif de nuestras fotos, muy práctico para consultar los valores con que se tomó la fotografía, por ejemplo:

exiftool -a -u -g1 PICTXXXX.JPG

Nos muestra amplia información: parámetros de la foto, modelo de cámara, etc.

16/8/09

Conectar televisor a tarjeta nvidia

Si al conectar un televisor a la salida svhs de vuestra tarjeta nvidia (una vez instalados los drivers privativos), la imagen no se visualiza correctamente, probad a modificar el fichero /etc/X11/xorg.conf, añadiendo a la sección "Device" las líneas:

Option "TVOutFormat" "svideo"
Option "TVStandard" "PAL-G"

De forma que quede algo así:

Section "Device"
Identifier "Configured Video Device"
Driver "nvidia"
Option "NoLogo" "True"
Option "TVOutFormat" "svideo"
Option "TVStandard" "PAL-G"
EndSection

Los valores "svideo" y "PAL-G", se pueden sustituir, si es el caso por "Composite" y/o "NTSC" o los apropiados.

VPN OpenVPN

Vamos a configurar un servidor vpn ubuntu con openvpn, con clientes ubuntu y windows. Los clientes podrán acceder a los recursos tanto del servidor como de los equipos de la LAN del servidor; además su configuración será tipo RoadWarrior, donde los clientes podrán acceder también unos a otros.

En primer lugar instalamos el paquete openvpn:

apt-get install openvpn

Seguidamente crearemos los certificados del servidor y los clientes. Por comodidad copiamos los scripts para generar certificados al directorio de openvpn:

mkdir /etc/openvpn/easy-rsa
cp /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa

A continuación editamos el fichero vars, para personalizar los parámetros que deseemos:

export KEY_COUNTRY="ES"
export KEY_PROVINCE="03"
export KEY_CITY="Alicante"
export KEY_ORG="Empre S.A."
export KEY_EMAIL="correo@electroni.co"

Y ahora para generar los certificados, desde el directorio easy-rsa, ejecutamos los comandos:

. ./vars
./clean-all
./build-ca

Al crear los parámetros, por defecto tomará los datos que hemos introducido en el fichero vars, el único campo que debemos especificar cuando nos pregunte el script es Common Name, donde pondremos el nombre que queramos darle a la vpn.

Primero creamos el certificado y la clave privada para el servidor:

./build-key-server server

De nuevo tomaremos los parámetros por defecto, excepto en Common Name, donde introduciremos "server". Debemos contestar yes a las preguntas: "Sign the certificate?" y "1 out of 1 certificate request certified, commit?".

Ahora creamos los certificados y llaves para los clientes, por ejemplo:

./build-key client1
./build-key client2
...etc

Y por último para generar los parámetros de Diffie Hellman ejecutamos:

./build-dh

Ya tenemos las llaves generadas, para el servidor necesitamos los ficheros:

ca.crt
ca.key
server.crt
server.key
dh1024.pem

Los copiamos a /etc/openvpn o al directorio de nuestra elección.

A cada cliente debemos hacerle llegar de forma segura los ficheros:

ca.crt
client1.crt
client1.key

Vamos a crear los ficheros de configuración, podemos encontrar ficheros de ejemplo en /usr/share/doc/openvpn/examples/sample_config_files, los cuales podemos copiar a /etc/openvpn y modificar, o crear uno nuevo directamente. El fichero de ejemplo está bastante bien documentado con comentarios.

En el servidor creamos o modificamos el fichero /etc/openvpn/server.conf con el contenido:

port 1194
proto udp
dev tun
persist-tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
dh /etc/openvpn/dh1024.pem

#rango de direcciones que se asignará a los clientes, el server es .1
server 10.99.0.0 255.255.255.0

ifconfig-pool-persist ipp.txt

#ruta para que los clientes alcancen la lan del server
push "route 192.168.0.0 255.255.255.0"

client-to-client
keepalive 10 120
comp-lzo

#asegurarse que existan el usuario y grupo utilizados
user nobody
group nogroup

persist-key
persist-tun
status openvpn-status.log
log-append /var/log/openvpn.log
verb 4


Y reiniciamos el servicio para que los cambios tomen efecto:

/etc/init.d/openvpn restart

Para que podamos acceder desde internet debemos redirigir el puerto 1194 del router al del equipo del servidor vpn.

Para poder acceder a internet a través de la VPN debemos realizar un par de cambios en el servidor.

En el fichero /etc/sysctl.conf

Debemos añadir o modificar la línea:

net.ipv4.ip_forward=1

Y debemos crear en iptables la regla:

iptables -t nat -A POSTROUTING -s 10.99.0.0/24 -o eth0 -j MASQUERADE

Para que esta regla se ejecute cada vez que reiniciemos el servidor, vamos a salvarla en un fichero y hacer que se cargue en el arranque.

Si es necesario creamos el directorio /var/lib/iptables

Comprobamos que están activas las reglas deseadas con:

iptables -t nat -n -L

Las volcamos a un fichero con:

iptables-save > /var/lib/iptables/iptablesReglas

Ahora crearemos un script en el directorio:

/etc/network/if-up.d

Lo llamaremos por ejemplo inicioIptables y el contenido será el siguiente:

#!/bin/sh
/sbin/iptables-restore < /var/lib/iptables/iptablesReglas

Hay que darle permisos de ejecución al fichero:

chmod a+x inicioIptables

Con esto en cada inicio del sistema, se cargaran las reglas para iptables.

Ya tenemos listo el servidor.


Para configurar un cliente ubuntu, instalamos el paquete openvpn:

apt-get install openvpn

Copiamos al directorio /etc/openvpn los certificados:

ca.crt
client1.crt
client1.key

Y creamos el fichero /etc/openvpn/cliente.conf con el contenido:

client
dev tun
proto udp
remote IP_PUBLICA_SERVIDOR_VPN 1194
resolv-retry infinite
nobind
#asegurarse que existan el usuario y grupo utilizados
user nobody
group nogroup
redirect-gateway def1
persist-key
persist-tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/client1.crt
key /etc/openvpn/client1.key
comp-lzo
verb 4

En los clientes, seguramente no nos interesará que la vpn se arranque en el inicio del sistema, por lo que editamos el fichero /etc/default/openvpn y modificamos o agregamos la línea:

AUTOSTART="none"

Y para iniciar manualmente la vpn, ejecutaremos:

openvpn /etc/openvpn/cliente.conf &

Y para detenerla mataremos el proceso.


También podemos configurar el network manager de gnome para establecer la conexión desde el entorno gráfico.
Insatalamos el plugin para conexiones openvpn:

apt-get install network-manager-openvpn

(Nota: después de instalar el plugin, es conveniente reiniciar el sistema.)

Y en el menú del network manager seleccionamos "Conexiones VPN" y luego "Configurar VPN", le damos al botón de "Añadir", seleccionamos tipo de conexión "OpenVPN" y rellenamos los campos:

Nombre de conexión: el que queramos.
Pasarela: la ip pública del servidor vpn.
Tipo: certificados (TLS)
Certificado de usuario, Certificado CA, Clave privada: seleccionamos la ruta correspondiente.
Y en "Avanzado" marcamos "Usar compresión LZO".

Guardamos los cambios y ya podemos utilizar el network manager para conectar y desconectar a la vpn.


Para configurar un cliente windows xp, descargamos el programa cliente de http://openvpn.se/download.html, instalándolo con las opciones por defecto.

A través del grupo de programas que crea en el menú de Inicio de windows, podremos acceder a la carpeta de configuración del programa, en la que copiaremos los certificados:

ca.crt
client1.crt
client1.key

Y creamos el fichero client.ovpn con el contenido:

client
dev tun
proto udp
remote IP_PUBLICA_SERVIDOR_VPN 1194
resolv-retry infinite
nobind
redirect-gateway def1
persist-key
persist-tun
ca ca.crt
cert client1.crt
key client1.key
comp-lzo
verb 4

A través del icono que coloca el programa en la barra de tareas podremos conectar y desconectar la conexión vpn.

No he probado con windows vista, pero parece ser que es necesario instalar y ejecutar el programa con permisos de administrador para que pueda funcionar.


Tanto en ubuntu como en windows, cuando nos conectemos a la vpn, podremos acceder al servidor, los equipos de la LAN y a los otros clientes, y navegar por internet (con la ip pública del servidor).

Si queremos crear certificados para más clientes, debemos tener ca.crt y ca.key en el directorio keys y ejecutar desde el directorio easy-rsa los comandos:

source ./vars
./build-key clientX

Obteniendo los nuevos certificados.

Actualización:

Para configurar clientes con windows vista en ediciones de 64 bits, descargamos el cliente OpenVPN_2.1_rc20 (o más reciente), y lo instalamos como administrador, nos creará un icono en el escritorio para lanzar el terminal, que también deberemos lanzar como administrador.

Escanear rango de IPs

Con el comando nmap podemos escanear un rango de IPs para detectar las IPs activas:

nmap -sP 192.168.0.1-255

Además puede ofrecernos mucha otra información.

6/8/09

Instalar VMware Tools en VMware Player

VMware Player no incluye las VMware Tools, pero podemos instalarlas en nuestras máquinas virtuales con este pequeño truco.

Para ello nos descargamos la versión demo de VMware Workstation.

Y descomprimir los ficheros con (no es necesario instalarlo):

/usr/lib/vmware/installer/vmware-installer --install-bundle VMware-Workstation-6.5.2-156735.i386.bundle --extract /DIRECTORIODESTINO

Por último en el directorio donde lo hemos descomprimido, buscamos las .iso's para instalar las VMware tools.

Instrucciones detalladas aquí.

Descargar de un servidor ftp

Para descargar ficheros de un servidor ftp podemos emplear el comando wget, por ejemplo:

wget -r --ftp-user=USUARIO --ftp-password=CONTRASEÑA ftp://DIRECCION_IP/DIRECTORIO/

Para descargar todos los ficheros del directorio.

1/8/09

Google Calendar en el calendario del panel de gnome

Podemos visualizar los eventos de nuestra agenda de Google Calendar en el calendario del panel de gnome ejecutando el siguiente comando:

/usr/lib/evolution-webcal/evolution-webcal http://direccion.privada.ICAL.calendario.google

Visto en tuxapuntes.

17/7/09

Controlar de forma gráfica la carga de la CPU

Como persona responsable, seguramente querrás controlar en todo momento la carga de la CPU.
Para ello instala el paquete hot-babe:

apt-get install hot-babe

Y cuando lo ejecutes tendrás un peculiar medidor de carga de CPU: aparecerá en pantalla una chica que irá desprendiéndose de prendas conforme suba la carga de la CPU.




¡En mi equipo está casi siempre desnuda!

11/7/09

VPN PPTP

Vamos a configurar un servidor VPN PPTP en un ubuntu y configurar clientes ubuntu y windows.

Comenzaremos por la configuración del servidor VPN.

En primer lugar instalamos el paquete pptpd:

apt-get install pptpd

Seguidamente modificamos el fichero de configuración:

/etc/pptpd.conf

Y modificamos las líneas localip y remoteip, por ejemplo:

localip 10.0.0.1
remoteip 10.0.0.10-100

Trabajaremos con un rango de IPs diferente del de la red local, localip será la IP que tendrá el servidor y el rango de remoteip las IPs que se asignarán a los terminales que se conecten al VPN.

A continuación editamos el fichero de opciones:

/etc/ppp/pptpd-options

Donde tenemos la opción de cambiar el nombre de la red VPN en la línea name (por defecto pptpd):

name pptpd

Y donde debemos configurar los servidores dns, por ejemplo:

ms-dns 10.0.0.1
ms-dns 80.58.61.250
ms-dns 80.58.61.254

Ahora damos de alta las cuentas de los clientes en el fichero:

/etc/ppp/chap-secrets

Para cada cliente añadimos una línea con el formato:

nombreCliente nombreRed contraseña *

Donde nombreCliente y contraseña serán los que necesitarán los usuarios para identificarse; nombreRed si no lo hemos cambiado será pptpd y el * indica que se le asignará una ip del rango remoteip previamente establecido, pero también podemos sustituirlo por una ip concreta si así lo deseamos.

Finalmente reiniciamos el servicio con:

/etc/init.d/pptpd restart

Ya tenemos configurado el servidor VPN. Aquí hay más información al respecto.

A continuación para poder conectarnos al servidor VPN a través de internet redirigimos en el router los puertos 1723 TCP y 47 UDP al equipo que hemos configurado como servidor VPN.

Ahora vamos a configurar los clientes, empezaremos por windows xp:

Vamos al menú Inicio -> Panel de Control -> Conexiones de red e Internet -> Crear una conexión a la red de su trabajo. Seleccionamos 'Conexión de red privada virtual', le damos un nombre descriptivo a la conexión, si nos pregunta marcamos 'No usar la conexión inicial' y a continuación introducimos la IP externa del servidor VPN, por último por comodidad podemos marcar que agregue un acceso directo a la conexión en el escritorio.
Es posible que cuando nos conectemos a la VPN tengamos problemas para navegar por internet, cuando la puerta de enlace de la red remota esté en un rango de IPs diferente, en cuyo caso editamos la conexión de red a través del menú 'Propiedades' , seleccionamos la pestaña 'Funciones de red', escogemos 'Protocolo Internet (TCP/IP)' y pulsamos el botón 'Propiedades', en la nueva ventana seleccionamos 'Opciones avanzadas...' y en la ventana que se abrirá desmarcamos de la pestaña 'General' la opción 'Usar la puerta de enlace predeterminada en la red remota'.

Y ahora los clientes ubuntu, podemos conectarnos por consola o a través del entorno gráfico.

Para hacerlo gráficamente, debemos en primer lugar instalar el plugin pptp para el network manager:

apt-get install network-manager-pptp

A continuación desplegamos el menú del network manager y seleccionamos Conexiones VPN -> Configurar VPN... Pulsamos el botón 'Añadir' y elegimos 'Protocolo de túnel punto a punto (PPTP)'. Le damos un nombre descriptivo a la conexión, en 'Pasarela' escribimos la IP externa del servidor VPN, escribimos el nombre de usuario y si lo deseamos la contraseña y por último pulsamos el botón 'Avanzado...' y en la nueva ventana marcamos 'Usar cifrado punto a punto (MPPE)'.
Ahora podemos conectarnos a la VPN desplegando el menú del network manager y en 'Conexiones VPN' seleccionando la conexión creada, el icono del network manager mostrará un candado para indicar que estamos en una red segura.

Lamentablemente en la versión actual del network manager no he encontrado la manera de indicarle que use la puerta de enlace local para el acceso a internet. Por lo que es posible que al conectar a la VPN, no podamos navegar por internet.

Este problema no se da si en lugar de usar el network manager, establecemos la conexión por consola, mediante los sonoros comandos pon y poff.

Para conectarnos usaremos el comando pon, pasándole un fichero de configuración de la conexión que deseamos establecer.
Crearemos este fichero en el directorio:

/etc/ppp/peers

El fichero llamado por ejemplo REDVPN tendrá el siguiente formato:

pty "pptp 99.99.99.99 --nolaunchpppd"
name USUARIO
remotename PPTP
require-mschap-v2
require-mppe-128
file /etc/ppp/options.pptp
ipparam tunnel

Donde 99.99.99.99 es la IP del servidor, USUARIO es el nombre de usuario del VPN y PPTP el nombre que deseamos darle a la conexión.

Por último añadimos los datos del usuario en:

/etc/ppp/chap-secrets

Con una línea en el formato que ya conocemos:

nombreCliente nombreRed contraseña *

En el caso que nos ocupa nombreRed será PPTP, tal como hemos establecido en remotename.

Y ya podemos conectarnos a la VPN con:

pon REDVPN

y desconectarnos con:

poff

Más información sobre la configuración del terminal por consola aquí.

8/7/09

Configurar teclado en debian

Recientemente instalé debian en un equipo y me di cuenta de que en la pantalla de login no estaba correctamente configurado el teclado. Una vez iniciabas sesión, si funcionaba correctamente, así como haciendo login en una consola; pero la distribución del teclado era incorrecta en la pantalla de login.

La solución es editar el archivo

/etc/X11/xorg.conf

y modificar la sección del teclado para dejarla así:

Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
Option "CoreKeyboard"
Option "XkbRules" "xorg"
Option "XkbModel" "pc105"
Option "XkbLayout" "es"
EndSection

¡Solucionado!

3/7/09

Instalar manualmente drivers de nvidia en ubuntu

Para poder tener la última versión de los drivers de las tarjetas gráficas nvidia, debemos instalarlos manualmente. En Taringa hay una detallada guía.

Grabar sesiones de consola

En ocasiones nos puede resultar útil poder tener un registro de todos los comandos ejecutados durante una sesión de consola, así como de la salida de los mismos.
Podemos hacerlo con script:

script FICHERO.TXT

y para finalizar el registro:

exit

o bien Ctrl+D.

Visto en tuxapuntes.

Login remoto desde Windows con Xming

Si tenemos habilitado el login remoto con XDMCP, podemos hacer login desde un sistema windows mediante Xming, un gestor X Windows para MS Windows.

Para ello ejecutamos XLaunch.exe, seleccionamos el modo de visualización -fullscreen, por ejemplo-, luego especificamos "Open session via XDMCP", y luego introducimos la IP del equipo, pasamos la pantalla de parámetros adicionales, salvamos la configuración si lo deseamos, ¡y nos conectamos a nuestro linux!

Más info aquí.

2/7/09

Login remoto con XDMCP

En ubuntu es muy sencillo habilitar el login remoto, basta con ir a "Sistema" -> "Administración" -> "Ventana de entrada" y en la pestaña "Remota" seleccionar "Igual que la entrada local". Posteriormente habrá que reiniciar gdm para que los cambios tomen efecto:

/etc/init.d/gdm restart

De esta forma podremos hacer un login gráfico remoto desde otro equipo de nuestra red local con el comando:

X :1.0 -query IP_DEL_HOST

O bien directamente desde la ventana de login de ubuntu, a través del apartado "opciones" (esto último podemos hacerlo incluso desde un LiveCD).

Más información aquí.

28/6/09

Ubuntu como servidor de DNS

Vamos a ver como utilizar ubuntu como servidor de DNS en una red local, para poder emplear nuestros propios dominios en lugar de trabajar con IPs.

En primer lugar instalamos el paquete bind9.

apt-get install bind9

Editamos el fichero:

/etc/bind/named.conf.local

Y añadimos las zonas que queramos, por ejemplo para cafetera.com:

zone "cafetera.com" {
type master;
file "/etc/bind/db.cafetera";
};

Ahora copiamos db.local a db.cafetera.

cp db.local db.cafetera

Y lo editamos para dejarlo así:

;
; BIND data file for local loopback interface
;
$TTL 604800
@ IN SOA cafetera.com. root.cafetera.com. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS cafetera.com.
@ IN A 192.168.0.30
@ IN AAAA ::1
www IN A 192.168.0.30

Nótese la última línea, gracias a la cual podremos usar tanto cafetera.com como www.cafetera.com.

Reiniciamos el servicio:

/etc/init.d/bind9 restart

Y ya podemos configurar en los ordenadores de nuestra LAN la IP del ordenador que hemos configurado como servidor de DNS.

La información está obtenida de este tutorial, que a su vez es un resumen de este otro.

26/6/09

Simular instalación de paquetes con apt-get

Si no tenemos claro que dependencias tiene un determinado paquete, y a la configuración de que otros paquetes puede afectar, podemos simular su instalación con el parámetro -s.
Por ejemplo:

apt-get -s install PAQUETE

Nos mostrará un listado de las acciones que se realizarían: paquetes instalados, desinstalados y configurados.
Mucha más información sobre el uso de apt-get en esta página.

25/6/09

Borrar por fecha

Mi compañero del curro me pasó hace tiempo este práctico comando, junto a la explicación de cada uno de los parámetros, para borrar ficheros con más de 30 días de antigüedad. ¡Muchas gracias!

Aquí tienes un comando para que te borre los ficheros modificados hace más 30 dias.

find . -maxdepth 2 -ctime +30 -exec rm -f {} + \;

maxdepth es para indicar hasta que profundidad puede llegar desde el directorio que estas

ctime es n*24 horas, n es el numero de días que indicas

exec ejecuta lo que quieras

{} find sustituye esto por el resultado que devuelve

+ es obligatorio como parametro del exec

\ fin de comando

; creo que es preciso tambien.

Subir o bajar el volumen por consola

Con los siguientes comandos podemos subir o bajar el volumen del sistema:

Para subir un 10% el volumen:

amixer sset Master 10%+

Y para bajarlo:

amixer sset Master 10%-

Esto puede ser útil para emplearlo en un script o asignarlo a una combinación de teclas.
Lo vi aquí.

Borrar mensajes de la cola de correo

Con el siguiente script podemos borrar de la cola de correo de nuestro servidor los mensajes de determinado usuario.
Por ejemplo para borrar los de spam@basura.com

for i in `mailq | grep spam@basura.com | cut -f1 -d*`; do postsuper -d $i; done

En ocasiones esto nos puede ser muy útil para aliviar la cola de correo.

Comparar ficheros gráficamente

Con Meld, podemos comparar ficheros de texto y además sustituir las diferencias de uno a otro. Un práctico programa que podemos encontrar en los repositorios de ubuntu.

24/6/09

Sugerencias tras una nueva instalación de Ubuntu

¡Muy práctico ToDo trás una nueva instalación de Ubuntu!

Cambiar nombre host

Para cambiar el nombre del host, utilizamos el comando:

hostname NUEVONOMBRE

Si lo introducimos sin argumentos, nos muestra el nombre de host actual, si le pasamos un argumento, lo cambia.

También debemos actualizar las referencias al anterior nombre de host en los ficheros:

/etc/hostname
/etc/hosts

Lo vi aquí.

22/6/09

Filtrar IPs

Vamos a ver como filtrar con iptables las IPs de spammers y hackers que pretendan atacar a nuestro servidor.

Una vez hayamos detectado la IP atacante, por ejemplo con logcheck, crearemos una regla para filtrar dicha IP.

Por ejemplo para filtrar la ip 99.99.99.99:

iptables -A INPUT -s 99.99.99.99 -j DROP

Podemos eliminar una línea cambiando el parámetro -A por -D.

Para listar todas las reglas creadas usamos:

iptables -L

Estas reglas se pierden al reiniciar el sistema, por lo que vamos a salvarlas a un fichero y hacer que se carguen en el arranque:

Si es necesario creamos el directorio /var/lib/iptables

Comprobamos que están activas las reglas deseadas con iptables -L

Las volcamos a un fichero con:

iptables-save > /var/lib/iptables/iptablesReglas

Ahora crearemos un script en el directorio:

/etc/network/if-up.d

Lo llamaremos por ejemplo inicioIptables y el contenido será el siguiente:

#!/bin/sh
/sbin/iptables-restore < /var/lib/iptables/iptablesReglas

Hay que darle permisos de ejecución al fichero: chmod a+x inicioIptables

Con esto en cada inicio del sistema, se cargaran las reglas para iptables.

Seguidamente vamos a configurar el sistema para que guarde en un log registro de los accesos denegados:

Editamos: /etc/syslog.conf

Y añadimos la línea:

kern.warning /var/log/iptables.log

Debemos añadir este log a los logs monitorizados por logcheck.

Ahora lo que hay que hacer es para cada ip bloqueada, crear dos reglas iptables: una para guardar el registro y la otra para rechazar la conexión.

Por ejemplo:

iptables -A INPUT -s 99.99.99.99 -j LOG --log-prefix 'IP BLOQUEADA ' --log-level 4
iptables -A INPUT -s 99.99.99.99 -j DROP

Para reiniciar el servicio de monitorización: /etc/init.d/sysklogd restart
(Si tras reiniciar el servicio, no registra los accesos denegados en el log, probar reiniciando todo el sistema).

15/6/09

Monitorizar logs con logcheck

Usaremos logcheck para monitorizar los logs del apache.

Para instalarlo:

apt-get install logcheck

Configurarlo:

Editar /etc/logcheck/logcheck.conf

e indicar en la línea

SENDMAILTO="correo@electron.ico"

la dirección donde queremos recibir las notificaciones

Editar /etc/logcheck/logcheck.logfiles

y añadir las líneas:

/var/log/apache2/access.log
/var/log/apache2/error.log

Para programar su ejecución:

editar /etc/cron.d/logcheck

y modificar la frecuencia que deseemos en:

5 * * * * logcheck if [ -x /usr/sbin/logcheck ]; then nice -n10 /usr/sbin/logcheck; fi

Monitorizar logs con logwatch

logwatch realiza un chequeo de los logs del sistema y envía un email con el resultado.

Para instalarlo:

apt-get install logwatch

Configurarlo:

copiar el fichero /usr/share/logwatch/default.conf
a /etc/logwatch/conf/logwatch.conf

y editar este último, realizando los siguientes cambios si es necesario:

Print = No
Output = mail
MailTo = correo@electron.ico
Range = Today
Detail = High

Si al ejecutar logwatch da un error crear el directorio:

mkdir /var/cache/logwatch

Por último para programar su ejecución diaria añadir a /etc/crontab

0 6 * * * root /usr/sbin/logwatch

Chequeo de actualizaciones con apticron

El paquete apticron chequea diariamente las actualizaciones disponibles para el sistema y las descarga y envía un mail notificándolo.

Para instalarlo:

apt-get install apticron

Configurarlo:

Editar /etc/apticron/apticron.conf

e indicar en la línea

EMAIL="correo@electron.ico"

la dirección en la que queremos recibir las notificaciones.

8/6/09

Descomprimir archivos .cab

Con el comando cabextract podemos descomprimir archivos cab.

cabextract ARCHIVO.cab

Lo encontré aquí.

3/6/09

Port Forwarding

Interesante artículo sobre los túneles ssh.

Arrancar máquina VMW desde una iso

Supongamos que tenemos creada una máquina VMWare y queremos que arranque desde la iso de un cd, en lugar de un cd. Tenemos que editar el fichero .vmx de la máquina, localizar las líneas:

ide1:0.present = “true”
ide1:0.fileName = “auto detect”
ide1:0.deviceType = “atapi-cdrom”

comentarlas y sustituirlas por:

ide1:0.present = “true”
ide1:0.fileName = "IMAGEN.iso”
ide1:0.deviceType = “cdrom-image”

Me inspiré en este artículo.

10/4/09

Crear máquina vmw online

Una de las pegas de VMware es que aunque el player es gratuito, con él no se pueden crear nuevas máquinas virtuales. Existe la posibilidad de crear las máquinas virtuales online en EasyVMX.

Montar discos por etiqueta en fstab

Cuando tenemos discos extraíbles en el ordenador, el orden de los dispositivos en /dev puede cambiar según que discos tengamos conectados. Por ello en /etc/fstab puede ser conveniente indicar que se monte el disco por su etiqueta, en lugar de por la ruta del dispositivo.
Para ello sustituimos en /etc/fstab su ruta:

/dev/DISPOSITIVO

Por su etiqueta:

LABEL=ETIQUETA

De esta forma montará la unidad que esté etiquetada con dicha label.

2/4/09

Agenda Sunbird

Desde GetDeb podemos descargar la versión 0.9 de Sunbird. Posteriormente desde la misma aplicación podremos instalar el idioma y la extensión "Proveedor de Google Calendar" para sincronizar nuestro calendario de Sunbird con el de Google.

25/3/09

Caducidad del certificado SSL

Si queremos cambiar la caducidad del certificado SSL, debemos editar el fichero /usr/share/ssl-cert/ssleay.cnf, cambiando o añadiendo el valor days con el número de días de vida del certificado. Más info aquí.

Crear certificado SSL

Las instrucciones para hacerlo se encuentran en el fichero /usr/share/doc/apache2/README.Debian.gz: que podemos descomprimir para leer o leer directamente con el comando zless.

En primer lugar hemos de instalar, si no lo tenemos ya, el paquete ssl-cert:

apt-get install ssl-cert

Luego debemos ejecutar los comandos:

a2ensite default-ssl
a2enmod ssl

Y ahora creamos nuestro certificado:

make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /RUTA/NOMBRE.crt

Tras lo cual modificamos el fichero:

/etc/apache2/sites-available/default-ssl

Para que SSLCertificateFile y SSLCertificateKeyFile apunten a los ficheros creados en el paso anterior.

Reiniciamos apache:

/etc/init.d/apache2 restart

Y listo!

18/3/09

Edición de video

Cinelerra es un completo editor de video. En Taringa podemos ver como instalarlo en ubuntu.

14/3/09

Crear etiquetas cd/dvd

gLabels es una práctica aplicación para imprimir todo tipo de etiquetas, con plantillas para un montón de marcas de papel adhesivo (en ubuntu disponible a través del gestor de paquetes).

7/2/09

Montar partición FAT en el arranque

Para montar una partición fat en el arranque, añadimos al /etc/fstab una linea como esta:

/dev/PARTICION /media/DIRECTORIO vfat auto,quiet,uid=1000,gid=1000,fmask=177,dmask=077,utf8=true 0 0

Más información aquí.

3/2/09

X Windows en MS Windows

Hemos visto como ejecutar aplicaciones X Windows a través de una conexión ssh.

¿Y si conectamos desde un sistema MS Windows, a través de putty?

¡También podemos ejecutar aplicaciones gráficas con Xming, el servidor de X Windows para MS Windows!

Además también se puede ejecutar de manera portable desde un usb.

Se puede descargar desde aquí.

Túneles ssh

En este ejemplo, vamos a conectarnos por ssh al equipo 99.99.99.99 por el puerto 9999 y como usuario "bender" y redirigiremos el puerto 5900 (el puerto por defecto para vnc) del equipo de la red remota con ip 192.168.0.99 al puerto 1111 de nuestra máquina:

ssh -p 9999 -P -L 1111:192.168.0.99:5900 bender@99.99.99.99

Como resultado, si tenemos el vnc server trabajando en 192.168.0.99, podríamos acceder a él por el puerto forwadeado:

127.0.0.1:1111

Mucha más información aquí.

ssh

Para conectarnos a otra máquina por ssh:

ssh -p puerto usuario@ip

Si queremos copiar un fichero:

scp -P puerto fichero usuario@ip:directorio

Si queremos ejecutar aplicaciones gráficas añadimos el parámetro -X:

ssh -X -p puerto usuario@ip

En caso de querer ejecutar un navegador por este método, es recomendable usar epiphany, pues es mucho más liviano que otros.

17/1/09

Autocompletado en el historial de comandos

Si pulsamos CTRL + R en la línea de comandos del terminal, y tecleamos parte de un comando, conforme vayamos escribiendo irá buscando en el historial de comandos ejecutados el que más se le parezca, si volvemos a pulsarlo buscará el anterior. ¡Muy útil!
Otros atajos de teclado.