jueves, 22 de febrero de 2007

Conectarse a Oracle como sysdba sin saber el password

   El sistema que estoy probando en mi nuevo trabajo utiliza Oracle 10g como base de datos. El otro día quería ver más a fondo cómo estaban creados los datafiles, tablespaces, índices,... Obviamente con el usuario de aplicación que tengo para conectarme no podía hacer mucho, así que pensé qué podía hacer para conectarme con permisos de DBA.

   Recordando lo que aprendí el año pasado en los cursos de Oracle que hice y también en mi anterior trabajo, el usuario de sistema operativo dueño de la instalación de oracle puede conectarse como sysdba sin necesidad de conocer el password. Para ello sólo hay que hacer lo siguiente y automáticamente estaremos conectados a la instancia y además con permisos totales de administración. No obstante, en mi caso esto daba error:
C:\Documents and Settings\User>sqlplus /nolog

SQL*Plus: Release 10.2.0.2.0 - Production on Wed Mar 14 10:32:28 2007

Copyright (c) 1982, 2005, Oracle. All Rights Reserved.

SQL> conn / as sysdba
ERROR:
ORA-01031: insufficient privileges

   Haciendo más memoria todavía, cuando se instala un servidor Oracle en windows, se crea el grupo ORA_DBA al que es necesario añadir todos los usuarios que se podrán conectar como dba. Mi usuario no estaba añadido, pero después de hacerlo seguía sin poder conectarme como sysdba.

   Lo dejé y después de comer (siempre dicen que con el estómago lleno se piensa mejor) me acordé de que había un parámetro en el archivo sqlnet.ora en el que se puede configurar si se va a utilizar la autenticación que proporciona el sistema operativo o no. En mi máquina estaba deshabilitada, por lo que era obligatorio utilizar el password.
#SQLNET.AUTHENTICATION_SERVICES= (NTS)

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

   Cambié la línea en cuestión del archivo para indicarle que utilizase la autenticación de windows (simplemente descomentándola):
SQLNET.AUTHENTICATION_SERVICES= (NTS)

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

   Y probé de nuevo:
C:\Documents and Settings\User>sqlplus /nolog

SQL*Plus: Release 10.2.0.2.0 - Production on Wed Mar 14 10:35:29 2007

Copyright (c) 1982, 2005, Oracle. All Rights Reserved.

SQL> conn / as sysdba;
Connected.

   Y una vez conectados nos podemos crear un usuario con permisos de dba para poder utilizarlo y conectarnos desde el Toad...
SQL> create user ivan identified by ivan;

User created.

SQL> grant connect,resource to ivan;

Grant succeeded.

SQL> grant dba to ivan;

Grant succeeded.

viernes, 16 de febrero de 2007

