Archivo

Archivo para la Categoría "Uncategorized"

Vulnerabilidad de seguridad descubierta en Windows 7

19 mayo 2010 1 Comentario

Se ha descubierto una vulnerabilidad de seguridad en Windows Canonical Display Driver (cdd.dll), la cual podría exponer a los usuarios a ejecución de código y ataques de denegación de servicio. Dicha vulnerabilidad, que solamente afecta a Windows 7 y Windows Server 2008 R2, ha sido reportada en la Microsoft Security Advisory 2028859, pero Microsoft afirma que no hay indicios de ataques que hayan intentado explotar la vulnerabilidad.

El Canonical Display Driver se utiliza para combinar la interfaz de dispositivos gráficos de Windows (GDI) con DirectX. Si se explotara esta vulnerabilidad, probablemente provocaría que el sistema dejara de responder y se reiniciara automáticamente.

Por otro lado, el gigante de Redmond asegura que la ejecución de código sería posible pero difícil, debido a la aleatorización de memoria tanto en el kernel como a través de Address Space Layout Randomization (ASLR). Además, esta vulnerabilidad solamente afecta a aquellos sistemas que tengan Aero instalado, el cual no está habilitado por defecto en Windows Server 2008 R2.

Por todo lo anterior, los usuarios de Windows 7 o Windows 2008 R2 deberían considerar deshabilitar el tema Windows Aero para prevenir que la vulnerabilidad se explote en el sistema. Para deshabilitar Windows Aero, se deben seguir estos pasos para cada usuario del sistema:

1) Ir a Inicio –> Panel de control y pulsar sobre “Apariencia y personalización”

2) Dentro de la categoría Personalización, pulsar en “Cambiar el tema”

3) Ir al final de la lista de temas y seleccionar uno de los temas básicos o de alto contraste

Microsoft está investigando este agujero de seguridad y lanzará un parche de seguridad para corregirlo una vez completado el proceso de investigación.

FUENTE :http://www.softzone.es/2010/05/19/vulnerabilidad-de-seguridad-descubierta-en-windows-7/

Tutorial: Sistema Captcha con PHP

11 mayo 2010 Deja un comentario

Cómo hemos ido comentando desde hace buen tiempo atrás, existen varios métodos para bloquear el spam de nuestras páginas web; por ejemplo, uno de los métodos que más agrada es utilizando Akismet, un servicio web anti spam, transparente al usuario.

Sin embargo, hay veces que Akismet no cubre las expectativas ó simplemente, hay aplicaciones en que no puede utilizarse. Por ello, vamos comentar otro método para impedir el acceso de los robots a nuestro sistema, esta vez, con la creación de un Captcha con PHP.

Esta es la traducción de un artículo recientemente publicado en fuzzyopinions, del cual, su simpleza y funcionamiento y diseño final me han agradado bastante. El resultado final del Captcha lo pueden observar en la siguiente imagen:

Sistema Captcha con PHP

Cómo sabrán un captcha es solicitar al usuario que escriba los caracteres que aparecen en una imagen dentro de un campo de texto. Si lo hace correctamente tendrá acceso, de lo contrario, se le pedirá que vuelva a escribir el código, indicándole que lo que ha escrito esta errado.
7 pasos para crear un captcha

Estos son los siete pasos básicos para generar un sistema Captcha:

1. Generar un código aleatorio
2. Añadir el código a una cookie, variable de sesión ó base de datos que será recuperada desde la siguente página
3. Escribir el texto dentro de una imagen
4. Mostrar la imagen al usuario que quiera acceder al recurso
5. Proveer de un formulario, donde el usuario ingrese el código y lo envíe
6. Verificar el código de la clave enviada (en el paso 2)
7. Si el código es correcto, se permite el acceso

A continuación veremos el código necesario para crear nuestro captcha.

Generando y almacenando el código

Cómo mencionamos en el primer paso, el texto del código debe ser aleatorio. Hay varias maneras de conseguir esto, por lo que en este paso podemos sentirnos libres de experimentar, pero eso si, lo que hagamos debe de cumplir dos cosas: 1) Recuperar un valor que cambie constantemente y 2) Cifrar ese valor.

Un valor que cambia constantemente puede ser, por ejemplo, la fecha y hora del servidor, para ello, nos serviremos de las funciones microtime( ) y mktime( ) de PHP. Una vez con el valor totalmente aleatorio en nuestras manos, lo cifraremos con la función md5() de PHP. Finalmente (fíjense en la última línea del código), almacenaremos el valor en una variable de sesión.

<?php

// Start the session so we can store our generated key inside it for later retrieval

session_start( );

// Set to whatever size you want, or randomize for more security

$captchaTextSize = 7;

do {

// Generate a random string and encrypt it with md5

$md5Hash = md5( microtime( ) * mktime( ) );

// Remove any hard to distinguish characters from our hash

preg_replace( ‘([1aeilou0])’, “”, $md5Hash );

} while( strlen( $md5Hash ) < $captchaTextSize );

// we need only 7 characters for this captcha

$key = substr( $md5Hash, 0, $captchaTextSize );

// Add the newly generated key to the session. Note, it is encrypted.

$_SESSION[’key’] = md5( $key );

?>

Mostrando el código aleatorio en la imagen Captcha

Una vez generado el código captcha y almacenado correctamente, procederemos a recuperarlo y mostrarlo al usuario. Para el manejo dela imagen utilizaremos la librería GD.

<?php

// grab the base image from our pre-generated captcha image background

$captchaImage = imagecreatefrompng( “images/captcha.png” );

