27
Apr
'08



Hace tiempo, no había ningún problema en tener un servidor SMTP en la red local para el envío de correo.
Si el servidor estaba en marcha las 24h, era una buena opción porque el correo se enviaba casi de inmediato hacia la cola del servidor y nos despreocupábamos.

De un tiempo hacia acá, con la proliferación de las IPs dinámicas y las “black lists” cada vez era más habitual que te tocara una IP de un PC zombie que había sido usado para enviar SPAM, con lo cual la mayoría de los servidores de correo rechazaban en envío.

La solución temporal que me fue más cómoda pasó por configurar directamente el SMTP de GMail en todos los clientes de correo, pero me tenía que “comer” todo el correo local además de algunos otros correos. La cosa funcionaba, pero claramente desorganizada.

Estuve buscando y rebuscando y haciendo pruebas y al fin funcionó. Me alegraré de que estos pasos le sean útiles a alguien más, pero me los pongo aquí como recordatorio personal por si tengo que repetir la jugada un día.

Paso 1: Crear un directorio de trabajo (que al final eliminaremos)


paco@nena:~$ cd /tmp
paco@nena:/tmp$ mkdir cert
paco@nena:/tmp$ cd cert

Paso 2: Creamos una autoridad de certificación (se crea en un directorio demoCA)


paco@nena:/tmp/cert$ /usr/lib/ssl/misc/CA.pl -newca

Salida:

CA certificate filename (or enter to create)


Making CA certificate ...
Generating a 1024 bit RSA private key
.......++++++
......................................................++++++
unable to write 'random state'
writing new private key to './demoCA/private/cakey.pem'
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:ES
State or Province Name (full name) [Some-State]:Balearic Islands
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Nombre y Apellidos
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:Nombre y Apellidos
Email Address []:usuario_gmail@gmail.com


Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Using configuration from /usr/lib/ssl/openssl.cnf
Enter pass phrase for ./demoCA/private/cakey.pem:
Check that the request matches the signature
Signature ok
Certificate Details:
Serial Number:
xx:xx:xx:xx:xx:xx:xx:xx
Validity
Not Before: Apr 14 07:34:14 2008 GMT
Not After : Apr 14 07:34:14 2011 GMT
Subject:
countryName = ES
stateOrProvinceName = Balearic Islands
organizationName = Nombre y Apellidos
commonName = Nombre y Apellidos
emailAddress = usuario_gmail@gmail.com
X509v3 extensions:
X509v3 Subject Key Identifier:
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
X509v3 Authority Key Identifier:
keyid:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
DirName:/C=ES/ST=Balearic Islands/O=Paco Ros/CN=Nombre y Apellidos/emailAddress=usuario_gmail@gmail.com
serial:xx:xx:xx:xx:xx:xx:xx:xx


X509v3 Basic Constraints:
CA:TRUE
Certificate is to be certified until Apr 14 07:34:14 2011 GMT (1095 days)


Write out database with 1 new entries
Data Base Updated

Paso 3: Crear el certificado que usaremos con Postfix en el servidor (se pega en una sola línea):


paco@nena:/tmp/cert$ openssl req -new -nodes -subj '/CN=casa.pacoros.net/O=Nombre y Apellidos/C=ES/ST=Balearic Islands/L=/emailAddress=usuario_gmail@gmail.com' -keyout cert-key.pem -out cert-req.pem -days 3650

Salida:

Generating a 1024 bit RSA private key
..........................................................................................................++++++
..............++++++
unable to write 'random state'
writing new private key to 'cert-key.pem'

Paso 4: Firmar el certificado usando la CA creada en el paso 2:


paco@nena:/tmp/cert$ openssl ca -out cert.pem -infiles cert-req.pem

Salida:

Using configuration from /usr/lib/ssl/openssl.cnf
Enter pass phrase for ./demoCA/private/cakey.pem:
Check that the request matches the signature
Signature ok
Certificate Details:
Serial Number:
xx:xx:xx:xx:xx:xx:xx:xx
Validity
Not Before: Apr 14 07:39:47 2008 GMT
Not After : Apr 14 07:39:47 2009 GMT
Subject:
countryName = ES
stateOrProvinceName = Balearic Islands
organizationName = Nombre y Apellidos
commonName = casa.pacoros.net
emailAddress = usuario_gmail@gmail.com
X509v3 extensions:
X509v3 Basic Constraints:
CA:FALSE
Netscape Comment:
OpenSSL Generated Certificate
X509v3 Subject Key Identifier:
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
X509v3 Authority Key Identifier:
keyid:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx


Certificate is to be certified until Apr 14 07:39:47 2009 GMT (365 days)
Sign the certificate? [y/n]:y


1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated

Paso 5: Bajar el certificado raíz de Thawte y guardarlo en un directorio “root”


paco@nena:/tmp/cert$ mkdir root
paco@nena:/tmp/cert$ cd root/
paco@nena:/tmp/cert/root$ wget https://www.verisign.com/support/thawte-roots.zip

Salida:

--09:44:38-- https://www.verisign.com/support/thawte-roots.zip
=> `thawte-roots.zip'
Resolviendo www.verisign.com... 65.205.249.60
Connecting to www.verisign.com|65.205.249.60|:443... conectado.
Petición HTTP enviada, esperando respuesta... 200 OK
Longitud: 28,793 (28K) [application/zip]


100%[====================================================================================================================>] 28,793 55.90K/s


09:44:41 (55.73 KB/s) - `thawte-roots.zip' saved [28793/28793]


paco@nena:/tmp/cert/root$ unzip thawte-roots.zip
Archive: thawte-roots.zip
inflating: Thawte SGC CA.cer
inflating: Thawte SSL Domain CA.cer
inflating: ThawtePersonalBasicCA.cer
inflating: ThawtePersonalFreemailCA.cer
inflating: ThawtePersonalPremiumCA.cer
inflating: Thawte Server Roots/Thawte Server Roots.txt
inflating: Thawte Server Roots/ThawtePremiumServerCA.509
inflating: Thawte Server Roots/ThawtePremiumServerCA.cer
inflating: Thawte Server Roots/ThawteServerCA.509
inflating: Thawte Server Roots/ThawteServerCA.cer
inflating: Thawte Test Roots/Thawte Test Root _TEXT.txt
inflating: Thawte Test Roots/Thawte Test Root.cer
inflating: Thawte Code Signing CA.cer
inflating: Thawte_EV_SSL_CA.cer
inflating: Thawte Extended Validation Root/Thawte_EV_Root.cer
inflating: Thawte Extended Validation Root/Thawte_EV_Root.txt
inflating: Thawte_EV_SSL_CA_b64.txt
inflating: Thawte SSL Domain CA_b64.txt
inflating: Thawte SGC CA_b64.txt
inflating: Thawte Code Signing CA_b64.txt
inflating: ThawtePersonalPremiumCA_b64.txt
inflating: ThawtePersonalFreemailCA_b64.txt
inflating: ThawtePersonalBasicCA_b64.txt
inflating: Thawte Extended Validation Root/Thawte_EV_Root_b64.txt
inflating: Thawte Primary Root CA/Thawte_Primary_Root_CA.cer
inflating: Thawte Primary Root CA/Thawte_Primary_Root_CA.txt
inflating: Thawte Primary Root CA/Thawte_Primary_Root_CA_b64.txt
inflating: Thawte Server Roots/ThawteServerCA_b64.txt
inflating: Thawte Server Roots/ThawtePremiumServerCA_b64.txt

Paso 6: Poner los certificados en un directorio “certs” de /etc/postfix con permisos adecuados y añadir el certificado raíz:


paco@nena:/tmp/cert/root$ cd /etc/postfix/
paco@nena:/tmp/cert/root$ sudo mkdir certs
paco@nena:/etc/postfix$ sudo cp /tmp/cert/demoCA/cacert.pem /tmp/cert/cert.pem /tmp/cert/cert-key.pem ./certs/
paco@nena:/etc/postfix$ cd certs
paco@nena:/etc/postfix/certs$ chmod 644 *
paco@nena:/etc/postfix/certs$ chmod 400 key.pem
paco@nena:/etc/postfix/certs$ sudo cat /tmp/cert/root/Thawte\ Server\ Roots/ThawtePremiumServerCA_b64.txt >> cacert.pem

