22 de octubre de 2009

¿Porqué no es buena idea "matar" las sesiones cliente de Oracle?

Varias veces me he topado con el problema de que después de varios minutos de haberle indicado al Oracle que se apague, no lo hace.

Generalmente lo que hace un amdinistrador novel (como yo) es simplemente mandarle una señal 9 (SIGKILL) ó 15 (SIGTERM) al proceso cliente. Bueno, si hacemos esto, corremos el riesgo de que el proceso cliente no libere algún segmento de memoria compatida o bien algún semáforo que estén en uso al recibir las señales.

Si esto llega a ocurrir, seguramente tendrán un problema al tratar de reiniciar Oracle. Lo que hay que hacer se detalla en el siguiente ejemplo.

Primero, revisamos la información de la intercomunicación de procesos. Esto, con el comando ipcs.
Esto, nos arroja información sobre las colas de mensajes, segmentos ememoria compartida y semáforos en uso, así como el usuario y el grupo al que pertenecen. En especial nos concentraremos en una entrada de memoria compartida (la identificada por el ID 1), y el semáforo con ID 3.

En ambos casos, se ve que pertenecen al usuario oracle, lo cual es obviamente extraño pues en teroía ya no tenemos ningún proceso ejecutándose con los privilegios de este usuario. Un simple ps -aux | grep oracle | grep -v grep lo corroboraría.

Localizados los candidatos, procedemos a eliminarlos con el comando ipcrm, para el caso de la memoria compartida usamos el modificador -m y para borrar el semáforo usamos el modificador -s.

Hecho lo cual, podemos reiniciar Oracle sin mayor problema
> ipcs

IPC status from as of Fri Jul 31 15:40:20 ART 2009
T ID KEY MODE OWNER GROUP
Message Queues:
q 1 0x4200d966 --rw------- netuser netuser
q 0 0x4200d964 --rw------- netuser netuser
Shared Memory:
m 17 0x100baae --rw-rw-rw- root root
m 16 0x100dd9b --rw------- root root
m 15 0x4100b820 --rw-rw-rw- root root
m 14 0x4100d958 --rw-rw-rw- root root
m 13 0x4100d957 --rw-rw-rw- root root
m 5 0x4100b823 --rw-rw-rw- root root
m 1 0xb80c460 --rw-r----- oracle dba
Semaphores:
s 13 0x100babd --ra-ra-ra- root root
s 12 0x4100b820 --ra-ra-ra- root root
s 11 0x4100d958 --ra-ra-ra- root root
s 10 0x3e7 --ra-ra-ra- netuser netuser
s 9 0x6f --ra-ra-ra- netuser netuser
s 6 0x13d8483 --ra-r--r-- root root
s 3 0x5371951c --ra-r----- oracle dba

> ipcrm -s 3 & ipcrm -m 1

Espero que les sea de tanta utilidad como lo ha sido para mí

21 de octubre de 2009

¿Qué pasa cuando nadie comenta tus entradas de facebook?

Este artículo nace por una charla que tuve con mi amiga Lu, hace ya varias noches. Justo explorábamos una pregunta: ¿qué pasa cuando nadie comenta tus publicaciones en el FaceBook?

Lo primero que pensé fue que de primera instáncia tiene que ver con lo que nos motiva a publicar algo. Sobre esto se me ocurrieron varias posibilidades. De cualquier forma preferí detenerme a reflexionar un poco sobre est, y, lo que a continuación leerán, es una charla que tuve con otra amiga, en la que precisamente abordamos este tema.

- AlfredoCampos dice:
Ah bueno... mmm me preguntaba.. bueno, si la idea del facebook, así como de cualquier otra red social es que tú dejas tu material, ya sea ligas, fotos, videos, etc etc... alguien llega, lo ve y comenta, vaya desde un simple "Esto me gusta", hasta aquellos que te avientan un choro, o bien, que a partir de un cambio de estado, terminas con un chat como de 20 mensajes.. jeje

- Lizande dice:
aja

- AlfredoCampos dice:
peeeeeeeeeeeeeeeero.. qué pasa cuando nadie te deja ningún comentario. Vaya, es bastante común mm pero mmm entónces.. cuál es la motivacion para publicar? El que los demás te lean? El expresarte de alguna manera?
Y en eso estaba.. y para qué diablos publico en FaceBook.. es decir.. ¿qué gano? Si es que gano algo? ¿Me hace sentir bien? .. etc etc

- Lizande dice:
es esa necesidad de estar en contacto con algo o alguien, aunqeu no exista una respuesta por parte del otro, el simple pensamiento de que "otros" te leeran hace denotar tu existencia en este planeta, pudiera ser¡¡¡¡

- AlfredoCampos dice:
Es decir.. algo como publico luego exísto?
mm sí, es interesante.. porque vaya.. uno publica y sabes que alguien te verá.. (no necesariamente te leerá).

- Lizande dice:
me experso, entonces algo late dentro de mi
así es

- AlfredoCampos dice:
Algo exíste, que se expresa mediante lo que publica.. de alguna manera usamos ahora un lenguaje de imagenes y sonidos..

- Lizande dice:
también, es por que ustedes los que se encuentran metidos 24 horas o menos en contacto con una computadora, sigue siendo su medio de comunicacion, otros por que les encanta tener redes de amigos y otros por que les gustaria tener muchos amigos o contactos, pero en realidad no son reales....
siempre el ser humano busca saciar sus necesidades
el publicar es una de ellas
el "veanme" "aqui estoy" soy un ser pensante, digo no todos publican cosas interesantes¡¡¡¡
que no vale la pena leer, jajajaja

- AlfredoCampos dice:
Sí... fíjate que algo así intuía el otro día.. en realidad.. todo esto es virtual! Y ha adquirido valor en la medida en que se lo hemos dado!

- Lizande dice:
todo lo que poseemos lo poseemos por algo, la respuesta es interna en cada unos egun sus necesidades

- AlfredoCampos dice:
Aja, es cierto. Es así mismo una competencia... por ser leído, por atraer..

- Lizande dice:
primero es la curiosidad de que escribieron los otros y luego lo que publica uno

- AlfredoCampos dice:
Es "mejor", tener más amigos, publicar más, etc.. porque eso te da una "ventaja" jaja digo. hay más probabilidad de que te vean
Sí, eso es cierto..
Al principio sólo consumes... luego produces.. y así te vas

- Lizande dice:
pero cual es tu necesidad real, solemos ocultarlas a traves de nuestras acciones
unas cosas por otras

- AlfredoCampos dice:
mm ya... la necesidad real..
Sí, es cierto.. diferente para cada cual..

