ReceTasEusk61-70

De GhostWiki
Saltar a: navegación, buscar

HomePage | Zer da e-ghost? | Proiektuak | GhostWiki | Erremintak | Dokumentuak | Errezetak | Ghosteka | Ikastaroak | Estabaidak | Bilerak | Estekak | Prentsa | Kontaktua | Umorea | GhostLog | Ikasgaien Alternatibak | Gazteleraz


Amamaren errezetak (61tik a 70ra)

Atal honetan mundu guztiak dakizkien baina inork gogoratzen ez dituen ohiko trikimailu horiek ikusi ahal izango ditugu. Errezeta bat gehitu nahi baduzu, informa zaitez gure posta zerrendan nola egiten den. Nola egiten den jadanik jakinez gero, gehitu ezazu errezeta berria hemen.

Errezetak, 61etik 70era


#67._Errezeta

'Izenburua:' Renovar a mano el certificado SSL autofirmado de Apache.

'Egilea:' Pablo Garaizar, del debian-apache-ssl-howto.

Es fácil, siguiendo estos pasos:

1) Creamos una nueva clave para el certificado y la protegemos:

cd /etc/apache-ssl
openssl genrsa -out txipinet.com.key 1024
chmod 600 txipinet.com.key

2) Creamos el certificado, indicando el número de días en el que expirará (3650 = 10 años):

openssl req -new -key txipinet.com.key -out txipinet.com.csr
openssl x509 -req -days 3650 -in txipinet.com.csr -signkey txipinet.com.key -out  txipinet.com.crt

3) Cambiamos el certificado antiguo por el nuevo, y reiniciamos apache:

mv apache.pem apache.pem.old
cp txipinet.com.key apache.pem
cat txipinet.com.crt >> apache.pem
chmod 600 apache.pem
/etc/init.d/apache-ssl restart

#66._Errezeta

'Izenburua:' Abrir una URL en una nueva pestaña de Mozilla Firefox, desde consola

'Egilea:' Alvaro Uría

Si queremos abrir desde consola una URL , y más concretamente en una pestaña del Mozilla Firefox que tenemos ya abierto, ejecutaremos:

        ~$ firefox -remote "openURL("http://www.e-ghost.deusto.es/",new-tab)"

Esta opción ( new-tab ) está disponible en Firefox a partir de las versiones 1.0.1 y 1.1

Más información

