Uso de proxy en Linux

Uno de los problemas que nos encontramos al utilizar máquinas con Linux en entornos corporativos es la restricción de acceso a Internet. Muchas compañías disponen de un proxy de navegación que limita y controla donde pueden acceder los usuarios. En Linux disponemos diferentes formas de configurarlo, muchas veces no es trivial y dependiendo de si el proxy requiere autenticación o no, puede llevar mas de un quebradero de cabeza.

A continuación comentaré los diferentes casos que me he ido encontrando:
  • Uso del proxy desde la línea de comandos:
    • En la línea de comandos hay que configurar las variables de entorno que se utiliza para definir el proxy:
export http_proxy=»http://X.X.X.X:8080″
export https_proxy=»http://X.X.X.X:8080″
export ftp_proxy=»http://X.X.X.X:8080″
    • Para hacer el cambio permanente habría que editar el fichero del perfil para cargarlo al iniciar la shell (.bashrc para bash)
    • Si el proxy requiere autenticación, se puede especificar el usuario o el usuario y password de la siguiente manera:
    • Si no se configura el usuario y password se puede pasar como parámetro del wget, por ejemplo:
julian@ubuntu:~$ wget –proxy-user=usuario –proxy-password=password http://wwww.blabla.com/index.html
  • Uso del proxy para el gestor de paquetes de Ubuntu (apt, synaptic, software center):
    • Crear el fichero, si no existe, /etc/apt/apt.conf y añadir el siguiente contenido:

      Acquire::http::proxy «http://usuario:password@X.X.X.X:8080/»; 
      Acquire::ftp::proxy «ftp://usuario:password@X.X.X.X:8080/»; 
      Acquire::https::proxy «https://usuario:password@X.X.X.X:8080/»;
      Acquire::socks::proxy «socks://usuario:password@X.X.X.X:8080/»;
  • Uso del proxy para el gestor de paquetes de Red Hat (y derivados):
    • Añadir en el fichero de configuración de yum los parámetros del proxy (/etc/yum.conf):

      proxy=http://X.X.X.X:8080 proxy_username=usuario proxy_password=password
  • Uso del proxy en el escritorio de ubuntu:
    • Desde la llegada de Unity ha cambiado un poco la configuración del proxy. Se configura en «System Settings» y ahí en Network. En el panel de la izquierda aparece la opción de configurar el proxy. Ahí para cada protocolo se debe especificar el servidor y el puerto a utilizar. El problema viene a la hora de utilizar autenticación, para eso deberemos configurarlo mediante el dconf-editor. Si no lo tenemos instalado se deberá instalar el paquete dconf-tools (sudo apt-get install dconf-tools).
Una vez abierto el dconf-editor iremos a la rama system->proxy. En esa rama general podremos configurar las excepciones para las que no utilizar el proxy. En la rama system->proxy->http podremos configurar el usuario y password de nuestro proxy:

Nota: En caso de que el password contenga algún carácter especial como una @ se deberá sustituir por el caracter ASCII en los ficheros de configuración (a excepción del de Yum, que se puede escribir sin modificaciones). Por ejemplo:
p@ssword pasaría a ser p%40ssword
Anuncio publicitario

Agrandar disco en VirtualBox OSE

Agrandar un disco en VirtualBox OSE no es tan trivial como en otras plataformas de virtualización como VMware ESX. No existe la opción de agrandar un disco directamente pero siempre existen formas alternativas de clonado. El método que presento a continuación lo he encontrado en el siguiente link. Básicamente se trata de crear un disco nuevo de mayor capacidad, crear una estructura igual al disco original y hacer una copia palabra a palabra de un disco a otro. Una vez tengamos la copia hacer que el nuevo disco sea bootable y eliminar el original.

Para crear un nuevo disco en VirtualBox iremos al «Virtual Media Manager» y seleccionaremos un nuevo disco. A continuación aparecerá un wizard donde elegiremos el tipo de disco, su capacidad y dónde estará almacenado:



A continuación añadimos el nuevo disco a nuestra máquina virtual y arrancamos con un CD Live de Linux que incluya el programa de edición de particiones Gparted (Ubuntu por ejemplo).
Una vez arrancado abrimos un terminal y mostraremos la tabla de particiones de del disco original. Para ello utilizaremos el comando fdisk sobre el disco /dev/sda. Deberemos anotar el último cilindro de la partición y el tipo de sistema de ficheros:

A continuación pasamos a particionar el nuevo disco. También con fdisk crearemos una nueva partición primaria, con el mismo tamaño en cilindros y el mismo sistema de ficheros:


Certificamos que el particionado del disco ha quedado igual que el disco original:

Escribimos los cambios en el disco:

Una vez tengamos los dos discos con el mismo particionado haremos una copia byte a byte del disco original al nuevo disco con el comando dd:
Con el programa gparted, en Ubuntu en el menu Sistema –> Administración –> Administrador de Particionas, aumentaremos el tamaño de la partición del nuevo disco. Para ello lo seleccionaremos y veremos que hay espacio sin asignar. Seleccionaremos la partición activa y con el boton resize la aumentaremos. Una vez configurado deberemos aplicar los cambios:


Los cambios en los discos ya están realizados, con lo que se puede reiniciar la máquina virtual y arrancar con el sistema operativo que teníamos originalmente instalado. Si se trata de windows iremos al administrador de discos para marcar el nuevo disco como activo:
El último paso será apagar la máquina virtual y eliminar el disco original.

Instalación de la última versión de aMule

Como es conocido, en los repositorios de Ubuntu existe una gran cantidad de paquetes y programas, pero muchas veces no están en la última versión. Es el caso de aMule, del que salió una versión este mes y del cual no se ha actualizado automáticamente.

En launchpad podemos encontrar los repositorios para la última versión. Accediendo a la página principal de launchpad y buscando por aMule aparece la página correspondiente al programa. Desplegamos el link «Technical details about this PPA» y alli aparcerá la entrada que debemos añadir al archivo /etc/apt/sources.lst (o a través de la herramienta gráfica):

En la captura anterior aparece también la clave del repositorio. Una vez añadida la fuente al fichero se deberá importar la clave y actualizar la lista de paquetes del sistema:

julian@ubuntu:~$ sudo apt-key adv –keyserver keyserver.ubuntu.com –recv-keys 4B2C459E
Executing: gpg –ignore-time-conflict –no-options –no-default-keyring –secret-keyring /etc/apt/secring.gpg –trustdb-name /etc/apt/trustdb.gpg –keyring /etc/apt/trusted.gpg –keyserver keyserver.ubuntu.com –recv-keys 4B2C459E
gpg: solicitando clave 4B2C459E de hkp servidor keyserver.ubuntu.com
gpg: clave 4B2C459E: clave pública «Launchpad PPA for aMule stable releases» importada
gpg: Cantidad total procesada: 1
gpg: importadas: 1 (RSA: 1)
julian@ubuntu:~$ sudo apt-get update

A continuación deberemos desinstalar la versión de aMule que tengamos de los repositorios oficiales de Ubuntu ya que si no no detecta la nueva versión y nos devuelve un error como el siguiente al actualizar el sistema:

Los siguientes paquetes se han retenido:
amule amule-common amule-daemon

Al desinstalar no se pierde nada de la configuración de aMule. No obstante es posible hacer un backup del directorio $HOME/.aMule/ Para instalar el programa se puede utilizar de nuevo apt-get para instalarlo, esta vez desde los nuevos repositorios:

julian@ubuntu:~$ sudo apt-get remove amule amule-common amule-daemon
Leyendo lista de paquetes… Hecho
Creando árbol de dependencias
Leyendo la información de estado… Hecho
Se instalaron de forma automática los siguientes paquetes y ya no son necesarios.
libupnp2
Utilice «apt-get autoremove» para eliminarlos.
Los siguientes paquetes se ELIMINARÁN:
amule amule-common amule-daemon
0 actualizados, 0 se instalarán, 3 para eliminar y 0 no actualizados.
Se liberarán 13,6MB después de desempaquetar.

