lunes, 6 de abril de 2009

Alternativas a Postfix: ssmtp

Habitualmente , no necesitamos configurar un servidor de correo en un sistema Linux de escritorio. La mayoría de los clientes de email gráficos(GUI), como por ejemplo Mozilla Thunderbird, soportan configuraciones IMAP y POP3 para cuentas de Gmail.Pero, ¿cómo envías un email por el típico /usr/bin/mail o por un shell script? Aplicaciones como Sendmail,Postfix o Exim pueden ser configurados como relayhost de Gmail, pero requieren un mayor tiempo de configuración.

Podemos usar Gmail como "smart host" para enviar todos los mensajes desde un sistema Linux/Unix de escritorio. Necesitas una aplicación simple llamada ssmtp, que acepta el envio de mensajes desde una entrada estándar a buzones de correo específicos desde la línea de comandos , que redirige el mensaje al MTA configurado como relayhost. Los mensajes fallidos se depositan en el fichero dead.letter, dentro directorio home del usuario que envia el mensaje.
Instalar ssmtp
En sistemas Fedora/RedHat/CentOS

[root@localhost] yum install ssmtp

En sistemas Debian GNU/Linux / Ubuntu

[root@localhost] apt-get update && apt-get install ssmtp

Configurar gmail como relayhost:
Editamos el fichero /etc/ssmtp/ssmtp.conf con el siguiente contenido

AuthUser = usuario@gmail.com
AuthPass = passwordgmail
FromLineOverride = YES
mailhub = smtp.gmail.com:587
UserSTARTTLS = YES

También debemos asegurarnos de deshabilitar Sendmail:
En sistemas Fedora/RedHat/CentOS

[root@localhost] service sendmail stop
[root@localhost] chkconfig sendmail stop
[root@localhost] mkdir /root/.backup
[root@localhost] mv /usr/sbin/sendmail /root/.backup
[root@localhost] ln -s /usr/local/ssmtp/sbin/ssmtp /usr/sbin/sendmail

En sistemas Debian GNU/Linux / Ubuntu

[root@localhost] /etc/init.d/sendmail stop
[root@localhost] update-rc.d -f sendmail remove
[root@localhost] mkdir /root/.backup
[root@localhost] mv /usr/sbin/sendmail /root/.backup
[root@localhost] ln -s /usr/local/ssmtp/sbin/ssmtp /usr/sbin/sendmail

Ahora ya podemos usar el comando mail o mailx para enviar mensajes, y probar la configuración con el siguiente ejemplo:

echo "Email Prueba" | mail -s "Probando 1,2,3" usuario@dominio.com

Nota acerca de ssmtp:
ssmtp funciona perfectamente para equipos de escritorio, pero no es un reemplazo a Sendmail, Postfix o Qmail.
Nota del traductor: Añadida la distinción entre Debian/Fedora a la hora de deshabilitar sendmail.El artículo original lo podéis encontrar aquí , escrito por Vivek Gite.


jueves, 2 de abril de 2009

Articulo Squid 2.6 Linux + DVD



Hace más de año que han publicado el artículo de Squid que escribí para Linux + DVD. Dejo la URL, por si interesa. La verdad es que ni me acordaba, pero posteo el enlace por nostalgía de otros tiempos que no fueron mejores, curioso, no?

Squid 2.6 en la PYME por Alberto Permuy Leal

miércoles, 1 de abril de 2009

Genial!

JRMora, genial , como casi siempre. Recomiendo encarecidamente visitar su web http://www.jrmora.com .

martes, 31 de marzo de 2009

Me interesa...

Preparando la ponencia de las VI Xornadas de Software Libre del Concello de Mugardos, que se celebrarán el próximo mes de Junio,he visto una serie de paquetes para Debian GNU/Linux que me interesan mucho. Algunos los conocía y otros, lo cierto es que no. El título de la charla, aún no definitivo(el título) será: Servidor Casero con GNU/Linux: reutilizando PCs con Software Libre. En mi breve camino por las charlas Linuxeras, está será la octava, y la tercera en relación a la temática. La primera fue "Squid: cacheando la red",la segunda "Postfix: Servidores de Correo en GNU/Linux". Es una responsabilidad que asumo y con la que disfruto. Me permite mostrar, desde mi ignorancia, conceptos que he ido aprendiendo y asimilando a lo largo de esto años, y de paso , profundizar en ciertos temas, a veces, olvidados.

Samba: ¿Qué decir que no se haya dicho ya? Recuerdo que no hace mucho, en un post, mencionaba a Andrew Tridgell, desarrollador de rsync y también de Samba. Pues de nuevo, me quitaré el sombrero ante esta eminencia.Al grano. Me interesa para la charla,citar aspectos relativos a la seguridad, como por ejemplo, especificar las interfaces en las que escuchará peticiones Samba, denegación de conexiones por IP o Red de origen, así como especificar opciones relativas al fichero log.

#Fichero: /etc/samba/smb.conf [global]
...
#Solo permitimos acceso a la red de indicada
hosts allow = 192.168.11.
#Especificamos interfaz de red
interfaces = wlan0 192.168.11.0/29
#Denegamos el acceso a los clientes de la red indicada
hosts deny = 192.168.2.0/24
#
#Fichero Log log file = /var/log/samba.log
#Fichero log como maximo 5MB
max log size = 5000

