Quick perl script to test smtp auth

#!perl

use warnings;
use strict;

use Net::SMTP;

my $smtpserver = 'xxx.yyy.zzz.www';
my $smtpuser   = 'foo@bar.com';
my $fromemail  = 'bleh@bar.com';

my $smtp = Net::SMTP->new($smtpserver, Timeout => 10, Debug => 1);
die "Could not connect to server!\n" unless $smtp;

  $smtp->auth ( 'user', 'secret' ) or die "Could not authenticate $!";
  $smtp->mail($smtpuser);
  $smtp->to('somebody@bar.com');
  $smtp->data();
  $smtp->datasend("To: somebody\@bar.com\n");
  $smtp->datasend("From: $fromemail\n");
  $smtp->datasend("\n");
  $smtp->datasend("Body message\n");
  $smtp->dataend();
  $smtp->quit;

 

¿Estará decayendo el nivel técnico del usuario Linux en Latinoamérica?

El día de hoy alguien en un canal de irc me preguntaba como se instalaba software en una distribución X Linux. Nada del otro mundo, todos tenemos dudas. Luego me preguntaba ciertas opciones del software de instalación, luego acerca de como se actualizaba y luego porque no le funcionaba.

El usuario llevaba una semana preguntando lo mismo y me dijo que ya había leído la documentación varias veces. La documentación responde claramente a las preguntas que hacía.

Recuerdo que hace unos 6 años, en los canales de irc no se hacían ese tipo de preguntas dia y noche. Generalmente el que preguntaba ya había leído la documentación y en lugar de preguntar “cómo instalo” preguntaba si la forma en que había hecho el procedimiento era el correcto.

De hecho leer lo que pasaba en esos canales era interesante, ya que siempre se aprendía algo. Se aprendía sobre software, trucos en la línea de comandos, seguridad, etc.

Ahora realmente los canales en español son deprimentes. A menos que tengas un grupo de amigos en ese canal, no dan ganas de estar ahí. Ves usuarios preguntando lo obvio, y cuando le das un vínculo con la solución no desean leer o insultan diciendote elitista.

Lo mismo pasa en las listas y en muchos foros.

Menciono latinoamérica porque he estado presente en canales de irc en español de las principales distribuciones, pero con el tiempo he decidido ya no entrar.

También otra cosa que he notado es que la calidad del usuario ha disminuido asi como ha aumentado la popularidad de distribuciones como ubuntu, que sacrificando calidad intentan ofrecer interfaces que faciliten la vida del usuario.

Me imagino que este es el precio que hay que pagar al intentar hacer de Linux un sistema operativo más popular y menos técnico.

Instalando linux en un tejón

Este artículo es viejo, pero realmente muestra la creatividad de un linuxero, que al igual que muchos, desea instalar Linux en cualquier dispositivo.

http://www.strangehorizons.com/2004/20040405/badger.shtml

chroot y grsec

Tengo configurado un par de equipos con grsecurity activado en sus kernels, que consisten en una serie de parches que mejoran considerablemente la seguridad en el kernel y en términos generales, un sistema se puede configurar para que cada proceso tenga los privilegios justos (mínimos) necesarios para funcionar.

Para los interesados ocupo lo que se denomina “Gentoo Hardened” que facilita en gran medida la configuración de un kernel de esa manera.

Pero volviendo al tema del post, yo ocupo chroots para efectos de pruebas de software y otras hierbas, y al intentar realizar un chmod, fallaba silenciosamente y al revisar dmesg me encontré con el siguiente mensaje:

grsec: From 192.168.xxx.yyy: denied chmod +s of /chroots/chroot-glibc213/var/tmp/portage/dev-libs/libgcrypt-1.4.6/work/libgcrypt-1.4.6/random by /chroots/chroot-glibc213/bin/tar[tar:24801] uid/euid:0/0 gid/egid:0/0, parent /chroots/chroot-glibc213/usr/lib/portage/bin/ebuild.sh[ebuild.sh:24792] uid/euid:0/0 gid/egid:0/0

Prácticamente grsec está negando la ejecución de chmod dentro de un chroot, como una de las múltiples medidas de seguridad que implementa. Como el kernel fue compilado con soporte de sysctl en grsec, se puede desactivar esta protección temporalmente ejecutando:

sysctl kernel.grsecurity.chroot_deny_chmod=0

Convirtiendo fecha Unix a fecha regular

Algunos logs de ciertos servicios solamente proveen fecha Unix, lo cual hace un poco difícil hacerse la idea de que fecha/hora exactamente se trata.

Pero la conversión en la consola es sumamente sencilla:

Convirtiendo fecha Unix a fecha regular:

$ date -d @1265312185

Convirtiendo una fecha específica a fecha Unix:

$ date –date “Thu Feb  4 13:36:25 CST 2010” +%s

Convirtiendo fecha actual a fecha unix:

$ date +%s

Quick linux script to check memory usage per program

A long time ago somebody shared me the following script to check memory usage per program.

$ ps aux  | awk '{print $6" "$11,$12,$13,$14}' | 
egrep -v "0.*\[.*\]" |
awk '{print $1/1024" MB --> "$2,$3,$4,$5}' | sort -g