Paso 7: Editar los ficheros de configuración de postfix para añadir TLS, autentificación SASL y un nuevo “transport” hacia GMail:

Añadir a /etc/postfix/main.cf

## TLS
#
smtp_tls_CAfile = /etc/postfix/certs/cacert.pem
smtp_tls_cert_file = /etc/postfix/certs/cert.pem
smtp_tls_key_file = /etc/postfix/certs/key.pem
smtp_tls_session_cache_database = btree:/var/run/smtp_tls_session_cache
smtp_use_tls = yes
smtpd_tls_CAfile = /etc/postfix/certs/cacert.pem
smtpd_tls_cert_file = /etc/postfix/certs/cert.pem
smtpd_tls_key_file = /etc/postfix/certs/key.pem
smtpd_tls_received_header = yes
smtpd_tls_session_cache_database = btree:/var/run/smtpd_tls_session_cache
smtpd_use_tls = yes
tls_random_source = dev:/dev/urandom
#
## SASL Settings
# This is going in to THIS server
smtpd_sasl_auth_enable = no
# We need this
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtpd_sasl_local_domain = $myhostname
smtp_sasl_security_options = noanonymous
#smtp_sasl_security_options =
smtp_sasl_tls_security_options = noanonymous
smtpd_sasl_application_name = smtpd

Crear un /etc/postfix/transport:

# Envío del correo hacia el SMTP de GMail
gmail.com smtp:[smtp.gmail.com]:587

Crear un /etc/postfix/sasl_password (este es el más feo)

#Usuario y contraseña para que postfix use el SMTP de GMail
#
[smtp.gmail.com]:587 usuario_gmail@gmail.com:password_gmail

Ya que estamos, le ponemos unos permisos más restrictivos:

paco@nena:/etc/postfix$ sudo chmod 600 sasl_password

Paso 8: Crear los Hashes de los nuevos ficheros:


paco@nena:/etc/postfix$ sudo postmap sasl_passwd && sudo postmap transport

Paso 9: Reiniciar Postfix:


paco@nena:/etc/postfix$ sudo /etc/init.d/postfix restart

Salida:

Stopping Postfix Mail Transport Agent: postfix.
Starting Postfix Mail Transport Agent: postfix.

Paso 10: Borrar el directorio con certificados de /tmp que habíamos creado al prinicipio:


paco@nena:/etc/postfix$ cd /tmp
paco@nena:/tmp$ rm -rf cert

Para probar la configuración hay muchas maneras, pero he descubierto una que no sabía y la pego aquí también como recordatorio:

paco@nena:~$ sudo sendmail -bv unadireccion@decorreo.com
paco@nena:~$ tail /var/log/mail.log

Si todo ha ido bien, veremos una línea como esta en el log:

pr 14 09:57:34 nena postfix/smtp[15115]: B4577163409E: to=, relay=aspmx.l.google.com[66.249.93.27]:25, delay=7, delays=0.02/0.09/0.86/6, dsn=2.1.5, status=deliverable (250 2.1.5 OK)

Si no ha ido bien pondrá “undeliverable” en lugar de “deliverable”.








Tengo que venderlo antes de 10 días. Tiene menos de un año. 219¤ negociables. Si estáis en Mallorca es todo más fácil :-) ¿Hace falta que ponga las características o lo miráis en la web de Nokia? ;-)

Actualización: El teléfono ya no esta disponible.





Los chicos del COEIIB han convocado la 2ª edición del curso de dictámenes periciales informáticos los días 5 y 12 de Abril.

El curso habilita para la inclusión en las listas de peritos y su precio es de 60¤ para colegiados del COEIIIB, 90¤ para colegiados del COETIIB y 300¤ para el resto de personas.

Si alguien está interesado, puede encontrar información más información en este PDF o en la web del COEIIB.





