jueves, 15 de mayo de 2008

Secure Shell (SSH)


Es el nombre de un protocolo y del programa que lo implementa y sirve para acceder a máquinas remotas a través de una red. Permite manejar por completo la Computadora mediante un interprete de comandos.

Además de la conexión a otras máquinas, SSH nos permite copiar datos de forma segura (tanto ficheros sueltos como simular sesiones FTP cifradas), gestionar claves RSA para no escribir claves al conectar a las máquinas y pasar los datos de cualquier otra aplicación por un canal seguro, tunelizado mediante SSH.

Al instalar ssh genera un par de llaves RSA y DSA las cuales se guardan en /etc/ssh/ssh_host_(dsa-rsa)_key.pub . En linux lo podemos instalar asi:
# apt-get install openssh

Cada servidor ssh tiene una huella digital única (fingerprint) generada al momento de la instalación. Este fingerprint identifica al servidor en específico.

Cuando nos conectamos por primera vez nos aparece algo asi:
# ssh sena@192.168.20.13 --> Comando para conectarnos
The authenticity of host '192.168.20.13 (192.168.20.13)' can't be established.
DSA key fingerprint is 3a:29:ac:4a:71:a8:bc:79:52:05:aa:bc:a5:a0:25:57. -->Fingerprint
Are you sure you want to continue connecting (yes/no)? yes -->Como nos comunicaremos por primera vez nos pregunta que si estamos seguros de continuar. advirtiendo que el equipo al que queremos conectarnos puede no ser el nuestro, es decir SE TIENE QUE ESTAR SEGURO QUE AL SERVIDOR LINUX QUE ME ESTOY CONECTANDO ES REALMENTE EL MIO y esto solo se logra conociendo previamente el fingerprint del servidor y tenerlo en una nota, o en un papel en la cartera o en un block de notas de la computadora de la casa u otra ubicación, como sea. Si por razones de trabajo u otras, se requiere acceder a un servidor de producción de forma remota es importante conocer el Fingerprint del servidor para estar seguro que no estén interceptando o suplantando.

Warning: Permanently added '192.168.20.13' (DSA) to the list of known hosts.
sena@192.168.20.13's password: -->Ingresamos el password del usuario sena
Linux sena-ubuntu 2.6.22-14-generic #1 SMP Sun Oct 14 23:05:12 GMT 2007 i686

The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.
Last login: Thu Apr 24 12:46:11 2008
sena@sena-ubuntu:~$ -->Aqui miramos que estamos logeados en la maquina solicitada.


miércoles, 14 de mayo de 2008

Peticion de Certificado en Windows

Para generar una petición de certificado (CSR) en Windows desde (IIS) Internet Information Services y agregarlo a un sitio web hacemos lo siguiente:

-->Abrimos el IIS
-->Clic derecho en las propiedades de nuestro sitio web (Sencillo).
--> Aca podemos ver la configuracion de la direccion IP por la cual esta escuchando nuestro sitio web. Como tenemos dos tarjetas de red la pondremos a escuchar por cualquiera.
-->Vamos a la pestaña Directorio de Seguridad.
-->Comunicaciones seguras.
-->Clic en Servidor de Certificados.
-->Ahi nos abrira un asistente de configuracion.
-->Siguiente.
-->Epezamos con la peticion.
-->Crear un nuevo Certificado.
-->Siguiente.
-->Preparar la solicitud pero enviarlas mas tarde.
-->Siguiente.
-->Escogemos el nombre para nuestra peticion y la longitud (1024).
-->Siguiente.
-->Datos de la organizacion.
-->Siguiente.
-->Un nombre comun.
-->Siguiente.
-->Informacion Geografica.
-->Siguiente.
-->Ruta y nombre donde se guardara la peticion.
-->Siguiente.


-->Resumen de todos los cambio efectuados para la peticion.
-->Siguiente.
-->Finalizar