Output is the similar to the following:
….
6.39062 Mb –> gnome-screensaver
6.85547 Mb –> /usr/libexec/vino-server –sm-disable
7.22656 Mb –> /usr/libexec/multiload-applet-2 –oaf-activate-iid=OAFIID:GNOME_MultiLoadApplet_Factory –oaf-ior-fd=18
7.27344 Mb –> /usr/libexec/gnome-settings-daemon
7.98438 Mb –> C:\windows\system32\explorer.exe /desktop
8.35547 Mb –> /usr/libexec/gnome-volume-manager –sm-disable
10.8438 Mb –> metacity
11.1094 Mb –> c:\Archivos de programa\Alcatel\A4980\Alcatel 4980\a4980.exe
14.7305 Mb –> vinagre
20.1914 Mb –> gnome-terminal
20.6758 Mb –> planner
21.2227 Mb –> c:\Archivos de programa\Alcatel\A4980\Alcatel 4980\a4980.exe
24.2578 Mb –> gnome-panel
25.5977 Mb –> nautilus
31.6602 Mb –> claws-mail
91.875 Mb –> gedit
109.188 Mb –> /usr/bin/X :0 -audit 0
144.84 Mb –> /usr/bin/firefox

 

666 Días funcionando

Haciendo una revisión rutinaria a un servidor, me encuentro con lo siguiente:

[root@proxy ~]# uptime
09:19:19 up 666 days, 35 min, 3 users, load average: 0.05, 0.01, 0.00

Aparte de el número 666 que causa un poco de morbo, cabe notar el hecho que ha estado casi dos años funcionando sin necesidad de reiniciar.

Cuánto es el mayor tiempo que han tenido uptime una máquina Linux ??

PD: Linux Rocks

Ascii Art en errores de kernel GNU/Linux @ Sparc

Jugando con una UltraSparc II en GNU/Linux me dio un curioso crash dump:

Oct 15 12:03:54 quetzalcoatl [  253.145378] spitfire_data_access_exception:
SFSR[0000000000801009] SFAR[fffff800be90bf88], going.
Oct 15 12:03:54 quetzalcoatl [  253.145472]               \|/ ____ \|/
Oct 15 12:03:54 quetzalcoatl [  253.145495]               "@'/ .. \`@"
Oct 15 12:03:54 quetzalcoatl [  253.145517]               /_| \__/ |_\
Oct 15 12:03:54 quetzalcoatl [  253.145540]                  \__U_/
Oct 15 12:03:54 quetzalcoatl [  253.145636] emerge(3364): Dax [#1]
Oct 15 12:03:54 quetzalcoatl [  253.145687] TSTATE: 0000004411009606 TPC:
00000000004c3dd0 TNPC: 00000000004c3dd4 Y: 00000000    Not tainted

La imagen de una persona sacandome la lengua en un crash dump no es tan divertida como pensó el desarrollador del kernel…

Curioso bug en avahi 0.6.22

Una brevísima introducción a avahi

Avahi es una implementación del concepto “exploración de la red para descubrir servicios”, en otras palabras del estándar Zeroconf , utilizado por ejemplo para descubrir impresoras de red, compartidos de win2, servidores ftp, hosts, mas que todo en LANs.

Avahi no es exclusivo de GNU/Linux, sino que hay implementaciones en otros sistemas operativos, por ejemplo el famoso Bonjour de OS X.

El bug

Recientemente revisando rutinariamente los logs me fijé en lo siguiente:

Sep 24 08:38:57 phoenix ath_pci: wifi0: Atheros 5424/2424: mem=0xf2000000, irq=16
Sep 24 14:38:57 phoenix avahi-daemon[11671]: Joining mDNS multicast group on interface wlan0.IPv4 with address 192.168.11.70.
Sep 24 14:38:57 phoenix avahi-daemon[11671]: New relevant interface wlan0.IPv4 for mDNS.
Sep 24 14:38:57 phoenix avahi-daemon[11671]: Registering new address record for 192.168.11.70 on wlan0.IPv4.
Sep 24 08:41:48 phoenix acpid: received event “ac_adapter ACAD 00000080 00000001”
Sep 24 08:41:48 phoenix acpid: notifying client 6097[106:1009]

Como se puede notar la fecha reportada en el syslog en las líneas correspondientes a avahi se muestran incorrectamente e investigando esto se debe a que avahi corre en un chroot y no maneja bien la configuración de zonas horarias; la solución para que se muestre correctamente es copiar el archivo tz en el directorio /etc/avahi

# mkdir /etc/avahi/etc

#cp /etc/localtime /etc/avahi/etc/

Reiniciamos el servicio y listo.

Hay un ticket sobre lo anterior en http://avahi.org/ticket/221

Leyendo Imágenes de nero .nrg en GNU/Linux

Cuando nuestros colegas windozeros nos envían imágenes de CD es muy común que utilicen el software Nero para crearlas el cual genera archivos con extensión .nrg que no es legible directamente por el comando mount o los comandos para copia de CDs.

Pero existe un sencillo programa que permite convertir imágenes .nrg a .iso , la instalación es tan sencilla como:

Gentoo # emerge app-cdr/nrg2iso

Debian # apt-get install nrg2iso

Su utilización es igual de sencilla:

$ nrg2iso archivo.nrg archivo.iso

Y nos mostrará la siguiente salida:

|=========================>[100%]
archivo.iso written : 731492508 bytes

Listo!, podemos montar la imagen o quemarla.

Powered by WordPress with GimpStyle Theme design by Horacio Bella.
Entries and comments feeds. Valid XHTML and CSS.