Como comenté en mi anterior post, estos días he empezado a usar activamente Twitter. La realidad es que el éxito de esta red social viene motivado directamente por el número de contactos que usan el servicio y que empecé a usarlo con motivo de la caída del blog de Ricardo, que twitteó el estado en que se encontraban las cosas.

Es decir, no tiene mucho sentido usar Twitter si nadie lee lo que escribes o si tus contactos son casi desconocidos. Tampoco tienen mucho sentido los twits de edans o sblanco, en los que nos cuentan “estoy desayunando” o “voy a dar una clase”.

Mucho me gustó la idea de Benjamí de usar Twitter como álbum de cromos. De hecho, ya he empezado a usarlo como “reminder”, cada vez que me encuentro una URL interesante que quisiera recordar en otro sitio (por ejemplo, una cosa interesante para el trabajo que veo en casa).

Y la vuelta de tuerca es twitxr. Un servicio que, en una primera instancia, me pareció ridículo (igual que Twitter), pero al que le he encontrado una utilidad cojonuda: Es un link de internet hacia el mundo real.

No le encuentro el sentido a publicar en Twitxr algunas notas como esta (mía) que hacen lo mismo (What are you doing?) que los posts de edans que he citado anteriormente. Pero sí que me ha gustado mucho la idea de poder compartir un enlace de la vida real como si fuera una web.

Ejemplo: Ayer salí a cenar y el menú estuvo bueno. Es materialmente imposible hacer un enlace a una pizarra de tiza desde un restaurante. Solución: Le hago una foto con el móvil y la mando a Twitxr con una nota que se va apublicar en Twitter.

Otro ejemplo: Leo una cosa interesante en un medio de papel. Le saco una foto con el móvil y la mando igualmente, de manera que estoy enlazando desde la red a un trozo de papel! Me encanta esta gilipollez :-) Nota: La foto de este ejemplo no ha quedado muy bien, a veces es difícil reproducir un texto escrito con una foto del móvil.

Yo os animo a probarlo. Ahora lo estoy usando con el Nokia E65 y RealMail de Vodafone (tarifa plana de e-mail en el móvil) de modo que puedo enviar todos los twits/twixs que yo quiera por correo sin coste adicional (tengo pendiente poder leerlos desde el móvil sin arruinarme).





Hoy un amigo me pide que difunda una oferta de trabajo (le he pedido que me la redacte formalmente, ya la pasaré por aquí si finalmente así se hace y a alguien el interesa).

Me dice para qué empresa es, aunque en la oferta dice “empresa del sector turístico” y se solicitan 3 años de experiencia para un informático con conocimientos de programación, XML y comunicaciones.

No se especifica salario.

Que conste que mi amigo no tiene ninguna culpa, es más, ya hace más de lo que le toca difundiedo ofertas de empresas que ni siquiera son la suya, pero: ¿Tanto cuesta hacer una oferta decente?

Lo que entramos a valorar aquí no es si la oferta es atractiva o no. Entramos a valorar cómo la empresa está ofreciendo el puesto de trabajo. Si estás leyendo esto, tanto si eres un ofertante como si eres un demandante de empleo, debes tener en cuenta algunos aspectos del mundillo de las ofertas laborales.

