viernes, 6 de noviembre de 2009

Compartir recursos sin contraseña en Windows Vista o Seven

No vi en la red nada que me convenciera para resolver el tema de compartir recursos en Windows Vista o Seven sin que este requiera contraseña.
Lo interesante es que la gente de ms facilitó bastante esta tarea para usuarios hogareños. En versiones como XP ó 2K, lo correcto es editar la politicas (gpedit.msc), pero es muy cierto que navegar por esa maraña intrincada de configuraciones se hace pesado hasta para un tecnico.
Obviamente en vista o seven tambien es valido el uso de gpedit.msc pero aqui voy a exponer la forma facil que presenta MS:

Paso 1: Configurar las politicas

Eso se hace en Panel de control, Redes e internet, Centro de redes y recursos compartidos, Cambiar configuracion de uso compartido avanzado.
Hago notar que hay que hacer clic en el titulo del menu y no en los subtitulos, aunque seguramente por algun subtitulo lleguemos al mismo lugar y tambien se llega hasta aqui de diferentes maneras, como, por ejemplo, con un clic con el boton derecho del mouse sobre el icono de red en la barra de tareas.
Una vez ahi, desplegar el perfil actual para activar los siguientes items:
1 Activar el uso compartido de archivos e impresoras
2 Desactivar el uso compartido con proteccion con contraseña

Obviamente, al finalizar, hacer clic en "Guardar cambios"

Paso 2: Configurar un recurso compartido (en este caso una carpeta)

Para eso creamos una carpeta, digamos que c:\Publico y luego clic derecho sobre la carpeta, propiedades, compartir, nuevamente clic en compartir.
Ahi agregamos el usuario "todos" simplemente escribiendo en el cuadro de texto, clic en agregar y luego solo falta modificar el nivel de permiso para "todos", yo puse "Lectura y escritura"

Listo, eso deja la carpeta "Publico" a merced de cualquier usuario de la red, incluso de un intruso, asi que a tener cuidado al implementar esta configuracion tan util como peligrosa.

miércoles, 7 de octubre de 2009

Ejemplo de diagnostico de una red

Encontrarse con una red compleja puede dejarlo a uno sin saber por donde empezar.
Este es un ejemplo real:
La red esta compuesta por:
1) Tres switches en cascada Nortel Baystack 450 con un total de 72 puertos ethernet todos ocupados
2) El tercer switch esta en cascada mediante conexion por fibra optica
3) En la red hay innumerables switches parasitos conectados por terceros en su afan de hacer funcionar camaras ip, puntos de acceso (wifi), otras pc sin acceso a puestos de red "reales"
4) Enlaces wifi de gran alcance para interconectar dos sucursales, lo que aumenta notablemente el numero de terminales y en consecuencia nodos generadores de errores.
5) La cantidad de pc, casi todas con windows xp, es tal, que la presencia de un solo virus podria provocar fallos inesperados o inexplicables.

Se presento el siguiente problema:
Luego de la instalacion de un software de gestion que utiliza conexion odbc con servidor sql, ocurrio que la operacion que en algunos terminales tardaba uno o dos segundos, en otros tardaba 20 segundos.

La primer sospecha es el rendimiento del terminal, con factores como procesador, memoria, malware, etc. Pero se determino que no era ese el problema, incluso algunas pc en las que el sistema funcionaba lento, contaban con procesadores mas potentes y mayor cantidad de memoria que aquellos en los que el sistema funcionaba bien.
Por otro lado, en cualquiera de los terminales, tanto los "buenos" como los "malos", cualquier otro sofware, sea local o de red, funcionaba bien.

El siguiente en la lista de sospechosos es el propio software que, en definitiva, es el que comenzó con los problemas. Asi que se invita a los programadores a tratar de encontrar la causa.
Mi sospecha era que en aquellas pc malas, una version erronea de mdac, o la falta de algun parche podria se el causante.
Luego de varias pruebas en las que se utilizaron herramientas de sql server para hacer consultas sql remotas se llegó a la conclusion de que el problema esta centrado en la red.