julian@ubuntu:~$ sudo apt-get install amule amule-common amule-daemon
Leyendo lista de paquetes… Hecho
Creando árbol de dependencias
Leyendo la información de estado… Hecho
Se instalarán los siguientes paquetes extras:
libupnp3
Los siguientes paquetes se ELIMINARÁN:
libupnp2
Se instalarán los siguientes paquetes NUEVOS:
amule amule-common amule-daemon libupnp3
0 actualizados, 4 se instalarán, 1 para eliminar y 0 no actualizados.
Necesito descargar 6948kB de archivos.
Se utilizarán 21,1MB de espacio de disco adicional después de desempaquetar.
¿Desea continuar [S/n]? s
Des:1 http://ppa.launchpad.net hardy/main amule-common 2.2.6-0ubuntu1~hardy1 [2417kB]
Des:2 http://ppa.launchpad.net hardy/main libupnp3 1:1.6.6-3ubuntu1~ppa2 [92,0kB]
Des:3 http://ppa.launchpad.net hardy/main amule 2.2.6-0ubuntu1~hardy1 [2531kB]
Des:4 http://ppa.launchpad.net hardy/main amule-daemon 2.2.6-0ubuntu1~hardy1 [1908kB]

Buscar fichero creado entre dos fechas en linux

Interesante artículo publicado en DiarioLinux donde se explica cómo encontrar un fichero modificado entre dos fechas. Para ello se utiliza el comando touch para crear dos ficheros modificándole la fecha de creación con el parámetro «-d».


Despues con el comando find se buscarán ficheros mas nuevos que el primer fichero pero que sean mas antiguos que el segundo (para ello utiliza el símbolo de negación ! escapado aunque también podría haber utilizado -not). El ejemplo que utilizan en DiarioLinux es el siguiente:

julian@ubuntu:~$ $ touch -d «15 sep 2008» /tmp/begin
$ touch -d «30 sep 2008» /tmp/end
$ find . -newer /tmp/begin -a \! -newer /tmp/end

Creación de ISOs y uso de las mismas en Linux

Si queremos crear una imagen de un CD en GNU/Linux es tan sencillo como montarlo y utilizar el comando dd. Este comando copia bloque a bloque desde la entrada estándar a la salida estándar por defecto. Se pueden especificar la entrada con el parámetro «if=» y la salida con el comando «of=». Por defecto el tamaño del bloque es 512 bytes y también se puede modificar. Para generar una ISO este tamaño de bloque es el adecuado.

Deberemos montar el CD en un punto de montaje y a continuación especificaremos como entrada el dispositivo «cdrom» y como salida un fichero con extensión iso.