Ya quedo lista nuestra peticion de Certificado, ahora solo debemos enviar esta peticion a una Etidad Certificadora para que esta no la firme y asi poder instalarla en nuestro sitio web (https).
Algunos link en este mismo blog referentes a este tema:
--Entidad Certificadora en Windows 2003 Server
--Peticion de Certificado para Apache
--Peticion de Certificado desde un Browser

Como la instalamos en nuestro sitio web??
-->Le damos de nuevo en las propiedades del sitio web.
-->Directorio de Seguridad
-->Servidor de Certificado
-->Siguiente
-->Procesar una peticion de Certificado pendiente e instalarla.
-->Siguiente.
-->Ruta en la cual esta la Peticion Firmada.
-->Siguiente.
-->Puesrto por el cual tendra la conexion SSl (https)
-->Siguiente
-->Resumen del Certificado.
-->Finanlizar
Para ver el certificado ya instalado en nuestro sitio web hacemos lo siguiente:
-->Clic derecho en propiedades del sitio web
-->Directorio de Seguridad.
-->Ver Certificado
Y nos mostrara algo asi:


Miramos nuestro sitio web con y sin seguridad. Publicare algunas de las imagenes capturadas en el momento de las conexiones.


martes, 13 de mayo de 2008

Peticion de Certificado para Apache

El servidor HTTP Apache es un software (libre) servidor HTTP de código abierto para plataformas Unix, Windows, Macintosh y otras, que implementa el protocolo HTTP. Apache presenta entre otras características mensajes de error altamente configurables, bases de datos de autenticación y negociado de contenido, pero fue criticado por la falta de una interfaz gráfica que ayude en su configuración.

En este pequeño manual explicaremos brevemente como configurar apache de forma segura (https).

Primero instalamos el servicio web:
# apt-get install apache2

Instalamos el paquete openssl
# apt-get install openssl
Para la configuracion de nuestra pagina web (de lo que mostrara) es en /var/www/index.html Aca publicare un sencillo contenido de lo que contiene este archivo:


Ahora empezamos con la configuracion en los archivos del apache.
Para poder crear un sitio certificado bajo SSL (https) con apache. Para ello ahi que copiar los ficheros que nos firma la entidad y el certificado de la misma entidad en /etc/apache2/ssl si no disponen del directorio ssl, ahi que crearlo y solo sirve para guardar esto en algún lado y que apache lo vea. Al apache2 hay que indicarle que también escuche por el puerto 443 que es el del Secure Socket Layer (ssl) para eso se modifica el fichero /etc/apache2/ports.conf para que ponga:

Listen 80
Listen 443

Ahora tenemos que indicarle apache que soporte el ssl para ello instalamos el modulo ssl: # apt-get install libapache-mod-ssl
Una vez instalado esto le decimos a apache que cargue el modulo, tecleando lo siguiente :
a2enmod ssl

Y con esto ya solo nos queda configurar nuestro fichero de sites-availables donde tenemos nuestra configuración para poder acceder a nuestro site mediante https.
editamos el fichero /etc/apache2/sites-availables/default y creamos el virtual host adecuado para el puerto 443 :
Poniendo en el DocumentRoot el lugar donde tenemos nuestra pagina. Le indicamos que utilizamos certificados (SSLEngine on) y le decimos donde tiene que que leer el certificado (SSLCertificateFile) y la clave privada de este (SSLCertificateKeyFile).

Finalmente despues de guardar el fichero default nos vamos al /etc/apache2/sites-enabled y hacemos un vinculo simbólico al fichero default del sites-availables y le llamamos default-000
ln -s ../sites-availables/default default-000

Ahora solo nos queda generamo el certificado para que la entidad certificadora la firme:
# openssl req -new -nodes -out peticion-apache.pem -keyout keypriv.pem

Los dos archivos generados los guardaremos en /etc/apache2/ssl/ (peticion-apache.pem "la que firma la entidad", keypriv.pem "llave privada")
Esta peticion-apache.pem se la damos a la entidad cuando la firme tambien la guardaremos en /etc/apache2/ssl/ y en el archivo /etc/apache2/sites-availables/default en la linea SSLCertificateFile y la ruta con el nombre del certificado.

Ahora recargamos nuestro servicio.
# /etc/init.d/apache2 start

