lunes, 7 de marzo de 2011

Robar constraseñas Oracle aprovechando el comando history

EL fin de esta entrada es ver algunos errores que seguramente usamos y que pueden usar otros usuarios para obtener nuestras credenciales de oracle.

Supongamos que solemos conectarnos a oracle asi:

sqlplus / as sysdba
sqlplus ' / as sysdba'
sqlplus scott/campeon

Esto al parecer no representa nada malo, pero la mayorìa de los usuarios de Linux saben que existe un buffer y un 'log' donde se almacenan los últimos comandos introducidos, entonces supongamos que prestamos la compu.

Pues nuestro querido amigo puede hacer lo siguiente, usar el comando history para ver los últimos comandos ingresados (regularmente este nos regresa los ùltimos 500 comandos introducidos).

Hacemos:

history | grep sqlplus

y si tenemos algo de suerte obtendremos las credenciales de algunos usuarios

1550 sqlplus
1551 sqlplus ruben/gay
1552 sqlplus janet/noni
1568 sqlplus
1572 sqlplus scott/campeon

y listo!!!!!

SOLUCION: cuando quieras iniciar oracle utiliza

sqlplus /nolog

y despuès la clausula
connect

Para evitar que se almacenen nuestras credenciales, :)

Bueno espero que ha alguien le sirva esta pequeña tranza pa hacer alguna broma :p

Errores con el listener de Oracle (TNS-12555: TNS:permission denied)

Hace unos días felizmente instale Oracle XE en Ubuntu y funcionó.Pero unos días después al intentar iniciar el listener (para hacer la conexión con PHP) me marcaba un error:

TNError listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC_FOR_XE)))
TNS-12555: TNS:permission denied
TNS-12560: TNS:protocol adapter error
TNS-00525: Insufficient privilege for operation
Linux Error: 1: Operation not permitted


Y bien si uno sabe leer inglés de primaria ahi dice que hay errores con los permisos, al checarlos TODO BIEN.

NOTA:casi siempre,la base de datos se instala con el usuario Oracle, si por algun motivo no está asi, y estàs iniciando la base de datos con otros usuario (por ejemplo oscar) puedes usar el siguiente comando para solucionarlo:

groups oscar //nos devolvera la infomaciòn de a que grupos pertenece el usuario oscar, si no aparecen los grupos "oinstall" o "dba", solo haces esto

adduser oscar oinstall
adduser oscar dba


Después de Gogglear un buen rato encontré la solución, pues resulta q el gay de Oracle, guarda registros de las bases de datos que se han instalado en algùn momento en el equipo, y bueno en algunas ocaciones instale otras versiones, ¿La solución?


Verificar los registros temporales de Oracle

Ir al directorio cd /var/tmp/.oracle y verificar los permisos si todo esta bien porcedes a eliminar todos los registros o todos los referentes a la base de datos que se este utilizando

sudo rm -R * //ASEGURATE DE ESTAR EN EL DIRECTORIO /var/tmp/.oracle ANTES DE USAR ESTE COMANDO

y listo ya podemos iniciar el listener

lsnrctl start

jueves, 3 de marzo de 2011

Cambiar puerto de ssh

Tan solo se edita el siguiente archivo

vi /etc/ssh/sshd_config

y editar la linea q contien Port 22 por el nuevo puerto que se quiera asignar,

Y luego ya nomas se reinicia el servicio de ssh

sudo /etc/init.d/ssh restart

Y LISTO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

NOTA: cuando un usuario se conecte a tu máquina tendrá que indicar el puerto, ejemplo:

ssh -p 8080 oscar@192.168.2.100

jueves, 24 de febrero de 2011

¿Cómo instalar apache en Linux?

Bien para este caso yo usé Ubuntu 10.10

+Instalar apache

sudo apt-get install apache2

y ya! asi de fácil, si se quiere iniciar o detener o reinicar solo basta hacer

/etc/init.d/apache2 start
/etc/init.d/apache2 stop
/etc/init.d/apache2 restart

Para acceder solo basta con http://localhost/


+Ahora se deben de agregar los "modulos que se usarán", seguramente usarás PHP, la versión mas reciente es la 5 , asi que solo haces.


sudo apt-get install php5

y listo!!!!!