/*

Select a color for the text. Since our background is an aqua/greenish color, we choose a text color that will stand out, but not completely. A slightly darker green in our case.

*/

$textColor = imagecolorallocate( $captchaImage, 31, 118, 92 );

/*

Select a color for the random lines we want to draw on top of the image, in this case, we are going to use another shade of green/blue

*/

$lineColor = imagecolorallocate( $captchaImage, 15, 103, 103 );

?>

Ya hemos seleccionado los colores, ahora queremos mostrar algunas líneas que incrementen la dificultad, para que los robots (spam) no lean nuestro código (texto aleatorio).

<?php

// get the size parameters of our image

$imageInfo = getimagesize( “images/captcha.png” );

// decide how many lines you want to draw

$linesToDraw = 10;

// Add the lines randomly to the image

for( $i = 0; $i < $linesToDraw; $i++ )  {

// generate random start spots and end spots

$xStart = mt_rand( 0, $imageInfo[ 0 ] );

$xEnd = mt_rand( 0, $imageInfo[ 0 ] );

// Draw the line to the captcha

imageline( $captchaImage, $xStart, 0, $xEnd, $imageInfo[1], $lineColor );

}

?>

Finalmente, escribimos nuestro código en la imagen y la mostramos en la pantalla. Comenzaremos con una imagen de fondo pre generada. Este método, puede fácilmente permitirnos incluir docenas de fondos adicionales, seleccionados al azar, o aún, para hacerlo más complejo, podríamos generarlo nosotros mismos, dentro del captcha.

Para escribir nuestro captcha usaremos la función imagettftext(), la cual se caracteriza por escribir un texto sobre una imagen usando fuentes TrueType. En este caso, utilizaremos la fuente BitStream Vera Sans Bold, que es una fuente Open Source que podemos copiar y redistribuir libremente. Ahora bien, si queremos podemos utilizar cualquier otra fuente, ó aún mejor, mezclar fuentes al azar para hacer más difícil que losrobots lean nuestra imagen.

<?php

/*

Draw our randomly generated string to our captcha using the given true type font. In this case, I am using BitStream Vera Sans Bold, but you could modify it to any other font you wanted to use.

*/

imagettftext( $captchaImage, 20, 0, 35, 35, $textColor, “fonts/VeraBd.ttf”, $key );

// Output the image to the browser, header settings prevent caching

header ( “Content-type: image/png” );

header(”Cache-Control: no-cache, must-revalidate”);
header(”Expires: Fri, 19 Jan 1994 05:00:00 GMT”);
header(”Pragma: no-cache”);

imagepng( $captchaImage );

?>

Ahora que ya tenemos nuestro captcha elaborado, el paso final es crear el formulario que interactúe con el usuario.

Incluyendo el Captcha en la página web

Para verificar el correcto funcionamiento de nuestro captcha, necesitamos crear un formulario que permita al usuario ver el código, escribirlo en un campo de texto y enviarlo pulsando un botón. Esto ya todos lo debemos de conocer, por lo que no nos explayamos en este punto.

<img src=”captcha.php” border=”0″ />

<form name=”captcha-form” method=”POST” action=”captcha-verify.php”>

<input type=”text” name=”code” width=”25″ />

<input type=”submit” name=”submit” value=”submit” />

</form>

Ahora bien, asumiendo que el formulario ha sido enviado, deberemos ser capaces de verificar el código enviado. Por ejemplo podemos utilizar un script PHP similar a este.

<?php

session_start( ); // allows us to retrieve our key form the session

/*

First encrypt the key passed by the form, then compare it to the already encrypted key we have stored inside our session variable

*/

if( md5( $_POST[ ‘code’ ] ) != $_SESSION[ ‘key’ ] ) {

echo “You ented the wrong code, please try again!”;

} else {

echo “Success, you ented the correct code, rock and roll…”;

}

?>

Eso es todo. Desde luego, hay mucho que se podría hacer para personalizar un Sistema Captcha, hacerlo más complejo e incluirlo en nuestros sitios web. Estas son algunas ideas:

* Combinar palabras para hacerlo semilegible y dificultar a los robots que lean la imagen. Esto se podría hacer utilizando dos archivos de donde se recuperen los textos.
* Girar el texto al azar y jugar con el espacio entre las letras. Aunque hay que tener cuidado de no hacerlo muy enrevesado, tanto que nuestros propios usuarios no puedan entenderlo.
* Cambie la ubicación del texto en la pantalla. En nuestro caso, el texto siempre aparece en un mismo punto, pero podríamos cambiar su ubicación al azar.

Espero que este mini tutorial sobre la creación de un Sistema Captcha con PHP les haya sido de ayuda, aunque sea mostrando los conceptos básicos de su creación.

Fuente: http://www.baluart.net/articulo/tutorial-sistema-captcha-con-php

Como obtener información del hardware en Linux

7 mayo 2010 Deja un comentario

Dmidecode detalla información sobre el hardware del sistema tal como se describe en el BIOS según el SMBIOS/DMI estándar. Esta información incluye típicamente el nombre del fabricante del sistema, el modelo, número de serie, versión del BIOS, la etiqueta de activos, así como muchos otros detalles de interés variable como el nivel de fiabilidad en función del fabricante. Esto a menudo incluye también la condición de los zócalos del CPU, las ranuras de expansión por ejemplo, AGP, PCI, ISA, las ranuras del módulo de memoria, o la lista de puertos de E/S (Entrada/Salida) por ejemplo, los de serie, paralelo y USB.

