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

viernes, 27 de marzo de 2009

Dovecot



Al hilo de una conversación con un bueno amigo el Lunes pasado, comentábamos que hay gente que, sin tener más referencias que las que ha oido en no sé que foro, critica abiertamente un paquete de software. Particularmente hablábamos de Dovecot, en relación a Cyrus y otros paquetes de software. Hace unos tres años, me ví en la tesitura de decidir qué software IMAPd utilizar. Me interesaban fundamentalmente tres aspectos: seguridad , flexibilidad y facilidad de administración. Se da por supuesto que será un software estable y robusto.¿Por qué? Como buen galego te respondo con otra pregunta ¿Ha entrado en Debian GNU/Linux?, la respuesta es sencilla : Sí. Siguiente pregunta. El caso es que en lo he instalado por lo menos en 10 máquinas y hasta hoy, los problemas han sido mínimos. He implementado SSL y cuotas tampoco he tenido más problemas que no sé solucionen leyendo un wiki o la docuementación. Es por eso por lo que me fastidia mucho que ¿Administradores de Sistemas? hablen por hablar de temas que ní siquiera se han parado a examinar, documentar y testear. Lo dicho, necesitas un servidor IMAP: Dovecot es mi recomendación.
Características Principales.
.- Soporta IMAPv4 y POP3
.- Soporta Maildir y Mailbox
.- Superado el IMAP Server Compliancy Status
.- Programada en base a la seguridad(Postfix like?)
.- Mensajes debug y log amigable
.- Soporta ACL y quotas
.- Autenticación: Local,BBDD(MySQL,PSQL),Kerberos.
.- Soporta buzones contra NFS,Local FS Cluster
.- SSL
.- Postlogin scriptin'
.- Documentación muy buena y trabajada.


Como nota curiosa Timo Sirainen ofrece 1000€ a la persona que descubra un agujero de seguridad en Dovecot,así que ya sabéis.

martes, 24 de marzo de 2009

Últimamente...

Últimamente estoy haciendo un montón de cosas. Unas muy interesantes y otras no tanto. En el plano laboral sigo dándole al PHP y MySQL, de momento voy avanzando sin prisas pero sin pausas. He indagado un poco más en el funcionamiento interno de Drupal, cómo maneja las sesiones y cómo usar su API.La verdad es que poco a poco me estoy dando cuenta de que con un poco de Bash,PHP y MySQL se pueden hacer cosas muy interesantes en plataformas GNU/Linux.
El sábado pasado estuve aquí, comiendo "de campo" con la Srta.X y unos amigos. Al final ellos, los masculinos se dedicaron a jugar con una pelota, mientras que yo pasaba el rato leyendo un libro de Administración de Apache 2 que, siendo sinceros, al principio no me gustaba en absoluto, pero he cambiado mi opinión radicalmente. He leído cosas muy interesantes acerca de Clean URLs, Autenticación con MySQL,VirtualHosts...etc. Fruto de esta lectura,ayer estuve leyendo y posteriomente configurando vsftpd para autenticarse contra MySQL. No hay mucha documentación, pero al final, la clave está en el módulo PAM. He logrado que se valide contra la BBDD de Drupal.Nada del otro mundo.
En otro orden de cosas, hace un par de meses le metí mano a una OpenSuSE con Postfix,Dovecot y demás. Ayer migramos el DNS , que también estaba en esa máquina(¿?) hacia uno externo, y parece que todo está en orden. Además, estoy preparando las VI Xornadas de Software Libre del Concello de Mugardos. Aún no tenemos fechas confirmadas, pero suponemos será a principios de Junio, un sábado en jornadas de mañana y tarde. Subir la web,preparar la charla...en fin, bastante trabajo.Siempre he participado como ponente, 2 en la Install Party, 2 en las Charlas: Squid en 2007 y Postfix en 2008. Este año, Oscar Amor, preparará la instalación de Ubuntu o Galinux para no iniciados en el tema, y después seguiré yo con "Reutilización de PCs con GNU/Linux: tu servidor casero". Pensamos en darle un enfoque muy básico, ya que en años anteriores, entre portages y demás, nos pasábamos las horas dibagando y charlando, provocando bostezos entre el personal. Aún hay más; Kutus me ha retado a desarrollar un script básico para el ssh-copy-id. Sinceramente, me parece sencillo, pero sigo sin ver el por qué del asunto."Quiere" un script dónde llame al ssh-copy-id y no tenga necesidad de indicar el puerto en el que escucha OpenSSH. No sé por qué , pero creo la visibilidad del puerto dependerá muy mucho de la topología de red de origen, y por supuesto de la de destino.Firewalls,Switches, Apparmors,SELinux de turno pueden dar mucho la lata.Pensaba intentar descubrir con nmap el puerto de escucha y luego....

lunes, 16 de marzo de 2009

MySQL, al final nos llevaremos bien!



Tanto MySQL va a acabar conmigo. La perfección no existe; eso quiero dejarlo claro. En mi afán por exprimir al máximo el rendimiento de MySQL, me pregunto cual será el mejor sistema de ficheros en GNU/Linux para este SGBD. La respuesta es sencilla: no lo sé. Por lo que veo ni yo ni nadie. Supongo por ahí tendremos a algún gurú que me posteará un comentario al respecto. Hasta entonces, dejo unos enlaces que me han parecido útiles:
Sistemas Ficheros
Ni fu ni fa, el Journaling por defecto
http://wagnerbianchi.blogspot.com/2009/02/choosing-better-filesystem-for-mysql.html