Abrimos un navegador web y visitamos nuestro sitio web. Nos mostrara algo asi.

Peticion de Certificado para Apache

Si queremos lo podemos configurar para que tambien escuche por el puerto 80 (sin seguridad). Acontinuacion dejo unas imagenes de la configuracion completa del archivo /etc/apache2/sites-availables/default. Al copiar la configuracion del fichero en el blog, no me toma unas lineas por eso dejo las dos imagenes de lo que contiene todo el archivo.

Para mas informacion visita este sitio web.

Mas informacion sobre este tema en los siguientes link en este mismo blog:
--Entidad Certificadora en Windows 2003 Server.
--Peticion deCertificado desde un Browser.
--Peticion deCertificado en Windows.

Peticion de Certificado desde un Browser

Para hacer una peticion de Certificado desde un navegador es necesario saber la Url o la direccion IP por la cual accederemos a la Entidad Certificadora que esta motada en Windows 2003 Server.

En este peño ejemplo solo generaremos la peticion para que la entidad la firme y nosotros despues poder instalarla en un sitio web.

En estos enlaces ahi mas documentacion sobre este tema:
--Entidad Certificadora en Windows 2003 Server
--Peticion de Certificado en Windws
--Peticion de Certificado para Apache

Peticion de Certificado.

-->Primero abrimos el navegador
-->En la barra de navegacion digitamos la direccion IP de la Entidad (10.3.16.100), con el nombre del subdirectorio que vamos a visitar (/certsrv).
-->Solicitar un certificado (Request a certificate).
-->Para generar la peticio le damos clic en Certificado de Navegador web (Web Browser Certificate).-->Ahi nos pedira la informacion con la cual nos identificaremos.
-->Enviar.
-->Digitaremos una contraseña requerida para generar la peticion.


-->Ahora nos mostrara que ahi una Peticion de Certificado pendiente.
-->Miramos el estado de la peticion generada.
-->Nos muestra la hora y fecha en que fue generada.
Esperamos a que la entidad certificadora nos firme la petion para poder descargarla e instalarla.
-->Para descargar el certificado clic en Download a CA Certificate, Certificate chain, or CRL.
--> Descargar el certificado.
-->Guardar en disco.
-->Ya con el certificado descargado lo podemos agregar a cualquier Sitio web.

lunes, 12 de mayo de 2008

Entidad certificadora en Windows 2003 Server

Entidad Certificadora: Es una empresa que ofrese certificados SSL. Estas nos dan conexiones seguras en Internet se hacen comúnmente usando el protocolo SSL. Esto hace que cuando nos conectemos a una pagina con seguridad nos aparezca https:// en la barra de direcciones, en ocasiones vemos que sale en color amarillo y hasta aparece un candado.

Las entidades certificadoras actuales cobrán por el servicio de firma de llaves y no suelen ser precisamente asequible. Montar una entidad certificadora oficial también resulta muy costoso ya que se necesitan unas ciertas garantias que detras del negocio hay una cierta seguridad.

Unas de las Empresas Certificadoras son:
-Comodo Funsiona en 99.3% de los Navegadores web
-Geotrust Funsiona en 98% de los Navegadores web
-VeriSign Funsiona en 99.9% de los Navegadores web

Estas entidades oficiales pagan para que aparezcan por defecto sus certificados en navegadores como Mozilla Firefox, Oprera o Internet Explorer entre otros. De esta forma el propio navegador puede comprobar automáticamente que cuando se conecta a un sitio seguro, el certificado que recibe ha sido realmente firmado por una entidad oficial y no que se te habra una ventana antes avisando que no hay un certificado que asegure la confiabilidad de la encriptación. Eso implica que nuestros certificados no serán reconocidos automáticamente por los navegadores a no ser que los agreguemos manualmente.

Nota: Antes de empezar la instalacion, es muy importante mirar la hora del sistema porque en el caso de que este adelantada sacara un error en la Entidad Certificadora y en los cerrtificados expedidos ya que tomara esto como en el "futuro".