Ubuntu no me quiere...

   Resulta que me ha dado por instalar Linux y me he decidido por Ubuntu. El otro día me bajé el cd de la última versión, Ubuntu Desktop 6.10, lo grabé y me dispuse a probarlo. Por alguna extraña razón mi ordenador no le gusta demasiado porque según cargaba el modo gráfico el ratón desaparecía y el servidor X se la pegaba. Volvía a arrancar automáticamente y otra vez lo mismo. Grabé otro cd por si este tenía algo mal y nada, seguía sin funcionar.

   Probé el cd en el portatil por si acaso y no falló nada. Además me dejó gratamente sorprendido. Me configuró la resolución de pantalla a la máxima del portatil, siendo esta resolución un tanto extraña: 1400x1050. Tenía la pcmcia wifi metida, la configuró e incluso se conectó a la red wifi de La Fonera y todo sin ningún problema.

   Ese mismo día puse a bajar la Kubuntu y de nuevo la Ubuntu desde otro mirror. Cuando volví del trabajo grabé el cd y probé sin éxito primero con Ubuntu y luego con Kubuntu. Estuve cacharreando un rato, mirando logs, dmesg,... pero no encontré nada.

   Esta tarde después de volver del trabajo he probado con la versión anterior de Ubuntu, Ubuntu Desktop 6.06.1, que me había descargado por si acaso. Ha arrancado sin (casi) ningún problema y no me ha dado ninguno de los errores que me daba la versión superior. Digo casi ningún problema porque no ha configurado correctamente las X y me ha arrancado en 640x480. He estado jugueteando un rato y me he decidido a instarla en el disco duro.

   Llevaba sin usar un linux en mi pc desde que terminé el proyecto fin de carrera, por lo que he estado buscando las particiones que ya tenía hechas y he decidido instalar ahí. El asistente ha comenzado pero con la resolución que tenía no podía ver toda la ventana ni redimensionarla.

   Pues nada, vamos a solucionar el problema de la resolución.... Pulsando <CTRL> + <ALT> + F1 me he cambiado a un terminal de texto y esto es lo que he hecho después de un rato probando opciones y cambiando archivos:
  • Matar el gestor gráfico de login
    $ killall gdm

  • Generar de nuevo el archivo de configuración de las X:
    $ Xorg -configure

  • Probar la nueva configuración:
    $ X -config /root/xorg.conf.new

  • Editar el archivo y cambiar el ratón puesto que el mío es PS2 (/dev/input/mice) y por defecto buscaba en /dev/Mouse.

  • Añadir dentro de "Modes" la resolución deseada (1280x1024)

  • Probar de nuevo:
    $ X -config /root/xorg.conf.new

  • Una vez que está bien ya sólo queda copiar el archivo nuevo de configuración a su ruta definitiva:
    $ cp /root/xorg.conf.new /etc/X11/xorg.conf

  • Y finalmente arrancar el gestor gráfico de login:
    $ gdm &

       Una vez hecho todo esto he podido probar un poco más el live-cd y como ya he dicho me he decidido a instalarlo. La instalación es muy sencilla, sólo hay que seleccionar el idioma, la zona horaria y las particiones que utilizaremos. El resto es automático. Una vez instalado todo reiniciamos la máquina y podemos entrar en nuestro nuevo sistema operativo.

       No he tenido mucho más tiempo de probar, pero poco a poco intentaré ir haciendo alguna cosa más en linux y ver si me adapto al cambio.
  • martes, 6 de febrero de 2007

    La Fonera Hackeada

       Antes de navidades me llegó un email de Fon con una invitación para que un amigo pudiera conseguir una Fonera totalmente gratis. Envié la invitación a mi mujer y solicité la Fonera a casa de sus padres. Hace un par de semanas llegó "mi" Fonera y estas son las primeras impresiones:
  • La Fonera es realmente pequeña, en las fotos no se aprecia bien pero es muy muy pequeña.
  • Se calienta bastante: Después de tenerla poco más de una hora conectada está muy caliente.
  • La configuración es muy sencilla: Nos conectamos a la red wifi abierta (FON_HOTSPOT) nos logamos en la página de Fon y la registramos. Luego nos conectamos a la red privada (MyPlace) con la clave WPA que nos proporcionan y listo, ya está todo.

  • Cosas que no me han gustado:

  • La web de administración es muy limitada y no permite nada más que unas cuantas opciones de configuración.
  • Aunque puedo cambiar el rango de IPs que asigna a los clientes DHCP no puedo gestionarlo yo al igual que hago con el Linksys.

  •    La he tenido encendida prácticamente todo un fin de semana y no se ha conectado nadie a ella. También es cierto que en la zona en que vivimos, la mayoría de los vecinos deben tener conexión y justo enfrente están construyendo un bloque nuevo. Es probable que cuando lo entreguen tenga más potenciales "clientes".

       Después de esto me cansé y decidí hackearla a ver si podía hacer algo más con ella. Leyendo en unos cuantos foros encontré que lo primero que había que hacer era conseguir el acceso por ssh para luego poder cacharrear más con ella.

       Manos a la obra: Leí que había diversas opciones, desde abrirla para conectar un puerto serie a utilizar unos exploits de la web de administración. También leí que la mayoría de los scripts eran compatibles hasta la versión 0.7.1r1 y mi Fonera tiene la versión 0.7.1r2.
       Según he podido enterarme de fábrica no es probable que se estén fabricando foneras con la versión r2 de serie, por lo podemos resetear las que están en versión r2 para se queden con la versión original de fábrica (r1).
       Con el reseteo tuve problemas porque en algunos sitios leí que había que pulsar el reset más de 1 minuto, esperar a que se apagaran las luces, volver a pulsar el reset, quitar el cable de red y el de alimentación; y finalmente enchufar de nuevo y listo, Fonera "downgradeada". Después de intentarlo unas cuantas veces lo dejé por imposible. La única conclusión que saqué fue que la Fonera se actualiza cuando se conecta a internet.

       Seguí leyendo y buscando por los foros y encontré otra forma de hackearla que es la que me ha funcionado:

  • Conectamos la fonera a otro PC con un cable de red cruzado, de tal forma que la fonera no tenga conexión a internet.
  • Después de arrancar, la IP asignada al puerto ethernet de la fonera es 169.254.255.1, por lo que configuré la IP en el PC con 169.254.255.2. Así, la fonera responde a los pings y desde el navegador nos podemos conectar a la web de administración.
  • Pulsar el botón de reset unos 15 segundos.
  • Recargar la web de administración. Ya aparecía la versión r1, por lo que ya podía proceder al hackeo.
  • Guardé el siguiente código en un archivo html, lo ejecuté y después de unos segundos parece que funcionó.
  • <html>
     <head>
     </head>
      <body>
      <center>
       <form method="post"
        action="http://169.254.255.1/cgi-bin/webif/connection.sh" enctype="multipart/form-data">
        <input name="username" value="$(/etc/init.d/dropbear)" size="68">
        <input type="submit" name="submit" value="Submit" />
       </form>
      </center>
      </body>
    </html>
  • Abrí el putty y me conecté a la Fonera por ssh.
  • Ahora lo único que quedaba era configurar el firewall para abrir el puerto 22. Para esto descomenté las reglas que lo abrían en el archivo /etc/firewall.user
  • Configurar el servidor ssh para que arrancase junto con la Fonera:
    ln -s /etc/init.d/dropbear /etc/init.d/S50dropbear
  • Y modificar el script de "puerta trasera" que ha instalado Fon para que la Fonera no se ejecute el código recibido de Fon cada vez que se conecta a internet. Editamos el archivo /bin/thinclient y comentamos la última línea:
    # . /tmp/.thinclient.sh

  •    De momento me he quedado aquí aunque hay bastante gente trabajando en establecer un puente WDS entre el Linksys con software DD-WRT y una Fonera. E incluso hace muy poco tiempo que acaba de salir una versión del DD-WRT adaptada a La Fonera.

       Establecer el puente WDS entre varias Foneras puede ser muy útil para poder añadir acceso Wifi en una gran extensión de terreno de forma que se puedan poner varias foneras y sólo haya que preocuparse del cable de alimentación y no del de datos (como hasta ahora).

       Como mi "amigo" registró su Fonera ahora Fon le ha dado a él una invitación y a mi otra para que invitemos a nuevos amigos a pedir sus Foneras gratis. Vamos, que ahora tengo 2 invitaciones esperando a ver qué pasa con el WDS y todo esto para utilizarlas.

    sábado, 3 de febrero de 2007

    D-Link + Linksys

       Ya comenté hace algún tiempo que cuando me di de alta en el Adsl de Ya.com no elegí el router wifi porque erán casi 50 euros más y porque además tengo el Linksys que Fon amablemente me vendío por 1€+IVA.
    Para poder montar la red tal y como yo quería:

       Es decir, poder tener en red tanto cacharros conectados al D-Link como al Linksys (de manera wifi o no) y poder salir a internet hubo que hacer algunos cambios en la configuración de los dos routers.

    D-Link
    Como este router es mi pasarela de conexión a internet siempre va a estar encendido, por lo que decidí que él (y sólo él) sería el servidor DHCP. Le asigné la IP estática 192.168.1.1 y configuré el rango de IPs asignadas por DHCP a partir de la 192.168.1.3 (y no la .2).

    Linksys
    Este router se debe encargar de gestionar todas las conexiones inalámbricas y además servir de pasarela para la conexión a internet a través del D-Link a todos sus clientes.
    Le asigné la IP 192.168.1.2 y deshabilité el servidor DHCP puesto que, como ya he comentado, decidí que el D-Link sería el único encargado de asignar las IPs. Podría hacer definido un rango de IPs de DHCP disjunto al definido en el D-Link, pero preferí no hacerlo así.
    En este momento a cualquier cliente que se conectara al Linksys no se le asignaría dirección IP automáticamente (puesto que había deshabilitado el DHCP). Aquí utilicé una opción de mi nuevo firmware DD-WRT que se llama DHCP Forwarder y lo que hace como su nombre indica es reenviar las peticiones de DHCP a otra máquina. En mi caso configuré la IP del D-Link y listo. Cuando un cliente se conecta al Linksys y le pide una IP dinámica, éste reenvía la petición al D-Link que la resuelve, la almacena en su tabla de asignaciones y la devuelve.

       Aunque parece que en este momento ya estaba todo resuelto, no fue así. Conectando diversos equipos a al D-Link, Linksys wifi y Linksys red no tenía ping entre todos y tampoco podía salir a internet desde el Linksys.
       Revisando más a fondo las opciones del Linksys encontré que cuando se desactiva la opción de "Internet" -para cuando el router no gestiona la conexión DSL a internet como es mi caso, puesto que lo hace el D-Link-, es necesario enrutar todo el tráfico hacia la pasarela de internet. Eso fue lo que hice, añadí la ruta hacia el D-Link y todo resuelto. Ya obtenía pings entre los distintos equipos y podía navegar por internet sin problema desde cualquier punto de mi red.

       Después de haber configurado así la red y viendo los equipos que tengo conectados me alegro de haber elegido la oferta de Ya.com y no la de Orange puesto que el router que regalaban estos últimos sólo tenía un puerto ethernet. En mi caso tengo conectado a los router lo siguiente:

    D-Link:
  • Servidor 24x7.
  • PC Sobremesa.
  • Linksys.
  • Roseta en la pared que da servicio a otra roseta instalada en el salón.

  • Linksys:
  • El portatil de mi mujer.
  • Mi portatil (cuando no me conecto por wifi).
  • La PDA (wifi).