- Lizande dice:
por ejemplo... hay gente que aunque no sea asidua a estos lugares, tienen la necesidad del contacto directo en la gente y no por computadora

- AlfredoCampos dice:
Yap... y esto te "sirve"

- Lizande dice:
no en realidad, es un... como se dice cuando suples algo...

- AlfredoCampos dice:
Y pq no publicas?

- Lizande dice:
hace mucho no tengo nada interesante que publicar, realmente interesante,a si que solo entro y miro pero no publico

- AlfredoCampos dice:
Yep. Entiendo

Claro, que lo expresado aquí refleja solamente la opinión de los aquí chateantes! je

28 de septiembre de 2009

Hablando sobre forensia de datos en Libres, Pue.

El día de hoy, por la mañana viajé a la ciudad de Libres, que resulta ser un municipio del estado de Puebla. Esta ciudad queda cerca de los límites con Veracruz. La cosa es que el título de mi conferencia fue: "Forensia de datos, o ¿cómo darse cuenta que ya me hackearon?"

La conferencia estuvo dividida en 3 partes:
  1. Algunas precisiones sobre lo que es y lo que un hacker hace.
  2. Una breve introducción a los métodos más comunes de hackeo.
  3. Finalmente, la parte medular de la charla: El detalle de un procedimiento llevado a cabo para identificar un ataque. Es decir, un proceso forense.
La primera parte fue la más sencilla de todas, pues hablé sobre lo que es un cracker, un hacker (sombreros blanco y negro) y las motivacione para la existencia de cada uno de éstos.

La segunda parte, no merece mucho más detalle. Aunque debo confesar que bajo mi criterio, fue también la que más llamó la atención de los chicos ya que en la mayoría de los casos no tenían una idea muy clara de estas técnicas y vaya, vi a muchos muy entusiasmados apuntando.

Finalmente, aunque no pude concluír, debido a asuntos de tiempo, llevé a cabo una pequeña reseña de los pasos a seguir para descubrir qué, cómo y cuándo se había metido a una máquina.

En fin, la idea de todo esto es que, me quedaron claras algún par de cosas:
  • La cultura de la seguridad informática no está (tristemente) muy extendida en México, ni siquiera en las instituciones educativas de nivel superior. Lo cual, como se puede ver, es alarmante.
  • Y la más importante de todas, casusa siempre una gran satisfacción (y es siempre un reto), el tener la oportunidad de hablar a mentes jóvenes y brillantes.
Si deseas ver la presentación, puedes hacerlo dando click sbre la siguiente liga: http://docs.google.com/present/edit?id=0AVqCV1D_VYM9ZGZocmI1YjdfNTNmbXNmdzdkMw&hl=en

10 de septiembre de 2009

Mi muy particular receta para instalar Apache+PHP+PostgreSQL

#!/bin/bash

# Installation directories
INSTALLDIR="/usr/local/myapp"
PGINSTALL="${INSTALLDIR}/pgsql"
MYINSTALL="${INSTALLDIR}/mysql"
HTINSTALL="${INSTALLDIR}/httpd"
OLINSTALL="${INSTALLDIR}/openldap"

# Binaries used
ADDUSER="/usr/sbin/adduser"
PASSWD="/usr/sbin/passwd"

${ADDUSER} postgres -d ${PGINSTALL}
${PASSWD} postgres

tar xfj postgresql-*tar.bz2
cd postgresql-?.?.?/
./configure --prefix=${PGINSTALL} --with-perl --with-pam
gmake
su
gmake install
mkdir ${PGINSTALL}/data
chown postgres ${PGINSTALL}/data

su - postgres -c "${PGINSTALL}/bin/initdb -D ${PGINSTALL}/data"
su - postgres -c "${PGINSTALL}/bin/postgres -D ${PGINSTALL}/data >logfile 2>&1 &"
su - postgres -c "${PGINSTALL}/bin/createdb test"
su - postgres -c "${PGINSTALL}/bin/psql test"

groupadd mysql
useradd -g mysql mysql
tar xfz mysql-*tar.gz

mv mysql-* ${MYINSTALL}
chgrp -R mysql:mysql ${MYINSTALL}
${MYINSTALL}/scripts/mysql_install_db --user=mysql
chown -R root .
${MYINSTALL}bin/mysqld_safe --user=mysql &
cd ..

cd openldap-*
./configure --prefix=${OLINSTALL} --enable-cleartext --enable-crypt --enable-wrappers --enable-passwd --enable-shell --with-tls --disable-bdb
make depend
make
make test
make install
cd ..

tar xfj httpd_xxx.tar.bz2
tar xfh php-xxx.tar.bz2

cd httpd_xxx
./configure --prefix=${HTINSTALL} --enable-module=so
make
make install
cd ..

cd ../php-xxx
./configure --with-apxs2=${HTINSTALL}/bin/apxs --disable-cgi --enable-cli
--with-pgsql=${PGINSTALL} --with-mysql=${MYINSTALL} --with-pdo-pgsql --with-openssl --with-zlib
make
make test
make install

8 de julio de 2009

¿Un teléfono en México puede trabajar a la ves con Iusa, Movi y Telcel?

Esta pregunta me la hizo un amigo.. de ahí me di cuenta que enr ealidad no tengo una idea muy clara. Por ello mejor le pregunté a mi esposa, ella sí que sabe!

TDMA (Time Division Multiple Access) y GSM (Global System for Mobile Communication) son estándares. La tecnología que usan es Digital y por división de tiempo. CDMA (Code Division Multiple Access) es otro estándar y utiliza tecnología digital y por división de códigos.

Realmente lo que conocemos como TDMA debería ser llamado tecnología DAMPS (Digital Advanced Mobile Phone System) que en un principio utilizó tecnología análoga, por lo que no se podían transmitir datos; posteriormente se introdujo lo "digital" y empezaron los SMS.

En Telcel primero se implementó tecnología DAMPS, después el estándar GSM con tecnología TDMA (por división de tiempo) y para incrementar la velocidad en el envío de paquetes posteriormente se implementó EDGE (Enhanced Data Rate for Global Evolution) sobre GSM. Ahora está implementando tecnología
WCDMA para soportar 3G que es multimedia en "tiempo real" (por ejemplo videollamadas, videoconferencias, tele-compras, servicios bancarios, e-mail y por supuesto: voz).

Iusacell por ejemplo, ha utilizado tecnología por división de códigos WCDMA pero no sé exactamente que evolución ha tenido internamente.

30 de junio de 2009

PHP code to manage errors un PostgreSQL

