domingo, 20 de julio de 2008

Me han llegado muchas consultas al buzón acerca de la correcta configuración de Motion y el applet Cambozola para JAVA con el cual servir en streaming las imágenes capturas por Motion de alguna de nuestras webcam. Como no pretendo convertir mi buzón de correo personal en un consultorio técnico (sirva esto como disculpa a todos aquellos a los que no he respondido en privado) dejo por aqui los pasos a seguir para poder mostrar en una pagina web las imágenes y/o secuencia de imágenes capturadas usando el applet Cambozola.jar.

La mayor parte de los problemas están motivados por desconocimiento del funcionamiento de un servidor web público y problemas a la hora de permitir el acceso público a las imágenes servidas por Motion en un puerto diferente al 80. Siguiendo estas lineas deberías de estar en condiciones de mostrar públicamente las imágenes servidas por 1 webcam USB conectada a tu ordenador.

Evidentemente hay varias modos de hacer lo mismo. En los siguientes pasos detallo el modo por el cual yo opté en su momento. Probablemente debas adaptarlos a tu propia distribución GNU/Linux. Los siguientes pasos está hechos sobre un servidor Apache 2.1 corriendo en openSuSe 11.0.

Para mostrar en una web las imágenes “capturadas” por Motion de alguna de nuestras webcams necesitamos:

  • Una ó más webcam instaladas y funcionando
  • Motion 3.2.10
  • Servidor web apache con módulo Proxy cargado
  • el Applet JAVA cambozola.jar (la página oficial lleva varios dias caida. Podeis descargar el applet desde aqui)

Sigue leyendo…

domingo, 23 de septiembre de 2007

Un “alias” es un nombre alternativo, otra manera de llamar a una misma cosa, tan válido y usable para el mundo real como para el informático.

En el mundo real se suele decir:
José Rodríguez Salvador, alias el hijoputa de Vall d’Hebron

en el informático:
127.0.0.1, alias localhost.

En ambos casos el objetivo es el mismo, recurrir a un concepto que facilite memorizar un término más complejo. José Rodríguez es un término complejo: debe haber millones de José Rodríguez. Pero si nombro a hijoputa de Vall d’Hebrón, la mayoría ya sabrá que me estoy refiriendo a un mal nacido que se dedica a agredir a la gente de esa ciudad. Son expresiones equivalentes.

De igual manera en informática es mucho más fácil recordar y escribir: localhost que andar tecleando 127.0.0.1 ó 192.168.0.1. Son expresiones equivalentes.

En informática es posible construir alias más complejos con objeto de facilitarnos la existencia. Por ejemplo, podemos guardar en un archivo llamado .alias algo como: alias servidor='estado=$(sudo /etc/init.d/apache2 status | sed "s/Checking for httpd2: ..//"); if [ $estado == "unused" ]; then sudo /etc/init.d/apache2 start;sudo /etc/init.d/mysql start; echo "Servidor Iniciado"; else sudo /etc/init.d/apache2 stop; sudo /etc/init.d/mysql stop; echo "Servidor detenido"; fi
En una sola línea definimos el alias servidor, de tal manera que al escribir en consola la palabra servidor:
a) se nos pregunte por la contraseña de administrador
b) se compruebe el estado del servidor Apache
c1) Si está detenido, se inicia Apache y MySql
c2) Si está activo, se detiene Apache y MySql

O podemos guardaralias log='tail /var/log/messages'
Es mucho más facil consultar el archivo log escribiendo log, que escribiendo tail /var/log/messages

En el mundo real sería el equivalente a escribir:alias estado='if [ joputa_valldehebron == resinsertado() ] return suputacasa(); else return alputotalego(); fi'Y todo eso guardado en nuestro .código_penal

lunes, 28 de abril de 2003

Le he dado una semana de prueba y ha pasado con nota.
Hace sietes dias que instale easyphp y la verdad es que ha funcionado funciona de muerte.
Es un, podriamos decir, multiinstalador para Linux, Solaris y Ventanitas, que instala de forma automatica: Apache, PHP y MySql. Pone entre los iconos de sistema una E desde la que accedes al fichero de configuracion del servidor Apache, al ini de php y al de mysql.
Solo he tenido que retocar el config de Apache para decirle donde tenia los archivos de la web. Y listo. Funciona todo de pm.