Dmidecode lo use por primera vez cuando uno de mis vecinos a quién le instalé GNU/Linux el año pasado, me solicitó le ampliara la memoria a su equipo; ambos sin recordar las características de la memoria en cuestión. Para saberlo, me vino la idea por desarmar el equipo para tomar los datos directamente ¿Que locura? Por fortuna la idea no fue persistente, así que, intenté correr sin éxito aquel programa en modo gráfico de cuyo nombre no recuerdo, pero que despliega toda la información de nuestras maquinas ¡Vaya necedad! o mejor dicho que ambigüedad la mía, trabajar en modo texto por gusto y al mismo tiempo buscar utilerías en modo gráfico. Sin embargo, es una de las formas de mi aprendizaje; lo decía Oscar Wilde de esta manera “Se habla mucho de la belleza de la certidumbre como si se ignorase la belleza sutil de la duda. Creer es muy monótono; la duda es apasionante”.

GNU/Linux tiene montones de programas y documentación instalada en nuestros equipos, por ejemplo se podría pedir desde consola cat /proc/meminfo, pero requiere de conocimiento delsistema y de precisión para solicitar la información; cuando no se me da tal cual alguna de las formas anteriores, mi búsqueda principal es por medio de Synaptic donde con mucha facilidad puedo encontrar, inclusive sin conexión a Internet; palabras relacionadas, de contenido y nombres de programas me llevan con frecuencia y casi siempre a resultados positivos.

Abrí entonces Synaptic, en su recuadro Búsqueda rápida, introduje la palabra “hardware” y me entregó un listado (browser) en donde aparece en primera instancia el paquete dmidecode, indica estar instalado; doy clic sobre su nombre y me da su descripción: El Desktop Management Interface (DMI) proporciona una descripción estandarizada del hardware en el equipo… Continuo recorriendo toda la lista y de la misma manera, encuentro el paquete también instalado lshw con la descripción como una pequeña herramienta que proporciona información detallada sobre la configuración del hardware de la máquina.

Sabedor de ello me abro un terminal y solicito las páginas man para saber como funcionan

dmidecode

Su sintaxis es: dmidecode [opciones] en donde las opciones pueden ser entre otras mas técnicas -q –query (consulta) y -t –type TYPE (en donde TYPE significa una de las palabras clave: bios, system, baseboard, chassis, processor, memory, cache, connector y slot). Debido a que se trata de una utilería de administración, opera únicamente como tal o bajo sudo.

sudo dmidecode -q

El resultado me dice que el equipo soporta hasta 4 Gb en dos bancos, que el banco 0 esta ocupado con 2048 Mb., es de formato DIMM y tipo DDR sincrona de 800 MHz a 1.2 ns, que el banco 1 esta desocupado y no hay error. Todo ello en un despliegue similar a lo siguiente:

 # dmidecode 2.9
 SMBIOS 2.4 present.

 Handle 0x0022, DMI type 16, 15 bytes
 Physical Memory Array
 	Location: System Board Or Motherboard
 	Use: System Memory
 	Error Correction Type: None
 	Maximum Capacity: 4 GB
 	Error Information Handle: Not Provided
 	Number Of Devices: 2

 Handle 0x0024, DMI type 17, 27 bytes
 Memory Device
 	Array Handle: 0x0022
 	Error Information Handle: Not Provided
 	Total Width: 64 bits
 	Data Width: 64 bits
 	Size: 2048 MB
 	Form Factor: DIMM
 	Set: None
 	Locator: J6H1
 	Bank Locator: CHAN A DIMM 0
 	Type: DDR
 	Type Detail: Synchronous
 	Speed: 800 MHz (1.2 ns)

Otras utilerías que nos muestran información importante del hardware y no se requiere de actividad como administrador o el uso de sudo,

lshw

Extrae información detallada sobre la configuración del hardware

lshw -businfo

lspci

Es una utilidad para mostrar información acerca de todos los buses PCI en el sistema y todos los dispositivos conectados a ellos.

lspci -v

lsusb

Es una utilidad para mostrar información acerca de todos los buses USB en el sistema y todos los dispositivos conectados a ellos.

lsusb

Por supuesto hay muchas otras utilidades en Linux, bastaría buscarlas en Synaptic o con la ayuda de Google; sin embargo, estas son las que he probado con buenos resultados para mi; espero les sea de utilidad a ustedes también.
Leer más: http://www.laconsolablog.com/2009/01/13/como-obtener-informacion-del-hardware-en-linux/#ixzz0nHK5VdsL

Categorías:Hardware, Linux, Uncategorized Etiquetas: ,

Zimbra y Spamassassin: bajar los niveles de las puntuaciones

7 mayo 2010 Deja un comentario

Zimbra trae una configuración por defecto en Spamassessin que puede o no ser la adecuada para cada empresa.
En mi caso, con el tiempo me di cuenta que no era así y tuve que comenzar a ir modificando parámetros cuando empezaron a detectarse correo validos como spam (fasos positivos). Imagínate si trabajas en un sexshop o en una farmacia; tendrías un montón de correos validos que los detectaría como spam y por tanto estarías obligado a modificar todos los parámetros de spamassessin para ajustarlos a tu política.

Para entendernos mejor empezaremos con un mail que ha sido analizado por Spamassessin. Cualquier mail que pase por Zimbra encontraremos en el cuerpo del mail algo como (el resto de headers no interesan ahora mismo):

   ...
   X-Spam-Flag: YES
   X-Spam-Score: 10.565
   X-Spam-Level: **********
   X-Spam-Status: Yes, score=10.565 tagged_above=-10 required=4
      tests=[BAYES_99=3.5, FH_HOST_ALMOST_IP=1.751, RCVD_IN_PBL=0.905,
      RCVD_IN_SORBS_DUL=0.877, RCVD_IN_XBL=2.033, URIBL_SBL=1.499]
   ...