Para instalar la Entidad Certificadora en Windows 2003 Server debemos instalar IIS (Internet Information Server) primero
Ahora mira las imagenes que pongo a continuacion donde se explica la instalacion de la Entidad Certificadora (CA) .

Entidad certifidadora en Windows


Ahora mostrare en otras imagenes algunos unas pasos de onfiguracion. Faltantes con unos ejemplos:

Primero abrimos la consola de administracion de IIS donde configuraremos la IP por cual escuchara nuestra entidad. En este caso como la ip de la Entidad cambiara constantemente entonces eespecificaremos Sin asignar "All Unassigned". Esto lo hacemos por la consola de Administracion de IIS.
  • Clic derecho en Default web Site
  • Properties (Propiedades)

Las personas que quieran ser certificadas por la Entidad debera hacer la Peticion de certificado (CSR) por un browser asi :
http://10.3.x.x/CertSrv --> Directorio virtual

Una vez ya hallan generado la peticion de certificado habrimos la consola de administracion (Certification Authority) nos aparecerá asi:

Para firmar las peticiones le damos clic derecho Todas las tareas (All Task), "Firmar" (Issue) y listo.


Podemos ver todos los certificados firmados en Issued Certificates.


Emlaces relacionados, en este blog:
--Peticion de Certificado en Windows
--Peticion de Certificado para Apache
--Peticion de Certificado desde un Browser

viernes, 9 de mayo de 2008

Kernel de Linux

El kernel ó núcleo de linux se puede definir como el corazón de este sistema operativo. Es el encargado de que el software y el hardware de tu ordenador puedan trabajar juntos.

Las funciones más importantes del mismo, aunque no las únicas, son:

* Administración de la memoria para todos los programas y procesos en ejecución.
* Administración del tiempo de procesador que los programas y procesos en ejecucion utilizan.
* Es el encargado de que podamos acceder a los periféricos/elementos de nuestro ordenador de una manera cómoda.

Hasta que empezó el desarrollo de la serie 2.6 del núcleo, existieron dos tipos de versiones del núcleo:

--> Versión de produccion: La version de produccion, era la version estable hasta el momento. Esta version era el resultado final de las versiones de desarrollo o experimentales.

Cuando el equipo de desarrollo del núcleo experimental, decidia que tenia un núclo estable y con la suficiente calidad, se lanzaba una nueva versión de producción ó estable. Esta versión era la que se debia utilizar para un uso normal del sistema, ya que eran las versiones consideradas más estables y libres de fallos en el momento de su lanzamiento.

--> Versión de desarrollo: Esta versión era experimental y era la que utilizaban los desarrolladores para programar, comprobar y verificar nuevas características, correcciones, etc. Estos núcleos solian ser inestables y no se debian usar sin saber lo que se hacia.

Como interpretar los numeros de las versiones de las series por debajo de la 2.6:

Las versiones del núcleo se numeraban con 3 numeros, de la siguiente forma: AA.BB.CC

AA: Indicaba la serie/versión principal del núcleo. Solo han existido la 1 y 2. Este número cambiaba cuando la manera de funcionamiento del kernel habia sufrido un cambio muy importante.
BB
: Indicaba si la versión era de desarrollo ó de producción. Un número impar, significaba que era de desarrollo, uno par, que era de producción.
CC: Indicaba nuevas revisiones dentro de una versión, en las que lo único que se habia modificado eran fallos de programación.


--> Unos ejemplos nos ayudaran a entenderlo mejor:

ej1: versión del núcleo 2.4.0: Núcleo de la serie 2 (AA=2), versión de producción 4 (BB=4 par), primera versión de la serie 2.4 (CC=0)
ej2
: versión del núcleo 2.4.1: Núcleo de la serie 2, versión 4, en el que se han corregido errores de programación presentes en la version 2.4.0 (CC=1)
ej3: versión del núcleo 2.5.0: versión 0 del núcleo de desarrollo 2.5.