Un experimento importante para descartar un mal funcionamiento del puerto del switch, incluso del cableado, fue probar que una pc mala seguia siendo mala aun cuando se la conectaba a la red utilizando el puesto en el que funcionaba una pc buena. (eso fue facil, simplemente el patchcord de una pc cercana era sufifientemente largo como para pedirlo prestado por un par de minutos)

Aislar la red

Se conectaron en red mediante un switch generico unicamente tres pc, el servidor sql, una pc "buena" y una pc "mala".
El resultado fue que todo funcionaba perfecto, la pc buena seguia funcionando igual y la pc mala mejoró tanto que incluso funcionaba mas rapido que la "buena".

El paso anterior ayudo a aislar el problema, ya se sabia que no estaba centrado en el software de gestion, si no en la red.

En este punto fui abandonado a mi suerte, los programadores dijeron: cambia el swich y problema resuelto.
Pero hacer una inversion de unos U$S 7000.00 requiere de cierto estudio.
Pensé: si al aislar de ese modo la red las cosas funcionan bien, podria ser que las pc malas tengan una vulnerabilidad afectada por otras pc de la red infectadas con algun virus.

¿Cómo resolver ese problema, o al menos como sacarme esa duda sin morir enredado en una maraña de cables utp?
Facil: instalé Wireshark en una pc mala y comencé a analizar el trafico que le llegaba. Simplemente se desactivan todos los programas que utilizan la red, como antivirus, actualizaciones automaticas, se detiene todo programa que utilice la red.
Luego se inicia wireshark y se espera a que "piquen" los primeros paquetes tcp.
En este caso, el flujo de informacion fue tal (y no era broadcast) que de inmediato tuve un diagnostico:
La pc tiene alguna vulnerabilidad que esta intentando ser atacada por algunas pc (infectadas) de la red las cuales pude identificar.
A veces una pc no infectada no esta libre de ser afectada por los virus. El virus confiker es un ejemplo claro ya que, anque no infecte, al intentar infectar, al bombardear constantemente a una pc vulnerable, la deja "tonta".

Una herramienta para detectar vulnerabilidades de este tipo (Gracias José Perez, socio!!)
es nmap. Este programa, en la version 5.0 tiene parametros para analizar si una pc esta comprometida al ataque de confiker o un clon.
Nmap es una herramienta de escaneo de redes para linux pero tambien puede ser instalada en windows.
El comando para analizar esa vulnerabilidad y otras es:

nmap -p445 --script=smb-check-vulns --script-args=unsafe=1 192.168.1.2

En donde 192.168.1.2 es un ejemplo de la direcion ip de una pc a analizar.

Todo muy bonito, pero el comando en cuestion me informaba que en la pc mala todo estaba bien.
Asi que opté por instalar todo cuanto pudiera en lo referente a actualizaciones de seguridad de windows xp. Despues de las actualizaciones, wireshark dejo de mostrar el enorme trafico. Todo estaba calmo.

Solo restaba probar el programa, que para mi sorpresa seguia igual de lento!!.

Siempre con el experimento de aislar la red en mente, y ahora ya mirando de reojo al switch, probé de cambiar la placa de red en la pc mala. El resultado fue que eso resolvio el problema!
Entre el switch y la placa de red hay algo que ralentiza las comunicaciones y en especial se ve afectada la comunicacion con el servidor sql.

Alentado por el buen resultado, se me ocurrio otro experimento: conecté una pc "mala" a un switch generico y este a su vez al Nortel. Eso tambien resolvio el problema. En palabras simples, el switch generico hace de interprete para que el nortel entienda a algunas placas de red.

Hizo falta un experimento mas para darme cuenta del verdadero problema, fue obvio cuando lo descubri y pensé: ¿Como no se me habia ocurrido esto antes???
Otra pc de la red presentaba el mismo problema por lo que me dedique a cambiarle la placa de red y mi segunda sorpresa en esta travesia fue que no logré mejoria al cambiar la placa.
Ahi el problema salto al instante: la placa no negocia bien el tipo de conexion.
Muchos de los que leyeron hasta aqui ya lo habran pensado ni bien inicie el relato y sí, esta bien, tienen razon. Me hubiese ahorrado mucho trabajo si hubiese forzado full duplex a maxima velocidad en la placa de red.

