El recuento de los daños I

Y el 2008 se va… cada vez los años son mas cortos, y este no fue la excepcion.

Fue un buen año en lo deportivo, claro en el plano amateur pa’abajo (go Pandas!). Todavia recuerdo aquel juego donde me abrieron la cabeza, el juego del siglo donde los Pandas empezaban a mostrarse “internacionalmente” en la ciudad, y como olvidar el dia que dimos catedra, ese juego creo que ha sido el mejor que hemos tenido como equipo, todo nos salio… y al final, la copa. 😀

De lo profesional mejor ni me acuerdo, los Padres en ultimo lugar y con 99 derrotas, y desmantelandose en estos ultimos meses. Los Chargers aunque llegaron a la final de conferencia en Enero de la temporada del 2007, fueron eliminados, y aunque en esta temporada se esperaba mas de ellos, decepcionaron, aunque todavia siguen con vida, espero que 2009 empieze con playoffs. Y que decir de las aguilas, fue el peor año del america en la historia. Llegaron hasta semifinales en la Libertadores, pero en la liga fuimos un asco. 2009 pinta bien, haber que tal.

En la escuela, lo de siempre: entrega de proyectos, desveladas al fin del semestre (si todo al ultimo para no perder costumbre), tareas, calificaciones de ultimo momento… el “ponlo en tu blog” de los compañeros (que nunca dejaron un comentario, por cierto, pero si le dieron click en la publicidad pues bueno, ya es ganancia). Y no faltaron los momentos chuscos como las super presentaciones, y los momentos geeks, con Richard Stallman.

Hablando de geeks, tuvimos el SFD08 en Tijuana y participamos en el Geek Fest en Mexicali.

Certificado SSL en Apache 2

El protocolo SSL envia datos encriptados mediante el sistema RSA al estar hubicado en una zona segura de un navegador. El navegador en conjunto con el servidor seguro encripta los datos de modo que si alguien en el proceso de transmision logra tener acceso a estos no podra leerlos sin tener la clave necesaria.

Los certificados SSL los conceden entidades certificadoras (CA) que las empresas que lo requieren lo instalan en su servidor web.

Todos los navegadores actuales tienen incorporadas los certificados raiz de todas las CA conocidas en el mundo, asi cuando el cliente se conecta a un servidor seguro es transparente para el.

Para saber como funciona crearemos nuestro propio certificado de seguridad utilizando OpenSSL y Apache2.

Primeramente instalamos lo necesario.
# apt-get install apache2 libapache2-mod-gnutls

Para probar el correcto funcionamiento abrimos el navegador web y en la barra de direcciones escribimos localhost. Debe aparecer una pagina de Apache indicandonos que Funciona (It Works!!!).

Instalamos OpenSSL y la utilidad para generar certificados.
# apt-get install openssl ssl-cert

Generamos un certificado
# openssl req $@ -new -x509 -days 365 -nodes -out /etc/apache2/apache.pem -keyout /etc/apache2/apache.pem

* Deberiamos estar viendo que significa cada parametro pero por las prisas sera en otra ocasion.

OpenSSL nos pedira algunos datos para generar el certificado. (Recuerden que para un certificado real es necesario tramitarlo con una empresa certificadora (CA)).

Configuramos Apache para que acepte las peticiones encriptadas. Editamos /etc/apache2/ports y verificamos que tenga la siguiente linea.

Listen 443

Habilitamos el modulo SSL
# a2enmod ssl

y reiniciamos Apache
# /etc/init.d/apache2 restart

Ahora necesitamos configurar los sitios que funcionaran con SSL. Los sitios estan en /etc/apache2/sites-available

Para los sitios web normales modificamos las lineas que dicen:

[sourcecode language=’bash’]
Name VirtualHost *

[/sourcecode]

por estas:

[sourcecode language=’bash’]
Name VirtualHost *:80

[/sourcecode]