Con la serie 2.6 del núcleo, el sistema de numeración asi como el modelo de desarrollo han cambiado. Las versiones han pasado a numerarse con 4 digitos y no existen versiones de produccion y desarrollo.
--> Las versiones del núcleo se numeran hoy en dia con 4 digitos, de la siguiente forma: AA.BB.CC.DD.

AA: Indica la serie/versión principal del núcleo.
BB: Indica la revision principal del núcleo. Numeros pares e impares no tienen ningun significado hoy en dia.
CC: Indica nuevas revisiones menores del núcleo. Cambia cuando nuevas caracteristicas y drivers som soportados.
DD: Este digito cambia cuando se corrigen fallos de programación o fallos de seguridad dentro de una revisión.

Hoy en dia se suele usar el nucleo distribuido con la distribucion que el usuario utiliza. Son las distribuciones las encargadas de distribuir núcleos estables a sus ausuarios y estos nucleos se basan en el núcleo ("vanilla") distribuido por Linux Torvalds y el equipo de programadores del núcleo.


Dónde conseguir el núcleo

El núcleo denominado "vanilla" (sin alteraciones y suministrado por Linux Torvalds) se puede bajar de un gran número de servidores en internet pero el sitio oficial es http://www.kernel.org/. En este enlace tienes la lista internacional oficial de servidores espejos, de donde es posible bajarse cualquier versión del núcleo (última y antigüas). A continuacion teneis una tabla resumen con las ultimas versiones del kernel:

Ultima version estable del kernel: 2.6.25.3
Ultima version alpha de la serie 2.6: 2.6.26-rc2
Ultima version estable de la serie 2.4: 2.4.36.4
Ultima version alpha de la serie 2.4: 2.2.26
Ultima version estable de la serie 2.2: 2.2.27-rc2

Cada distribución distribuye sus nucleos por los canales de actualización habituales para cada una de ellas.


Configuración e instalación de un nuevo núcleo

Este es uno de los temas que asustan a los nuevos usuarios de Linux. Lo primero, decir que no hay razón para asustarse, la configuración e instalación de un nuevo núcleo en nuestro sistema es mas fácil de lo suena. Lo segundo, es que pueden tener un sistema estable, actualizado y que funcione sin problemas durante meses sin tener que compilar un solo núcleo, siempre y cuando utilicen los núcleos distribuidos con vuestra distribución.

Es muy recomendable el utilizar los núcleos distribuidos por la distribución que utiliceis. Estos núcleos tienen muy buena calidad y son muy completos y con esto evitar el trabajo de configurar, compilar y mantener nuevas versiones del núcleo. Si son de los que les gustan experimentar y aprender nuevas cosas, adelante, nadie impide que bajemos el último núcleo y experimentar con el, esto era mucho más común hace unos años y una tarea casi imprescindible en muchos casos.

Para los interesados en el tema existen dos links muy buenos que pueden utilizar para aprender a como compilar un núcleo, FAQ/Kernel compilation y el Kernel Rebuild Guide.


Esta informacion fue sacada de www.linux-es.org


¿ Como saber la version de kernel que estamos usando?

Pues esto es muy facil solo es cuestion de dar el comando uname -r y este nos mostrara la informacion solicitada.

OpenOffice.org


Me inscribi en unas listas de correos en la que todos los dias me llegan mensajes contando las nuevas cosas que suceden en el mundo de la tecnologia. Esto es bueno porque asi mantengo un poco informada y miro los problemas que le suceden algunas personas, que si puedo colaborar en algo aporto o miro los aportes de los demas.

Pues lo que les quiero contar es que ya esta disponible la nueva version de OpenOffice.org 3.0 Beta, la cual la pueden descargar aciendo clic aqui. Unas de las caracteristicas son:

--> Nuevo soporte para sistemas Mac
--> Soporte para formato ODF 1.2
--> Importación de documentos, hojas de calculo y presentaciones generadas en MSOffice 2007 (.docx)
--> Un modulo para ejercicios programación lineas llamado Solver
--> Ampliación de opciones para gráficos de regresiones
--> y Entre otras, soporte para 1024 en lugar de 256 columnas en cada hoja de calculo

Para mas informacion mira este link.