Un ejemplo rápido: abriendo todas las URLs que tenemos en los bookmarks.

    #====/bin/sh====
    dir=`ls ~/.mozilla/firefox/default.*/bookmarks.html`
    for a in $(lynx -dump file://$dir | sed -e 's/ +[[[0-9]]+. (http.+)/1/' | grep ^http)
     do
       firefox -remote "openURL("$a",new-tab)" || echo $a FALLÓ
     done

#65._Errezeta

'Izenburua:' Listar un directorio ordenado por tamaño

'Egilea:' Alvaro Uría

Muchos de nosotros conocemos el comando sort, pero al igual que otros comandos como cut, tr, grep, sed, etc. no lo explotamos demasiado. Justo justo, lo utilizamos para ordenadar por la primera columna. Pues bien, para ordenar por tamaño de ficheros, utilizaremos el siguiente comando:

      ~$ ls -l | sort +4n

Tenemos que recordar que se empieza a contar por la columna 0 (la primera de todas). Así que el tamaño de fichero, que corresponde con la 5ª columna, será la número 4.

Si queremos, además, decirle un segundo orden a seguir, por ejemplo, el nombre de los ficheros, haremos,

      ~$ ls -l | sort +4n +7

Puesto que la 8ª columna contiene los nombres de ficheros, y se númera como 7.

Si queremos ordenarlo de mayor a menor tamaño, tendremos que invertir la salida del resultado, y por tanto, utilizaremos el flag -r aplicado a los comandos anteriores. Es decir,

      ~$ ls -l | sort +4nr



#64._Errezeta

'Izenburua:' Como guardar un flujo multimedia (streaming) en disco

'Egilea:' Pablo Garaizar Sagarminaga

Cuando queremos grabarnos alguna charla/programa/video del neng que solo emiten en streaming o a través de un applet que nos redirige a una mms://recurso, podemos hacerlo así:

 mplayer mms://server/video.wmv -dumpfile video.raw -dumpstream

#63._Errezeta

'Izenburua:' Instalar Java en Ubuntu (Debian)

'Egilea:' Eagle

Objetivo: Lograr una satisfactoria instalación de Java(TM) 2 SDK, que incluye la Virtual Machine.

'Como y donde lograr los programas necesarios:'

  • Visitaremos http://java.sun.com/downloads/ y seleccionaremos Java 2 Platform, Standard Edition (J2SE) y una vez en esa página la opción J2SE 1.4.2 (o superior si la hubiera). Si hemos seguido bien los pasos llegaremos a una nueva página donde elegiremos el enlace Download J2SE SDK for Other Platforms que nos llevará a una última página donde, ahora ya sí, podremos descargar el programa (previo paso de aceptar la licencia, uf...). Elegiremos self-extracting file (j2sdk-142_07-linux-i586.bin, 34.72 MB) o superior si lo hubiera.
  • Instalaremos los paquetes java-common y equivs. Podemos usar el Synaptic Package Manager que nos simplificará notablemente nuestra tarea. Es imprescindible que hayamos habilitado todos los servidores de apt-get. . Esto se realiza modificando el archivo /etc/apt/sources.list cuyo contenido es (en Ubuntu):

deb cdrom:Ubuntu 4.10 Warty Warthog - Preview i386 Binary-1 (20041020)/ unstable main restricted deb http://archive.ubuntu.com/ubuntu warty main restricted deb-src http://archive.ubuntu.com/ubuntu warty main restricted ## Uncomment the following two lines to add software from the 'universe' ## repository. ## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu ## team, and may not be under a free licence. Please satisfy yourself as to ## your rights to use the software. Also, please note that software in ## universe WILL NOT receive any review or updates from the Ubuntu security ## team. ##deb http://archive.ubuntu.com/ubuntu warty universe ##deb-src http://archive.ubuntu.com/ubuntu warty universe deb http://security.ubuntu.com/ubuntu warty-security main restricted deb-src http://security.ubuntu.com/ubuntu warty-security main restricted Hemos de modificar las líneas ##deb http://archive.ubuntu.com/ubuntu warty universe ##deb-src http://archive.ubuntu.com/ubuntu warty universe Dejándolas tal que así deb http://archive.ubuntu.com/ubuntu warty universe deb-src http://archive.ubuntu.com/ubuntu warty universe Guardamos los cambios y listos. Una vez instalado equivs podéis dejar el archivo como estaba.

'Proceso de instalación:'

  • Creamos una carpeta temporal en /var/install/java
  • Copiamos el archivo j2sdk-142_07-linux-i586.bin (o superior) a ésta carpeta
  • Le damos atributos de ejecutable con:

chmod a+x j2sdk-142_07-linux-i586.bin

  • Ejecutamos el programa:

./j2sdk-142_07-linux-i586.bin

  • Leemos (karkarkar) la licencia y la aceptamos. Esto creará una carpeta llamada j2sdk1.4.2_07.
  • -Moveremos esta carpeta a /usr/local/lib
  • Crearemos un link que nos permitirá acceder más fácilmente:

ln -s /usr/local/lib/j2sdk1.4.2_07 /usr/local/lib/jdk

Hasta aquí “fácil”, ahora llega la madre del cordero:

  • Como Ubuntu (Debian) no tiene instalador de paquetes para Sun's J2SE tenemos que crear unos paquetes “engañosos” para que el sistema reconozca Java.
  • Creamos otra carpeta temporal:

cd /var/install/java mkdir pkg

  • Copiaremos unos archivos que se instalaron junto a java-common para crear los paquetes mencionados anteriormente:

cp /usr/share/doc/java-common/dummy-packages/*.control /var/install/java/pkg

  • Utilizamos equivs para la creación:

equivs-build java1-runtime-dummy.control equivs-build java2-compiler-dummy.control equivs-build java2-runtime-dummy.control equivs-build java-compiler-dummy.control equivs-build java-virtual-machine-dummy.control

Nótese que los nombres pueden variar ligeramente de una instalación a otra (consultar los archivos copiados a var/install/java/pkg). También es importante que observemos las indicaciones del sistema ya que podrían surgir errores debido a que el orden citado arriba no sea el adecuado a su máquina (contratiempo menor y de fácil solución con el método prueba error).

  • Instalamos uno a uno todos los paquetes creados con el comando:

dpkg -i nombrePaqueteCreado.deb

Ya casi hemos terminado, sólo nos falta hacer los enlaces para que todo funcione:

  • Ejecutar los siguientes comandos:

update-alternatives --verbose --install /usr/bin/java java /usr/local/lib/jdk/bin/java 500 update-alternatives --verbose --install --slave /usr/share/man/man1/java.1 java.1 /usr/local/lib/jdk/man/man1/java.1

  • Verificamos todo con la orden:

java -version Y el sistema nos contestará con algo similar a: java version "1.4.2_07" Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_07-b05) Java HotSpot(TM) Client VM (build 1.4.2_07-b05, mixed mode)

  • Ahora podemos eliminar la carpeta temporal que usamos para la instalación (/var/install/java)

On egin diezaizuela========

'Revisión por Maski:'

java-package es un paquete de Debian que sirve para crear un paquete .deb a partir de los binarios de instalación. Basicamente sigue los pasos de Eagle pero de forma automática. Funciona con los Java Runtime Environments (JRE) y Java Development Kits (JDK) siguientes:

  • Sun Microsystems(TM) 1.4 y 1.5 Standard Edition
  • IBM(TM) 1.3 y 1.4 Standard Edition
  • Blackdown Java-Linux 1.3 y 1.4 Standard Edition

Por tanto la instalación podría simplificarse a lo siguiente:

  • Instalar el paquete java-package y sus dependencias
# apt-get install java-package
  • Descargar el binario autoextraíble para Linux de la web de Sun (http://java.sun.com/downloads/), por ejemplo jdk-150_03-linux-i586.bin
  • Ejecutar como usuario normal lo siguiente:
$ fakeroot make-jpkg jdk-150_03-linux-i586.bin
  • Instalar el paquete .deb que se crea:
# dpkg -i sun-j2sdk1.51.5.0+update03i386.deb

Eso es todo. Si alguien tiene que hacer alguna corrección, no tiene más que editar el wiki.


#62._Errezeta

'Izenburua:' Configurar una tarjeta de red Wi-fi Intel(R)/Wireless 2100 (muchos portátiles centrino)

'Egilea:' Cymo

Esta tarjeta es la que tienen la mayoría de los centrino antiguos (primera generación) y funcionan para 802.11b (11Mbps) Mi portátil en concreto es un Compaq presario x1005 (por si a alguien le sirve, que no es para fardar).

Intel no ha liberado las especificaciones hard de la tarjeta y "dicen" estar desarrollando un driver... Je je je.

Estos pasos son los que he seguido bajo Debian 3 testing (es decir, sarge), con kernel 2.6.3. El driver está hecho por voluntarios, se llama IPW2100, y no está soportado dentro del kernel (al menos, no que yo sepa).


'0ºRequisitos:'

  • Kernel 2.6 La serie 2.4 ya no están soportados por el driver (versiones antiguas, sí. En todo caso, buscan voluntarios para hacer backports : )
  • Saber recompilar el kernel (y querer hacerlo).

'1º Instalar las fuentes del driver y el hotplug:'

# apt-get install ipw2100-source hotplug

Esto además instalará otro paquete, module-assistant, que nos vendrá bien luego. También hay que instalar el hotplug que necesitaremos luego.

Si no tenemos debian, o no queremos usar apt-get ¿? podemos descargar el driver desde la página:http://ipw2100.sourceforge.net/

'2º Comprobaciones de campo' Es necesario tener sysfs montado para que esto funcione. Puedes comprobarlo

# cat /etc/fstab | grep sysfs

Deberías tener una línea como esta:

none            /sys            sysfs   defaults                0       0


'3º Recompilar el kernel'

Hay una receta (la número 13) que explica como hacerlo. Debería cambiarla porque los núcleos 2.6 son un poco distintos, pero... :P

Quizá no tengas que recompilar TODO el kernel si ya tenías las opciones que comentaremos activadas o, al menos las que no tienes, las puedes poner como módulos. Eso es cosa tuya. Yo lo pongo "para todo el mundo".

Recompilaremos el kernel, pero asegurándonos de activar todo esto primero:

Hay que activar el soporte para módulos. Existe una forma de empotrar el código del módulo dentro del kernel, de modo que se configure como una opción más del mismo. Yo no me he metido en esos fregados, si alguien se anima, puede mirar el documento en el que se basa esta receta, que allí lo mencionan: http://ipw2100.sourceforge.net/INSTALL

Para activar el soporte para módulos:

Loadable module support -->
 Enable loadable module support

Hay que activar el soporte para wireless. En mi kernel está en:

Device Drivers-->
   Networking Support
     Wireless Lan (non-hamradio) -->
      Wireless LAN drivers (non-hamradio) & Wireless Extensions

Si eres friki, puedes comprobarlo/modificarlo en el fichero .config, el "tag" es: CONFIGNETRADIO=y

Deberíamos activar la api criptográfica, puesto que los drivers querrán tirar de ella:

Cryptographic Options -->
  ARC4 cipher algorithm (CONFIGCRYPTOARC4)
Library routines -->
  CRC32 (CONFIG_CRC32)

Si además queremos WPA:

Cryptographic Options -->
 Michael MIC (CONFIGCRYPTOMICHAEL_MIC)
 AES (CONFIGCRYPTOAES_586)

Los drivers de la tarjeta necesitan cargar en la misma, el firmware o código. Tranquilo, que no vas a romper nada, esto es lo "normal": se cargan en la tarjeta siempre. Pero al apagar el ordenador, se va dicho firmware. No es permanente. Luego diremos como se hace esto, de momento... hay que añadir soporte para hotplug en el kernel:

Device Drivers ->
 Generic Driver Options ->
   Hotplug firmware loading support

Vale, ahora toca recompilar el kernel.

/usr/src/linux# make

Probablemente quieras poner el nuevo kernel, con algo como esto (depende de si usas lilo o grub, o de donde guardes el kernel, etc...)

/usr/src/linux# cp arch/i386/boot/bzImage /vmlinuz
lilo

'4º: Bajar el firmware y configurarlo '

Lo tenéis en: http://ipw2100.sourceforge.net/firmware.php Debéis tener una tarjeta Intel bla bla bla para poder descargarlo, y aceptar el acuerdo de licencia y bla bla bla. Si has llegado hasta aqui, podrás soportar una restricción más :(

Vale, con eso os bajáis un ficherito muy majo, algo como "ipw2100-fw-1.3.tgz". Hay que descomprimirlo en el directorio de firmware de hotplug (acordaos que hablamos de él antes). La ruta será normalmente esta:

/usr/lib/hotplug/firmware/

Para corroborarlo, podéis mirar el fichero

#less /etc/hotplug/firmware.agent

Cuando lo tengas claro:

/usr/lib/hotplug/firmware# tar zxvfp RUTAipw2100-fw-1.3.tgz

Donde "RUTA" es la ruta donde está el fichero de marras que os habéis descargado.

'5º: Compilar e instalar el nuevo módulo '

# cd /usr/src
usr/src# tar zxvfp ipw2100-source.tar.gz

Nota: z = descomprimir gzip x = extraer v = verbose f = de un fichero p = permisos

Ahora la compilación en si:

usr/src# module-assistant ipw2100

Este mágico programa compila e instala el módulo, el solito.

Nota: a mi me dio un error al compilar la versión 1.0.5 que es la que traía Debian (fichero ipw2100.c, línea 183, algo de una constante string...). En la página antes comentada, se puede descargar la 1.1.0, que está marcada como "estable". Debian sid, ahora mismo, trae esa versión... :P

Para solucionar el problema de compilación hice lo siguiente:

'Solo si te da el mismo error que a mi :P '

/usr/src# mv ipw2100-source.tar.gz ipw2100-source.tar.gz.ceguera

Para que el module-assistant no me la liase Editar el fichero

/usr/modules/ipw2100/driver/ipw2100.c

Comentar la línea 183:

//MODULEVERSION(DRVVERSION);

Al parecer mi compilador no sabía que macro era MODULE_VERSION... ¿?

' Fin de como corregí el error que me dio'

'6º: Probar el driver: '

Crear las dependencias por si acaso

# depmod -a

'NOTA IMPORTANTE:' El nombre del dispositivo wireless no es wlan0, sino eth1 (suponiendo que ya tengas en eth0 la ethernet... :P)

Por ejemplo yo he añadido a /etc/network/interfaces

auto eth1
iface eth1 inet static
         address        192.168.2.101
         netmask        255.255.255.0
         broadcast      192.168.2.255
         gateway        192.168.2.1


Reiniciar (por el tema del kernel, y tal)

# reboot

En principio se habrá cargado solito, si no:

# modprobe ipw2100

Probar con un ping

# ping 192.168.2.1 (o lo que sea)

#61._Errezeta

'Izenburua:' Crear una lista de correo con una cuenta POP o IMAP.

'Egilea:' Rubén Gómez (Yuki)

Llevaba bastante tiempo queriendo hacer una lista de correo para los amigos, ya que si queriamos mandar un mail a tod@s teníamos que escribir todas las cuentas, no olvidarnos de nadie y era un poco lio. Por lo que decidí investigar en cómo hacer una lista de correo facil y sencilla XD

'Nota:'

  • Yo he usado los paquetes de Debian Testing, por lo que si los compilais tendreis que mirar bien el configure.
  • A partir de ahora "yuki" será el nombre de usuario que ejecutará todo esto.

'Nota para gmail:'

Si usamos gmail tendremos que configurar la cuenta para que se pueda usar POP3 para coger los mails. Vamos a Settings -> Forwarding and POP -> Enable POP for all mail, y en "2. When messages are accessed with POP" ponemos "archive Gmail's copy" o "trash Gmail's copy" (la otra opción no vale).


'Qué necesitamos?'

  • Una cuenta de correo en algún servidor donde poder acceder por POP3 o IMAP (mis ejemplos serán con una cuenta de euskaltel y las tán conocidas gmail)
  • Exim : Servidor SMTP (An MTA (Mail Transport Agent))
  • Fetchmail : Para coger el correo del servidor. (SSL enabled POP3, APOP, IMAP mail gatherer/forwarder)
  • Fetchmail-ssl : Para que fetchmail use SSL.
  • Fetchmailconf : Para configurar fetchmail facilmente :D
  • Procmail : Para procesar los correos que nos llegan. (Versatile e-mail processor)

'Qué vamos a hacer?'

Voy a explicar por encima cómo funcionan los emails en GNU/Linux (se aceptan correcciones ;-) Cuando cogemos un mail desde una cuenta de POP3 con fetchmail se lo pasa generalmente a /usr/sbin/sendmail, que en nuestro caso es Exim, para que este lo deje en /var/mail/yuki. Antes de que los deje, es el momento en que aprovecharemos para filtrar los mails con el propio Exim (si, Exim tiene posibilidad de filtrar los mails :-o). Algunos los dejaremos en ~/Mails/guardar , y otros se pasarán a procmail. Los que se pasen a procmail serán distribuidos de nuevo. Aprobechando el filtro de Exim lo que hacemos es no tener que pasar todos los mails a Procmail, por lo que puede ser más rapido, y no complicarnos con las reglas de filtrado de Procmail.

'Empezamos: '

'1)'Empezaremos con la configuración del Exim. Como root editamos /etc/exim/exim.conf y cambiamos la variable qualify_domain para que sea de este estilo

qualify_domain = euskalnet.net

Con ello hacemos que los mails que salgan del ordenador lleven este dominio en vez de "yuki@hostname". (puede que haya otra manera de hacerlo, pero no lo sé :p)


'2)'Exim mira la configuración que tenemos en ~/.forward para ver qué tiene que hacer con los mails. Pondremos lo siguiente en este fichero:

# Exim filter
if error_message then finish endif
if $headerto: contains "micorreo@gmail.com"
then
  pipe "$home/.lista_correo.sh"
else
  save /home/yuki/Mails/guardar
 endif

Importante la primera linea "# Exim filter", que sirve para que Exim lo reconozca. Luego lo que hace es comprobar si el "To:" del mail contiene "micorreo@gmail.com". Si es así se ejecutará /home/yuki/.listacorreo.sh, y si no se guardará en /home/yuki/Mails/guardar.

'3)'~/.lista_correo.sh es un shell script que contiene

#====/bin/bash====
formail -i "Mail-Followup-To: micorreo@gmail.com" | formail -i "Reply-to: micorreo@gmail.com" | procmail ~/.procmail-mi_correo

Lo que hace es añadirle al mail que se le pase la cabecera "Mail-Followup-To" y "Reply-to", para que al responder el mail lo responda a la lista y no a la persona que lo ha mandado. Y despues se le pasará a procmail, que será ejecutado con el fichero de configuración ~/.procmail-mi_correo.

'4)'El fichero ~/.procmailrc-mi_correo contiene lo siguiente

:0c
==== merry@hobitton.com====
:0c
==== pippin@hobitton.com====
:0c
==== sam@hobitton.com====
:0
==== bilbo@hobitton.com====

Que lo que hace es mandar una copia del mail (por eso la 'c') a cada cuenta de correo que hemos puesto.

'5)'El fichero de configuración de fetchmail para que recoja los mails del servidor de correo. El fichero es ~/.fetchmailrc

set logfile "/home/yuki/.fetchmail.log" # fichero de log
set postmaster "yuki"
set daemon 300 #para que se compruebe el correo cada 5 minutos
#ejemplo para gmail
poll pop.gmail.com with proto POP3 port 995
   user 'mi_correo@gmail.com' there with password 'password' options fetchall ssl
#ejemplo para euskaltel
poll correo.euskaltel.es with proto IMAP
   user 'mi_correo' there with password 'password'

La opción "daemon" es para que se ejecute como demonio cada 5 minutos, y "postmaster" es para enviar un mail con los fallos al usuario especificado.

'6)'Y por último, ejecutamos fetchmail:

yuki@okinawa:~$ fetchmail