La semana pasada estaba configurando una computadora que tenia problemas con la tarjeta de red en Windows XP y al querer eliminar un configuración me apareció el siguiente mensaje:
Lo mas chistoso es que no alcanzo a captar cuales componentes debo de quitar primero, así que me super urge urge una persona que lea las cartas, la mano, los pies!! lo que sea pero que me indique que debo de quitar! jajaja....
La solución fue cambiar de tarjeta de red! digo independientemente de este mega mensaje absurdo, ya no servia la tarjeta
Haa, tambien si se fijan aparece Clientes para redes Microsoft y si mi ingles no me falla es lo mismo que Client For Microsoft Sharing ??, changos!! la vda no entiendo la eXPeriencia!!
Hoy es el gran día para descargar Firefox y romper un Guinnes Record a partir de las 12 hrs tiempo del Centor de México podemos descargar Firefox, digo si es que pueden entrar a la página de Mozilla.com, ya que aparece un mensaje que dice: Http/1.1 Service Unavailable
Lo unico que tienes que hacer es descargar Firefox 3 durante el Download Day para ayudar a establecer el récord del software con más descargas durante 24 horas - es así de fácil.
Si deseas puedes poner tu email para que te notifiquen el día de la descarga, hasta este instante (mayo 29 2008, 7:43) en México ya somos 2,626 y en total 214,688 personas comprometidas con 1 descarga, vamos!!! tu puedes ser parte de este Record! ademas de obtener un navegador de excelente calidad.
No manches, cada día me sorprendo más y más de Windows, resulta que quiero ver los dispositivos de mi computadora, y cuando le pico al boton Device Manager, me aparece un letrero que no tengo suficientes permisos para acceder al recurso!!,
Windows cannot access the specified device, path, or file. You may not have the appropriate permissions to access the item.
Ahora el WTF de todo esto es que estoy con la cuenta de administrador de WindowsXP, o acaso existe una cuenta de Super-Administrador???, o Mega-Super-Hiper-Administrador???
Changos!! ahora si ocupa una formateada la compu y ponerle Ubuntu!!! y VirtualBox con WindowsXP para cosas realmente necesarias que no funcionan en Linux!!.....
Despues de actualizar la versión de ubuntu a la 8.05 tenia problemas con la tarjeta de video ATI Radeon Xpress 200 ya que no cargaba correctamente el modulo fglrx.
Instale los drivers oficiales de ATI y nada, tenia el mismo problema, despues probe con envy que es un programa escrito en python que detecta tu tarjeta de red e instala un driver especial, tanto para Nvidia como para ATI, pero igual, nada de nada!..., ya que lo más raro es que desde la terminal a prueba de fallos si me cargaba correctamente el driver, pero ya desde una sesión normal de Gnome me marcaba:
$ glxinfo | grep render
direct rendering: No (If you want to find out why, try setting LIBGL_DEBUG=verbose)
Y con el fglrxinfo me decia que tenia instalado el OpenGL de mesa y yo quiero que diga ATI, pero bueno!.., la solución fue desinstalar el programa xserver-xgl
sudo apt-get remove xserver-xgl
Y listo, reinicio las Gdm y entro a Gnome como siempre, abro la terminal y me aparece lo siguiente :
$ fglrxinfo
display: :0.0 screen: 0
OpenGL vendor string: ATI Technologies Inc.
OpenGL renderer string: ATI Radeon Xpress Series
OpenGL version string: 2.1.7415 Release
Y tambien me aparece esto otro:
$ glxinfo
name of display: :0.0
display: :0 screen: 0
direct rendering: Yes
server glx vendor string: SGI
server glx version string: 1.2
Vamos!! sin hacer trampas! jejeje, en realidad entre más practiques más rapido te haces! y no se, pero creo que soy más veloz usando el enter que la barra espaciadora! que cosas no?.
En mi trabajo tengo un servidor con SmootWall 3.0 que se encarga de filtrar las páginas web, servir de firewall y de pasada como proxy-cache ademas de otras monerias, pero resulta que no he podido iniciar el servicio de Snort (IDS) ya que me marca:
Unable to run command.
Ya tengo mi codigo Oink pero aun asi no funciona la cosa, yo sospechaba que como es una versión nueva el SmootWall por ahi puede estar la falla, y efectivamente!!, aunque bueno, el problema viene siendo por parte de Snort.
No se si sea esta la solución de este problema o de algun otro, pero bueno!! a mi me funciono!!
Lo que deben de hacer es primero hacer un respaldo del archivo /httpd/cgi-bin/ids.cgi
Despues ingresar al archivo ids.cgi y buscar la siguiente linea:
my $url = 'http://www.snort.org/pub-bin/oinkmaster.cgi/' . $snortsettings{'OINK'} . '/snortrules-snapshot-CURRENT.tar.gz';
Y remplazarla por:
my $url = 'http://www.snort.org/pub-bin/oinkmaster.cgi/' . $snortsettings{'OINK'} . '/snortrules-snapshot-2.6.tar.gz';
Osea que solamente se cambio el texto CURRENT por 2.6, ya que al parecer ese archivo tar.gz tiene problemas de compatibilidad con la versión del Snort del SmootWall
Ahora bien , si no quieren borrar la linea viejita, solo la comentan (yo asi le hice) con el signo de # al inicio de la cadena (mmh, bueno,supongo que si usan SmootWall ya han de saber comentar lineas jejeje).
Ya esta disponible la versión 8.04 de Ubuntu, recordemos que la versión de escritorio tiene 3 años de soporte (hasta el 2011) y la versión para servidores tiene 5 años de soporte (hasta el 2013)
Si eres de los que utilizan el software Network Manager de Gnome y estas cansado de que se desconecta y reconecta y otra vez desconecta de la wifi sin ningún sentido, o a veces te dice desconectado y en realidad si estas conectada a la red inalambrica , o tambien le das guardar contraseña y otra vez te la pide, entonces debes de cambiar deSoftware por uno más potente y versátil, ahí es donde entra Wicd Manager.
Para instalarlo es muuuy simple, solo añade la siguiente linea a tu archivo sources.list de apt
deb http://apt.wicd.net hardy extras
Solo cambias hardy por feisty o el nombre de tu distro de Debian.
Después el obligado apt-get update y para rematar con broche de oro un apt-get install wicd (así o mas fácil), apt se encarga de desinstalar network-manager, network-manager-gnome y wifi-radar para no tener conflicto con Wicd
Despues verifica que se agrege automáticamente a tu sesión de Gnome:
Sistema > Preferencias > Sesiones y agregar la siguiente ruta /opt/wicd/tray.py de todas formas pueden encontrar el icono en Internet > Wicd
Y listo!! a disfrutar de su red inalambrica sin problemas desde Linux
Al enviar (publicar) correos de la lista de distribución (MaMML de Mambo) no me aparecia la lista de correos enviados y parecia que la página quedaba trabada y no hacia nada aunque en realidad si enviaba los email's. Despues de investigar un poco me di cuenta que utiliza la función flush() de PHP la cual nos ayuda a enviar la salida del buffer al navegador del cliente sin importar que aun no se ha cargado la página completamente.
En palabras de la ayuda de PHP tenemos lo siguiente:
Vacía los búferes de salida de PHP y de cualquiera que sea el motor que PHP esté usando (CGI, un servidor web, etc). Esto en efecto trata de enviar toda la salida acumulada hasta el momento al navegador del usuario.
Y tambien indica en la ayuda que puede tener un comportamiento extraño cuando se utiliza compresion Gzip desde Apache y ya con esta información revise la configuración de Mambo y me di cuenta que efectivamente la directiva $mosConfig_gzip del archivo configuration.php estaba activada (1) y por lo tanto mandaba los encabezados de compresión.
Para solucionar el problema del modulo MaMML pero seguir teniendo compresión Gzip (ya que esto ayuda en la velocidad de transferencia de datos desde el servidor web) es necesario modificar el archivo includes/mambo.php y buscar la función initGzip y despues reemplazar la linea del IF que dice:
Digo es un mega parche pero funciona bastante bien, supongo que si se tienen varias páginas con este problema del flush se podria buscar una comparación en un arreglo de modulos o algo asi, pero para este problema especifico ese error se soluciona.
He estado probando Meteora y Mootools para un buscador de teléfonos y en Firefox me funciona de maravilla pero al querer probar la aplicación en Internet Explorer 7 me aparece el siguiente error:
Could not complete the operation due to error c00ce56e
Y al probar la página en Internet Explorer 6 me aparece otro error muy diferente a el del IE7
System error: -1072896658
La solución para eliminar el problema del IE7 y del IE6 es quitar el encabezado del content type de mi archivo que mando llamar mediante Ajax.
Eliminando esa parte de código ya funciona correctamente la página web, ahora solo falta saber el porque del error que solo aparece en el Internet Explorer??, pues la verdad quien sabe pero ya ven que el IE simplemente es un asco para visualizar páginas web (y yo que pensaba que la versión 7 hiba a ser mas compatible pero nada de nada)
[actualizado]
Me acabo de dar cuenta que el resultado de mi Ajax no se ve bien los acentos debido a la codificación ya que necesito utilizar UTF-8 porque en el encabezado de mi página manejo:
y cuando me regresaba el resultado del Ajax pues como quite el content type pues ya me fallaba el asunto, así que para solucionar el problema del UTF y de la misma forma no afecte el error del IE solo se tiene que agregar la siguiente linea:
He estado probando el sitio de un cliente con los diferentes Navegadores (Firefox, IE6, IE7, Safari y Opera) y para variar he tenido más de algún problema, ya saben con quien!!, claro!! con el Internet Explorer 7 y no se diga con la versión 6 del IE (todo un asco de navegador).
Bueno, la cosa esta en que quiero editar dinamicamente mediante Javascript el valor de la propiedad CLASS (clase en español jeje) y al utilizar la propiedad setAttribute('class',"NOMBRE_CLASE") en el Explorer nomas no se realiza el cambio y en los demas navegadores todo va de maravilla.
Ahora bien, después de investigar un poco he encontrado que el IE no soporta el atributo class y en lugar de eso utiliza uno llamado className.
Como he utilizado prototype para mayor compatibilidad solo es necesario poner el siguiente código:
La verdad esta muy fácil de entender, solo es cosa de agregar las librerías del prototype y usar la clausula del IF la cual nos indica si es Internet Exploder entonces se procede con el className y si es cualquier otro navegador decente se procede con el atributo class, asi de fácil.
He estado probando el sitio de un cliente con los diferentes Navegadores (Firefox, IE6, IE7, Safari y Opera) y para variar he tenido más de algún problema, ya saben con quien!!, claro!! con el Internet Explorer 7 y no se diga con la versión 6 del IE (todo un asco de navegador)
Bueno, la cosa esta en que quiero editar dinamicamente mediante Javascript el valor de la propiedad CLASS (clase en español jeje) y al utilizar la propiedad setAttribute('class',"NOMBRE_CLASE") en el Explorer nomas no se realiza el cambio y en los demas navegadores todo va de maravilla.
Ahora bien, después de investigar un poco he encontrado que el IE no soporta el atributo class y en lugar de eso utiliza uno llamado className.
Como he utilizado prototype para mayor compatibilidad solo es necesario poner el siguiente código:
La verdad esta muy fácil de entender, solo es cosa de agregar las librerías del prototype y usar la clausula del IF la cual nos indica si es Internet Exploder entonces se procede con el className y si es cualquier otro navegador decente se procede con el atributo class, asi de fácil.
He estado viendo las tiras comicas de la TiraEcol o mejor conocida como Bilo y Nano, y la verdad es que me he carcajeado de amonton!.. jaja, que haríamos sin ese humor geek!
Aquí les pongo algunas tiras que más risa me han dado!!, espero y las comprendan ya que algunas necesitas un poco de frikismo.
Lo más curioso es que a veces me aparecia en algunas paginas y en otras no aparecía y tenían los mismos encabezados, hasta que encontre el problema: Utilizo un la etiqueta BASE, pero ejecutaba código javascript antes mediante un archivo externo de JS, osease tenia algo asi:
Osease que todas las rutas estan ligadas a lo que se encuentre en BASE, pero el archivo de JS lo queria cargar antes y pues no encontraba la ruta, asi que la solución es primero poner el BASE y despues ya lo del Javascript, quedando algo asi:
el cual pertenece a la función methodize: function() {
Y para variar en Internet Explorer tenia un bonito mensaje de:
Stack overflow at line: 0
La solución a este problema es actualizar la librería scriptaculous ya que yo tenia la versión 1.7.0 y la cambie por la 1.8.1 y listo! no más mensajes molestos de errores.
Hoy me fije que me apareció el siguiente error en la consola de error de javascript en Firefox:
Error: uncaught exception: Permission denied to get property HTMLDivElement.parentNode
ó que es lo mismo pero en español.
Error: uncaught exception: Permiso para obtener la propiedad HTMLDivElement.parentNode denegado
Primero pensé que era la libreria de javascript prototype ya que la había actualizado a la versión 1.6.0.2 asi que la regrese a la versión 1.5.0 que es con la que estoy trabajando en un proyecto de envío de mensajes vía SMS, pero aun así me aparecia el mismo error, luego pense que se trataba de la propiedad innerHTML ya que habia leido que tenia problemas en InternetExplorer y todas las peticiones con innerHTML las cambie por la función replaceHtml que encontre en el sitio de anieto2k pero aun así tenia el mismo problema.
Luego observe que solo me aparecia cuando le daba click en las cajas de texto ( input type="text" ) o escribia algo en dichas cajas, lo cual me parecia un más raro, y despues de buscar y buscar en Google encontre la solución al problema del HTMLDivElement.parentNode
En primera nunca pense que tenia relación el problema con la librería CalendarPopup la cual permite visualizar un calendario con muchisimas funciones interesantes. y bueno lo unico que se tiene que hacer es remplazar todo lo que diga:
var t = e.originalTarget;
por la siguiente linea:
var t = e.target;
La verdad esta muuy fácil la solución, pero bueno, cuando uno no tiene ni la mas minima idea del error esto se vuelve realmente complicado.
Desde que me cambie a la nueva versión de Ubuntu 7.10 tenia un problema con las terminales (esas que te cambias con CTRL + ALT + F2) y por X o Y razón no habia tenido la calma de buscar la solución, primero pense que se podia tratar de la resolución de la terminal la cual se cambia desde el archivo /boot/grub/menu.lst en las opciones donde aparecen las diferentes versiones del kernel, por ejemplo:
Si quieren probar las resoluciones sin cambiar nada en el archivo de configuración de Grub, una vez que inicien la computadora y cuando aparezca el menú del Grub, presionar la letra E para editar algún campo, después para guardar con ENTER y para entrar a Linux con la B
Bueno, despues de hacer lo anterior todavia no veia nada en las terminales, solo veia negro, o las tipicas lineas de colores como las que se ven en la TV cuando no se tiene señal., ahora bien, la solución aparte de lo anterior es agregar los modulos fbcon y vesafb dentro del archivo /etc/initramfs-tools/modules (un modulo por cada linea), despues actualizar el initramf con:
sudo update-initramfs -u
Y para rematar editar el archivo /etc/modprobe.d/blacklist-framebuffer y cambiar la linea donde dice blacklist vesafb por un gato inicial: # blacklist vesafb y listo! reinicia Linux y ya puedes ver el texto de las terminales.
Si estas cansado de que cada vez que inicias Gnome y deseas conectarte a la red inalambrica te pide la clave ya sea WEP / WAP, o si ya tienes esa clave en tu keyring (anillo de contraseñas) y aun asi te pide una clave, algo como esto:
Titulo: Desbloquear anillo
Contenido: La aplicacion"nm-applet" (USER/BIN/nm-applet) quiere acceder al anillo de claves predeterminado, pero esta bloquedado.
Bueno, si tienes alguno de estos dos problemas, aquí vas a encontrar al solución.
Primero ocupas tener la clave de tu manejador de contraseñas o keyring sea igual, a la que entras a Gnome (tu usuario del sistema), en caso que no sea la misma debes de borrar la clave vieja del keyring mediante el siguiente comando:
rm ~/.gnome2/keyrings/default.keyring
Ten encuenta que al ejecutar ese comando, se borra TODAS tus claves, tanto la del keyring como la del Wifi, la otra es poner la del sistema igual a la del keyring
sudo passwd MI_USUARIO
Ahora que tenemos el primer requisito cumplido, procedemos con la instalación de programa que nos va a controlar todo este rollo de los passwords
sudo apt-get install libpam-keyring
Despues puedes encontrarte con dos posibles casos al iniciar Gnome mediante GDM, esto es para editar el archivo correspondiente y agregar una linea especial para el libpam-keyring
Tienes el inicio de sesión de GDM automaticamente, entonces ocupas entrar al archivo: /etc/pam.d/gdm-autologin
Tienes el inicio de sesión desactivado de GDM, osea que cada usuario escribe su contraseña y nombre de usuario, entonces ocupas entrar al archivo* /etc/pam.d/gdm**
Una vez identificado como entras a Gnome entras al archivo correcto (siempre como root) y al final agregar la siguiente linea
@include common-pamkeyring
En el caso de equivocarte del inicio automático, te va a pedir la clave después de GDM y antes de Gnome, pero bueno!, algo es algo.
Y listo!! ya no mas molestias, excepto en el caso automatico de GDM
Si estamos preocupados por la seguridad de nuestros servidores y mas del servicio/protocolo Secure Shell cuando esta relacionado con ataques de fuerza bruta ya sea por medio de diccionarios, entonces debemos de utilizar DenyHosts, esta aplicación nos permitirá detectar posibles ataques antes de que estos hagan efecto.
La manera en que funciona DenyHosts es que monitorea el archivo /var/log/auth.log (en el caso de Debian - Ubuntu...) para detectar errores de autentificación al sistema y despues bajo ciertas reglas bloquer la IP o servicio que queramos mediante el archivo /etc/hosts.deny
Bueno, ahora que conocemos como funciona DenyHosts, es hora de empezar con la instalación, y para variar!! la forma mas sencilla (mas que en windows) es con un simple:
apt-get install denyhosts
Despues procedemos con la configuración que se encuentra en /etc/denyhosts.conf algunos de los parametros importantes son:
# Lugar donde se encuentra nuestro archivo de Log, en este caso para Debian
SECURE_LOG = /var/log/auth.log
# Lugar donde se encuentra nuestro archivo de bloqueo de hosts
HOSTS_DENY = /etc/hosts.deny
# El periodo en el que la IP va a ser eliminada de la lista de bloqueo, puede ser en hora (h), dias (d)...
PURGE_DENY = 12h
# Cual servicio queremos que sea bloqueado, puede ser sshd, o ALL para todos
BLOCK_SERVICE = ALL
# Numero de veces de error cuando se ingresa con un usuario NO existente
# Se supone que el root conoce a sus usuarios y no debe de equivocarse
DENY_THRESHOLD_INVALID = 2
# Numero de veces de error con un usuario SI existente en el sistema
DENY_THRESHOLD_VALID = 10
# Numero de veces de error con el usuario ROOT
DENY_THRESHOLD_ROOT = 2
DENY_THRESHOLD_RESTRICTED = 1
WORK_DIR = /var/lib/denyhosts
# Reportar entradas sospechosas
SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS=YES
# Buscar el nombre del host del atacante si este esta disponible
HOSTNAME_LOOKUP=YES
LOCK_FILE = /var/run/denyhosts.pid
# Email para notificar los bloqueos
ADMIN_EMAIL = cliente_at_servidor_dot_com
SMTP_HOST = localhost
SMTP_PORT = 25
SMTP_FROM = DenyHosts
SMTP_SUBJECT = DenyHosts Reporte
SMTP_DATE_FORMAT = %a, %d %b %Y %H:%M:%S %z
AGE_RESET_VALID=5d
AGE_RESET_ROOT=25d
AGE_RESET_RESTRICTED=25d
AGE_RESET_INVALID=10d
DAEMON_LOG = /var/log/denyhosts
DAEMON_SLEEP = 30s
DAEMON_PURGE = 1h
Y listo, reiniciamos el servicio DenyHosts /etc/init.d/denyhosts restart ahora solo falta esperar los correos los cuales llegan con el siguiente formato:
He tenido algunos problemas con un servidor Debian y al momento de querer entrar mediante SSH me aparece un mensaje indicándome que la conexión ha sido cerrada por el host remoto, ingesu!! ahora ni como entrar al servidor, así que tengo que reiniciarlo y volver a intentar entrar (supongo que al reiniciar se borra la configuración de bloqueo) y bueno! ya no mas mensajes de:
ssh_exchange_identification: Connection closed by remote host
Y realizando un debug al ssh me aparece la siguiente información:
user_at_my-laptop:~$ ssh -v servidor-remoto.com
OpenSSH_4.6p1 Debian-5build1, OpenSSL 0.9.8e 23 Feb 2007
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to servidor-remoto.com [64.233.167.99] port 22.
debug1: Connection established.
debug1: identity file /home/user/.ssh/id_rsa type -1
debug1: identity file /home/user/.ssh/id_dsa type -1
ssh_exchange_identification: Connection closed by remote host
Ahora bien, para solucionar este problemilla, solo necesitan agregar SSHD: ALL a su archivo /etc/hosts.allow
echo 'SSHD: ALL' >> /etc/hosts.allow
Y listo!!!, ya no mas mensajes de ssh_exchange_identification: Connection closed by remote host
Si deseas prevenir un ataque de Denegación de servicio (DoS) cuyo objetivo es colapsar el servidor durante un periodo de tiempo para que este no esté en funcionamiento, ahora bien, si nuestro servidor es Apache podemos contar con el módulo llamado mod_evasive.
El módulo de seguridad para Apache, mod_evasive cuyo propósito no es otro que el de prevenir o anular ataques de Denegación de Servicio o de fuerza bruta basados en peticiones masivas al servidor de páginas web (HTTP DoS). A través del módulo tendremos la posibilidad de redirigir el tráfico malicioso hacia otra aplicación de control que terminará de filtrar las peticiones (firewalls, scripts personalizados, ...).
El funcionamiento de mod_evasive se basa en la prevención de ataques mediante la comparación de la IP solicitante con una tabla dinámica que registra las páginas accedidas a nuestro servidor que provienen de dicha IP y la frecuencia de accesos. En el preciso instante en que una máquina solicita una dirección del servidor Apache, mod_evasive filtrará cualquier dirección IP que cumpla con los siguientes requisitos:
La IP está en la lista de direcciones a filtrar.
La IP cliente ha solicitado la misma dirección más veces que la cantidad máxima especificada en el fichero de configuración.
El número de peticiones de la IP cliente excede del máximo permitido en un intervalo de tiempo predeterminado en la configuración.
Si una IP resulta filtrada por cumplir con alguna de las condiciones anteriores, recibirá un código 403 (Forbidden) en respuesta a su petición y le será denegado el acceso durante un periodo de tiempo configurable.
Ahora viene la parte interesante que es la instalación y configuración, antes de empezar debemos de contar con las herramientas necesarias para compilar programas en Linux y en especial para Apache, en este caso estamos usando una versión estilo apt (Debian, Ubuntu...)
apt-get install apache2-prefork-dev gcc
Despues procedemos a descargar el codigo fuente que encontramos en la página oficial del proyecto mod_evasive: http://www.zdziarski.com/projects/mod_evasive (al momento de escribir esta nota la versión es la 1.10.1)
Ahora procedemos a descargar y descompactar el codigo, de preferencia en la carpeta temporal /temp
wget http://www.zdziarski.com/projects/mod_evasive/mod_evasive_1.10.1.tar.gz
tar xvzf mod_evasive_1.10.1.tar.gz
cd mod_evasive
/usr/bin/apxs2 -i -c mod_evasive20.c
Ahora vamos a crear el archivo de configuración de Apache2 dentro de la carpeta mods-enabled
nano /etc/apache2/mods-available/evasive.load
Y dentro del archivo ponemos la siguiente linea, que es donde esta nuestro modulo compilado (mod_evasive20.so)
Y listo, solo falta configurar los parametros, tomando en cuenta la siguiente descripción:
DOSHashTableSize - Establece el número de nodos a almacenar para cada proceso de peticiones de la tabla hash (contenedor asociativo de recuperación de peticiones por medio de claves que agiliza las respuestas del servidor). Si aplicamos un número alto a este parámetro obtendremos un rendimiento mayor, ya que las iteraciones necesarias para obtener un registro de la tabla son menores. Por contra, y de forma evidente, aumenta el consumo de memoria necesario para el almacenamiento de una tabla mayor. Se hace necesario incrementar este parámetro si el servidor atiende un número abultado de peticiones, aunque puede no servir de nada si la memoria de la máquina es escasa.
DOSPageCount - Indica el valor del umbral para el número de peticiones de una misma página (o URI) dentro del intervalo definido en DOSPageInterval. Cuando el valor del parámetro es excedido, la IP del cliente se añade a la lista de bloqueos.
DOSSiteCount - Cuenta cuántas peticiones de cualquier tipo puede hacer un cliente dentro del intervalo definido en DOSSiteInterval. Si se excede dicho valor, el cliente queda añadido a la lista de bloqueos.
DOSPageInterval - El intervalo, en segundos, para el umbral de petición de páginas.
DOSSiteInterval - El intervalo, en segundos, para el umbral de petición de objetos de cualquier tipo.
DOSBlockingPeriod - Establece el tiempo, en segundos, que un cliente queda bloqueado una vez que ha sido añadido a la lista de bloqueos. Como ya se indicó unas líneas atrás, todo cliente bloqueado recibirá una respuesta del tipo 403 (Forbidden) a cualquier petición que realice durante este periodo.
DOSEmailNotify - Un e-mail será enviado a la dirección especificada cuando una dirección IP quede bloqueada.
DOSSystemCommand - El comando reflejado se ejecutará cuando una dirección IP quede bloqueada. Se hace muy útil en llamadas a herramientas de filtrado o firewalls. Usaremos %s para especificar la dirección IP implicada. Por ejemplo, podemos establecer su uso con iptables de la forma siguiente para bloquear el acceso al puerto 80
DOSLogDir - Establece una ruta para el directorio temporal. Por defecto, dicha ruta queda establecida en /tmp, lo cual puede originar algunos agujeros de seguridad si el sistema resulta violado.
DOSWhitelist - La dirección IP indicada como valor del parámetro no será tenida en cuenta por el módulo en ningún caso. Para cada dirección IP a excluir ha de añadirse una nueva línea con el parámetro. Por ejemplo, dejaremos fuera del chequeo del módulo a un posible bot (el de Google) que use los siguientes rangos de direcciones:
DOSWhitelist 66.249.65.*
DOSWhitelist 66.249.66.*
Y bien, ya que conocen que significa cada parametro, aquí esta una configuración opcional que se debe de guardar en el archivo /etc/apache2/conf.d/evasive
Y para probar si realmente funciona todo, en la carpeta donde descompactamos el tar.gz viene un archivo llamado test.pl, solo es cosa de ejecutarlo con:
perl test.pl
Y despues de ciertas peticiones vamos a ver el famoso error HTTP/1.1 403 Forbidden y listo!!, eso significa que todo funciona a la perfección, ahora ya tenemos un Apache un poco mas protegido!..
Si eres de las personas que siempre se preguntaron si Darth Vader fue el padre de Luke, y que es lo que esconde abajo de la mascara y traje negro! aquí tengo la respuesta definitiva!!!...
Si eres una persona que no te desempeñas adecuadamente en tu trabajo, escuela, no puedes respirar correctamente, tienes muchas exigencias de cumplir ciertas cosas en un lapso determinado y esto hace que trabajes horas extras y superes tus capacidades mentales, entonces, BIENVENIDO al mundo del estrés, pero no todo es de color Negro!!.., hoy te vengo a ofrecer el producto maravilloso que ha cautivado a miles de personas!!, sin duda el mejor kit anti-estrés que ha existido!.., y todo por un costo de 1 hoja y tinta de impresora (ha y conexión a internet jaja)
Solo sigan los siguientes pasos:
Colocar el Kit en una superficie FIRME
Seguir las instrucciones del interior del circulo, Golpear la cabeza aquí
Repetir el paso 2 tantas veces sea necesario
En caso de perder el conocimiento haga una pausa. (este punto es importante!!)
Suerte!! en tu terapia! jajaja.. haa y no se deje al alcance de los niños y come frutas y verduras
Hoy tuve que agregar un atributo NAME a la página web de compra y venta de equipo médico, Medicalmex ya que tengo un menú y queria que al picarle en las opciones me mandara a una sección definida de la página, de ahi que se utiliza el atributo NAME dentro de una etiqueta A (para enlaces), teniendo algo como: Pie de página y mandar llamarla de la siguiente forma: Ir al pie de página, hasta este punto todo muy normal con la sintaxis HTML , pero el problema empieza cuando tenemos un elemento llamado BASE, el cual nos permite cambiar la dirección principal para cuando utilice una página con ruta relativa tome la base y complete el URL (jeje, no se me hagan bolas ), algo como sigue:
Tenemos nuestra página www.oviedos.com.mx y cuando mandamos llamar la página index.php el navegador automaticamente agrega www.oviedos.com.mx ya que es el sitio web que estamos visitando en este momento, pero que ta si no queremos que al picarle en cualquier liga de la página nos mande llamar a http://www.oviedos.com.mx sino que queremos que llame http://start.oviedos.com.mx, haaa!! pues una solución es utilizar y listo!!! todas las páginas mandaran llamar los links como si fueran de la dirección BASE..., un poco mas claro no???
Entonces si mezclamos NAME con BASE tenemos un problemon!!, ya que si estamos en la página
index.php/pages/1.html y mandamos llamar con NAME #abajo deberia quedar index.php/pages/1.html#abajo hasta aquí todo bien!! si no fuera porque nos queda index.php#abajo ya que en nuestra etiqueta BASE tenemos y ahi es donde empiezan los problemas!!, ahora bien la solución a todo esto es utilizar JavaScript
El algoritmo que utilizaremos es:
Obtener la cadena del URL actual
Contar con el valor de NAME a el que queremos dirigirnos en la página
Buscar el cualquier valor NAME en la cadena URL, osease que comience con gato #
Si se encontro el valor NAME se debe eliminar y dejar la cadena URL sin esa información
Concatenar el nuevo valor NAME a la URL ya parseada
Mandar llamar la nueva página web.
function hrefbase(tagname){ var newText = "";
searchTerm = "#"; var i = -1; var bodyText = location.href;
i = bodyText.indexOf(searchTerm, i+1); if(i <0){
newText = bodyText; }else{
newText = bodyText.substring(0, i); }
location.href=''+newText+searchTerm+tagname; }
Solo se tiene que mandar llamar la función hrefbase con el parametro que es la etiqueta NAME a la cual queremos ir y listo!!, una forma practica es mediante el evento ONCLICK:
<div ONCLICK="javascript:hrefbase('pagina_abajo');">Ir al pie de página</div>
Despues pueden utilizar alguna hoja de estilo CSS para darle un formato más adecuado, ya se poniendo una linea de subrayado ( text-decoration: underline; ), o la manita del cursor como si fuera un enlace ( cursor: pointer; ).
Para todos los que se han preguntado si realmente puede volar un pingüino, aqui tengo 2 posibles respuestas, la primera una animación en 3D y la segunda el propio Tux volandooo!!!
Si deseas instalar las fuentes ClearType que vienen en Windows Vista y Office 2007, las cuales se llaman Constantia, Corbel, Calibri, Cambria, Candara y Consolas solo debes de descargar el script vista-fonts-installer.sh para descargar las fuentes ClearType y ejecutarlo desde el directorio Raiz de tu cuenta (~) . Para eso tienes que contar con los siguientes programas, cabextract (para descomprimir el archivo), wget o curl (para descargar el archivo)
sudo apt-get install cabextract wget curl
Despues debes de ejecutar el script para eso le damos permisos de ejecución (recuerda que el archivo esta en tu raiz):
chmod a+x ~/vista-fonts-installer.sh
Y por ultimo procedemos a ajecutar el programa:
sh ~/vista-fonts-installer.sh
Y listo!!, si les marca un error de:
There is no .fonts directory in your home.
Is fontconfig set up for privately installed fonts?
Significa que no tienen el directorio fonts dentro de su raiz, asi que lo creamos con un mkdir ~/.fonts, despues volvemos a ejecutar el instalador.
All done, no errors.
/home/oviedo/.fonts: caching, 23 fonts, 0 dirs
/var/cache/fontconfig: not cleaning unwritable cache directory
/home/oviedo/.fontconfig: cleaning cache directory
fc-cache: succeeded
Y listo!! si todo sale bien!!, ya tenemos nuestras MS ClearType, solo para que estes conciente que descargamos el archivo Powerpoint Viewer desde la página de microsoft y por lo tanto debes de tener una licencia valida del Wintendo XP / Vista!.., sino..., cuello!!! eres un pirata!!.
Y para ver las fuentes instaladas solo necesitamos el programa gnome-specimen
sudo apt-get install gnome-specimen
Ahora bien, si quieres más acción y algo más GPL tenemos otras fuentes muy chidas!! que podemos descargar con un simple apt-get tales como la Gentium, Dustismo, George Williams, Some Juicy, Sun Java6 Fonts - Lucida y Larabie. pero bueno!!, como se ven estas fuentes!! nomas chequen las imagenes y la forma de instalarlas:
El Jueves 18 de Octubre del 2007 tendremos una nueva versión estable de Ubuntu llamada Gutsy Gibbon que viene siendo un Gibón (Hylobatidae)
Alguna de sus nueva características son
Kernel 2.6.22, GNOME 2.20, Xorg 7.3. Kubuntu vendrá con KDE 3.5.7 pero estará la opción de instalar el RC2 de KDE4.
Ubuntu Server incluirá los paquetes del sistema de seguridad desarrollado por Novell, AppArmor.
“Gutsy” será el primero en soportar, composición por defecto (para los efectos 3D), e incluirá Compiz Fusion.
Xorg 7.3 significa configuración automática de monitores al conectarlos. Ahora no más lata al configurar xorg.conf y si queremos podemos utilizar la nueva herramienta llamada DisplayConfig que viene siendo una maravilla.
Y como dato curioso para los que no saben el porque los numeros de las versiones de Ubuntu aquí tienen la respuesta, por ejemplo Ubuntu 7.10, el 7 es el año en que se libera, tomando el ultimo dígito 2007 y el 10 el numero del mes, Agosto = 10, por eso la primera versión de Ubuntu fue la 4.10 lanzada en Octubre del 2004.
Para todos los desesperados como yo que les gusta la velocidad en Linux, especialmente en Gnome, tengo un truco para acelerar la visualización de los sub-menús en Gnome.
El truco esta probado en Ubuntu Gutsy Gibbon (por cierto, ya dije que esta super completa y fácil esta versión?) lo único que tienen que hacer es crear o editar el siguiente archivo en la raiz de la carpeta del usuario actual (solo pongan cd y denle enter y listo!, los manda a la raiz)
nano .gtkrc-2.0
Después deben de introducir la siguiente linea y guardar el archivo:
gtk-menu-popup-delay = 0
Y listo!!, reiniciar las X con ctrl + alt + backspace y tendran los menus en Gnome más veloces del oeste!, por cierto esto me recuerda al truco también para tener más velocidad en el menú inicio de windows:
El menú de inicio de Windows XP, aparte de ser extremadamente grande, es también demasiado lento en su despliegue. Si deseas acelerar la velocidad en que se muestra este menú, accede al registro de Windows.
Entrar al regedit, y llegar a la siguiente opción: HKEY_CURRENT_USER > Control Panel > Desktop > MenuShowDelay despues editar el valor por default (400) y ponerle un cero (0) y listo!, en Linux la verdad es más fácil
Si eres usuario del reproductor de música Banshee (algo tipo al iTunes o Amarok pero diseñado para Gnome) y te gustaría sacarle más jugo, la solución es instalar algunos plugins utiles, tales como:
Audioscrobbler (en Last.FM aparece la musica que escuchas)
Music Recommendations (artistas similares basados en Last.FM)
Internet Radio (escuchar estaciones de radio por internet)
Cleanup (elimina canciones de la lista de reproduccion cuando las borras de la ruta original)
Para instalarlos es facil, solo necesitas descargar el archivo desde el SVN especificado en la página de los plugins, por ejemplo para instalar el Alarm Clock se siguen los siguientes pasos:
1.- Descargar el archivo de las fuentes, en la consola se teclea lo siguiente, de preferencia en la carpeta /tmp
svn co http://banshee-unofficial-plugins.googlecode.com/svn/trunk/banshee-alarm-plugin
2.- Despues se instalan alguna dependencias, para eso utilizamos apt-get
Sino hacen lo anterior puede que le aparezcan alguno de los siguientes errores:
configure: error: No C# 2.0 (gmcs) compiler found
checking for MONO... no
You need to install gnome-common from the GNOME CVS
3.- Entramos en la carpeta banshee-alarm-plugin y ejecutamos lo siguiente:
./autogen.sh
4.- Si no existen errores se prosigue con lo siguiente, en dado contrario solo es cosa de buscar el paquete que hace falta en packages.ubuntu.com e instalarlo, bueno como decia, si no existen errores entonces se hace un: make y despues un sudo make install
Listo!! con esto ya tenemos el plugin instalado, para activarlo abrir el programa Banshee y despues en el menú Editar -> Plugins
Si por algo no aparecen los plugins entonces tienes que copiar o mover los archivos instalados a la carpeta de Banshee.Plugins
Al querer realizar un upgrade en ubuntu me aparece un mensaje:
sudo apt-get upgrade
E: dpkg was interrupted, you must manually run 'dpkg --configure -a' to correct the problem.
A lo que realizo el dpkg --configure -a y me aparece otro error:
sudo dpkg --configure -a
dpkg: error en el análisis, en el fichero `/var/lib/dpkg/updates/0016' cerca de la línea 1:
nueva línea dentro del nombre del campo `#padding'
Y ahi es donde empiezan los problemas, busque en Internet y encontre que reemplazando el archivo status por status-old que esta dentro de /var/lib/dpkg chance y funcionaba, cuestion que nomas nunca se soluciono el problema.
La solución es muy simple, solo se tienen que eliminar los datos contenidos en la carpeta /var/lib/dpkg/updates claro siempre haciendo su debido respaldo por si las moscas.
Y listo ahora si se puede realizar un upgrade sin necesidad de desinstalar e instalar el dpkg.
He encontrado en unas carpetas de imagenes, unos archivos con extensión PHP y con nombres de numeros aleatorios (eso creo), en donde esta el siguiente codigo:
y bueno, a simple vista no significa nada a excepto de unos includes medio sospechosos!., con una cadena codificada, si descodificamos la cadena son unas URL, en donde se efectua el ataque y robo del servidor, supongo que para enviar SPAM! y mas SPAM!...., esta es la traduccion de base64 a algo entendible
Ahora bien, la pregunta para solucionar eso es, alguien sabe alguna forma de desabilitar que en un include o requiere de PHP se pueda leer rutas externas mediante HTTP, HTTPS ????, y que solo pueda leer contenidos de la maquina local??.., creo que activando esa directiva podremos evitar muchos de estos ataques.
Tambien para variar he encontrado un archivo .htaccess dentro del mismo directorio de los archivos sospechosos de PHP que contiene lo siguiente:
Muy ingenioso su script no??, asi por cada error 404 manda llamar su mentado script y quien sabe que tantas cochinadas haran!..,
Tambien sera algun bug del gadget Phoo del Jaws???, o sera que como es un servidor compartido, algun otro usuario esta enviando este tipo de cosas??... tendre que revisar los logs a ver si veo algo extraño., pero de mientras si tienen un server, verifiquen sus archivos!, no vaya a ser que esten infectados
Después de instalar la aplicación PowerTop en Ubuntu Gutsy, me han aparecido algunos comandos que quiero compartir con ustedes para el ahorro de energía, quiero suponer que no es necesario tener instalado PowerTop y tampoco tener el Kernel Linux 2.6.22 aunque es ampliamente recomendado debido a que utiliza un núcleo tickless que mejora la administración de energía, pero bueno!, aquí están los comandos.
Suggestion: enable AC97 powersave mode by executing the following command:
This wakes the disk up less frequenty for background VM activit
Suggestion: Disable 'hal' from polling your cdrom with:
hal-disable-polling /dev/scd0 'hal' is the component that auto-opens a
window if you plug in a CD but disables SATA power saving from kicking in.
Como pueden ver, son comandos muy sencillos que si bien los podemos poner en un script de inicio o desde los archivos de configuración de Linux.
Aquí les dejo también los tiempos del wakeups (si alguien sabe que significa se lo agradecería, porque nomas tengo una noción de que puede ser!, pero no la certeza)
Intel presento la herramienta llamada Powertop que sirve para monitorizar el consumo energético de las portátil GNU/Linux y así poder reducir el consumo de las baterías.
Solo que aquí existe una gran diferencia con otros programas similares para reducir el consumo de batería, ya sea bajando la velocidad del micro u otros trucos, aquí el truco es analizar cada aplicación que tenemos ejecutando en nuestro querido Linux y ver cual es la que hace mas llamas al procesador y cuenta con sugerencias en forma de pequeñas recetas con instrucciones para reducir el consumo de energía. Por ejemplo te anima a poner los dispositivos en modo de ahorro de energía o a dejar de usar aplicaciones como beagle que meten muchas interrupciones al procesador y nunca le dejan pasar al modo de ahorro de energía.
Cambie de servidor el sitio de abcpediatria.com y despues de querer publicar un nuevo post me aparece un mensaje de error como el que sigue:
DB function failed with error number 1054
Unknown column 'c.access' in 'on clause' SQL=SELECT c.*, g.name AS groupname, cc.name, u.name AS editor, f.content_id AS frontpage, s.title AS section_name, v.name AS author FROM appluscontent AS c, appluscategories AS cc, applussections AS s LEFT JOIN applusgroups AS g ON g.id = c.access LEFT JOIN applususers AS u ON u.id = c.checked_out LEFT JOIN applususers AS v ON v.id = c.created_by LEFT JOIN appluscontent_frontpage AS f ON f.content_id = c.id WHERE c.state >= 0 AND c.catid=cc.id AND cc.section=s.id AND s.scope='content' ORDER BY s.title, c.catid, cc.ordering, cc.title, c.ordering LIMIT 0,10
Lo más raro es que antes funcionaba bien, ejecuto la consulta en el phpmyadmin y nada de nada! me dice que la columna c.access no existe!, changos!..., hasta que por fin encontre la solución al error, es tan simple como cambiar la linea de codigo del archivo /administrator/components/com_content/admin.content.php donde dice:
. "\n FROM #content AS c, #categories AS cc, #sections AS s"
por la siguiente línea:
. "\n FROM #categories cc, #sections s, #content c"
Cual es la diferencia, pues el acomodo de content en el FROM ya que despues viene un LEF JOIN y ahi es donde fallaba.
Si cuentas con la extensión Foxmarks, la cual nos sirve mantener sincronizados nuestros favoritos sin importar en que computadora estemos trabajando pero al darle sincronizar te aparece la ventana de status pero sin mostrar nada de nada!.., lo mas seguro es que tienes por ahi la extension colorzilla (para ver cualquier codigo de colores RGB de una página web, util para diseñadores) asi que bueno!, estas dos extensiónes tienen problemas para convivir juntas! jeje, asi que una de dos, desinstalas Colorzilla o Foxmarks!..
A mi me da este problema con Ubuntu Feisty y firefox 2.0.0.4., aquí pueden ver más información sobre este error, ahora si!! ya puedo compartir mis favoritos de la compu de la casa, la laptop y la compu de mi trabajo
Entonces es hora de que le hagas caso al mensaje y revises efectivamente la configuración del USB en Ubuntu, el lugar donde se encuentra parte de la configuracion, digamos los permisos es en: /etc/udev/rules.d/40-permissions.rules así que tienes que editar el archivo (claro, como Root) y modificar la linea que dice:
# USB devices (usbfs replacement)
SUBSYSTEM=="usb_device", MODE="0664"
por
# USB devices (usbfs replacement)
SUBSYSTEM=="usb_device", MODE="0666"
Despues vuelve a poner tu memoria USB y ahora si, ya puedes montar el dispositivo en InnoTek VirtualBox.
Aquí les pongo un pequeño listado de algunas cosas que no se deben de hacer al crear una página web (incluyen los sistemas web), lo acepto!, he creado algunas páginas con cosas indeseadas para los usuarios finales, aunque claro!, siempre es bueno reconocer nuestros errores y mejorar sobre la marcha!!...
1. Nunca cambies el tamaño de la ventana del navegador del usuario automáticamente, es molesto, irrespetuoso y típico de los sitos de spam.
2. Mal si tu página es de las que primero carga una página señuelo y ésta “lanza” un popup con la página real. Error muy habitual de los sitios hechos en Flash, porque no cargar todo en la página principal, ya que al final vienes cerrando la ventana desde donde se lanzo el popup
3. Tampoco está bien preguntar al usuario si quiere ver una página chafa directamente o prefiere entrar a un sitio super chingon lleno de colorines y animaciones pero para el cual necesita aditamentos especiales y esperar un rato a que cargue.
4. Si todo tu sitio está hecho en Flash despide al desarrollador de la página y hazla otra vez; si la has hecho tú colócala en el apartado “sitios inútiles que he hecho” de tu portfolio y hazla otra vez.
5.No pretendas reinventar la navegación de los sitios web., ademas para que se inventaron los botones de siguiente y atras!...
6. El contenido es el rey si tu página web no tiene suficiente contenido o ningún texto real que no esté en una imagen contrata a un copy y despide a tu webmaster ahora.
7. Si tu sitio web no funciona o no se ve bien en Firefox estas fuera de la jugada!..., recuerda que no todo en el internet es Explorer!.., tambien existen muchisimos navegadores, Opera, Safari, Konqueror..., pero con que funcione decentemente en Firefox digamos que en un 95% funcionará en los demas navegadores.
8. Nada de texto parpadeando [, los navegadores con clase como Safari ya ni la interpretan], nada de usar FrontPage (es como hacer una página con los ojos cerrados y el papel girando y girando...), nada de popups ni en enlaces automáticos, nada de texto en scroll, nada de intros en Flash,...
9. Si la página contiene música asegurate de que el usuario puede detenerla o apagarla y mejor si no se inicia automáticamente —lo mismo para el vídeo.
10. Los menús de navegación mejor en texto que en imágenes., ademas te va a ayudar para que los buscadores como Google ,Yahoo, MSNSearch, Altavista....., encuentren más ligas de tu sitio y por ende! puedas tener mas visitas.
11. Un flujo de navegación bien pensado con subsecciones siempre es mejor que utilizar menús desplegables. Ademas para hacer un menu desplegable o esta en Javascript o en Flash de los cuales los buscadores no se llevan muy bien que digamos para realizar las busquedas y seguir la estructura de tu página.
12. Si la única forma de encontrar la información importante de tu sitio web es utilizando el buscador, despide al tío que hizo el flujo de navegación —y que seguramente utilizó menús desplegables.
13. Cuida el tiempo que necesita la página para cargarse., aunque muc