A few eeks ago, an old customer came back to me asking for a way to manage PostgreSQL errors in PHP, this is because he has a PHP web based system with access to a PostgreSQL database.
Now, as many other PHP web-based systems out there, the error exposure is enabled, thus, every time a query returns an error, it was printed in web page, which as you can think, is not a good thing.

Now, in order to avoid this you can easily go to the php.ini file and change the display_errors directive from On to Off and enable the error logging. But, how to catch the errors and display them in a friendly manner to customer? With this workaround, nothing will be displayed and customer won't have a clue of what's going on, oh well, yes, because its data may not be displayed.

So a little solution has been implemented with the following code:


INSERT CODE HERE


Ok, let's explain: as you should know there is a set of common error codes in SQL, and specifically, for PostgreSQL there is a well explained section of its docummentation.

As you may infer, the SQL error code 23505 (UNIQUE VIOLATION) may appear whenever a violation of a unique constrain occurs, no matter in what table it happens so, in order to create a customized message, system must be aware of who (what page) requested that operation.Is not the same thing a UNIQUE VIOLATION from the add page than from the modify page, neither if it happens in the users module or the customers module.

In order to customize errors the sqlErrorCodes.php file has been created, it contains, as an array, all the possible errors that can be

29 de junio de 2009

Los PANaderos no sabe de historia natural.

¿Han escuchado por ahí ese spot radial que comienza en un ambiente así como selvático? De pronto se escucha in crecendo un ruido como de pisadas y un avoz que dice algo como: "Durante más de 70 años los dinosaurios dominaron la tierra..... ", lo curioso de este spot es que en algún momento se escuchan los gritos de alguna especie de mono, yo lo asocio con un chimpancé.

Ahora, se sabe que los dinosaurios vivieron del Triásico superior (que se extiende desde 228.0 ± 2 hasta 199.6 ± 0,6 millones de años), hasta el Cretácico superior (que se extiende desde hace 99 hasta 65 millones de años atrás). Por otro lado, los primates superiores, como el chimpancé aparecieron en la tierra hace 7-8 millones de años. Ver artículo.

Por lo tanto, la publicidad de este ppartido político está MAL! Y lo trágico es que no les importó ni los que hicieron el spot, ni los que lo solicitaron.. y al parecer tampoco a los que lo transmiten.. qué tristeza..

19 de junio de 2009

La falacia de las propuestas del Verde

Querido lector (a veces pienso que sólo yo leo mi blog), saliendo de mi costumbre escribiré un poco sobre el tema de moda, que es el de la política, y en específico hablaré un poco de las propuestas que hace el PVEM. Estas propuestas están bastante bien publicitadas y a veces hasta me voy con la finta, pero bueno, les expondré mis comentarios, a ver qué opinan:

1. Si el gobierno no te puede dar las medicinas, que te las pague.

Bueno, suena interesante esta propuesta, pero me lleva a hacerme al menos dos preguntas.
La primera: ¿De dónde va a salir el dinero para que el gobierno pague esas medicinas? De los impuestos me imagino, o bien, de alguna deuda interna o externa. Y la segunda: ¿Y si mejor adelgazamos a los institutos de salud pública para que los recursos rindan?, u otra variante: ¿Qué tal si eliminamos burocracia / corrupción en el instituto?. Válga esta anéctota como ejemplo:

Una maiga mía está embarazada, por lo tanto debe acudir al IMSS a su seguimiento mensual, ahora, resulta que el médico general le indica que debe llevar para la siguiente consulta, que será
el 24 de julio, un ultrasonido. Va con la gente que hace ese estudio (dentro del propio IMSS), y la espuesta es que la citamás cercana para que se realice el estudio es a partir del 29 de julio, por lo tanto, la nueva indicación fue la de regresar con el médico para re agendar la cita. ¡Ah! Pero la ironía viene en que, si se "va el sistema", entónces no la gente no puede agendar sus citas, no se pueden imprimir recetas ni otras cosas. ¿Y luego? ¿No podría desde el principio nuestro amigo doctor, por medio de sus prodigioso sistema, establecer la cita de la paciente en cuestión para evitar la pérdida de tiempo y ánimos?

Pienso que si comenamos por eliminar tanto trámite y tanta burocracia dentro del instituto, quizás se logre reducir algunos costos para así tener el recurso económico suficiente como para tener más medicamento en las farmacias.

Según mi muy personalísimo punto de vista, esta propuesta es sólo una aspirina para eliminar el dolor causado por la cáries de una muela, es decir, no pienso que sea una medida que vaya a servir para arreglar los problemas de fondo.

2. Vales para que los estudiantes de secundaria estudien lenguas extranjeras y computación.

Sin ánimos de tocar temas ya trillados, nuevamente me asalta la duda, ¿Y de dónde va a salir el recurso para los ichosos vales? Por otro lado, ¿cuál piensa usted que es la causa o causas por las cuales el nivel de educación en "computación" y "lenguas extranjeras" es tan bajo?
De entrada pienso que tiene que ver con las propias instituciones educativas, siguiendo por los maestros y terminando por los alumnos, en general, por un sistema educativo que no enseña a pensar a los niños y que anima la mediocridad.

Ahora, por el lado de la enseñanza de cómputo, esta es mi área y creo que tengo algo que decir, primero ¿a qué se refiere Manual Araiza cuando se refiere a la enseñanza de cómputo?, ¿A enseñar a los niños las técnicas avanzadas de Microsoft X, Microsoft Y y Microsoft Z?, ¿Acaso la idea es enseñar a los niños a depender de la tecnología "que viene de afuera" (algo así como la crisis)?

3. La pena de muerte a secuestradores y asesinos.

Ya por ahí había escuchado que esto de la implantación de la pena de muerte en México no se podía llevar a cabo puesto que había tratados internacionales a los que el país se ha suscrito que no lo permiten y por fin me di tiempo de buscar un par de ejemplos: [la] "Convención Americana Sobre Derechos Humanos y el Pacto Interamericano de Derechos Civiles prohíben restablecer la pena capital en los países donde haya sido abolida, como es el caso de México. "

Pueden encontrar una referencia de esto en la siguiente nota de El Universal.
CONVENCION AMERICANA SOBRE DERECHOS HUMANOS
Pacto Internacional de Derechos Civiles y Políticos


Por lo tanto, cualquier tipo de debate está condenado al fracaco para los impulsores de la pena caital, en pocas palabras, nos andan bacilando con esto. Por otro lado, en el remotísimo caso de que México quisiera hacer caso omiso de los tratados, nos encontramos con el problema de la aplicación de la ley! Se imaginan nadamás el estado de caos que tendríamos?