ReiserFS
http://osdir.com/ml/db.mysql.general/2002-07/msg00856.html

XFS
http://lists.mysql.com/benchmarks/127

MySQL Tuner
http://islaserver.com/articulos/sistemas/optimizar-mysql-en-servidores-linux-mysqltuner.html

Modelizado BBDD

MySQL WorkBench
http://dev.mysql.com/downloads/workbench/5.1.html

DBDesigner
http://www.fabforce.net/dbdesigner4/screenshots.php

Informacion General

http://cambrico.net/category/categorias/mysql

Consejos PHP-MySQL

http://www.programacion.com/php/noticia/1556/

jueves, 12 de marzo de 2009

Túneles con OpenSSH



Poco o nada más que añadir sobre OpenSSH.Aún hay gente que usa Telnet? Lo cierto que apenas he usado telnet durante estos 10 años.Recuerdo que la primera vez que usé un SS.OO Linux fue una Red Hat 5.2 vía Telnet, en 1999, si no recuerdo mal. Años después, durante la preparación para el CCNA, me sorprendió muchísimo que, en lugar de SSH, Cisco aún usase Telnet para acceder remotamente a los routers. Ahora creo que han actualizado el Currículum, y ya "enseñan" SSH. Mientras escribo recuerdo y añoro los tiempos en lo que configuraba los primeros(para mí) router 3COM 812 y los SpeedStream, os acordáis?...Aquellas ADSLs con IP WAN 217.xxx.xxx.xxx, qué tiempos...supongo que todo esto es consuencia del paso de los años.
Todo esto viene a cuento de que me he creado una cuenta en delicious, y durante la mañana de ayer, mientras revisaba y ordenadaba unos cuantos marcadores, personales y para el proyecto de repositorios en el que trabajo, he encontrado algún link olvidado sobre el "tunnenling con SSH". Me pareció un tema muy interesante, sobre todo, para no estar todo el día modificando la tabla NAT del router; y evidentemente por la flexibilidad que ofrece. Ahora, con ganas de guerra, me pregunto..."Señores de Micro$oft.¿Qué herramienta similar a OpenSSH ofrecen en sus SSOO propietarios y corporativos?".Hace unos cuantos años, que estoy totalmente desconectado del tema Micro$oft en general y Window$, pero aún no me ha llegado ningún RSS, email, twitt o similar que responda a esta pregunta.En fin, que lo que mal empieza(Microsoft Windows), mal acaba(Microsoft Windows Vi$ta, por ejemplo). De MacOSX no comentaré nada, pues, a pesar de que creo que están en el juzgado por decir que es un SSOO tipo UNIX, decir que tanto OpenSSH como OpenSSL ya están implementado en el SSOO.

Un pequeño ejemplo de cómo acceder al puerto 80 de una máquina dentro de la LAN que está detrás de ext.dominio.org. Por cierto, para puertos entre el rango 1-1024, son necesarios privilegios de root.


[root@localhost]ssh -CNvL 8081:192.168.1.1:80 user@ext.dominio.org


C: Comprime.
N: No permite ejecutar comandos en la máquina remota, sólo permite port forwarding.
v: Modo verbose.
L: Puertos/IPs a ser forwardeadas.
Otro link interesante es este.

Para los más vagos he encontrado GSTM, Gnome Tunnel Manager, una aplicación para Gnome que permite manejar los túneles SSH de forma más cómoda, si tienes X claro, si no, lo veo complicado. [ Más info ]

Descargas:
Para OpenBSD : http://www.openssh.com/openbsd.html
Resto de Arquitecturas *NIX:http://www.openssh.com/portable.html

sábado, 7 de marzo de 2009

pdfreaders.org

Ya han publicado la traducción a Galego de la web pdfreaders.org que he enviado a la FSFE. Podéis leerla en http://pdfreaders.org/index.gl.html

bit o cómo twitear en consola!

Seguro que conoceis twitter, quién no? Continuando con el post de hace unos dias, "Racion de Frikismo",añado que he encontrado bti, una aplicación para twitear desde consola. Eso es todo, que son las 01:44 de la madrugada, la cafeína dejar de hacer efecto, y ya toca dormir.

jueves, 5 de marzo de 2009

Generador de passwords

Otra nota para mis apuntes personales en este blog. Desde hace tiempo conozco makepasswd, una utilizad para generar o cifrar passwords. Suelo instalar este paquete en todas o casi todas las máquinas que administro y/o utilizo. Si tienes acceso a las máquinas todo es muy fácil, si no lo tienes...¿qué generador utilizo? He encontrado un sin fin de funciones y maneras de crear passwords aleatorios, pero me he decantado por este. Para obligarme a usar el generador, he levantado http://pw.permuy.org implementando la funcion del link anterior. Lo estrenaré esta tarde en la configuración de un Cisco 857.

miércoles, 4 de marzo de 2009

Racion de frikismo!

He encontrado un paquete en Debian llamado toilet, que hace cosas a priori inútiles como:
De Permuy's Blog

Para instalarlo:
[root@localhost] apt-get update && apt-get -y install toilet toilet-fonts
[root@localhost]echo "toilet -f mono12 -F metal debian" >> $HOME/.bashrc