Este mail a sido detectado como Spam porque a recibido una puntuación de 10.565. Dado que esta puntuación es mayor que required=4 se marca como spam. Los test que ha hecho spamassessin para detectar que esto es una spam son: BAYES_99, FH_HOST_ALMOST_IP, RCVD_IN_PBL, RCVD_IN_SORBS_DUL, RCVD_IN_XBL, URIBL_SBL. Cada uno de estos test está configurado para recibir una puntuación en caso de darse cierto el test.

En esta pagina podéis encontrar todos los tests, que hace cada uno de ello y la puntuación que recibe.

Volviendo a mi problema, si un correo es detectado como spam tenemos 4 posibilidades:

1. Ir al Webmail del usuario, entrar dentro de la carpeta Basura (Junk), seleccionar el correo detectado como basura y pulsar sobre el botón “No basura”.
2. Modificar los parámetros generales para especificar la puntuación mínima para un spam.
3. Añadir al usuario a una lista blanca.
4. Modificar los scores para los diferentes test que hace el spamassessin.

La primera solución parece la más correcta porque le decimos a Zimbra que ese correo no lo detecte como spam, pero en mi caso no funciona porque el 99% de los usuarios acceden por Outlook y por tanto esta funcionalidad no la pueden usar.
Para la segunda opción si ejecutamos “./zmprov gacf” o entramos en la Web de administración de Zimbra, tendremos dos parámetros por los cuales se define cuando un correo es spam. Estos dos parámetros son:

   zimbraSpamKillPercent: 75
   zimbraSpamTagPercent: 20

El SpamTag define cuando un correo es considerado Spam y el otro cuando es considerado spam y por tanto debe eliminarse directamente (no aparece ni en la carpeta Basura del usuario).

En ejemplo anterior son necesarios 4 puntos para marcar el correo como spam. Este valor sale de:

   ZimbraSpamTagPercent * 20% = 20 * 0,2  = 4

Por el otro lado tenemos que 15 son los puntos necesarios para eliminar el correo:

   ZimbraSpamKillPercent * 20% = 75 * 0,2 = 15

Por tanto cambiando el valor de estos dos parámetros (con el comando zmprov o desde la Web de administración) podemos cambiar el comportamiento del spam.

Para el tercer método, añadiremos al remitente a una lista blanca. En mi caso tuve muchos problemas con todos los mails que vienen de amadeus.net. Esta empresa es la que gestiona todas las reservas de billetes de avión, hoteles, barcos, etc, y por tanto todos los mails de confirmaciones de billetes iban al spam. Era necesario evitar esto. Para ello hay que meter este dominio dentro del archivo /opt/zimbra/conf/spamassessin/60_whitelist.cf

Hay que añadir al final del archivo algo como esto y reiniciar Zimbra (o reiniciar el Amavis):

   whitelist_from_rcvd *@*.amadeus.net   amadeus.net

Recomiendo echar un vistazo a todos los archivos de esta carpeta.

Para finalizar, la cuarta opción es modificar los scores directamente dependiendo de nuestras necesidades. Para ello necesitamos saber que scores cambiar y que es lo que hace ese test para recibir ese score. Si editamos /opt/zimbra/conf/spamassession/50_scores.cf podremos ver las diferentes puntuaciones asignadas a las tests.

Por ejemplo, dado la naturaleza de mis correos, muchos correos se envían por el asunto en mayúsculas o sin asunto y el spamassession le asigna un puntuación un poco alta. Entonces lo que podemos hacer es (por ejemplo) bajar un punto a las pruebas MISSING_SUBJECT y SUBJ_ALL_CAPS.

Ahora solo tendremos que reiniciar el Zimbra y hacer una prueba para ver como cambian las puntuaciones en el mail sin nuestras modificaciones y con las nueva modificaciones.

Fuente: http://amperis.blogspot.com/2008/04/zimbra-y-spamassession-bajar-los.html

Categorías:Spamassasin, Uncategorized, Zimbra Etiquetas: ,

Manual SSH: El dios de la administración remota

4 mayo 2010 Deja un comentario

¿Has estado alguna vez en el trabajo o en casa de y has necesitado o te has acordado de un archivo que no tienes en ese momento pero sí en tu ordenador? Existen los escritorios remotos, de hecho Ubuntu trae uno instalado por defecto, pero puede que no queramos hacer más que mandarnos un archivo o hacer algo en el ordenador remoto. Para esto -y mucho más- existe SSH, con un inmenso potencial.

SSH son las siglas de Secure SHell. Lo que te ofrece es una consola en un ordenador remoto con los privilegios que tenga la cuenta con la que conectes. Es decir, si en tu PC tienes varias cuentas, puedes conectar desde otro ordenador al tuyo con cualquiera de esas cuentas y sus respectivos privilegios, como pudiera ser la cuenta root, la de tu administrador sudo o la de un usuario normal sin poder de administración. Y todo esto con encriptación de datos.

En este tutorial os voy a mostrar algunas facetas de su uso, pero antes debéis saber que tener el servidor de SSH corriendo es de cierto riesgo, ya que si no tocáis la configuración por defecto para aumentar la seguridad a un nivel más que aceptable, puede ser un agujero para que alguien pueda entrar en vuestro sistema. Pero no os preocupéis, si seguís estos pasos es difícil que suceda, nunca imposible, pero sí difícil.