No quisiera ni pensar en ello.

En fin, brevemente quise exponerles algunas ideas de porqué pienso que la publicidad del PVEM es básicamente la exposición de que los planes de gobierno de ellos y de los demás también, no son más que medidas para paliar los efectos de males que tienen un raíz más profunda.

Con todo y esto, el que tiene la decisión al final es usted mi querido lector.

Saludos!

3 de junio de 2009

Fortalecimiento básico de Linux: nologin (8/8)

El archivo nologin sirve para negar el acceso de los usuarios al sistema.

Página manual: man 8 nologin

Si existe el archivo /etc/nologin, este comando despliega el contenido al usuario en lugar del mensaje por defecto del sistema y terminará su intento por conectarse. El único usuario que podrá tener acceso al sistema es root.

Fortalecimiento básico de Linux: limits (7/8)

El archivo limits define las cotas superiores del uso de los recursos del sistema. En pocas palabras, cuánto y de qué pueden usar los usuarios.

Página manual: man 5 limits

Aquí describimos los límites que deseamos imponer a los usuarios en cuanto al uso de los recursos del sistema. Por defecto, el usuario root no tiene ningún tipo de cotas de hecho no exíste una manera de imponer límites a cuentas de usuario de tipo administrador (aquellas cuyo UID sea igual a cero).

Cada línea describe un límite para usuario de la forma:

usuario LIMITES

La cadena LIMITES se construye mediante la concatenación de límites de recursos. Cada límite consiste en una letra identificadora seguida de un límite numérico.

Los identificadores válidos son:

A: Máximo espacio de direcciones en Kb
C: Tamaño máximo de los archivos de volcado de memoria (core), en Kb.
D: Tamaño máximo de datos, en Kb.
F: Tamaño máximo de archivo, en Kb.
M: Tamaño máximo de direcciones bloqueadas en memoria (locked-in-memory), en Kb.
N: Tamaño máximo de archivos abiertos
R: Tamaño máximo de conjunto residente, en Kb.
S: Tamaño máximo del stack, en Kb.
T: Tiempo máximo del CPU (mins)
U: Número máximo de procesos
K: Máscara de creación de archivos, ver man 2 umask
L: Número máximo de logins en el sistema para el usuario.
P: Prioridad de los procesos, véase man 2 setpriority

Por ejemplo, L2D2048N5 es una cadena de límites válida. Para propósitos de facilitar la lectura, las siguientes entradas son equivalentes:

usuario L2D2048N5
usuario L2 D2048 N5

Debe tener en cuenta que cualquier cosa después del nombre del usuario se tomará como una cadena de límites y que no se permiten los comentarios. Así mismo, cualquier cadena con límites inválidos no será considerada.

La entrada por defecto se denota por el nombre de usuario ‘*’. Si se tienen varias reglas por defecto entonces se toma la última.

Por favor, note que estos limites son por login, no son globales ni permanentes.

Fortalecimiento básico de Linux: porttime (6/8)

Este archive contiene una lista de los tty’s, los nombres de usuario y sus respectivas horas a las que tienen permitido entrar al sistema.

Página manual: man 5 porttime

Cada entrada del archivo consiste en tres campos separados por dos puntos (:) en donde el primer campo es una lista de terminales virtuales (separadas por coma), el segundo campo es una lista de nombres de usuario (separados por coma). En ambos casos puede utilizarse el comodín asterisco (*), que significa “todos”. Todos los nombres de usuario o bien, todas las terminales virtuales.
El tercer campo es una lista separada por coma de las horas y días en los cuales se permite el acceso.

Cada una de estas entradas se constuye a partir de cero o más días de la semana. Su, Mo, Tu, We, Th, Fr y Sa, seguidos de un par de horas separadas por un guión. También podemos usar la abreviación Wk (weekdays, o bien, entre semana), para representar los días de lunes a viernes; lo mismo Al que significa “todos los días”. Si no se especifica ningún día de la semana, se asume que se trata de Al.

Una entrada de la forma:

*:curso01:Wk0900-1700

Significa que el usuario curso01 puede acceder al sistema por medio de cualquier Terminal virtual, en cualquier día entre semana (de lunes a viernes), de las 9:00 AM a las 5:00 PM.

En el siguiente ejemplo se permite el acceso a los usuarios root y oper desde /dev/console en cualquier momento:

console:root,oper:Al0000-2400
console:*:

En cambio, la segunda línea especifica que el resto de los usuarios no tendrán acceso al sistema en ningún momento.

Como ejemplo final:

*:curso01:Wk1700-0900,SaSu0000-2400

Se describe una entrada que especifica que el usuario curso01 puede entrar al sistema desde cualquier terminal virtual fuera de horas de oficina (en este caso desde las 5:00 PM a las 9:00AM), así como los fines de semana durante todo el día.

Fortalecimiento básico de Linux: securetty (5/8)

El archive securetty contiene una lista con las terminales virtuales desde las cuales el administrador o root, puede entrar al sistema.

Página manual: man 5 securetty

En este archivo se definen todas aquellas terminales virtuales, tanto locales como remotas a través de las cuales un administrator del sistema puede acceder al mismo.

Por ejemplo, en le caso de las terminales locales se listan de la tty1 a la tty6, es decir, el administrator puede alejar cualquiera de las 6 terminales virtuales locales para poder acceder al servidor. Supóngase que queremos que el administrador solamente se conecte por medio de la tercera terminal local virtual (tty3).

Recordemos que para acceder a alguna de las terminales virtuales locales basta teclear la combinación Alt_FX, donde X es el número de la terminal a la que queremos entrar. Para el ejemplo, a fin de acceder a la tercera terminal local virtual deberemos teclear: Alt_F3 en donde veremos un prompt parecido a este:

Welcome to Linux 2.4.33.3 (tty3)
nunki login:

Ahora, para que esto tenga efecto es necesario dejar sin comentar en el archivo la línea referente al tty3. De tal manera, el usuario administrador del sistema no se podrá firmar en el sistema más que por la terminal local mencionada.

Fortalecimiento básico de Linux: login.defs (4/8)

Este archivo define la configuración para la suite de programas que manejan los passwords del sistema, en este caso hablamos de la suite de shadow.

Página manual: man 5 login.defs

Este archivo típicamente trae entradas como las siguientes:

CHFN_AUTH yes | no Si está puesto a yes, chfn y chsh solicitarán autenticación del usuario
antes de ejeutar cualquier cambio, a menos que se ejecute como super usuario.

CHFN_RESTRICT