sábado, 15 de agosto de 2009

Reparar el registro de windows luego del ataque de un virus

Luego del ataque de un virus suele ocurrir que este modifica el registro de modo tal que no es posible realizar tareas administrativas.
A continuacion copio el contenido de los archivos reg que deben importarse al registro de windows para corregir esos problemas.
Simplemente se debe copiar el contenido situado entre los asteriscos (sin incluirlos) y pegarlo en un archivo, el cual debe llevar la extension reg.
Luego, para importarlo es tan simple como hacerle doble clic y aceptar.
Si el doble clic no sirve, tal vez sirva ejecutar regedit y luego importar las claves indicando el archivo reg en cuestion, desde Archivo, Importar.
Sobre este ultimo metodo, podria ocurrir, y es lo mas probable, que al intentar ejecutar regedit.exe, este no se ejecute debido a que no funcionan los archivos ejecutables. En ese caso sirve hacer una copia:
copy regedit.exe regedit.com
Luego hay que ejecutar regedit.com en lugar de regedit.exe
Todo lo que no pueda hacerse en modo normal debe intentarse en modo seguro. Tambien, a veces, sirve cambiar de usuario para intentar hacer cosas que desde el usuario infectado no puede hacerse.

Restaurar politicas 1:
*********************************************************************************************************

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoActiveDesktopChanges"=hex:00,00,00,00
"NoActiveDesktop"=dword:00000000
"NoSaveSettings"=dword:00000000
"ClassicShell"=dword:00000000
"NoThemesTab"=dword:00000000

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System]
"NoDispAppearancePage"=dword:00000000
"NoColorChoice"=dword:00000000
"NoSizeChoice"=dword:00000000
"NoDispBackgroundPage"=dword:00000000
"NoDispScrSavPage"=dword:00000000
"NoDispCPL"=dword:00000000
"NoVisualStyleChoice"=dword:00000000
"NoDispSettingsPage"=dword:00000000
"NoDispScrSavPage"=dword:00000000
"NoVisualStyleChoice"=dword:00000000
"NoSizeChoice"=dword:00000000
"SetVisualStyle"=-

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\ActiveDesktop]
"NoChangingWallPaper"=dword:00000000

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ThemeManager]
"ThemeActive"="1"
"DllName"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,\
74,00,25,00,5c,00,72,00,65,00,73,00,6f,00,75,00,72,00,63,00,65,00,73,00,5c,\
00,54,00,68,00,65,00,6d,00,65,00,73,00,5c,00,6c,00,75,00,6e,00,61,00,5c,00,\
6c,00,75,00,6e,00,61,00,2e,00,6d,00,73,00,73,00,74,00,79,00,6c,00,65,00,73,\
00,00,00

********************************************************************************************************

Restaurar politicas 2
********************************************************************************************************
REGEDIT4

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]
"DisableRegistryTools"=-

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System]
"DisableTaskMgr"=-

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]
"DisableRegistryTools"=-

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]
"DisableTaskMgr"=-

********************************************************************************************************


Ejecutables:
********************************************************************************************************
REGEDIT4

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System]
"DisableRegistryTools"=-

[HKEY_CLASSES_ROOT\batfile\shell\open\command]
@="\"%1\" %*"

[HKEY_CLASSES_ROOT\comfile\shell\open\command]
@="\"%1\" %*"

[HKEY_CLASSES_ROOT\exefile\shell\open\command]
@="\"%1\" %*"

[HKEY_CLASSES_ROOT\htafile\Shell\Open\Command]
@="MSHTA.EXE \"%1\" %*"

[HKEY_CLASSES_ROOT\piffile\shell\open\command]
@="\"%1\" %*"

[HKEY_CLASSES_ROOT\regfile\shell\open\command]
@="regedit.exe \"%1\""

[HKEY_CLASSES_ROOT\scrfile\shell\open\command]
@="\"%1\" /S"