El manual es algo extenso debido a que he intentado hacer que resulte bastante completo y que, como llevo haciendo en el resto de tutoriales, quiero que sepáis lo que estáis haciendo, los porqués y lo que significa cada cambio que hacéis. De esta forma tendréis criterio propio para vuestras modificaciones personales.

Instalar

En vuestros repositorios ya tenéis SSH dispuesto a instalar, así pues:

$ sudo aptitude install ssh

Una vez instalado se autoiniciará el demonio que ejecuta el servidor SSH y gestiona las solicitudes de login remoto.

Configuración: Mayor seguridad

Como decía antes no es muy inteligente usar SSH sin modificar el fichero de configuración del servidor. Vamos a modificar algunas opciones para conseguir una seguridad aceptable.

$ sudo gedit /etc/ssh/sshd_config

(nota) Si algunas de las opciones que aquí comento no aparecen en vuestro sshd_config, simplemente agregadlas. Podéis hacerlo donde queráis, aunque lo suyo es que lo hagáis al principio o al final para que sepáis cuales son las opciones que vosotros habéis agregado.

Vemos un fichero de configuración típico basado en “opción valor”. Vamos a comenzar las modificaciones por el puerto que es lo primero que vemos y una de las cosas más importantes. SSH usa por defecto el puerto 22. Esto significa que si no lo cambiamos estamos entregando a un caco que sabe la dirección de dónde vivimos (nuestra IP) también la llave del portal.

Cambiaremos el puerto para evitarlo. Esto no quita que el caco pueda intentar averiguar “el portal” si sabe cómo hacerlo pero al menos le ponemos impedimentos. También hay scripts que atacan directamente el puerto 22, por lo que el cambio de puerto es algo obligatorio. Poned el que queráis y abridlo también en el router para que podáis acceder a vuestro ordenador desde otro. Usaremos por ejemplo el 4321, podéis poner el que queráis. Así pues en el fichero de configuración:

port 4321

