artículosanteriores
15.09.2006 
lsof es una herramienta de Linux/Unix que debe su nombre a “lists open files”. Y bueno, eso es lo que hace: listar los ficheros abiertos en un sistema de este tipo. Como sabemos, todo en Linux/Unix son ficheros (un socket es un fichero, una unidad de DVD es un fichero, …), por lo tanto la información que nos puede proporcionar este comando es enormemente útil.
Veamos con algunos ejemplos como empezar a sacarle partido:
1) Listar todas las conexiones abiertas en nuestro host.
lsof -i
2) Listar las conexiones al puerto donde corre el servidor apache en modo no seguro.
lsof -i :80
3) Listar las conexiones desde nuestro host al host 10.2.1.1:
lsof -i@10.2.1.1
4) Listar puertos en escucha
lsof -i | grep “LISTEN”
5) Listar los procesos, conexiones y ficheros abiertos por el usuario user
lsof -u user
6) Listar todos los ficheros abiertos por el procesos syslogd
lsof -c syslogd
7) Listar los ficheros abiertos por un proceso con PID 1001
lsof -p 1001
Hay una versión GUI en http://www.geocities.co.jp/SiliconValley/1596/en/jlsof.html
Más información en netadmintools o man lsof.
Por gacuj | Linux, General | Permalink | Comentar » |
12.09.2006 Ricardo Galli, el gurú de Meneame.net ha publicado un dato interesante. En contra de lo podríamos pensar, la mayoría de los usuarios de Meneame no usan Linux, sino Windows. Nada que ver con el mito existente de que todos los usuarios de esta estupenda web son “linuxeros“.

El navegador que usan mayoritariamente los usuarios de Meneame es el Mozilla.