Ya en otras ocasiones (4 si no recuerdo mal) he instalado Apache y PHP, y solo recuerdo 1 en la me quitase mas trabajo del que me daba. El resto de las ocasiones, cuando no era el php.ini era el config.conf de Apache.
INTERNET tiembla!!

Desde que escribí el artículo del Arduino controlando el riego en el patio de casa se ha convertido en uno de los apuntes más visitados, y de los que más preguntas y confusión han generado, especialmente en lo referente a servir los datos de nuestra estación Arduino en una página web y desde ella dar órdenes a la placa.
Voy a tratar de explicar como y porqué lo tengo yo instalado sin enrollarme demasiado.

Página de control Arduino

En la imagen una captura de pantalla de la página de control de mi CCCP (Centro de Control Centralizado Patiota, un poco de pitorreo siempre viene bien) desde donde puedo consultar el estado del patio y dar algunas órdenes (regar, pulverizar, alimentar peces y encender luz del patio – Interruptor 3).
Esta página contiene NO está generada por Arduino si no por mi propio ordenador (servidor web GNU-Linux) que es el que sirve los datos, realiza el control de visitas/autentificación, genera archivos de registro/log y estadísticas (temperatura, humedad, etc… ), compone la página y todo su código correspondiente (css/javascript/php), y permite dar órdenes sencillas al Arduino (p. ejem: riega 10 segundos) pulsando un botón pero siempre después de realizar comprobaciones de autentificación y funcionamiento (p. ejem: antes de ordenar a Arduino que riegue hay que comprobar que no está ya regando, o pulverizando o que por error no le hemos dicho “riega durante 3 días”).

Inconvenientes

Todo este trabajo si bien podría (teóricamente, aunque esto no es estrictamente cierto) hacerlo Arduino es del todo desaconsejable por varios motivos:
1/ Arduino carece de la potencia necesaria para atender un volumen bajo-muy bajo de visitas. Si trabajáis con la tarjeta Ethernet notaréis en seguida como sube la temperatura de esta en cuanto le solicitáis que haga algo muy sencillo.
2/ La estabilidad de Arduino cuando tienen que atender muchas visitas se resiente y la placa se resetea si el volumen de trabajo aumenta.
3/ Hacer que Arduino sirva todo el código HTML de la página de control, además del enorme volumen de trabajo que le supondría sería impracticable cada vez que quisiéramos realizar un cambio mínimo en la página. Imagina tener que cambiar algún detalle del código HTML tener que descolgar el Arduino del patio, conectarlo a tu ordenador, subir a la placa el nuevo código, probarlo, volver la placa a su sitio. Una verdadera locura.

Sigue leyendo…

domingo, 15 de abril de 2012 (Hace 10 dias)

Estoy un poco liado con la actualización de este servidor. El viernes se me cruzaron los cables y me dispuse a pasar de openSuse 11.1 a 12.1, y claro: cambios en Apache, cambios en Xorg, cambios en PHP, cambios en … con lo tranquilo que yo estaba. Menos mal que ahí están los borbones para divertirnos un poco.

Res pública

Porque, las cosas como son, por muy republicanos que seáis habréis de reconocer que pocos modelos de gobierno son más divertidos que esta monarquía nuestra: no hay día que no corra la sangre en palacio.
Finalmente conseguiremos la república como los franceses, pasando a fuego a toda la aristocracia, pero dándole nuestra peculiar estilo ibérico que es infinitamente más descansado: nosotros les damos pistolas, y ya si eso que se vayan matando entre ellos, cuando muera el último que avise.

Lo que no entiendo del borbón mayor es que siendo como es, presidente de honor de ADENA que haya cogido esa perra en matar animales con trompa. Lo mismo le da un elefante que un oso borracho. Espero que para su próxima investidura honorífica por la Sociedad Protectora del Elefante Africano tengan al menos el detalle de que la banda musical se componga sólo de instrumentos de cuerda, porque como el borbón mayor vea una sola trompa en la orquesta las risas se van a oír hasta en la república de Botsuana.