CREATE_HOME yes | no . Define si es que el programa useradd deberá crear el directorio hogar del usuario.

GID_MAX int / GID_MIN int. Rango de ID's para escoger para los grupos.

MAIL_DIR string. El directorio en el que se guarda la cola de correos electrónicos de salida

PASS_MAX_DAYS int. El número máximo de días en el que un password puede usarse. Una ves que esta contraseña ha expirado, se forzará a que el usuario lo cambie.

PASS_MIN_DAYS int. El número mínimo de días permitidos entre cambios de contraseña. Cualquier intento de cambiar el password antes de este número de días será rechazado.

PASS_WARN_AGE int. El número de días antes de que el password expire, el sistema mostrará un mensaje de advertencia.

Debe hacerse notar que PASS_MIN_DAYS, PASS_MAX_DAYS y PASS_WARN_AGE sólo tendrán efecto durante la creación de cuentas de usuario. Cualquier cambio posterior no afectará a los usuarios previamente creados.

UID_MAX int / UID_MIN int. Rango de ID's para escoger para los usuarios.

UMASK int. La máscara de permisos. Si no se especifica, el permiso será 077.

FAIL_DELAY int. El retardo en aparecer el prompt de login después de algún fallo.

DIAPLUS_CHECK_ENAB yes|no. Permitir contraseñas adicionales sobre las líneas de dialup.

FAILLOG_ENAB yes|no. Permitir que las fallas al accesar al sistemase guarden en la bitácora /var/log/faillog

LOCK_UNFAIL_ENAB yes|no. Permitir que se guarden en la bitácora los nombres de usuarios no conocidos cuando se genere un fallo .

LOG_OK_LOGINS yes|no. Permitir que se guarde en las biácoras los nombres de usuarios cuando no hay error.

LASTLOG_ENAB yes|no. Permite que se guarde la hora de entrada al sistema en la bitácora /var/log/lastlog

MAIL_CHECK_ENAB yes|no. Permite que se revise el malbox del usuario cuando éste, entre al sistema

OBSCURE_CHECKS_ENAB yes|no. Permite que se realicen otros chequeos sobre cambios de la contraseña

PORTTIME_CHECKS_ENAB yes|no. Permite que se revisen restricciones establecidas en /etc/porttime

QUOTAS_ENAB yes|no. Permite que se programen ulimit, umask y niceness en el campo gecos del archivo /etc/passwd.

SYSLOG_SU_ENAB yes|no. Habilita el monitoreo y registro en bitácoras de la actividad de su.

SYSLOG_SG_ENAB yes|no. Permite el monitoreo de los comandos newgrp y sg.

CONSOLE string. Define desde qué terminales se puede logear el usuario root. Puede ser la ruta de un archivo que contenga la lista de estos dispositivos o bien, los dispositivos separados por dos puntos (:).

SULOG_FILE string. Toda la actividad del comando su será guardada en este archivo de bitácora.

MOTD_FILE string. Si se define, se mostrará el o los archivos de message of the day. Se usan do spuntos (:) como separador de archivos.

ISSUE_FILE string. Si se define, este archivo será impreso en la pantalla, justo antes de cada intento de acceso al sistema.

TTYPE_FILE string. Si se define, en este archivo se hará el mapeo de cada línea tty hacia un tipo de terminal. Cada línea de este archivo puede tener un formato como "vt100 tty01"

FTMP_FILE /var/log/btmp Si se define, todos los accesos al sistema fallidos serán registrados aquí en un formato utmp.

NOLOGINS_FILE /etc/nologin

SU_NAME su

Fortalecimiento básico de Linux: /etc/fstab (3/8)

El fstab o tabla de sistemas de archivos (file systems table), controla la manera en la que son tratados los sistemas de archivos, las opciones con las que se montan, el orden y la frecuencia con la que se revisan.

Página manual: man 5 fstab

Un archivo fstab se compone típicamente de 6 columnas de datos, mediante las cuales se definen los sistemas de archivos de una máquina Linux.
En una máquina personal, este archivo suele tener entradas como estas:

/dev/sda2 swap swap defaults 0 0
/dev/sda3 / ext3 defaults 1 1
/dev/sda1 /root ext3 defaults 1 2
/dev/cdrom /mnt/cdrom auto noauto,owner,ro 0 0
/dev/fd0 /mnt/floppy auto noaout,owner 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
proc /proc proc defaults 0 0


La primera columna indica la partición, la segunda es el punto de montaje, la tercera es el sistema de archivos, la cuarta son las opciones con las que se monta (véase también man 8 mount para una lista completa de las opciones de montaje), la quinta columna indica si el sistema de archivos debe ser revisado por el fsck y la última indica el orden en que debe hacerse esta revisión.

Ahora, en el caso de un servidor generalmente se recomienda tener más particiones, por lo que un esquema recomendable podría ser:

/dev/sda2 swap swap defaults 0 0
/dev/sda3 / ext3 defaults 1 1
/dev/sda1 /root ext3 defaults 1 2
/dev/sda4 /boot ext3 ro,nosuid,noexec,nouser 1 3
/dev/sda5 /tmp ext3 nosuid,noexec,nouser 1 4
/dev/sda6 /var/log ext3 nosuid,noexec,nouser 1 5
/dev/sda7 /usr/local ext3 defaults 1 6
/dev/sda8 /home ext3 defaults 0 0
/dev/cdrom /mnt/cdrom auto noauto,owner,ro 0 0
/dev/fd0 /mnt/floppy auto noaout,owner 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
proc /proc proc defaults 0 0


Las razones para poner tantas particiones son varias:

1. Según la definición de la LFH, los directorios que se encuentran definidos aquí como particiones (o al menos la mayoría), no son necesarios para la inicialización de un sistema y por lo tanto pueden quedar como particiones independientes.

2. En un sentido más práctico, /root es en donde el administrador puede guardar todos sus archivos sin inundar el resto de la /. Lo mismo sucede con /home. /boot es en donde se guardan todos los archivos necesarios para el proceso de arranque del sistema, entre otras cosas, guarda la imagen del kernel, si bien aún existen dudas sobre si es sabio o no ponerlo como partición independiente, en este esquema se presenta así a fin de ponerle otorgar permisos de sólo lectura (ro), no ejecución de binairios suid (nosuid), no ejecución de programas (noexec), no manipulación de usuarios (nouser). Ya que nadie realmente más que el administrador debería modificar las imágenes del kernel.
Algo similar se aplica para /tmp, pues es esta partición en la que todos los usuarios pueden escribir, lo cual se torna potencialmente peligroso ya que aquí se pueden subir ciertos programas maliciosos mediante los cuales lanzar ataques internos al servidor. Por otro lado, se podría intentar una saturación del espacio libre desde esta partición.