Un poco más abajo buscad la opción “Protocol” debe estar a valor 2, si no es así (valor 1 ó 2,1 ponedla. Hay dos versiones de protocolo SSH. La primera está ya en desuso y tiene varias vulnerabilidades. Así debéis dejarlo en vuestra configuración:

Protocol 2

Buscad la sección “Authentication”. Sus dos primeras opciones son también importantes. La primera es el número de segundos que tendrá el usuario remoto para hacer login en tu máquina. Poned ese valor a pocos segundos, no tardamos mucho en hacer login si sabemos la cuenta y la password. De esta forma evitamos ciertos scripts que se aprovechan de ese tiempo. El valor típico en términos de seguridad es 30, aunque podéis poned incluso menos si estáis más conformes.

LoginGraceTime 30

Justo debajo tenéis otras de las opciones más importantes, PermitRootLogin. Si antes usé la metáfora del caco y el portal, esta opción viene a ser que le digáis también en qué planta del bloque de pisos vivís y qué puerta, faltándole sólo la llave. Con esto lo que insinúo es que si sabe por qué puerto entrar, tan sólo le queda averiguar dos datos: el nombre de una cuenta y su contraseña.

Si tenemos esta opción habilitada (yes) el caco ya tiene la mitad del trabajo hecho, pues el usuario “root” existe en todas las máquinas GNU/Linux, tan sólo le queda averiguar la contraseña. Por eso es más que recomendable deshabilitar esta opción. No os preocupéis los que tenéis en mente usar SSH para hacer un uso administrativo, podéis hacerlo con vuestra cuenta y sudo sin problema alguno. Así pues…

PermitRootLogin no

También podéis señalar con el dedo las cuentas que tienen permitido el uso SSH (AllowUsers). Pongamos un ejemplo, que es como mejor se entienden las cosas: Supongamos que tienes un amigo con el que quieres compartir algo vía SSH y además tiene un hermano que es un enreda y en el que no confías por si te la puede liar. Llamaremos a las cuentas “amigo” y “pesado” respectivamente. Para restringir el uso de SSH a tu amigo y a tu propia cuenta (llamémosla “pepino”) podemos indicárselo mediante configuración. Incluso podemos indicar también que tu amigo sólo se pueda conectar a tu ordenador desde el suyo, sabiendo su IP (supongamos que es 83.45.258.21). Pondríamos en la configuración:

AllowUsers pepino amigo@83.45.258.21

De esta forma tú podrías usar tu cuenta (pepino) para conectar a tu equipo desde cualquier lugar, tu amigo podría hacerlo sólo desde su ordenador (si tiene esa IP) y tu hermano no podría conectar a tu máquina vía SSH, si no tiene tu cuenta.

Otra opción interesante es el número de intentos que tiene el usuario remoto para hacer login (MaxAuthTries). Como comenté antes, quien intente conectar debe acordarse de su login y password, por lo que es tontería darle un número grande de intentos. En principio con dos son más que suficientes. Si al segundo intento no lo ha conseguido se cortará la conexión SSH. Siempre se puede volver a conectar y reintentarlo, pero así nos quitamos de encima ciertos scripts que intentan encontrar el login por fuerza bruta a base de ensayo y error.

MaxAuthTries 2

Por último hay otra opción que define el número máximo de usuarios conectados simultáneamente a tu máquina. Esto ha de adaptarse a tus propias necesidades. Si estamos hablando de un ordenador personal donde sólo vas a conectar tú, pues lo lógico sería que como mucho hubiera una. Si estamos hablando de un ordenador que hará las veces de servidor compartiendo una carpeta a varias máquinas, deberás decidir cuántos son. Cuanto tengas claro el número indícalo en la opción siguiente en lugar de la ‘X’:

MaxStartups X

Ya podéis guardar y cerrar gedit. Con esto tenéis un servidor SSH bastante seguro. Como comenté antes nunca es 100% seguro pero a priori podéis estar bien tranquilos. Sólo resta reiniciar el propio servidor SSH para que tome los cambios que hemos efectuado en su configuración. Escribid en consola:

$ sudo /etc/init.d/ssh restart

Un último consejo. Como habéis visto podemos poner trabas al caco en cuanto a nuestra dirección y puerta, pero ¿podemos ponerle problemas con la llave? La llave se entiende que es la contraseña. Y la respuesta es afirmativa. Podéis hacerlo pero vosotros mismos. Poned claves en condiciones a vuestras cuentas. Usad como poco 5 ó 6 caracteres y a ser posible que se entremezclen mayúsculas, minúsculas y números, por ejemplo: entr3TuXeSyp3p1n0s.

Es un ejemplo exagerado, enrevesado a la hora de escribir e incómodo para meterlo en sudo cada dos por tres, pero intentad que sea del estilo y procurad que no sea algo tan simple como vuestro nombre, el de vuestra mascota, vuestra fecha de nacimiento, grupo favorito, etc.

Uso de SSH en consola
  • Conectar

Ahora que tenemos SSH bien seguro es hora de que veais para qué sirve. Parto de que tenéis dos equipos, el que tenéis delante y al que queréis conectar. Obviamente debéis tener una cuenta en el segundo para poder entrar. La forma de conectar por defecto es la siguiente:

$ ssh tu_cuenta@ip_del_ordenador_remoto

Esto sería si no hubiéramos cambiado el puerto, ya que intentaría conectar por el puerto 22 que es el puerto por defecto del cliente. Podéis cambiarlo si queréis para que conecte por defecto por el puerto que le digáis en lugar del 22 editando el fichero /etc/ssh/ssh_config. Descomentáis (si está comentada) la opción “Port” y en lugar de “22″ ponéis el que queráis.

La otra opción, que es lo más normal, es simplemente indicarle en la línea de conexión qué puerto ha de usar:

$ ssh -p puerto tu_cuenta@ip_del_ordenador_remoto

Para que lo veais más claro os voy a poner un ejemplo. Mi portátil está en la ip 192.168.1.4 y el puerto SSH que tengo para el mismo es el 4884. La cuenta que voy a usar para conectarme es “pepino”, así que para conectar desde mi PC de sobremesa al portatil sería:

$ ssh -p 4884 pepino@192.168.1.4

Tras esto me pedirá la contraseña:

pepino@192.168.1.4's password:

La introducimos y tras un texto de “bienvenida” veremos que nuestro prompt ha cambiado a “nombre_cuenta@nombre_manquina”. Mi portatil se llama salamandra, así pues mi prompt es:

pepino@salamandra:~$

A partir de este instante tu consola está controlando el equipo remoto. Estarás en el home de tu cuenta en la máquina remota. ¿Qué podemos hacer?

  • Copiar ficheros

Seguramente es lo primero que se os ha pasado por la cabeza a algunos. Efectivamente podemos copiar ficheros fácilmente desde el ordenador remoto al que estamos usando en este momento, y es fácil (es una sóla línea):

$ scp ruta/archivo cuenta_en_ordenador_presente@ip_ordenador_presente:ruta/fichero

Complicado a priori, ¿verdad? En el fondo no lo es, una vez sabéis qué es cada cosa. ruta/fichero es el lugar donde está el archivo a copiar en la primera aparición, y el lugar donde se va a copiar en la segunda. cuenta_en_ordenador_presente es la cuenta que estáis usando (u otra) en el ordenador que tenéis delante (no el remoto). La ip_ordenador_presente es precisamente la ip de vuestro ordenador. Pero como siempre mejor con un ejemplo.

Supongamos que quiero copiarme un fichero llamado pepino.jpg que está en el escritorio de la cuenta “pepino” del portátil (el ordenador remoto) y quiero copiármelo en el home de la cuenta “tux” de mi ordenador presente, cuya ip es 192.168.1.6. Ya que estoy quiero aprovechar y cambiarle el nombre. Quiero que se llame pepinaceo.jpg en lugar de pepino.jpg. Escribiremos en el SSH (es una sóla línea):

$ scp /home/pepino/Desktop/pepino.jpg tux@192.168.1.6:/home/tux/pepinaceo.jpg

¿No funciona? ¿Sabes por qué? El puerto, recordad que lo cambiamos y aquí también tenemos que indicárselo. En el ordenador de sobremesa tengo abierto el puerto 8448, así pues (es una sóla línea):

$ scp -P 8448 /home/pepino/Desktop/pepino.jpg tux@192.168.1.6:/home/tux/pepinaceo.jpg

Nos pedirá la contraseña de la cuenta “tux” en el ordenador que tenemos delante y copiará el archivo:

pepino@192.168.1.4's password:
pepinaceo.png 100% 292KB 291.7KB/s 00:00

Y si ya estuvieramos en el escritorio (prompt: pepino@salamandra:~/Desktop$) no habría que poner toda la ruta si no queremos ya que tomaría la ruta relativa a la actual:

$ scp -P 8448 pepino.jpg tux@192.168.1.6:/home/tux/pepinaceo.jpg

(Nota) Ojo con la ‘P’ que en este caso debe ser mayúscula.

Otra gracia del asunto es que no tienes por qué copiarlo a tu equipo actual. Si tienes acceso a otro ordenador más, puedes copiar algo de uno al otro del mismo modo, es decir, teniendo login en ambos y sabiendo su IP. Por otro lado si lo que queremos copiar es una carpeta, basta con añadirle el parámetro ‘-r’ para que copie todo su contenido (r=recursivo).

  • Otros usos

Básicamente cualquiera que se os pase por la cabeza. Daros cuenta que para un sistema GNU/Linux el interfaz no lo es todo, de hecho es prácticamente una aplicación que está corriendo bajo el propio sistema operativo, por lo que podéis administrar perfectamente vuestro equipo desde una consola y con acceso remoto vía SSH. Dentro de una conexión SSH, podéis reiniciarlo:

pepino@salamandra:~$ sudo reboot
Broadcast message from pepino@salamandra
(/dev/pts/1) at 23:45 ...
The system is going down for reboot NOW!

O apagarlo:

pepino@salamandra:~$ sudo halt
Broadcast message from pepino@salamandra
(/dev/pts/1) at 23:51 ...
The system is going down for halt NOW!

O usar cualquier otra aplicación de texto, como podría ser una que os presenté hace poco y que os podría venir muy bien en este caso: links. De esta forma si queréis podeís navegar en la consola y descargaros algo en vuestra máquina estando en otra.

El abanico de posibilidades es realmente inmenso.

SSH en Nautilus

Lo cierto es que si lo que queremos es simplemente copiar archivos o ver el contenido de alguno de ellos que están en otra máquina, podemos usar nautilus que siempre será más amigable para algunos que a través de consola.

No hay mucho cambio al respecto. Alt+F2 y escribid dentro “nautilus”. Se os abrirá el navegador de archivos. Nautilus tiene dos formas de mostrarte dónde estás dentro de la jerarquía de directorios. Una es a través de botones donde cada carpeta es un botón que puedes pulsar para volver atrás:

Y otra que te indica la ruta en modo texto:

Para cambiar de un modo al otro pinchad en el icono que está a la izquierda del todo que es un folio escrito y un lápiz. Nos quedaremos en el segundo modo y en la caja de texto de “Lugar:” escribiremos la orden de conexión:

ssh://tu_cuenta@ip_pc_remoto

Siguiendo con los ejemplos anteriores:

ssh://pepino@192.168.1.4

Esto sería si el puerto es el que está por defecto, como nosotros lo cambiamos tenemos que indicárselo con “:puerto” tras la ip. En nuestro ejemplo:

ssh://pepino@192.168.1.4:4884

Ahora nos pedirá la contraseña de la cuenta. Tenomos estas tres opciones:

Tomad la decisión que queráis. Personalmente yo soy de los prefieren tomarse la molestia de introducir la clave en cuestiones tan importantes como es la seguridad de SSH.

Tras esto nos colocará en la raíz de la máquina remota. Si lo que queríamos era que nos dejara en una carpeta determinada se lo podemos indicar en la línea de conexión. Por ejemplo en el escritorio de nuestra cuenta:

ssh://pepino@192.168.1.4:4884/home/pepino/Desktop/

Ahora podéis copiar archivos y carpetas con total comodidad desde vuestro escritorio GNOME.

Ejecutar aplicaciones gráficas remotamente

Otra cosa muy práctica que podemos hacer gracias a SSH es ejecutar una aplicación que no tenemos en el equipo actual pero sí en el remoto y trabajar allí. Es decir, puedes mirarlo como un servidor de trabajo gráfico. Si aún no queda claro os pongo otro ejemplo:

Mientras estábais fuera de casa el pesado de tu hermano se ha hecho con tu ordenador porque tiene que hacer algo y si no “se lo dice a mamá“. Sin embargo tú también tienes cosas que hacer en él. No hay problema. Te pones en el equipo de tu hermano y abres la aplicación que necesites de tu propio ordenador en el PC de tu hermano.

Práctico, ¿verdad? Pues es muy sencillo, basta con añadir un argumento más (-X) y el nombre de la aplicación que queremos usar. Por ejemplo imaginemos que queremos jugar a Doom en DOSBox, y en el ordenador de tu hermano no tenemos ninguna de las dos cosas. Podemos instalar DOSBox, copiar la carpeta de Doom, montarla y jugar. O también podemos ejecutar directamente DOSBox remotamente y montar el juego que ya tenemos en nuestro equipo:

$ ssh -X -p 4884 pepino@192.168.1.4 dosbox

Ahora tan sólo resta montar la carpeta como ya os mostré. Podéis introducir la ruta de vuestro PC pues en el fondo es en vuestro PC donde se está ejecutando todo.

Cambiar el mensaje de bienvenida

Ya saliendo de la parte práctica, he querido hacer esta pequeña sección dentro del manual para los fanáticos de la personalización como yo. Si recordáis cuando os expliqué la conexión por consola, os comenté que tras introducir la clave nos daba una especie de texto de bienvenida. Este texto de bienvenida es modificable y puedes poner lo que quieras. Este es el de mi equipo de sobremesa:

Para hacerlo es simple. Tienes que editar (con privilegios de administrador) el archivo /var/run/motd y escribir dentro lo que quieras que aparezca cuando alguien se conecte. Es decir:

$ sudo gedit /var/run/motd

Lo modificamos a nuestro gusto, guardamos y cerramos gedit.

Fuente: http://tuxpepino.wordpress.com/2007/05/11/ssh-el-dios-de-la-administracion-remota/

Copiar la lista de nombres de Autocompletar en otro equipo (Outlook 2003)

3 mayo 2010 Deja un comentario

¿Echa de menos la comodidad de que Outlook complete automáticamente los nombres de las personas a medida que comienza a escribirlos en su nuevo equipo? ¿Va a empezar a utilizar un nuevo equipo y no desea perder todos los nombres almacenados en su característica Autocompletar de Outlook? ¿No sería bueno que el Outlook instalado en su nuevo equipo “recordara” los nombres y los rellenara automáticamente?

Completar automáticamente las direcciones de correo electrónico

Puede copiar los nombres almacenados en Autocompletar desde su equipo antiguo al nuevo.

Copiar los nombres guardados en Autocompletar en otro equipo

Importante Debe salir de Outlook antes de iniciar el procedimiento siguiente. Los nombres se incluirán en Autocompletar cuando reinicie Outlook.

  1. En el equipo que posee los nombres guardados de Autocompletar, vaya a unidad:\Documents and Settings\nombre de usuario\Application Data\Microsoft\Outlook. Ó clic en Inicio > Ejecutar y escriba %appdata% \Microsoft\Outlook
    Nota Dependiendo de la configuración de archivos que posea, esta carpeta puede estar oculta. Para ver los archivos contenidos en esta carpeta, siga uno de estos procedimientos:

    MostrarMicrosoft Windows XP

    1. Haga clic en Inicio y, a continuación, en Mi PC.
    2. En el menú Herramientas, haga clic en Opciones de carpeta.
    3. Haga clic en la ficha Ver y, después, bajo Configuración avanzada, en la sección Archivos y carpetas ocultos, haga clic en Mostrar todos los archivos y carpetas ocultos.

    MostrarMicrosoft Windows 2000

    1. Haga doble clic en Mi PC en el escritorio.
    2. En el menú Herramientas, haga clic en Opciones de carpeta.
    3. Haga clic en la ficha Ver y, a continuación, en Mostrar todos los archivos y carpetas ocultos.
  2. Haga clic con el botón secundario del mouse (ratón) en nombre de perfil.nk2 y, a continuación, en Copiar.Sugerencia Puede copiar el archivo en un medio extraíble, como un disquete o un CD y después copiar ese archivo en la ubicación correcta del otro equipo. O bien, puede adjuntar el archivo a un mensaje de correo electrónico y enviárselo a sí mismo. En el equipo nuevo, abra el archivo adjunto en Outlook y guárdelo en la ubicación correcta.
  3. En el equipo en el que desea incluir los nombres de la característica Autocompletar, copie el archivo en unidad:\Documents and Settings\nombre de usuario\Application Data\Microsoft\Outlook.
  4. Si el nombre de perfil de usuario de Outlook es distinto en el equipo en el que vaya a copiar el archivo .nk2, debe cambiar el nombre de dicho archivo para que sea el mismo nombre de perfil de usuario de Outlook una vez que lo haya copiado en la carpeta correcta. Por ejemplo, si copia el archivo Federico Couto.nk2 desde el equipo original con un nombre de perfil de usuario de Outlook de Federico Couto y copia el archivo Federico Couto.nk2 en el nuevo equipo, deberá cambiarle el nombre para que sea el del nombre de perfil de Outlook que utilice en el nuevo equipo.
  5. Cuando se le pregunte si desea reemplazar el archivo existente, Haga clic en .
  6. Abra Outlook para ver los cambios.

Sugerencia: Si le parece riesgoso hacer este procedimiento, luego de haber tecleado %appdata% \Microsoft\Outlook seleccione todo el contenido de dicha carpeta, copiela hacia su nuevo PC, y en la Carpeta de Outlook renombrela (EJ, OutlookBackup) y creamos una nueva carpeta dentro del mismo directorio con igual nombre al del anterior (en nuestro caso Outlook) abrimos dicha carpeta y pegamos los archivos que en un principio copiamos desde la otra maquina. Al abrir outlook de nuevo, este ya debe “recordar” sus contactos que estaba en la memoría cache. Como consejpara que no les suceda esto en un futuro, es bueno añadir a medida que agregan contactos, a la lista de direcciones, para que de una vez, al momento de hacer una importación de archivos de Outlook a Outlook, ó de Outlook a Thunderbird, los contactos sean importados de una vez, y no tener que estar en la necesidad de recurrir y buscar soluciones por terceras vías. Saludos

Fuente: http://office.microsoft.com/es-hn/outlook/HA011394513082.aspx

Falta: Windows\System32\Config\System

3 mayo 2010 Deja un comentario

Problema: El Windows XP no inicia y aparece el siguiente error:

No se ha iniciado windows porque el siguiente archivo falta o esta dañado: Windows\System32\Config\System

Solución:

Iniciar desde el CD de Windows
En la primera pantalla pulsamos R para entrar a la consola de recuperación
Elegimos el windows a reparar (normalmente es el 1)
Nos pedirá la contraseña del administrador, así que la escribimos
Ejecutamos los siguientes comandos en orden:

CD \WINDOWS\SYSTEM32\CONFIG
DEL system
Copy C:\WINDOWS\REPAIR\system C:\WINDOWS\SYSTEM32\CONFIG

exit

Reiniciamos normalmente y ya debería funcionar

Fuente: http://www.configurarequipos.com/problemas-frecuentes/22/falta-windowssystem32configsystem

Categorías:Uncategorized, Windows, Windows XP Etiquetas: ,
Seguir

Get every new post delivered to your Inbox.