Recomendado además, revisar logrotate , para configurar las rotaciones de este fichero log, ya que por defecto, intentará rotar el fichero /var/log/samba/log.smbd, como podemos ver en el siguiente ejemplo:
root@polinico apermuy#cat /etc/logrotate.d/samba
/var/log/samba/log.smbd {
weekly
missingok
rotate 7
postrotate
invoke-rc.d --quiet samba reload > /dev/null
endscript
compress
notifempty
}

/var/log/samba/log.nmbd {
weekly
missingok
rotate 7
postrotate
[ ! -f /var/run/samba/nmbd.pid ] || kill -HUP `cat /var/run/samba/nmbd.pid`
endscript
compress
notifempty
}


He omitido temas de permisos, ya que considero que para una charla introductoria, citar los distintos tipos de autenticación serán más que suficiente. Muchas veces asiste gente que ni siquiera ha utilizado GNU/Linux!


Me interesa S.M.A.R.T, concretamente el paquete smartmontools.Si lo he utilizado, pero quizá no lo que debería. En la wikipedia tenéis, como suele ser habitual, una definición muy completa de la tecnología.Básicamente podemos definir la tecnología S.M.A.R.T como la capacidad para la detección de fallos en un disco duro. Dos cosillas básicas: obtener información del disco duro y realizar un test basico. Para obterner la información del disco duro.

root@polinico apermuy#smartctl -i /dev/hda
smartctl version 5.38 [i686-pc-linux-gnu] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

=== START OF INFORMATION SECTION ===
Model Family: Seagate Barracuda 7200.8 family
Device Model: ST3300831A
Serial Number: 4NF0NQX1
Firmware Version: 3.06
User Capacity: 300,069,052,416 bytes
Device is: In smartctl database [for details use: -P show]
ATA Version is: 7
ATA Standard is: Exact ATA specification draft version not indicated
Local Time is: Tue Mar 31 23:32:15 2009 CEST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

Como podemos comprobar el soporte SMART está habilitado para este disco duro. A día de hoy, es normal que casi todas las placas base y discos duros tengan soporte SMART.
Para obtener la información del disco duro, en este caso /dev/hda,primero debemos ejecutar el test y después visualizar la información.

root@polinico apermuy#smartctl -t short /dev/hda
smartctl version 5.38 [i686-pc-linux-gnu] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
Sending command: "Execute SMART Short self-test routine immediately in off-line mode".
Drive command "Execute SMART Short self-test routine immediately in off-line mode" successful.
Testing has begun.
Please wait 1 minutes for test to complete.
Test will complete after Tue Mar 31 23:38:06 2009

Use smartctl -X to abort test.

Esperaremos dos minutos(sí, ya se que dice Please wait 1 minute...) y visualizaremos el resultado del test.

root@polinico apermuy#smartctl -l selftest -i /dev/hda
smartctl version 5.38 [i686-pc-linux-gnu] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

=== START OF INFORMATION SECTION ===
Model Family: Seagate Barracuda 7200.8 family
Device Model: ST3300831A
Serial Number: 4NF0NQX1
Firmware Version: 3.06
User Capacity: 300,069,052,416 bytes
Device is: In smartctl database [for details use: -P show]
ATA Version is: 7
ATA Standard is: Exact ATA specification draft version not indicated
Local Time is: Tue Mar 31 23:39:54 2009 CEST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Short offline Completed without error 00% 2583 -

También es posible visualizar el resultado de la "salud del disco", del siguiente modo:

root@polinico apermuy#smartctl -H /dev/hda
smartctl version 5.38 [i686-pc-linux-gnu] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

Como siempre, más, mejor y más detallada información en la web del proyecto smartmontools. Dejo unos links sobre smartmontools que he leído antes de escribir este post. [ Link 1] [ Link 2 ] [ Link3 ]

Por último, y para finalizar, que son las 23:49 y llevo como unas 14 horas delante del PC...
He visto un mini-mini-micro how to para Nagios interesante. Vía RSS de Mancomun, me entero de Listen Project. Y vía SNMP mi cerebro recibe información sobre todas las partes de mi cuerpo : hora de domir!

lunes, 30 de marzo de 2009

Conservar contenido de /tmp

Desconozco si mucha gente se ha visto en la tesitura de querer conservar el contenido del directorio /tmp. A mí si me ha pasado. Por el motivo X, necesito que una máquina envie el fichero Y a mi máquina en el directorio /tmp.Imaginaos que por el motivo que sea, por ejemplo un corte de suministro eléctrico,la máquina se reinicia; perderíamos los datos almacenados en /tmp.

Si nos preocupa lo mínimo la seguridad, no deberíamos "jugar" en /tmp, ya que como sabéis, todos los usuarios tiene acceso a este directorio. Recomiendo crear un entorno Chroot con SSH, por ejemplo.

Por defecto Debian GNU/Linux "limpia" en contenido en cada arranque. Para modificar este comportamiento, editaremos el fichero /etc/defaults/rcS, que forma parte del paquete initscripts, modificando la variable TMPTIME por el valor que más convenga.

TMPTIME= 0 : Elimina el contenido de /tmp
TMPTIME= -1 : Conserva indefinidamente el contenido de /tmp
TMPTIME= 7 : Conserva el contenido durante una semana(7 días) de /tmp