En /var/log se guardan las bitácoras del sistema y no es buena idea que cualquiera puede ejecutar cosas en él. /usr/local es en donde generalmente (al menos en el caso de Slackware) se instalan los servidores de web /usr/local/apache, bases de datos (/usr/local/mysql y /usr/local/pgsql) y en general el software opcional.

En general, cada administrador puede crear el esquema de particionamiento que mejor le acomode, dependiendo sobre todo del propósito que va a tener el sistema que va a instalar.

Fortalecimiento básico de Linux: inittab (2/8)

En el post anterior, describía cómo hacer para evitar que se le pasaran parámetros no deseados a la imagen del kernel. Pero vamos, ¿para qué arriesgarnos siquiera a que nos reinicien la máquina?

2. El SO lo reinician sólo aquellos con privilegios suficientes.

El archivo /etc/inittab describe qué procesos se inician durante la inicialización del sistema y la operación normal. Es aquí en donde se distinguen múltiples run levels (niveles de ejecución), cada uno de los que pueden tener sus propios conjuntos de procesos para ser iniciados.
Otra de las cracterísticas de /etc/inittab, es que describe cómo ha de responder el sistema ante la llamada Ctrl+Alt+Del, que asociamos comunmente con la solicitud de reinicio del sistema.

Página manual: man 5 inittab

A fin de modificar este comportamiento, hay que buscar una línea parecida a:

ca:ctrlaltdel:/sbin/shutdown –t5 –r now

En la que se especifica cómo responderá el sistema al recibir la combinación de teclas Ctrl+Alt+Del.

Al final de esta línea se observa el comando que se ejecutará al recibir esta señal. La idea aquí es modificar las opciones del comando shutdown, el cual tiene un modificador (-a), que indica al sistema que deberá buscar en el archivo /etc/shutdown.allow la lista de usuarios con privilegios de reiniciar el sistema mediante esta combinación de teclas (véase man 8 shutdown).

Hay que modificar esta línea para que quede así:

ca:ctrlaltdel:/sbin/shutdown –t5 –a –r now

Después, es necesrio crear el archivo /etc/shutdown.allow, escribiendo el nombre de usuario de aquellos privilegiados, típicamente sólo se le permitirá al root. De tal forma, nadie más podrá reiniciar el sistema con este método.

Inclusive, al no estar logueados al sistema, es posible ejecutar Ctrl+Alt+Del y obtener la respuesta deseada. Esto queda deshabilitado al implementar la medida anterior.

2 de junio de 2009

Fortalecimiento básico de Linux: LILO (1/8)

Desde hace ya algún tiempo está demoda aquello de que hay que fortalecer los sistemas a fin de hacerlos inmunes a ataques que pudieran comprometer la seguridad del sistema. En la mayoría de las veces los aministradores de sistemas de preocupan por poner firewalls, honeypots, jaulas, IDSs y cuanta cosa encontramos, olvidando que un número muy alto de los ataques provienen del interior de los sistemas. Es decir, de los usuarios, ya sea que simplemente estén probando cosas, pasando por los que tiene una idea más clara de lo que hacen, hasta aquella cuenta que ha sido robada y es usada por un profesional.

Es por ello que se me ocurrió escribir una pequeña receta para aquellos administradores de Linux que que tienen usuarios que accesen al shell.

1. Que no te reinicien la máquina.

En muchos casos, se sigue utlizando LILO como gestor de arranque de los sistemas Linux, es por ello que es importante mantenerlo seguro. De lo contrario, alguien se puede introducir a la sala de servidores y hacer travesuras con el SO.

El archivo /etc/lilo.conf es el archivo de configuración del LInux Loader (Cargador de Linux), de ahí su nombre (LILO).

Página manual: man 5 lilo.conf

Para asegurar que se teclee un password cuando se quiera arrancar un kernel, es necesario usar el keyword:

password=


Si se agrega esta opción es necesario hacer que el archivo sea de lectura sólo por el root.

Esto se logra con un:

> chmod 600 /etc/lilo.conf

Por otro lado, la opción

restricted

indica que se requerirá de un password durante el proceso de inicio del sistema si es que se especifica algún parámetro del kernel en la línea de comandos, como single.

Para que los cambios tengan efecto es necesario re compilar el archivo de inicio con el comando

> lilo -v

Supongamos que /etc/lilo.conf contiene las siguientes entradas:

1: prompt
2: timeout = 50
3: image = /boot/vmlinuz1
4: root=/dev/hda1
5: label=L1
6: image=/boot/vmlinuz2
7: root=/dev/hda2
8: label=L2

Significa en pocas palabras que al arranque el sistema operativo presentará el prompt para seleccionar la imagen del kernel con la que queremos arrancar, o bien, para pasarle opciones a la imagen por defecto, el cual permanecerá visible por 5 segundos (según líneas 1 y 2), luego, tenemos dos imagenes de kernel instaladas: L1 y L2 (líneas 3 a 8).

Podemos insertar una línea nueva con la directiva password, justo después de la línea 2, e tal forma que el contenido se modifica así:

1: prompt
2: timeout = 50
3: password=S3cr3T0
4: image = /boot/vmlinuz1
5: root=/dev/hda1
6: label=L1
7: image=/boot/vmlinuz2
8: root=/dev/hda2
9: label=L2

Salvamos los cambios y ejecutamos lilo -v, de no haber errores reiniciamos la máquina y listo! En lugar de aparecer el prompt normal, aparece uno solicitando el password.

Esta opción por sí misma no es muy útil pues, si en algún momento el servidor se apagara, al regresar, forzosamente tendría que escribirse la contraseña. Si el administrador no está a la mano, pasaríamos al menos una media hora con el sisema abajo.

Por ello usamos restricted y password a la ves. De tal manera que ahora el lilo.conf quedara así:


1: prompt
2: timeout = 50
3: image = /boot/vmlinuz1
4: restricted
5: password=S3cr3t01
4: root=/dev/hda1
6: label=L1
7: image=/boot/vmlinuz2
8: restricted
9: password=S3cr3t02
10: root=/dev/hda2
11: label=L2

Con esta modificación el sistema operativo se levantará normalmente y mientras nadie intente pasarle opciones especiales a ninguna de las imagenes del kernel, entónces no aparecerá ningúna petición de password. En cambio, si durante la ventana de 5 segundos, se le indica al sistema que va a arrancar con la imagen L1 en runlevel 1 (L1 single), el usuario será interroado por el password específico para esa imagen (S3cr3t01).