[HKEY_CLASSES_ROOT\scrfile\shell\config\command]
@="\"%1\" %*"

[HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\batfile\shell\open\command]
@="\"%1\" %*"

[HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\comfile\shell\open\command]
@="\"%1\" %*"

[HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\exefile\shell\open\command]
@="\"%1\" %*"

[HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\htafile\Shell\Open\Command]
@="MSHTA.EXE \"%1\" %*"

[HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\piffile\shell\open\command]
@="\"%1\" %*"

[HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\regfile\shell\open\command]
@="regedit.exe \"%1\""

[HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\scrfile\shell\open\command]
@="\"%1\" %*"

******************************************************************************************************

Restaurar ver archivos ocultos
*****************************************************************************************************************************
REGEDIT4

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL]
"CheckedValue"=dword:1

*****************************************************************************************************************************


Restaurar ejecucion archivos bat
*****************************************************************************************************************************
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.bat]
@="batfile"

[HKEY_CLASSES_ROOT\.bat\PersistentHandler]
@="{5e941d80-bf96-11cd-b579-08002b30bfeb}"


*****************************************************************************************************************************



Restaurar Sistema no se puede activar

Para resolver eso iniciamos el programa gpedit.msc (inicio, ejecutar, gpedit.msc, aceptar)
Navegamos por las siguientes ramas:
Configuracion del equipo
Plantillas administrativas
Sistema
Restaurar sistema
Una vez que lleguemos aqui hacemos los siguientes cambios:
Desactivar restaurar sistema = "No configurada"
Desactivar configuracion = "No configurada"

Nota importante: si esas opciones ya estan en "No configurada", entonces cambiar el valor a "Habilitada", aplicar los cambios y luego volver a "No configurada". Eso resuelve el problema








domingo, 19 de julio de 2009

Aumentar la seguridad de windows con runas mmc

Resulta que windows tenia caracteristicas muy similares a linux en cuanto a seguridad y pocos conocen o, al menos, utilizan un comando equivalente a sudo de linux.
Ese comando es "runas" y habilita para ejecutar programas como administrador cuando el usuario no tiene permisos administrativos. Obviamente hay que conocer la contraseña del administrador.
Eso permite crear un entorno seguro con permisos limitados, incluso para el mismo administrador del sistema y cuando es necesario realizar tareas administrativas, como la instalacion de un programa, ejecutar esa tarea utilizando runas.
Existe otro comando, que simplifica mucho el acceso a las tareas administrativas. Ese comando es mmc y basicamente es una consola configurable que hace de contenedor de distintas aplicaciones administrativas.
El comando se ejecutaria de la siguiente manera:
runas /user:administrador mmc

Luego, para agregar complementos a la consola:
Archivo, agregar o quitar complemento, clic en agregar, seleccionar el complemento necesario y aceptar todo.

Lo extraño de todo esto es que esa capacidad de windows esta presente desde windows 98!!
Bueno, dejemos de lado windows 98, con una seguridad muy pobre, pero en windows xp, los comandos de los que hablo son de muchisima utilidad y si MS hubiera hecho mas incapie en su uso, hoy los usuarios estarian acostumbrados y no me cabe duda de que seria un sistema mas seguro.
Creo que linux le gana a windows en seguridad nada mas que porque es mucho mas dificil en linux iniciar sesion grafica como administrador, si no imposible (casi). Entonces, aquellos usuarios que solo saben hacer doble clic como automatas y aceptan todo sin leer, se ven beneficiados por ese "paternalismo".
Windows, en cambio, deja al libre albedrio esa eleccion y, por comodidad e ignorancia, todo mundo es administrador de su pc. Luego instalan Spy Bot Search and Destroy y cuando el programa los interroga sobre permitir tal o cual cambio critico al sistema, responden que sí a pesar de que por defecto, el programa propone NO.

jueves, 11 de junio de 2009

Scripts con netsh para distintas configuraciones de red

Vi por la red distintos comandos netsh para modificar la ip, la puerta de enlace, los DNS, etc.
Sin embargo es posible que con solo recordar dos comandos podamos hacer scripts que modifiquen cualquier parametro modificable con netsh.
Lo primero que hay que hacer es configurar la red a nuestro gusto. Luego ejecutamos el siguiente comando:

netsh -c interface dump > red1.conf

Podemos tener las configuraciones que querramos, red2.conf, etc.
Cuando necesitemos utilizar una configuracion ejecutamos:

netsh -f red1.conf

Lamentablemente aun no encontre cómo resguardar la configuracion de ICS (Conexion compartida a internet)

Ejemplo de tunneling ssh: cliente pop3 seguro

Pop3 es un protocolo inseguro. Esto es: la transferencia de datos, comenzando por el usuario y contraseña, hasta la ultima palabra del contenido del mensaje, son todos enviados en texto plano, con lo que un intruso podria interceptar la informacion sin problemas.
Una solucion es utilizar otro protocolo, otra solucion es utilizar Tunneling ssh, lo cual implica pocos cambios en el cliente y el servidor.
No me voy a explayar en el concepto de tunneling, eso esta muy bien explicado en wikipedia. Me voy a remitir a un ejemplo y luego a explicar el funcionamiento.
Voy a suponer que el servicio sshd esta instalado en el servidor que corre tambien el servicio pop3.
En un terminal linux ejecutamos el siguiente comando:


ssh -f -L 10110:localhost:110 usuario@mailserver.com sleep 60

Eso deja a ssh "escuchando" localmente en el puerto 10110. Todas las consultas al puerto 10110 seran captadas por ssh y luego enviadas al servidor mailserver.com al puerto 110 (pop3)

El parametro fundamental es -L y le indica a ssh que implemente el tunneling. El parametro -f pone a ssh en segundo plano liberando la consola, y el parametro sleep 60 indica a ssh que espere 60 segundos antes de finalizar.
El tiempo de espera en el que ssh permanece escuchando puede verificarse con:
ps -e | grep ssh
.

El formato usuario@mailserver.com es una forma de indicar el usuario y servidor en donde se encuentra tanto el servicio pop3 como el sshd. Usuario es un usuario de sistema aceptado por ssh, no confundir con el usuario de correo, aunque podria ser el mismo.
Podria indicarse tambien asi:

ssh -f -L 10110:localhost:110 mailserver.com -l usuario sleep 60

A partir de ese momento ssh estara escuchando por 60 segundos hasta que se inicie una sesion pop3. Una vez iniciada esa sesion, el contador continua pero ssh sigue activo hasta que se cierre la conexion con el servidor de correo.
La forma de iniciar una sesion pop3 podria ser la siguiente:

telnet localhost 10110
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK Hello there.
Trying 127.
user usuariodecorreo
+OK Password required.
pass contraseña
+OK logged in.
quit
+OK Bye-bye.

O sea que se inicia una sesion conectando a un servidor local en el puerto 10110.
El puerto 10110 es arbitrario, podria ser 42300, incluso el mismo 110. Solo hay que tener cuidado de no "pisar" puertos ya utilizados. Si quisieramos utilizar el puerto 110, tendriamos antes que detener el servicio pop local, si lo hubiera. Otro concepto importante es que, a menos que seamos root, no es posible utilizar, por ejemplo, el puerto 800 pues solo esta permitido a root utilizar puertos menores que 1025.
Es interesante notar que en este ejemplo estan en juego tres puertos: el 10110 que escucha localmente, el 110 que es el puerto encapsulado por ssh y el puerto 22 (el propio ssh) que es el puerto que transportará (enmascarando) las consultas pop.

Un experimento interesante si tenemos acceso al servidor, es controlar el trafico mediante el comando tcpdump.
Si nos conectamos via telnet desde el cliente 192.168.1.126 podemos verificar que efectivamente el texto es plano sin el tunneling y esta encriptado cuando utilizamos tunneling.
Este experimento tambien deja ver que el unico puerto que podria ver un firewall es el correspondiente a ssh. De donde se desprende otro uso que podria darse a la tecnica de tunneling.
El comando en el servidor seria:

tcpdump -A host 192.168.1.126