+Agregar un sitio web

Solo basta con crear una carpeta en el directorio /var/www/

-Haremos un hola mundo como ejemplo XD

1.-Creamos la carpeta donde se alojará el sitio web

mkdir /var/www/pagina

si hacemos http://localhost/pagina/ veremos que está vacio, entonces agregamos nuestra
primera página web

Bien ahora hacemos el tipico hola mundo y lo guardamos el el directorio /var/www/pagina/ con el nombre que deseamosyo le voy a poner hola_mundo.php


echo "Hola mundo"

?>

para acceder solo tenemos que poner en un navegador

http://localhost/pagina/ y seleccionar el programa que hemos creado.

O también se puede hacer con http://localhost/pagina/hola_mundo.php

JAJAJAJAJAJAJAJA que cool.

+Cambiar puerto

Si necesitas cambiar el puerto solo necesitas editar el fichero ports.conf

vi /etc/apache2/ports.conf

Y cambiar el puerto por el que se decea usar
Listen 8080

Y reiniciar apache

/etc/init.d/apache2 restart

Y LISTO!!!!!!!!!

Para acceder será necesario poner el puerto http://localhost:8080

Ejemplo:

http://localhost/pagina:8080


+¿Te pregunta tu navegador si quieres descargar el fichero php en lugar de mostrarlo?

Si Apache no está 'parseando' el php después de reiniciarlo, instala libapache2-mod-php5.
Éste se instala al instalar el paquete php5, pero puede haber sido eliminado sin que nos demos cuenta por paquetes que necesitan ejecutar
una versión diferente de php.

También puede que necesites habilitarlo, haciendo

sudo a2enmod php5

seguido de
sudo /etc/init.d/apache2 restart.

Asegúrate de limpiar la caché de tu navegador antes de volver a probar tu sitio.

Para mas dudas sobre como agregar modulos http://doc.ubuntu-es.org/LAMP

miércoles, 16 de febrero de 2011

CRON

CRON
Un "cron" es una tarea programada, que se ejecuta de manera automàtica en un equipo.

Su uso es muy amplio, desde una simple tarea de copiar archivos hasta donde llegue tu imaginaciòn :p

Su uso es muy sencillo

Para agregar o quitar un tarea se usa el siguiente comando

crontab -e (la letra e es de editar XD)

y se especifica de la siguiente manera

minuto hora dia_del mes dia de la semana comando

ejemplo:

Ejecutar una tarea todos los dìas a las 1:06 p.m.

6 13 * * * sh /u050/respaldos_rman/script_rman/crear_respaldos.sh

Ejecutar una tarea cada 3 minutos

*/3 * * * sh /u050/respaldos_rman/script_rman/crear_respaldos.sh

Ejecutar una tarea en el minuto 20 y 30 de cada hora

20,30 * * * * /usr/bin/who

Para listar las tareas

crontab -l (la letra l es de lista XD)

Una vez que se realice la tarea, te dira la terminal que tienes un nuevo correo , indicando que la tarea
se realizo, para leerlo

nano /var/mail/nombre_usuario

Si se quiere evitar esto , se puede redireccionar la salida

6 13 * * * sh crear_respaldos.sh> /dev/null 2>&1

Tambièn se puede utilizar la salida con un archivo de log

6 13 * * * sh crear_respaldos.sh>>/u050/respaldo_log

Es importante mencionar que cada usuario del sistema operativo tiene su propio cron, regularmente quien las ejecuta es root.

Consideraciones al crear scripts en shell con oracle

Consideraciones al crear scripts en shell con oracle

1.-La primera linea debe de indicar el tipo de shell que se va a utilizar
#!/bin/sh
#!/bin/bash

2.-Verificar las variables de ambiente si el script se va a ejecutar en otro host, o si se va a añadir a un cron, es necesario colocar esta informaciòn para que no existan problemas durante
la ejecuciòn del script

export ORACLE_HOME=/u020/apps/oracle/product/11.2.0
export ORACLE_SID=OPROD
PATH=$ORACLE_HOME/bin:$PATH

3.-Es recomendable diseñar logs, para ver los errores inesperados que puedan suceder.

Oracle 32 bits o 64 bits

Verificar la version de Oracle instalada

file $ORACLE_HOME/bin/oracle