De esta manera conseuimos que al menos, nadie que se siente en la consola pueda iniciar el sistema de manera diferente a la default.

28 de mayo de 2009

Untitled

He pensado que cada uno de nosotros ejerce cierta influencia sobre aquellos que nos rodean. Es como un efecto dominó, que en mayor o menor grado va dejando una fracción de nuestra escencia en los demás.

Justo algo así me ocurrió anocche mientras escuchaba las divagaciones de una amiga mía. Resulta que esta chica conoce en carne ropia los estragos que causa el dejar de ser uno mismo en pos de sostener una relación.

En verdad es increíble, con tal de encajar en algún entorno, somos capaces de hacer a un lado actividades que nos llenan, amigos que nos enriquecen, maneras de vivir, en suma, nuestra escencia. Eso que se supone que nos define como individuos y que siempre seremos - menos que necesitemos cambiarlo por conveniencia-.

Esto se manifiesta a todas edades, a veces -las más - de manera inconsciente. Ahora, otras, bajo la premisa de mantener cierta situación. Una mirada introspectiva nos dará varios ejemplos de esto. Una relación de pareja, un grupo de amigos, un modo de vida, en fin, ejemplos hay muchos. Así mismo, los efectos son variados. Los más afortunados s dn cuenta y toman el camino de regreso a casa, otros pocos se pierden, mientras que un tercer grupo, simplemente no aprende sigue por la vida en las mismas circunstancias.

Ahora, una cosa que parece haber funcionado para mi amiga, fue el elaborar una lista con todas aquellas cosas que llenaban su vida, antes y un poco durante, y que le solían definir y que en consecuencia, quiere retomar. Tomar esto como eje de su cotidianeidad para reinventarse.

Pienso que uno de los procesos más complicados de cualquier persona es el autoanálisis, la introspección, a partir de la cual encontrar lo que queremos y lo que no, y sobre todo, el permitirnos una segunda oportunidad. Y ella se lo permitió.. por eso

27 de mayo de 2009

Un poquito de arte. ¡Pa' variar jóven!

Esta ha sido una de esas noches interesantes, en las que el destino te pone en situaciones de las que puedes aprender mucho. Esta ves, por invitación de una amiga muy querida, terminé en casa de una artista, sí, así como lo leen. Estuve en una puesta (como ella le llama), de una de sus obras. Al verla, la primera impresión fue de extrañeza, que dió paso a un sentimiento de admiración, no por lo que en sí expresaba la obra, si no por el empeño puesto en la realización de la misma. Digo, yo no lo hubiera hecho en realidad. Después llegó la explicación y con ella el significado certero de eso que estaba mirando.



Minutos después calleron en mis manos una rica cerveza y un par de cigarros, que fueron haciendo suave mi interacción con ese círculo curioso. De entre los cuales puedo contar a algunos estudiantes (no sé de qué), luego a un museologo (o al menos eso me dijeron) un chico fotógrafo, etc. Luego de un rato en el que actué como observador de un juego de intercambio de ideas, se me ocurrió intervenir preguntando algo como:

"-¿Aja, y pon tú que ya expones y llegas al público y eres fiel a tu idea y demás, pero qué, qué pasa cuando el público simplemente no entiende loq ue estás queriendo expresar?"

La respuesta que mereció fue bastante larga, pero la voy a resumir en lo siguiente, que viene siendo lo más interesante, al menos para mí: "El arte tiene que provocar algún sentimiento en el espectador, sea lo que sea. De otro modo, no se logra el objetivo". También, en algún punto se habló de la sensibilidad del espectador, obviamente requisito fundamental para experimentar sentimientos respecto a una obra. Ene ste punto, la conversación giró un poco sobre lo des-sensibilizados que estamos por aquello del rollo consumista.


Luego de eso, se tomaron algunas fotos, salieron a la luz algunas otras y hasta un video. En general la noche se presentía muy agradable. Y bueno, a final de cuentas, ¿de qué se trataba la famosa puesta? Bueno, en realidad preferiría que ustedes mismos observaran, sobre todo la primera fotografía... las chicas no son parte de la obra eh! Ahí cada quién juzgará y el que quiera preguntará.



Lamentablemente hubo que continuar y bueno... el resto de la noche dio pie a seguir el reencuentro con una cigarra. ¡Pero esa, es otra historia!

25 de mayo de 2009

Edgar Morin: Un pensador planetario

Recientemente, respondí a uno d elos múltiples quizes de Facebook, se trataba de saber con qué filósofo postmodernista me identificaba y se supone que en mi caso, soy afin a Edgar Morin. Evidentemente no sabía nada del tipo este, por lo que me di a la tarea de hallar algo al respecto, para documentarme un poco. Después de un rato de leer en la Wikipedia hallé esta serie de videos de YouTube.

Es un overview dle trabajo y de ss pensamiento, través de entrevistas a él ya terceros.

Ojalá lo disfruten.

Parte 1 de 5.




Parte 2 de 5.




Parte 3 de 5.




Parte 4 de 5.




Parte 5 de 5.





28 de abril de 2009

Analisis de malware

Hace algunos días, en vista de la cantidad tan grande de infecciones que tenían los clientes de mensajería instantánea de mis contacto, se me ocurrió que sería buena idea hacer un análisis superficial de lo que estos programas hacen y sobre todo, de si es que los antivirus los detectaban o no.

Bueno, sucedió que en un lapso de dos días alcancé a bajar 5 de estos programas (se me pasaron 2 que ya no alcancé a bajar a la computadora).

El segundo paso consistió en analizarlos con una buena cantidad de antivirus. Para esto usé la herramienta virustotal, que es un portal (me parece que español), en el que se analizan los archivos que los usuarios vayan subiendo. El análisis es realizado por 40 antivirus.

A continuación están los nombres de los archivos (como los descargué), así como una liga hacia el reporte del análisis realizado por estos 40 antivirus.
Si miramos con detenimiento, justo antes del comienzo del bloque de reportes de los antivirus encontraremos el porcentaje de los AVs que detectaron el binario como un problema.
  • cc.exe (7 de 40 = 17.50%)
  • fada.exe (13 de 39 = 33.33%)
  • ffoottoo.exe 3 de 40 = 7.5%)
  • ush.exe (5 de 40 = 12.50%)
  • YEP.exe (14 de 40 = 35%)
En realidad es bajo el número de antivirus que tienen a estos binarios registrados como peligrosos.