julian@ubuntu:~$ mount /media/cdrom0
julian@ubuntu:~$ dd if=/dev/cdrom of=/tmp/imagen.iso
dd: reading `/dev/cdrom’: Input/output error
1220968+0 records in
1220968+0 records out
625135616 bytes (625 MB) copied, 251.2 s, 2.5 MB/s

Una vez tengamos nuestra ISO podemos montarla en un punto de montaje, como si fuera un dispositivo mas. Para ello deberemos tener activo el módulo loop en el kernel (por defecto, en la última versión de ubuntu ya está activo). Para activarlo únicamente ejecutaremos el siguiente comando:

julian@ubuntu:~$ sudo modprobe loop

Comprobaremos que se ha cargado de la siguiente manera:
julian@ubuntu:~$ sudo modprobe -l loop
/lib/modules/2.6.27-14-generic/kernel/drivers/block/loop.ko

Para montarlo utilizaremos el comando mount, indicando que el tipo es el de CD (iso9660) y como opción loop.

julian@ubuntu:~$ sudo mount -t iso9660 -o loop /tmp/imagen.iso /mnt

Shutter, herramienta para realizar capturas de pantalla en Gnome

Shutter es una aplicación para realizar capturas de pantalla. Es muy útil y tiene multitud de funciones. Entre ellas destaca la de poder realizar capturas de una selección o poder editar las capturas que acabamos de realizar. La página principal del proyecto es:
http://shutter-project.org/

Se puede añadir el repositorio de Launchpad a los de nuestro Ubuntu. Para ello editaremos el archivo de fuentes:

julian@ubuntu:~$ sudo vi /etc/apt/sources.list

o accederemos a Orígenes del Software desde el menú Sistema>Administración. Si editamos el fichero añadiremos las siguientes líneas al final del fichero, si actualizamos desde Origenes del Software deberemos añadir las líneas como «Software de terceros»:

Si cambiamos de versión deberemos actualizar estas líenas. Para no equivocarnos podemos acceder a la página de Launchpad y alli conoceremos cual es la dirección correcta para nuestra distribución:

https://launchpad.net/~shutter/+archive/ppa

Una vez añadidas estas líneas se deberá añadir la clave del repositorio con el siguiente comando, donde la clave la encontraremos en el anterior enlace:

julian@ubuntu:~$ sudo apt-key adv –keyserver keyserver.ubuntu.com –recv-keys 009ED615
Executing: gpg –ignore-time-conflict –no-options –no-default-keyring –secret-keyring /etc/apt/secring.gpg –trustdb-name /etc/apt/trustdb.gpg –keyring /etc/apt/trusted.gpg –keyserver keyserver.ubuntu.com –recv-keys 009ED615
gpg: solicitando clave 009ED615 de hkp servidor keyserver.ubuntu.com
gpg: clave 009ED615: clave pública «Launchpad PPA for Shutter Team» importada
gpg: Cantidad total procesada: 1
gpg: importadas: 1 (RSA: 1)

Finalmente actualizaremos la lista de paquetes y podremos instalar la aplicación con los siguientes comandos:

julian@ubuntu:~$ sudo apt-get update
julian@ubuntu:~$ sudo apt-get install shutter

Cambio de formato de fechas en Ubuntu – GNU/Linux

En ocasiones podemos instalar alguna distribución GNU/Linux otro idioma. Esto afecta también a la forma en que se representan las fechas en los distintos programas o en el calendario de Gnome.


Para cambiarlo deberemos conocer que locales tenemos cargadas:

julian@ubuntu:~$ locale
LANG=en_US.UTF-8
Los formatos de las fechas vienen definidos en el path /usr/share/i18n/locales/ con lo que podremos editarlos (es recomendable hacer una copia antes de cambiar nada):
julian@ubuntu:~$ cd /usr/share/i18n/locales/
julian@ubuntu:~$ sudo cp en_US en_US.ori
[sudo] password for julian: julian@ubuntu:~$ sudo vi en_US

Concretamente, los campos que se deberán cambiar son:

first_weekday 2
d_t_fmt «»
d_fmt «»
t_fmt «»
date_fmt «»

El primer campo indica cual es el primer dia de la semana, indicando 2 ya que según el calendario anglosajon, la semana empieza el domingo. El resto de campos hacen referencia a caracteres en codigo ASCII y lo mas fácil y rápido es copiar los campos del fichero de locales que sabemos que la representación que utiliza es la que deseamos.
Finalmente, para cargar las locales se deberá ejecutar el siguiente comando y reiniciar la sesión de Gnome:
julian@ubuntu:~$ sudo locale-gen
[sudo] password for julian:
Generating locales…

en_AU.UTF-8… done
en_BW.UTF-8… done
en_CA.UTF-8… done
en_GB.UTF-8… done
en_NG.UTF-8… done
en_NZ.UTF-8… done
en_PH.UTF-8… done
en_SG.UTF-8… done
en_US.UTF-8… done
es_AR.UTF-8… up-to-date
es_ES.UTF-8… up-to-date
es_GT.UTF-8… up-to-date
es_US.UTF-8… up-to-date

Generation complete.