Para ello me voy a tomar la libertad de dar unos puntos claves a seguir para publicar ofertas de trabajo del sector tecnológico con unas mínimas garantías:

  • Pon el nombre de la empresa. Siempre. “Empresa líder en su sector” es puro humo. Una breve explicación de a qué se dedica puede ser muy útil.
  • Si el puesto tiene un nombre ponlo, pero no supongas que el candidato sepa en qué consiste el puesto. Define claramente cuáles son sus responsabilidades en ese puesto y cómo encaja el puesto o departamento en la organización.
  • Deja bien claros los requisitos académicos y nivel de experiencia. No pidas por pedir. Si necesitas un FP con 5 años de experiencia, no solicites un ingeniero con 3. Puede hacer el trabajo bien, pero no se sentirá igual de cómodo porque, en el fondo, “no está en su sitio”
  • El mundillo de la tecnología requiere de un esfuerzo grande en actualización y reciclaje. Prepara la cartera si piensas solicitar a un experto en una tecnología reciente con 3 o más años de experiencia.
  • El 3 no es casualidad. Solicitar especialistas en una determinada tecnología con más de 3 años de experiencia es una tontería. Si alguien lleva 3 años trabajando con un entorno de programación o gestionando un tipo de red, en 5 años no va a saber mucho más de lo que sabe en 3. Caso a parte son los puestos que requieren de otras habilidades sociales o directivas.
  • Si pides profesionales con mucha experiencia, cúidate de poner una estimación salarial: Piensa que el candidato ya está trabajando en otra empresa y que “mover” un C.V. ir a entrevistas… etc, le causa un dolor de cabeza en cuanto a las relaciones con su empresa actual. Como mínimo tienes que dar un mínimo y un máximo.
  • Adicionalmente, procura mantener un feedback con los candidatos: Indícales que has recibido su C.V. y que está en espera y si lo descartas, házselo saber. Incluso puedes pedir permiso al candidato para incluir su C.V. en tu base de datos de curricula y llamarle en el futuro.
  • Una buena idea, además de ofrecer el clásico medio de contacto para los candidatos que se quieren inscribir en la oferta (e-mail, teléfono, fax…) puedes añadir una cuenta de correo o un teléfono donde el candidato puede ampliar su información sobre la plaza disponible. Piensa que lo que quieres es que los candidatos se esfuercen en dar lo mejor de sí para ser elegidos. El que acude desmotivado a la entrevista, ¿Para que contratarlo?
  • Otra una buena idea incluir detalles sobre el puesto físico de trabajo (¿Una foto del despacho / departamento?) y beneficios sociales o servicios (seguro de salud…, café, bar, agua mineral…) Se supone que quieres ofrecer una imagen atractiva de la organización. Si el candidato acude a la entrevista, no desaproveches la ocasión de enseñarle la empresa y explicarle cómo funciona.

Creo que con estas sencillas reglas, puedes configurar una oferta de trabajo atractiva y reunir un buen número de candidatos motivados a ocupar el puesto.

No vayáis luego diciendo por ahí que hace falta mano de obra… A lo mejor es que no sabéis buscarla ;-)





Una URL vale más que mil palabras: http://tinyurl.com/2joa22 :-)





21
Feb
'08

Si ya lo decía Roy de IT Crowd. De repente varios de los bloggeres y amigos a los que leo habitualmente, les ha dado por escribir en Twitter.

Por supuesto, ya he agregado a esa élite a mis “follows”. Tiro de Twiterrific en OS X. No me termina de gustar la manera de utiliar Twitter, aunque el MicroBlogging sí que es interesante.

Especialmente interesante es la iniciativa de Benjamí, que propone usar Twitter como caja de cromos. Me encanta y me voy a sumar a la iniciativa. Eso sí, soy un tekkie sin remedio, seguro que acabo diciendo gilipolleces… pero si otros A List pueden ¿Por qué no yo? 0:-)

Bueno, rollos a parte. Me tenéis en http://twitter.com/pacoros/ por si me queréis aguantar ;-) (Catalan is also spoken)





11
Feb
'08

El sábado por la mañana fui a buscar una Tarjeta de TV que tenía encargada (Esta Hauppauge que funciona en GNU/Linux) y, al escanear al lista de frecuencias, me encontré con el canal “Aprende Inglés TV”.

Muy interesante, me ha servido para pasarme el fin de semana afinando el oído, para practicar de cabeza muchísmoas cosas olvidadas y he aprendido a pronunciar “weren’t” (se pronuncia como wornt haciendo una w muy acusada).

Hacía una leve temporada que estaba pensando muy seriemente en mejorar mi nivel de inglés (incluso solicité plaza en la EOI, pero no me tocó en el sorteo) y veo que, para ver telebasura, mejor tener puesto este canal. Simplemente dejándolo “de música de fondo” tienes la oportunidad de cazar cualquier programa y con una frase que digan puedes haber aprendido algo nuevo.

Os lo recomiendo para los que queráis mejorar cualquier aspecto de vuestro inglés ;-)





« Previous Articles