A continuación podemos ver los reportes de cada antivirus, algunos hacen la detección como troyanos, otros coo si fueran backdoors o simplemente malware o spyware.

Más abajo viene un bloque llamado de "Información adicional" en el que se imprimen las salidas de los hashes md5, sha1, etc. Esto se utiliza para obtener una manera verificar que el binario en particular no sea alterado.

Después viene un bloqe muy interesante, cuya primera línea comienza con TrID:... File type identification. Pues es aquí en donde en base a una herramienta llamada trid, se trata de llevar a cabo una identificación del tipo de archivo del que se trata.
En este caso vemos que con mucha probabilidad hablamos de un ejecutable.

Una forma más cercana que tenemos de indentificar qué tipo de archivo es el que tenemos en las manos es con una herramienta conocida genéricamente como editor hexadecimal. En este cao utilicé uno llamado Hex Workshop. Lo interesante es que en algún lugar del archivo (generalmente al inicio), se encuentr declarado el tipo de archivo. Aquí abajo hay algunos ejemplos, con su correspondiente tipo resaltado:

Fig 1. Un archivo ejecutable. Note el MZ al inicio


Fig 2. Un achivo jpg.
Fig 3. Un archivo pdf.

Fig 4. Un archivo bz2.

De ahí, se describe la estructura del Portable executable (PE): De aquí, la parte interesante es la que habla de los imports, pues es en donde se puede ver todos los archivos de bibliotecas que manda a llamar durante su ejecución, así como las funciones que requiere de cada uno de ellos.

Otra opción que tenemos es la de ver las cadenas de texto, ya sea ASCII com Unicode que vengan contenidas.

Esto al menos, sirve como un indicio de qué es lo que puede hacer el programa.

17 de marzo de 2009

Los chips anti-robo en Puebla

Antes de que continue, mi querido lector(a), debo aclarar que este artículo está totalmente libre de ánimo grillero-partidista-politiquero (Ahora que se avecinan las elecciones de "medio término" en el país). Una frase a la que procuro hacer caso regularmente es: "desconfia SIEMPRE de la gente que está en el medio político, de seguro te sonríe porque quiere obtener algo de tí".

Hecha la aclaración continúo con mi tema.

A estas alturas del partido y después de ya casi 4 años del dichoso reemplacamiento (Junio de 2005), en el que se nos ofreció que se frenaría el robo de autos por la introducción de un famoso chip anti robo que permitiría el restreo de los mismos...... ¿Qué ha pasado?
Ver: http://74.125.47.132/search?q=cache:knxDpIiAErsJ:www.intoleranciadiario.com/nuevo/despliegue-noticia.php%3F-Inicia-campana-por-Internet-contra-el-reemplacamiento%26id_noticia%3D651+chip+antirrobo+estado+de+Puebla+reemplacamiento&cd=2&hl=es&ct=clnk&gl=mx

Es decir, ¿Se instaló algún sistema de rastreo de los mentados chips?, ¿En realidad ha bajado el índice de robo de autos en el estado?
Ante tnta curiosidad, se me ocurrió echar un vistazo en google a ver qué hallaba bajo la búsqueda: "índice de robo de autos en Puebla", total que terminé revisando las estadísticas sobre este rubro en la página de un organismo llamado "Asociación Mexicana de Instituciones de Seguros AC" (www.amis.org.mx), aí, después de rascarle un poco hallé un documento titulado: "El Robo y la Recuperación en el Ramo de Automóviles", esto, para el periodo de 1998 a 2008.

Por si usted desea consultar este documento en particular, la liga es:

http://www.amis.org.mx/InformaWeb/Documentos/Archivos/AUTOS_Rueda%20prensaDICIEMBRE_2008.ppt
Y por si lo llegasen a quitar, guardaré una copia del documento por si ud gusta.

- 2005. 8° lugar: http://www.amis.org.mx/InformaWeb/Documentos/Archivos/AUTOS_NOVIEMBRE_2005.pdf

- 2004. 8° lugar: http://www.amis.org.mx/InformaWeb/Documentos/Archivos/NOVIEMBRE%202004.pdf

En fin, que las estadísticas hablan por sí mismas y las cifras indican que el estado de Puebla no se ha movido mucho de ese honroso 8° lugar, desde hace ya algunos años, con todo y el chip anti-robos. Y sigo preguntándome: ¿Será que los ladrones de autos tienen una tecnología superior a la de los chips?, o ¿a estas alturas del partido aún estamos esperando que se cree la tecnología para rastrearlos?

Saludos!

7 de enero de 2009

Radio por Internet / Podcasts desde mi celular.

Debo mencionar y presumir que los reyes me trajeron un celular nuevo, otro de la serie S60. ¡Sí!, esto porque Leonardo prácticamente acabó con mi fiel Nokia E65. En fin, la cosa es que ahora estoy estrenando un flamante Nokia N95, el cual si debo ser sincero no temrina de agradarme del todo pero en fin. ¿Eso no se lo vamos a decir a los reyes verdad?

Uno de los detalles que no me agradó del todo es que dentro de las aplicaciones disponible spara descarga no venía la del Radio por Internet (que sí venía por defecto en el E65), pues bueno, total que me puse a buscarle por ahi y encontré el sitio oficial del software.

Si a alguien le interesa, adelante. Yo en particular lo recomiendo.

http://europe.nokia.com/A41107005

Por otro lado, una que sí venía es la de Podcasts. Se trata básicamente de un directorio de podcasts internacionales que ustedes pueden descargar libremente.
Esta aplicación se me hizo interesante pues de entre toda la basura me encontré con un podcast en con clases en Chino y otro en francés. No dudo que pueda encontrar por ahí alguna cosa más.

Para el que lo quiera intentar: http://europe.nokia.com/A41107006

Finalmente, buscando entre los múltiples clientes de MSN para el N95 me encontré con una pequeña aplicación llama fring que sorprendentemente sirve para MSN, Yahoo, Skype, facebook, GoogleTalk y algunos otros por ahí. Un detalle que me gustó mucho es que desde una única pantalla puedo ver a todos mis contactos, por otro lado, también es capaz de gestionar envíos de archivos, es decir que puedo enviarle a mis contactos una foto que apenas haya tomado en el celular. Lo que no he tenido tiempo de experimentar es esto de las llamadas por internet. En el caso de skype, el fring es capaz de aprovechar skype out, el que no he usado hasta ahora. Por si alguien más está interesado, puede ir a: http://www.fring.com/

¡Saludos!

Cómo saber todos los comandos AT que acepta un celular?

Sabías que te puede servir un vil

AT?

Yo no jeje, saludos!