Los usuarios de BdW usan los sistemas operativos siguientes:
Windows XP 77.7 %
Windows 2000 9.6 %
Windows 98 4.2 %
Linux 4 %
WinNT 5.2 1.1 %
Mac OS X 1.1 %
Windows Me 1.1 %
MacPPC 0.2 %
Windows NT4 0.2 %
Mac OS 0.1 %
Windows 95 0.1 %
Y emplean los navegadores siguientes:
Internet Explorer 67.9 %
Mozilla 27.9 %
Opera 2.1 %
Netscape 1.6 %
Konqueror 0.3 %
… y es que todavía le queda mucho que decir a Mr. Gates.
Por jgarcía | Navegadores, BdW, Microsoft, Linux, Internet | Permalink | 2 comentarios » |
10.09.2006 Más de una vez hemos deseado ejecutar algún comando de la shell en unix en nuestra cuenta de hospedaje, pero desafortunadamente nuestro proveedor no nos ha habiblitado ningún acceso ssh. Es posible ejecutar comandos shell con el siguiente código:
Creamos un fichero llamado exec.php con el siguiente contenido:
<?php
exec($_GET[’cmd’],$salida);
foreach($salida as $line) { echo "$line<br>"; }
?>
Para ejecutar cualquier comando lo haremos de la siguiente forma:
http://tudominio/exec.php?cmd=ls
y obtendremos la lista de ficheros en el directorio actual.
Una buena aplicación puede ser hacer una copia de seguridad de nuestra web en un .tar.gz y descargarla vía web.
http://tudominio/exec.php?cmd=tar -cvzpf copia.tar.gz *
Con esto obtendremos un fichero comprimido llamado copia.tar.gz, conteniendo toda la copia de seguridad de nuestra web el cual podremos descargar sencillamente.
El resto es simplemente ejecutar comandos, rutas y demás
Ahora bien, tened cuidado donde lo subís por supuesto que esté protegido con contraseña para limitar el acceso sólo a nosotros mismos.
Por DeiMoS | PHP, Linux | Permalink | 14 comentarios » |
01.08.2006
¿Qué es FON?
FON es una iniciativa del empresario Martin Varsavsky, quien la define como la mayor Comunidad WiFi del mundo, abierta a todo el que quiera unirse a ellos y donde sus usuarios pueden conectarse a Internet sin cables en cualquier rincón del mundo.
Todo comenzó con una idea simple: disfrutar de tecnología WiFi en todas partes a través de la infraestructura WiFi generada por los propios usuarios miembros de la Comunidad FON.
Para unirte a ellos sólo necesitas registrarte gratis, tener conexión de banda ancha y descargar en tu router que tiene incorporado un software que ellos han desarrollado, para convertirlo en un Router Social FON. Si no tienes un router compatible con el software de FON, puedes comprar uno subvencionado en su tienda (precios muy económicos)
¿Qué significa ser FONero?
Los FONeros comparten su WiFi con la Comunidad FON a través del Router Social FON y eligen qué quieren a cambio: conexión WiFi gratis en todos los puntos de acceso FON o dinero.
Si eliges conexión gratis, eres un Linus. Si prefieres quedarte con el 50% de los beneficios netos que genere tu Router Social FON, eres un Bill. ¿Cómo se generan estos beneficios? A través de los Aliens, que pagan por conectarse a tu punto de acceso FON.
Los Aliens son usuarios que no comparten su WiFi, así que cuando detectan tu señal WiFi de FON y se conectan les aparece un Portal de Acceso FON con un sistema de pagos seguro para comprar bonos de conexión.
Problemas
Hasta ahora todo perfecto, pero… ¿dónde está el truco? Pues fácil, la gran mayoría de nuestras operadoras no nos permiten compartir nuestra conexión WIFI y por lo tanto todo se va al garete. Al parecer, la empresa está intentando crear contratos con las operadoras para eliminar esta clausula que recae sobre su maravillosa idea.
En el momento que llegue el Wimax, algo parecido va a ocurrir, pero por supuesto, controlado por las grandes operadoradoras, por lo que dejará de ser algo barato y se convertirá en un negocio.
Toda la información aquí expuesta ha sido obtenida de la página oficial de FON en España.
¿Qué opináis sobre el tema?
Por Edu® | Recursos, Linux, Internet, General | Permalink | 4 comentarios » |
20.07.2006 Esto es una introducción al uso de comandos en linux.
DIAGNÓSTICO DE SISTEMA
Para diagnosticar el estado de un Linux de manera rápida:
uname -a : nos dice la version de kernel, procesador, y nombre de sistema.
uptime: nos muestra el tiempo que lleva encendido y promedio de carga.
df : nos muestra la ocupación del disco duro.
free : nos muestra el uso de la memoria.
df -h: nos muestra el estado del disco.
ps -aux. : nos muestra los procesos en curso.
netstat -a : nos muestra las conexiones de red actuales.
REFERENCIA DE COMANDOS UNIX-LINUX
Comando
ls
Descripción: =list. listar contenido de directorios.
Ejemplos: ls, ls -l, ls -fl, ls –color
cp
Descripción: =copy. copiar ficheros/directorios.
Ejemplos:cp -rfp directorio /tmp, cp archivo archivo_nuevo
rm
Descripción: =remove. borrar ficheros/directorios.
Ejemplos: rm -f fichero, rm -rf directorio, rm -i fichero
mkdir
Descripción: =make dir. crear directorios.
Ejemplos: mkdir directorio
rmdir
Descripción: =remove dir. borrar directorios, deben estar vacios.
Ejemplos: rmdir directorio
(siguiente pagina para ver el resto de comandos)
Por DeiMoS | Linux, General | Permalink | 2 comentarios » |
13.03.2006 Hace unas horas se dió una alerta de un fallo de seguridad en Ubuntu que permite que cualquier usuario del sistema pueda conocer las claves del resto de usuarios (root incluido), simplemente accediendo al fichero /var/log/installer/cdebconf/questions.dat. Al parecer dicho fichero es creado durante la instalación del sistema y se trata de un registro de las contestaciones a las preguntas del instalador.
Fuente: Ubuntu Forums
Por DeiMoS | Seguridad, Linux | Permalink | 1 comentario » |
24.12.2005 Aviso, está en inglés, pero se entiende bastante bien. He encontrado un post en el que dos amigos charlan sobre qué distribución de Linux escoger. Se da un repaso en general a lo que existe hoy en día. Interesante.
Por gacuj | Linux, Internet, General | Permalink | Comentar » |
12.11.2005 Los sistemas de gestión de paquetes de Linux actuales (rpm, dpkg, etc) presentan algunos incovenientes:
- Normalmente se conciben para determinadas arquitecturas únicamente, por lo que si nuestra arquitectura no es una de ellas podemos encontrarnos esperando indefinidamente a que se genere el paquete o salga una distribuciñon binaria. La solución pasa finalmente por hacer uso del código fuente y ya está (que aunque a mi es lo que más me gusta, no es el final deseado cuando hablamos de sistemas de gestión de paquetes).
- Los paquetes contienen scripts que automatizan la instalación, con lo cual si nos encontramos con que la instalación tiene un bug el proceso para solucionarlo llega a ser costoso y si la instalación falla entonces el problema se amplifica puesto que la desinstalación puede ser un infierno.
Han surgido un par de sistemas de gestión de paquetes que vienen a paliar algunos problemas como los que he comentado:
- Portage, de la distribución de Linux Gentoo. Imaginemos que queremos instalar un nuevo paquete. Esto se hace con el comando “emerge nombre_paquete”. Este comando hace que Portage se descarge el código fuente así como las aplicaciones y/o librerias con las que tenga dependencias. Una vez descargado todo ya está, se compila desde los fuentes. Se puede personalizar la instalación “tocando” la variable CFLAGS.
- Conary Software Provisioning System, desarrollado por rPath (formada por ex-Ingenieros de RedHat). Es utilizada en las distribuciones rPath y Foresight. Lo más destacado es que hace uso de un sistema de repositorios que mantiene versiones de instalación de software en el sistema
Por gacuj | Linux, General | Permalink | Comentar » |
14.10.2005 Hace nos días he tenido la necesidad de configurar Apache para que implemente lo que se denomina mass virtual hosts. Se trata de economizar código en el fichero httpd.conf ante la existencia de muchos virtual hosts con propiedades casi idénticas.
En el caso al que me enfrenté se trataba de configurar muchos virtual hosts en los que lo que cambiaba era el document root y el nombre del host. Supongamos que todos los nombres de host se componen de la siguiente forma host.nombre_usuario y que todos los directorios donde se almacenan los datos web se definen por el camino /datos_web/nombre_usuario. Evidentemente lo que cambia es el nombre de usuario.
Para conseguir implementar esto sin repetir una y otra vez el mismo código para cada virtual host tenemos cuatro opciones:
- Mediante el módulo mod_vhost_alias. La directiva utilizada es VirtualDocumentRoot
- Mediante el módulo mod_rewrite. Las directivas son las propias de este módulo (RewriteCond, RewriteMap, RewriteRule, etc).
- Hacer uso de un módulo externo desarrollado por terceros.
- Armarse de valor y desarrollar un módulo o tocar el código existente de los módulos estandard de Apache.
Reconozco que soy un enamorado del mod_rewrite y lo implementé con éste. Se trata tan solo de crear un virtual host en el que incluyamos el siguiente código (para el ejemplo que hemos propuesto):
RewriteEngine on
RewriteCond %{HTTP_HOST} ^host.(.*)
RewriteRule ^(.*)$ /datos_web/%1$2 [L]
Hay que tener en cuenta que ni mod_vhost_alias ni mod_rewrite establecen el valor de la variable DOCUMENT_ROOT utilizada desde PHP entre otros, pero realmente se puede encontrar solución a esto. Si se trata de una referencia a una página que se compone mediante DOCUMENT_ROOT, la redirección anterior salvará este obstáculo y en otros casos, como por ejemplo includes, podemos hacer uso de una mezcla de recursos utilizando un .htaccess por cada directorio de datos web.
Más info y ejemplos en apache.org
Por gacuj | Linux, Internet, General | Permalink | 1 comentario » |
12.10.2005 Según nos cuenta Microsoft, Windows 2003 Server ofrece un 15% más de fiabilidad que Red Hat Linux.
Veritest ha analizado y demostrado con configuraciones de hardware idénticas que la infraestructura de servidor de Windows 2003 Server es más fiable que Linux, ofreciendo al usuario final un mejor tiempo de parada de servicio.
Microsoft solicitó a Veritest , una división de Lionbridge Technologies, Inc., que midiera el tiempo que tardaba un grupo de profesionales en ejecutar varias tareas asociadas con servidores y servicios para usuarios finales con entornos Windows y Linux, en una PyMe simulada.
Veritest monitoreó de cerca los procesos y herramientas involucradas en este estudio para comparar y evaluar los atrasos del servicio. Las conclusiones fueron las siguientes:
• Windows 2003 Server tuvo un retraso promedio de 4:20:19 mientras el de Red Hat Enterprise Linux AS 3.0 fue de 4:59:44. Los resultados más bajos son mejores.
• Windows Server 2003 terminó más trabajo (280 tareas y eventos completos) que el entorno de Red Hat Enterprise Linux AS 3.0 (248 tareas y eventos completos) en menos tiempo (18:44:14 vs. 27:48:05).
El documento en pdf procedente de VeriTest lo podéis descargar aquí
Increible no? Comentamos el tema?
Fuente: Microsoft Server System
Por DeiMoS | Microsoft, Linux, General | Permalink | 3 comentarios » |
12.09.2005
Encontré esta página en la que se nos muestran una serie de medidas básicas (algunas de ellas difíciles de llevar a cabo) para elevar la seguridad de los accesos a nuestras BD mysql. Esta página contiene enlaces en inglés que amplian lo expuesto.
Espero que sea de utilidad.
Por gacuj | Seguridad, MySQL, Linux, General | Permalink | Comentar » |
22.08.2005 Todos sabemos que uno de los mayores problemas de Linux ha sido siempre la falta de drivers específicos para todo el hardware disponible. La falta de compromiso de los fabricantes de nuevos drivers (justificada en parte por el escaso porcentaje de usuarios de Linux) ha dejado en sombras a muchos usuarios de Linux, hasta el punto de que es normal preguntarse al elegir un nuevo componente para nuestro ordenador si podremos “echarlo a andar” en Linux.
La verdad es que siempre, con más o menos esfuerzo, se consiguen solucionar la mayoría de los problemas. El avanzado desarrollo del kernel en este sentido y la adaptación por parte de las distintas distros de los drivers que se desarrollan paralela y altruistamente para estos componentes facilita las cosas.
Distinto es el caso de las tarjetas de red wireless. La tecnología Wi-fi lleva tan poco tiempo en el mercado que es muy normal que no encontremos drivers para todos los modelos. La mayoría de los fabricantes únicamente ofrece drivers para las últimas versiones de Windows (Win2000 o WinXP). En este sistema operativo, la mayoría de los drivers de las tarjetas usan llamadas al protocolo NDIS de Microsoft. Es decir, que crean drivers que se comunican con el sistema operativo de una forma genérica dictada por este protocolo. Aquí entra en juego la utilidad NdisWrapper.
Como su propio nombre indica, NdisWrapper lo que hace es mapear los drivers NDIS de WinXP/Win2000 de cada fabricante a un módulo genérico en el kernel de Linux. Es decir, que NdisWrapper usa los drivers propietarios en Windows de cada tarjeta y transforma sus llamadas al protocolo NDIS a llamadas a un módulo wireless cargado en el kernel de Linux. Con esta utilidad conseguiremos hacer funcionar sin ningún problema casi cualquier tarjeta wireless, pero además más dispositivos que usan el NDIS. El proyecto tiene un sistema de documentación basado en wiki estupendo. Aún así, paso a resumir los pasos para utilizar NdisWrapper:
-
Requisitos previos. Fuentes del kernel de Linux. Y que sea nuevecito (>2.4.26 o >2.6.6), ein?.
-
Instalar NdisWrapper. Las típicas opciones ya conocidas por todos para instalar programas en Linux. Por si acaso, aquí os dejo algunos enlaces al respecto:
-
Instalar los drivers de WinXP Si usas directamente los que ya tienes en el CD, te puedes saltar los primeros 2 pasos. Recomendable no hacerlo.
-
Identificar nuestra tarjeta de red:
$ lspci
y apuntar su código PCI ejecutando:
$ lspci -n
donde concuerde el Bus ID (algo así como 0000:00:0x.0). En mi caso el código para una Conceptronic PCI es 168c:0013.
-
Identificar ese PCI ID en ésta lista y bajar los drivers. Descomprimirlos a un directorio.
-
Instalar los drivers con NdisWrapper. Desde el directorio con todos los archivos (.inf, .bin, .sys …), ejecutar
$ ndiswrapper -i nombre_del_driver.inf
Si todo ha funcionado, el driver está cargado. Ejecutando
$ ndiswrapper -l
Nos deben de salir las tarjetas cuyos drivers Win hayamos instalado en NdisWrapper (pueden ser más de una). Si la tarjeta está físicamente instalada, debería decir algo como
Installed ndis drivers:
xxxx driver present, hardware present
-
Insertar el módulo genérico NdisWrapper en el kernel. Tranquilos que suena raro pero es muy fácil:
$ modprobe ndiswrapper
Y ya está! Si no ha fallado, ya tenemos nuestra tarjeta reconocida e instalada. Sólo queda rematar la faena.
-
Configurar la tarjeta. Tiramos de ifconfig (parámetros de red - nivel IP) y iwconfig (parámetros wireless - nivel de enlace). O usamos las herramientas de nuestro Gnome, KDE… Este apartado (genérico, por otra parte) puede bien merecerse otro post.
Bueno, puede parecer difícil, pero os aseguro que es bien fácil. Además hay muchísimas tarjetas que así funcionan mejor aún que con el driver específico (para Linux) del fabricante. Espero que ésto ayude a más de uno a probar! Si tenéis cualquier duda, no dudéis en consultar en los comentarios. Aún así, las FAQs y la documentación de NdisWrapper son excelentes. Y para mi amigo Edu, comentarle que con NdisWrapper se puede usar WPA ;P
Por PIN | Linux, Hardware | Permalink | 7 comentarios » |
17.08.2005 Hace poco he descubierto expect. Expect es una herramienta para automatizar aplicaciones interactivas como telnet, ftp, passwd, fsck, rlogin, tip, etc.
Tuve la necesidad de comprobar el funcionamiento de un servicio en Linux. Para ello atacaba los puertos que utilizaba este servicio mediante telnet y le enviaba una cadena. Prueba realizada manualmente y todo OK. Pero cuando quiero introducir en el cron esta tarea mediante un script, telnet no se comporta como nos gustaría. No llegaba a admitir la cadena, cortaba la conexión tras realizar el telnet.
¿Qué hacer? Supongo que habrá varias soluciones pero descubrí expect y ciertamente es muy potente y útil.
Éste es el código que emplee para conectar a un puerto y enviar la cadena “HELLO” al servidor:
#!/usr/bin/expect -f
proc conecta {puerto1} {
spawn telnet
expect “*telnet*”
send “open 10.10.10.11 $puerto1n”
expect {”‘^]’n” exp_continue}
send “HELLO\n”
}
set puerto [lindex $argv 0]
conecta $puerto
Todo esto se introduce en un fichero con extensión exp, supongamos telnet.exp y se asignan permisos de ejecución.
Para ejecutarlo: ./telnet.exp puerto, donde puerto es el valor que le pasamos como parámetro.
Lo importante es saber que se puede automatizar todo. El software de expect incluye numerosos ejemplos que nos ayudan a entender su funcionamiento. De primeras echa un poco para atrás pero en seguida se descubre que no es para tanto y que tiene mucha utilidad.
Más info:
Expect Home Page
Algunos ejemplos
man expect
Por gacuj | Linux, General | Permalink | 1 comentario » |
24.06.2005 Un enlace con consejos muy conocidos pero que no está de mal recordar.
Por gacuj | Linux, General | Permalink | 1 comentario » |
22.06.2005 ¿A quien no le pasado alguna vez que va a mirar la fecha y hora del servidor y se encuentra con la sorpresa de que están muy lejos de ser datos reales? El tiempo en los servidores es fundamental, sobre todo porque esa información queda reflejada en los distintos logs que tengamos en el sistema.
Una buena solución es hacer uso de NTP (Network Time Protocol). El funcionamiento es simple: existe una serie de servidores de hora en Internet en los cuales se confía totalmente en cuanto a la fecha y hora que tienen; tendríamos que conectar mediante NTP nuestro servidor o servidores con alguno de éstos comentados anteriormente y ya está. Bueno ya está no. Se suelen crear niveles de acceso a los servidores mediante NTP. Por ejemplo en mi caso tengo que cada servidor toma el tiempo de una máquina en la red que a su vez lo toma de un pool de servidores confiables existentes en Internet.
¿Cómo hago que mi servidor tome el tiempo de otro?
0.-Descargar el software de http://ntp.isc.org/bin/view/Main/SoftwareDownloads.
1.- Ejecuto la sentencia siguiente para sincronizar:
ntpdate ip_servidor, donde ip_servidor es la IP del servidor que me dará el tiempo
Se suele ejecutar dos-tres veces antes de pasar al siguiente paso.
2.- Configuro el servicio.
Edito el fichero /etc/ntp.conf y añado como mínimo la siguiente entrada:
server ip_servidor
3.- Inicio el servicio.
service ntpd start
¿Cómo comprobar que la sincronización es correcta?
El comando ntpq -p me permite observar si todo va bien fijándome en la columna st. Si este valor es 16 no existe conexión.
Más info en:
http://www.ntp.org
http://www.tldp.org/HOWTO/TimePrecision-HOWTO/ntp.html#ntp.ntp
Por gacuj | Linux, General | Permalink | 4 comentarios » |
16.06.2005 Hace ya tiempo la Junta de Extremadura y Andalucía se embarcaron en el proyecto de crear una distribución Linux fácil de utilizar e instalar, para ello partieron de la ya conocida Debian a la que le añadieron software propio para facilitar dichas tareas, dando lugar a las distribuciones LinEx (Extremadura) y Guadalinex (Andalucía).
La nueva versión de Guadalinex parece prometer, una de sus innovaciones es la de partir de la distribución Ubuntu en vez de Debian, con las ventajas que ello conlleva (menor ciclo entre versiones, incorporación de últimos entornos gráficos Gnome/KDE, etc.). Otro punto fuerte es el de haber contratado la Junta una consultoria para hacer Guadalinex más accesible, abriendo de esta forma Linux a usuarios que hasta el momento lo tenían dificil. Se puede consultar la noticia y comentarios aquí.
Por | Linux, General | Permalink | Comentar » |
13.06.2005 Para aquellos que aún no hayan dado el salto a la 2 aquí hay una comparación de rendimiento entre ambas versiones de apache.
Yo personalmente todavía prefiero continuar con la 1.3
Por gacuj | Linux, General | Permalink | Comentar » |
12.06.2005 ImageMagick es una herramienta ideal para modificar imágenes desde la línea de comandos de nuestro GNU/LINUX. También hay por ahí una versión para Windows. Si no lo tienes instalado puedes descargarlo e informarte en ImageMagick.org.
Tiene una serie de comandos, entre los cuales destacan convert y mogrify, el primero convierte una imagen y la guarda como otro fichero y el segundo modifica la imagen con las opciones deseadas.
Un simple ejemplo:
# mogrify -resize 150 -quality 35 *.jpg
Aquí estaríamos modificando todos los ficheros con extensión jpg que se encuentren en un directorio dándoles un tamaño de 150 pixels y una calidad de 35, algo bastante rápido cuando necesitamos hacerlo con muchas imágenes.
Podéis consultar todos los comandos y el modo de usarlos en la web oficial de ImageMagick, pero también he visto otra guía con muy buena pinta en StarLinux que podréis consultar aquí.
Usando ésta librería que generalmente suelen tener instalado los servidores Web, podréis modificar imágenes sin tener que bajarlas a vuestro pc y luego subirlas de nuevo.
Por DeiMoS | Recursos, Linux, General | Permalink | 2 comentarios » |
10.06.2005 He encontrado un enlace, en inglés, que muestra conceptos básicos sobre el análisis de rendimiento de un Linux: nos muestra como determinar si un servidor está un poco corto de memoria, de CPU, etc. haciendo uso de la lectura de una serie de comandos del SO como vmstat, iostat o netstat. Es sencillito pero es un buen punto de partida.
Por gacuj | Linux, General | Permalink | 1 comentario » |