Para los sitios que ocuparan usar SLL, y como no tengo uno, debemos crear un archivo en /etc/apache2/sites-available (en este caso el nombre de mi archivo es ejemplossl y su contenido debe ser algo similar a este:

[sourcecode language=’bash’]
NameVirtualHost ejemplossl:443

ServerAdmin webmaster@localhost
ServerName ejemplossl
DocumentRoot /home/alex/public_html/ejemploSSL/
SSLEngine on
SSLCertificateFile /etc/apache2/apache.pem

[/sourcecode]
* Para esto debe existir la ruta del DocumentRoot y de preferencia un index.html basico.

Habilitamos el sitio:
# a2ensite ejemplossl

y hacemos que apache reconosca los cambios
# /etc/init.d/apache2 reload

Agregamos una linea en /etc/host para evitar que el navegador busque el sitio por fuera:
127.0.0.1 ejemplossl

Y es todo. Para verificar que este funcionando correctamente escribimos en el navegador:

https://ejemplossl

aceptamos el certificado como seguro y hasta aqui tenemos un sitio web seguro con certificado SSL.

Referencias:
Crear certificados SSL para Apache
Sitios SSL con Apache 2 y Debian Etch

Instalando servidor web (casero)

Como algunos de ustedes saben este sitio esta hospedado en una computadora en mi casa, y hace poco recibi un correo de un persona que quiere hacer lo mismo, es por eso el motivo de este “post”.

Requerimientos:
Conexion a internet DSL
Ruteador con soporte “Virtual Server” o “Port Forwarding” el cual nos permitira el acceso desde usuarios de internet a nuestro servidor web
Computadora (puede ser obsoleta)

En mi caso tengo el servicio de Prodigy Infinitum de Telnor, un router Dlink DI-524 y una computadora Pentium III 600Mhz, 256Mb de Ram, Disco duro de 10gb.

1. Comprar dominio
DNSExit.com es una buena opción para hacerlo ya que nos ofrece servicio de DNS y tienen soporte para
IP Dinámico, actualizado por medio de un script.

2. Preparar servidor web

Debian Linux es una buena opcion, en especial la version Net Install, si tenemos un equipo no tan potente, ideal para las caracteristicas de mi equipo.

Despues de instalar solo el sistema base instalamos los servicios que ocuparemos: Apache 2, Mysql, PHP 4 y los modulos necesarios.

#apt-get update
#apt-get install apache2
#apt-get install mysql-server mysql-client
#apt-get install php4 php-gd php4-mysql
#apt-get install libapache2-mod-auth-mysql
#apt-get install libapache2-mod-php4

2.1 Configuracion de apache
En /etc/apache tenemos todos los archivos de configuración de apache y los modulos que tenemos habilitados. En sites-available/default tengo esto (configuralo a tus necesidades):
default

2.2 Configurando MySql

Antes de iniciar el servicio tenemos que tener una base de datos, hacemos esto:
#su – mysql
#mysql_install_db

Podemos encender, parar, reiniciar y ver el estatus del servicio asi:
#/etc/init.d/mysql start | stop | restart | status

Lo que haremos ahora es eliminar la base de datos test y que solo root tenga acceso a mysql ademas de asignarle un contraseña. Como lo tenemos ahora cualquier usuario puede accesar sin contraseña.

#mysql -u root
>show databases;
>drop database test;
>use mysql;
>select host, user,password from user;
>delete from user where not (host=”localhost” and user=”root”);
>set password for
root@localhost=password(‘tupassword’);
>quit;

Prueba:
#mysql -u root -p
password:

Hasta aqui ya tenemos listo nuestro servidor
web, solo falta que esten tus archivos de lo que quieres mostrar en el directorio que escogiste como DocumentRoot o en su caso la aplicación que desees. (En mi caso WordPress)

3. Hacerlo publico
Ahora si ya estamos listos para mostrarlo al mundo entero:

Bajamos el actualizador de dnsexit.com, yo use Ip Updater, lo descomprimi en /etc/dnsexit y en el archivo de configuración (dnsexit.conf) escribes tus datos:

login=tu_user_de_dns_exit
password=tu_password
host=www.tudominio.com
proxy=yes
daemon=yes
interval=600
logfile=dnsexit.log
cachefile=dnsexit-ip.txt
url=http://www.dnsExit.com/RemoteUpdate.sv
proxyservs=whatismyip.com;ip.dnsexit.com;ip2.dnsexit.com

Y corres el script:
#nohup /etc/dnsexit/ipUpdate.pl &

En la configuracion del ruteador vamos a permitir el acceso a usuarios de internet, en el DLink DI-524 esto se hace por medio de Virtual Server.

Accesamos a la configuración del ruteador y a la pestaña Advanced:
Name: alexagudo.net
Private IP: 192.168.0.101 Esta es la IP local de nuestro servidor
Protocolo Type: TCP
Private Port: 80
Public Port: 80
Schedule: Always

Habilitamos esta configuracion seleccionando Enable y Apply

En tu navegador http://www.tudominio.com y debe mostrar tu página.

Y esto es todo, si tiene alguna duda/sugerencia haganlo saber.