Ahora que ya conocemos el funcionamiento, podriamos ensayar las caracteristicas de tunneling que trae incorporadas putty para windows y configurar Outlook Express para hacer de pop3 un cliente mas seguro.

Un paso mas
Decia mas arriba que el parametro -L 10110:localhost:110 deja escuchando a ssh localmente en el puerto 10110. Pero qué pasaria si quisiera conectarme remotamente a ese servidor que escucha en el puerto 10110? La respuesta es que la solicitud seria rechazada ya que solo escucha localmente. Para que acepte tambien consultas externas hay que inidicarselo con un parametro opcional y aqui es conveniente hacer un man ssh.
El comando que deja a ssh escuchando en el puerto 10110 accesible desde una red local es, suponiendo que la ip de la pc en cuestion es 192.168.1.126:

ssh -f -L 192.168.1.126:10110:localhost:110 mailserver.com sleep 60

domingo, 10 de mayo de 2009

Wpa_supplicant con ndiswrapper no conecta

Bueno, si llegaste hasta aqui, no voy a andar con mucho preambulo, o mejor dicho voy a dejar el preambulo para el final, ya que seguro estaras ansioso por saber como hacer funcionar tu inalambrica sin utilizar ese molesto network manager.
Te habra pasado lo mismo que a mi:
Ejecutaba el comando wpa_supplicant -D ndiswrapper
Claro, uno le esta indicando que utilice ese driver porque ese es el driver que tenemos instalado, pero no conecta, y no conecta...
La solucion: utilizar -D wext, o no poner nada!!! ya que -D hostap, el driver predeterminado, tambien funciona. No me preguntes por qué, porque no lo sé aun. Ya lo investigare

Bueno, ahora si, un poco de teoria muy pero muy resumida:
Los pasos son descriptos luego de haber instalado el driver

Los comandos son todos ejecutados como root.
Voy a suponer que la interfaz inalambrica se llama wlan0 (wlan cero)
Para conocer el nombre de dicha interfaz hay que ejecutar el comando:
iwconfig

A veces es necesario apagar y/o encender ciertas interfaces para evitar problemas. Es sabido que, por ejemplo, si eth0 tiene asignada la ip
192.168.1.1
y eth1 tiene la ip 192.168.1.30, ninguna de las interfaces va a funcionar. Para que funcionen deben pertenecer a distintas redes. Por ejemplo
eth0: 192.168.1.100
eth1: 192.168.0.200
Siempre suponiendo una mascara 255.255.255.0
Como dije antes, apagando la interfaz nos evitamos cualquier problema. Para apagarla:
ifconfig eth0 down
Si luego queremos encenderla:
ifconfig eth0 up
Linux nos va a permitir cualquier combinancion de parametros, por ejemplo:
ifconfig eth0 192.168.1.30 up
Al no indicar mascara, se toma por defecto 255.255.255.0

Bueno, al grano con esto de la wireless
El siguiente comando permite hacer un escaneo de la red
iwlist wlan0 scan

Comandos para conectarse a una inalambrica sin seguridad o con seguridad wep
iwconfig wlan0 mode managed key clavewep (de no haber seguridad, simplemente se omite el parametro key)
Para concretar el enlace con el AP es necesario que el essid del controlador sea el mismo que el del AP.
Eso se logra con:
iwconfig wlan0 essid nombredelessid (el nombre puede ir con o sin comillas)
dhclient wlan0 (o bien configurarla manualmente con ifconfig)

El funcionamiento de wpa_supplicant es el siguiente:
Se crea un archivo de configuracion el cual puede estar en cualquier lugar y luego ese archivo es llamado por el comando wpa_supplicant
Por ejemplo:
/etc/wpa_supplicant/wpa_supplicant.conf

network={
ssid="Nombredelssid"
scan_ssid=1
key_mgmt=WPA-PSK
proto=WPA
#psk="claveentextoplano"
psk=51404fff4c60f72175d030f24a504dfefb41dfc1d22be155b68f1a607df4ec9e
}