lunes, 10 de octubre de 2011

Actualmente hay baneadas en este servidor web unas 3749 ips que en algún momento ha tratado de colar spam en el blog (si quereis ver la lista está aquí). La lista está preparada para insertar en un archivo de configuración Apache haciendo algo como:
Include /ruta/servidor/banbots.txtCon esto, cada una de las ips de la lista recibirá un Error 403 Forbiden (no autorizado) para cualquier tipo de acceso.
Consultando dicha lista podemos obtener desde que rangos de ip se recibe mayor cantidad de basura:
cat banbots.txt | cut -d " " -f3 | sed -r 's/([0-9]{1,3}\.)([0-9]{1,3}\.)([0-9]{1,3}\.)([0-9]{1,3})/\1\2/' | uniq -c | sort -nr | head -n 20
nos daría los 20 rangos de ips y el número de veces que se repite este en la lista anterior:
104 94.60.
40 173.234.
32 76.107.
28 69.162.
25 64.120.
23 94.63.
16 23.19.
15 91.121.
15 71.205.
14 109.230.
12 50.31.
12 108.62.
11 24.125.
11 173.208.
10 98.142.
10 68.68.
9 88.191.
9 72.8.
9 68.234.
9 38.109.
es decir hay 104 ips que empiezan por 94.60 (Rumania), 40 que empiezan por 173.234 (EEUU), etc…

Ahora podemos completar la linea anterior con cat banbots.txt | cut -d " " -f3 | sed -r 's/([0-9]{1,3}\.)([0-9]{1,3}\.)([0-9]{1,3}\.)([0-9]{1,3})/\1\2/' | uniq -c | sort -nr | head -n 20 | sed -r 's/ *([0-9]{1,3}) (.*)/-A INPUT -s \20.0\/16 -j DROP/' > archivo.txt; echo "COMMIT" >> archivo.txtQue produciría un archivo de texto con-A INPUT -s 94.60.0.0/16 -j DROP
-A INPUT -s 173.234.0.0/16 -j DROP
-A INPUT -s 76.107.0.0/16 -j DROP
-A INPUT -s 69.162.0.0/16 -j DROP
-A INPUT -s 64.120.0.0/16 -j DROP
-A INPUT -s 94.63.0.0/16 -j DROP
-A INPUT -s 23.19.0.0/16 -j DROP
-A INPUT -s 91.121.0.0/16 -j DROP
-A INPUT -s 71.205.0.0/16 -j DROP
-A INPUT -s 109.230.0.0/16 -j DROP
-A INPUT -s 50.31.0.0/16 -j DROP
-A INPUT -s 108.62.0.0/16 -j DROP
-A INPUT -s 24.125.0.0/16 -j DROP
-A INPUT -s 173.208.0.0/16 -j DROP
-A INPUT -s 98.142.0.0/16 -j DROP
-A INPUT -s 68.68.0.0/16 -j DROP
-A INPUT -s 88.191.0.0/16 -j DROP
-A INPUT -s 72.8.0.0/16 -j DROP
-A INPUT -s 68.234.0.0/16 -j DROP
-A INPUT -s 38.109.0.0/16 -j DROP
COMMIT
esta lista puedes insertarla rápidamente en el firewall con iptables-restore echo "*filter" | cat - archivo.txt | iptables-restore --noflush

Cuaderno de campo es un blog desarrollado y mantenido por Trebol-a y en el que escriben Trebol-a, Miguel, Merche y Mónica
Si quieres saber algo más sobre los autores acude a la página acerca-de, si quieres contactar con alguno de nosotros hazlo a través de contactar ó de Google+

Creative Commons: Todo el contenido de la web (imágenes, textos, vídeos, a excepción de aquellas obras de otros autores enlazados por Cuaderno de Campo) se acoge a los términos expresados en la licencia Creative Commons