Para que al pulsar en los elinks y que se abran los enlaces en nuestro amule debemos hacer lo siguiente:
1) Abrir el Firefox
2) En la barra de direcciones escribimos about:config
3) Pulsamos el botón derecho del ratón, y a continuación Nuevo/Lógico. En nombre de la preferencia ponemos network.protocol-handler.external.ed2k y en el valor de true.
3) Pulsamos de nuevo el botón derecho del ratón, y a continuación Nuevo/Cadena Como nombre escribimos network.protocol-handler.app.ed2k y en el valor /usr/bin/ed2k.
Recuperar ventana desaparecida
Recientemente me desapareció la ventana LOG en el Jdeveloper. Para poder recuperarla:
1) Cerrar JDeveloper
2) Hacer una copia de seguridad y borrar el archivo windowinglayout.xml. El archivo está en el hombe del jdev, no en su directorio de instalación. El directorio en mi SUSE era /home/usuario/jdevhome/system/oracle.ide.10.1.3.40.66. El número de la versión cambiará según la que tengas instalado
3) Abrir JDeveloper. Hacer click en View -> El nombre de la ventana perdida
4) En el proceso se habrá generado un nuevo windowinglayout.xml.
1) Cerrar JDeveloper
2) Hacer una copia de seguridad y borrar el archivo windowinglayout.xml. El archivo está en el hombe del jdev, no en su directorio de instalación. El directorio en mi SUSE era /home/usuario/jdevhome/system/oracle.ide.10.1.3.40.66. El número de la versión cambiará según la que tengas instalado
3) Abrir JDeveloper. Hacer click en View -> El nombre de la ventana perdida
4) En el proceso se habrá generado un nuevo windowinglayout.xml.
Password will be truncated to 8 characters
Recientemente al acceder por sftp a una maquina me apareció un mensaje indicándome que tenia la contraseña caducada. Al cambiar la contraseña apareció esto:
Password will be truncated to 8 characters
Para solucionar el problema, y que nuestro sistema nos permita password de más de ocho carácteres debemos:
1) editar el fichero /etc/login.defs
2) añadimos dos lineas:
PASS_MAX_LEN 20
PASS_MIN_LEN 5
con esto controlamos la longitud permitida de las contraseñas, tanto la máxima como la mínima
Password will be truncated to 8 characters
Para solucionar el problema, y que nuestro sistema nos permita password de más de ocho carácteres debemos:
1) editar el fichero /etc/login.defs
2) añadimos dos lineas:
PASS_MAX_LEN 20
PASS_MIN_LEN 5
con esto controlamos la longitud permitida de las contraseñas, tanto la máxima como la mínima
Cómo redireccionar STDOUT y STDERR a archivos
Con el siguiente comando:
(./comando | tee stdout.txt) 3>&1 1>&2 2>&3 | tee stderr.txt
-
- Direccionamos la salida estándar STDOUT al archivo stdout.txt
- Direccionamos la salida de errores STDERR al archivo stderr.txt
- Se siguen mostrando por consola tanto los errores como los mensajes estándar
(./comando | tee stdout.txt) 3>&1 1>&2 2>&3 | tee stderr.txt
-
- Direccionamos la salida estándar STDOUT al archivo stdout.txt
- Direccionamos la salida de errores STDERR al archivo stderr.txt
- Se siguen mostrando por consola tanto los errores como los mensajes estándar
Bloquear ataques por fuerza bruta en nuestro servidor SSH
Si hemos configurado nuestro sevidor SSH y echamos un ojo a los mensajes de seguridad en SUSE:
tail -n100 /var/log/messages
o bien
grep sshd /var/log/messages
Veremos que hay muchos ataque por fuerza bruta a nuestro servidor. Podemos tomar varias medidas para solucionar el problema:
1) Cambiar nuestra configuración del servidor SSHD a través del fichero /etc/ssh/sshd_config . Algunos parámetros podrían ser:
a) PermitRootLogin no <-- evitamos el acceso usando el usuario root, esto es casi obligatorio en cualquier sistema
b) PasswordAuthentication no <- no se permite el acceso a través de password, tendríamos que utilizar ssh keys, lo cual puede resultar un poco engorroso si tenemos muchos usuarios
c)Port 2221 <- cambiamos el puerto de escucha del SSHD, es una medida bastante sencilla y evitará muchos ataques, el único inconveniente es que todos los usuarios deben saber cual es el nuevo puerto. Esta medida previene de ataques fortuitos a nuestro sistema, es decir, si escanean nuestra red buscando equipos con el puerto 22 abierto no apareceremos. Un análisis a fondo de nuestro equipo revelará al atacante que estamos ejecutando un servidor ssh, y podría realizar a continuación un ataque por fuerza bruta.
d)Otra medida para proteger en parte nuestro sistema es utilizar el script denyhost (http://denyhosts.sourceforge.net/). Dicho script realiza dos tareas sencillas: 1) monitorizar nuestro fichero de mensajes (/var/log/messages) 2) cuando encuentra intento de accesos por fuerza bruta dsde una determinada ip, la añade al fichero /etc/hosts.deny
2) Descargar el script denyhost a través de http://denyhosts.sourceforge.net/ , en la sección download. Yo he descargado la versión DenyHosts-2.6.tar.gz
3) Descomprimir el archivo --> tar zxvf DenyHosts-#.#.#-tar.gz
4) Dentro del directorio y como root --> python setup.py install
5) Los archivos se instalan en /usr/share/denyhosts. Vamos al directorio --> cd /usr/share/denyhosts
6) Creamos el archivo de configuración mediante --> cp denyhosts.cfg-dist denyhosts.cfg .
7) En el archivo denyhosts.cfg hay que buscar la variable SECURE_LOG comentamos la de Redhat y descomentamos la de Suse --> SECURE_LOG = /var/log/messages.
8) Si vamos a usarlo como daemon debemos crear también el archivo del demonio --> cp daemon-control-dist daemon-control
9) Editamos el fichero daemon-control
10) buscamos la variable DENYHOSTS_BIN y cambiamos el valor a --> DENYHOSTS_BIN = "/usr/local/bin/denyhosts.py"
11) Cambiamos los permisos y el propietario del fichero daemon-control->
chown root daemon-control
chmod 700 daemon-control
12) Para arrancar el demonio manualmente --> ./daemon-control start
13) Para arrancarlo al inicio del sistema:
ln -s /usr/share/denyhosts/daemon-control /etc/init.d/denyhosts <--crea un enlace en init.d chkconfig --add denyhosts <--crea entradas en rc2.d, rc3.d y rc5.d
14)si deseamos permitir algún host siempre, debemos añadirlo a hosts.allow, por ejemplo el localhost:
sshd:localhost
tail -n100 /var/log/messages
o bien
grep sshd /var/log/messages
Veremos que hay muchos ataque por fuerza bruta a nuestro servidor. Podemos tomar varias medidas para solucionar el problema:
1) Cambiar nuestra configuración del servidor SSHD a través del fichero /etc/ssh/sshd_config . Algunos parámetros podrían ser:
a) PermitRootLogin no <-- evitamos el acceso usando el usuario root, esto es casi obligatorio en cualquier sistema
b) PasswordAuthentication no <- no se permite el acceso a través de password, tendríamos que utilizar ssh keys, lo cual puede resultar un poco engorroso si tenemos muchos usuarios
c)Port 2221 <- cambiamos el puerto de escucha del SSHD, es una medida bastante sencilla y evitará muchos ataques, el único inconveniente es que todos los usuarios deben saber cual es el nuevo puerto. Esta medida previene de ataques fortuitos a nuestro sistema, es decir, si escanean nuestra red buscando equipos con el puerto 22 abierto no apareceremos. Un análisis a fondo de nuestro equipo revelará al atacante que estamos ejecutando un servidor ssh, y podría realizar a continuación un ataque por fuerza bruta.
d)Otra medida para proteger en parte nuestro sistema es utilizar el script denyhost (http://denyhosts.sourceforge.net/). Dicho script realiza dos tareas sencillas: 1) monitorizar nuestro fichero de mensajes (/var/log/messages) 2) cuando encuentra intento de accesos por fuerza bruta dsde una determinada ip, la añade al fichero /etc/hosts.deny
De esta manera tras uno pocos intentos por fuerza bruta la ip atacante será bloqueada. Vamos a configurarlo para nuestro Suse 10.2:
1) Descargar los paquetes python-dev a través de YAST22) Descargar el script denyhost a través de http://denyhosts.sourceforge.net/ , en la sección download. Yo he descargado la versión DenyHosts-2.6.tar.gz
3) Descomprimir el archivo --> tar zxvf DenyHosts-#.#.#-tar.gz
4) Dentro del directorio y como root --> python setup.py install
5) Los archivos se instalan en /usr/share/denyhosts. Vamos al directorio --> cd /usr/share/denyhosts
6) Creamos el archivo de configuración mediante --> cp denyhosts.cfg-dist denyhosts.cfg .
7) En el archivo denyhosts.cfg hay que buscar la variable SECURE_LOG comentamos la de Redhat y descomentamos la de Suse --> SECURE_LOG = /var/log/messages.
8) Si vamos a usarlo como daemon debemos crear también el archivo del demonio --> cp daemon-control-dist daemon-control
9) Editamos el fichero daemon-control
10) buscamos la variable DENYHOSTS_BIN y cambiamos el valor a --> DENYHOSTS_BIN = "/usr/local/bin/denyhosts.py"
11) Cambiamos los permisos y el propietario del fichero daemon-control->
chown root daemon-control
chmod 700 daemon-control
12) Para arrancar el demonio manualmente --> ./daemon-control start
13) Para arrancarlo al inicio del sistema:
ln -s /usr/share/denyhosts/daemon-control /etc/init.d/denyhosts <--crea un enlace en init.d chkconfig --add denyhosts <--crea entradas en rc2.d, rc3.d y rc5.d
14)si deseamos permitir algún host siempre, debemos añadirlo a hosts.allow, por ejemplo el localhost:
sshd:localhost
Instalación suse 10.2
En la instalación de Suse 10.2 me salía un mensaje de error:
"could not find the CD drive with the install CD"
Ésto es debido a un problema con mi chipset intel 875 y suse 10.2
Para solucionarlo antes de empezar la instalación, en la pantalla azul donde nos da las opciones
-- boot from Hard disk
-- install
...etc
en la parte inferior podemos personalizar los comandos de instalación/arranque, únicamente con añadir
insmod = ide-generic nos detectará correctamente el dvd.
"could not find the CD drive with the install CD"
Ésto es debido a un problema con mi chipset intel 875 y suse 10.2
Para solucionarlo antes de empezar la instalación, en la pantalla azul donde nos da las opciones
-- boot from Hard disk
-- install
...etc
en la parte inferior podemos personalizar los comandos de instalación/arranque, únicamente con añadir
insmod = ide-generic nos detectará correctamente el dvd.
Cómo conocer versión de Suse y del kernel
Ejecuta el comando
--> uname -a
Para obtener la información sobre la versión del kernel, la fecha, nombre de la máquina ...
Con el comando:
--> cat /etc/SuSE-release
obtenemos la version de SUSE instalada
--> uname -a
Para obtener la información sobre la versión del kernel, la fecha, nombre de la máquina ...
Con el comando:
--> cat /etc/SuSE-release
obtenemos la version de SUSE instalada
Cambiar el SGA_MAX_SIZE
Este parámetro ( SGA_MAX_SIZE) se puede modificar cambiando su valor en el init.ora.
También podemos modificarlo mediante sql, pero no cuando la base de datos esté en línea:
1) parar la base de datos:
--> shutdown immediate;
2) Arancarla sin montar
--> startup nomount;
3) cambiar el tamaño:
alter system set sga_max_size=2G scope=spfile;
4) es necesario parar y reiniciar la BD para que el cambio sea efectivo:
--> shutdown immediate;
--> startup;
Otro parámetro interesante es el SGA_TARGET, su valor siempre será inferior al SGA_MAX_SIZE. Éste sí se puede modificar con la base de datos en línea.
También podemos modificarlo mediante sql, pero no cuando la base de datos esté en línea:
1) parar la base de datos:
--> shutdown immediate;
2) Arancarla sin montar
--> startup nomount;
3) cambiar el tamaño:
alter system set sga_max_size=2G scope=spfile;
4) es necesario parar y reiniciar la BD para que el cambio sea efectivo:
--> shutdown immediate;
--> startup;
Otro parámetro interesante es el SGA_TARGET, su valor siempre será inferior al SGA_MAX_SIZE. Éste sí se puede modificar con la base de datos en línea.
Modos de operación de Oracle 10g
Habitualmente para arrancar la base de datos totalmente utilizaremos directamente el comando:
--> startup
Hay tres fases de arraque opcionalmente podemos usar startup más un comando. Queda explicado a continuación
1) Fase de no montaje: se leen los parámetros del sistema, se inician las estructuras de memoria y los procesos de segundo plano. La instancia se arranca pero SIN asociarla a la base de datos. Normalmente se utiliza cuando se modifica o se necesita crear el archivo de control:
--> startup nomount ;
2) Fase de montaje: se asocia la instancia con la base de datos. Se usa el archivo de parámetros para localizar los archivos de control, que contienen el nombre de los archivos de datos y los registros rehacer. Los archivos de datos y los registros de rehacer no están abiertos, así que no son accesibles por usuarios finales para tareas normales. Se utiliza este modo para realizar algunas tareas de mantenimiento
dos comandos
--> startup mount ;
o
--> alter database mount ;
3) Fase apertura: se abren los archivos de datos y los registros rehacer. La base de datos queda disponible para las operaciones normales. Es necesario que existan registros rehacer si no existen hay que usar el comando --> resetlogs, que crea unos registros nuevos.
dos comandos
--> startup open ;
o
--> alter database open ;
si necesitamos usar el resetlogs sería algo asi:
--> startup open resetlogs ;
o
--> alter database open resetlogs ;
Otras formas de abrir la base de datos:
a)Abrir la base de datos en modo de sólo lectura, para que no puedan realizarse ni inserciones, ni actualizaciones ni borrados:
--> alter database open read only ;
b)Abrir la base de datos en modo restringido. Sólo los usuarios con los dos privilegios create session y restricted session pueden usarla. Es una forma util de que sólo el DBA pueda usar la BD:
--> startup restrict ;
c) Se puede cambiar el estado de la base de datos de modo que solo los usuarios sys y system puedan hacer consultas, sin que tengamos que detener la base de datos y posteriormente usar startup restrict. Hay que habilitr la opción quiesce en el Database Resource Manager:
--> alter system quiesce restrict ;
--> altersystem unquiesce ;
d) Forzar el reinicio. Cuando oracle no se ha detenido apropiadamente y sea imposible reiniciarlo. Se ejecuta un shutdown abort y a continuzación un startup:
--> startup force ;
--> startup force
--> startup
Hay tres fases de arraque opcionalmente podemos usar startup más un comando. Queda explicado a continuación
1) Fase de no montaje: se leen los parámetros del sistema, se inician las estructuras de memoria y los procesos de segundo plano. La instancia se arranca pero SIN asociarla a la base de datos. Normalmente se utiliza cuando se modifica o se necesita crear el archivo de control:
--> startup nomount ;
2) Fase de montaje: se asocia la instancia con la base de datos. Se usa el archivo de parámetros para localizar los archivos de control, que contienen el nombre de los archivos de datos y los registros rehacer. Los archivos de datos y los registros de rehacer no están abiertos, así que no son accesibles por usuarios finales para tareas normales. Se utiliza este modo para realizar algunas tareas de mantenimiento
dos comandos
--> startup mount ;
o
--> alter database mount ;
3) Fase apertura: se abren los archivos de datos y los registros rehacer. La base de datos queda disponible para las operaciones normales. Es necesario que existan registros rehacer si no existen hay que usar el comando --> resetlogs, que crea unos registros nuevos.
dos comandos
--> startup open ;
o
--> alter database open ;
si necesitamos usar el resetlogs sería algo asi:
--> startup open resetlogs ;
o
--> alter database open resetlogs ;
Otras formas de abrir la base de datos:
a)Abrir la base de datos en modo de sólo lectura, para que no puedan realizarse ni inserciones, ni actualizaciones ni borrados:
--> alter database open read only ;
b)Abrir la base de datos en modo restringido. Sólo los usuarios con los dos privilegios create session y restricted session pueden usarla. Es una forma util de que sólo el DBA pueda usar la BD:
--> startup restrict ;
c) Se puede cambiar el estado de la base de datos de modo que solo los usuarios sys y system puedan hacer consultas, sin que tengamos que detener la base de datos y posteriormente usar startup restrict. Hay que habilitr la opción quiesce en el Database Resource Manager:
--> alter system quiesce restrict ;
--> altersystem unquiesce ;
d) Forzar el reinicio. Cuando oracle no se ha detenido apropiadamente y sea imposible reiniciarlo. Se ejecuta un shutdown abort y a continuzación un startup:
--> startup force ;
--> startup force
Cómo parar Oracle 10g
Para Parar la Base de Datos se utiliza el comando shutdown.
shutdown normal --> espera a que todos los usuarios se desconecten de la base de datos y todas las transacciones terminen. No es demasiado práctico ya que si algun usario olvido desconectarse la base de datos quedará a la espera de dicha desconexión para pararse. Deja la BD en un estado coherente.
shutdown immediate --> se cancelan todas las transacciones actuales y se desconecta a los usuarios. Tampoco se permiten nuevas transacciones Deja la BD en un estado coherente, y es una de las mejores formas de parar la base de datos.
shutdown transactional --> similar a la immediate, pero permite que se terminen las transacciones en curso.
shutdown abort --> es la forma más dura de parar la base de datos. Todas las transacciones se terminan inmediatamente, sin que sean confirmadas o canceladas, y todos los usuarios son desconectados. Sólo se debe usar si se tienen problemas para detener la base de datos.
shutdown normal --> espera a que todos los usuarios se desconecten de la base de datos y todas las transacciones terminen. No es demasiado práctico ya que si algun usario olvido desconectarse la base de datos quedará a la espera de dicha desconexión para pararse. Deja la BD en un estado coherente.
shutdown immediate --> se cancelan todas las transacciones actuales y se desconecta a los usuarios. Tampoco se permiten nuevas transacciones Deja la BD en un estado coherente, y es una de las mejores formas de parar la base de datos.
shutdown transactional --> similar a la immediate, pero permite que se terminen las transacciones en curso.
shutdown abort --> es la forma más dura de parar la base de datos. Todas las transacciones se terminan inmediatamente, sin que sean confirmadas o canceladas, y todos los usuarios son desconectados. Sólo se debe usar si se tienen problemas para detener la base de datos.
Dejar de usar shared_servers
Al parecer cuando una instancia de oracle esta marcada como shared server no utiliza todos los procesadores, y se limita sólo a uno. Aprovechar 1 CPU de 4 es un problema. Para conseguir que se utilicen todo hay que eliminar esto. Vamos por pasos
1) comprobamos las CPUS que tenemos:
SHOW PARAMETER cpu;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
cpu_count integer 4
parallel_threads_per_cpu integer 2
2) Si usamos linux podemos usar algunos comandos para comprobar la carga de CPU del sistema. Dos de estos comandos son:
mpstat -P ALL 3 --> muestra la información de todos los procesadores, y actualiza cada 3 segundos
top --> muestra todos los procesos y el consumo de los recursos del sistema.
3) Podemos ver los parámetros usando:
show parameter shared_servers
show parameter servers
mostrará todos los parámetros que contengan la cadena de texto. Si está fijado a 1 el parámetro shared_servers es que la instancia esta en modo shared.
4) Para cambiar el parámetro tendremos que utilizar
alter system set shared_servers = 0;
Al fijar este parámetro ningún cliente podrá conectarse en modo shared, sin embargo puede que haya todavía algunas conexiones en modo shared. Si los parámetros SHARED_SERVERS y MAX_SHARED_SERVERS los fijamos a 0, todos los servers se finalizaran y las peticiones de los restantes clientes se encolarán hasta que el valor de SHARED_SERVERS o MAX_SHARED_SERVERS se incrementen
5) para finalizar todos los dispatcher hay qe introducir:
ALTER SYSTEM SET DISPATCHERS = '';
6) podemos usar las vistas V$DISPATCHER yV$SHARED_SERVER para comprobar si existen conexiones shared
select * from V$DISPATCHER;
select * from V$SHARED_SERVER;
1) comprobamos las CPUS que tenemos:
SHOW PARAMETER cpu;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
cpu_count integer 4
parallel_threads_per_cpu integer 2
2) Si usamos linux podemos usar algunos comandos para comprobar la carga de CPU del sistema. Dos de estos comandos son:
mpstat -P ALL 3 --> muestra la información de todos los procesadores, y actualiza cada 3 segundos
top --> muestra todos los procesos y el consumo de los recursos del sistema.
3) Podemos ver los parámetros usando:
show parameter shared_servers
show parameter servers
mostrará todos los parámetros que contengan la cadena de texto. Si está fijado a 1 el parámetro shared_servers es que la instancia esta en modo shared.
4) Para cambiar el parámetro tendremos que utilizar
alter system set shared_servers = 0;
Al fijar este parámetro ningún cliente podrá conectarse en modo shared, sin embargo puede que haya todavía algunas conexiones en modo shared. Si los parámetros SHARED_SERVERS y MAX_SHARED_SERVERS los fijamos a 0, todos los servers se finalizaran y las peticiones de los restantes clientes se encolarán hasta que el valor de SHARED_SERVERS o MAX_SHARED_SERVERS se incrementen
5) para finalizar todos los dispatcher hay qe introducir:
ALTER SYSTEM SET DISPATCHERS = '';
6) podemos usar las vistas V$DISPATCHER yV$SHARED_SERVER para comprobar si existen conexiones shared
select * from V$DISPATCHER;
select * from V$SHARED_SERVER;
Conocer Versión de Oracle
Para obtener la version concreta de oracle que usas:
select * from product_component_version
como system al menos.
Para conocer la version del sqlplus es de 32 o 64 bits
Para saber la versión:
select * from product_component_version
como system al menos.
Para conocer la version del sqlplus es de 32 o 64 bits
file $ORACLE_HOME/bin/sqlplus
Para saber la versión:
sqlplus -H | grep Release
Suscribirse a:
Entradas (Atom)
-
Para poder insertar saltos de línea con el comando echo en linux se usa la siguiente sintaxis : echo -e "\n linea 1 \n linea 2 \n...
-
Para obtener una lista con los objetos bloqueados ejecucutados: select substr(a.os_user_name,1,8) "OS User" , substr(b.object_na...
-
Para obtener cuando se creó una tabla usaremos la siguiente consulta: select object_name, created from user_objects where object_name = ...