psk es la clave y puede ser escrita de dos maneras, en texto plano, el cual debe ir entre comillas o bien encriptado sin las comillas
En este caso la linea psk en la que aparece la clave en texto plano, esta comentada.
El valor encriptado de psk, el cual sirve para ocultar el password, se obtiene con el siguiente comando:

wpa_passphrase nombredelssid claveentextoplano

Una vez creado el archivo de configuracion se utiliza de la siguiente manera:
wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf -D wext -B -w

Con el parametro c se le indica la ubicacion del archivo de configuracion
Con el parametro D se indica el DRIVER con el que se va a conectar y por defecto es hostap, por lo tanto si se va a utilizar ese driver,
no es necesario indicarlo. En mi caso, luego de varias pruebas con -B ndiswrapper, pues ese es el driver que utilizo, probe con wext y funciono;
tendre que investigar a que se debe ese comportamiento.
El parametro -B indica que se ejecute el comando como demonio, liberando la consola al instante, de lo contrario la consola queda ocupada
y al cerrarla se detiene el servicio, perdiendose la conexion.
Si se ejecuto wpa_supplicant como demonio, se puede detener con:
wpa_cli terminate
Una vez establecido el enlace con el AP se debe configurar la red con los comandos tipicos:
Para autoconfiguracion con servidor DHCP
dhclient wlan0
O bien, para la configuracion manual en caso de no existir un servidor DHCP:
ifconfig wlan0 192.168.0.100 up
luego
echo nameserver 200.10.122.10 > /etc/resolv.conf
echo nameserver 200.10.122.10 >> /etc/resolv.conf
route add default gw 192.168.0.1

Otra forma de configurar el enlace, de manera que sea automatico, es incluir los datos de configuracion en el archivo:
/etc/network/interfaces:
auto wlan0
iface wlan0 inet static
address 192.168.0.40
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1
wpa-driver wext
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

La ubicacion del archivo /etc/network/interfaces puede variar dependiendo de la distribucion o la version del sistema operativo.
Lo correcto es ver dentro del script de configuracion de la red, normalmente:
/etc/init.d/networking

Incluso, luego de hacer modificaciones en el archivo interfaces, sirve reiniciar la red desde:
/./etc/init.d/networking restart

lunes, 4 de mayo de 2009

Problemas de licencia con Visual Basic al utilizar algunos controles

Podria ocurrir que al intentar utilizar algunos controles ocx como comdlg32.ocx, recibamos un mensaje de error similar al siguiente:
"La información de licencia para este componente no se ha encontrado. No dispone de una
licencia apropiada para utilizar esta función en el entorno de diseño."

Ese es un bug reportado por MS y la solucion es instalar un parche llamado vb5cli.exe ó vb6cli.exe, dependiendo de la version del programa.
Aqui los links:
http://support.microsoft.com/kb/181854/es
http://support.microsoft.com/kb/194751

Y los parches en cuestion:
http://download.microsoft.com/download/vb60ent/sample30/1/w9xnt4/en-us/vb6cli.exe
http://download.microsoft.com/download/vb50pro/utila1/1/win98/en-us/vb5cli.exe

lunes, 30 de marzo de 2009

Clientes de correo: problemas con firmas en html

Uno escribe una pagina en html, le agrega una imagen, guarda todo en un directorio, prueba el codigo html en algun browser y funciona perfecto.
Luego quiere utilizar ese codigo html como firma de correo electronico; nada especial, solo una firma que aparezca cada vez que le hacemos clic en "correo nuevo".
No importa el cliente de correo, uno establece el archivo en html como firma y ocurre lo siguiente:
Solo se muestra el texto, las imagenes no son mostradas...Por qué?
Lo que ocurre es que el cliente de correo esta buscando la imagen en su directorio de trabajo, no en el directorio en donde reside el archivo html. Entonces en el codigo html hay que indicar la ruta absoluta y no la ruta relativa.
Por ejemplo:
IMG SRC="file:///c:/Firma/imagen.jpg"
IMG SRC="sello_mail.jpg"

La primera linea de codigo es correcta para ser visualizada tanto desde un browser de codigo html como desde un cliente de correo.
La segunda linea solo sera visualizada correctamente en un browser.