Log Remoto con RSyslog + LogAnalizer + Mysql

Debian LogoHola a todos, hacía tiempo que no escribía un manual y bueno hoy necesitaba montar un sistema remoto de log para saber que le ocurre a un router y una vez logrado pues me he animado a escribir el manual de instalación.

Como siempre el sistema que he utilizado es Debian. Utilizaremos para recibir el log remoto la aplicación que viene por defecto en Debian llamada Rsyslog a la cual le añadiremos la funcionalidad para guardar los logs en una base de datos de MySQL

Todo esta configuración la apoyaremos con la instalación de LogAnalizer, aplicativo PHP que nos dará la ventaja de poder consultar nuestros logs y realizar búsquedas sobre las base de datos. También nos dará la posibilidad de generar estadísticas.

Sin más pasemos a ver como configurar el servicio:

(más…)

Licencia gratuita de Avast

Dejo como autonota la licencia gratuita que me ha otorgado Avast hasta el Septiembre del 2014

C07756868H1200A0815-M22H57SF

Comandos útiles en Debian

Después de surgirme un problema de apagado constante en un servidor e intentar averiguar la causa, aún estoy en ello, dejo este chuletario de comandos útiles para Debian.

¿Quien hay conectado y qué hace?
root@improvisa:/ w

¿Quien hay conectado?
root@improvisa:/ who

¿Conexiones establecidas? 
root@improvisa:/ netstat -putan|grep ESTABLISHED

¿Últimos logins hechos?
root@improvisa:/ last

¿Últimos intentos de login fallidos?
root@improvisa:/ lastb

¿Últimos reinicios?
root@improvisa:/ last reboot

¿Procesos ejecutandose?
root@improvisa:/ ps aux

¿Que está utilizando un proceso?
root@improvisa:/ lsof -p 1234 #cambiar 1234 por el nombre del proceso que aparece con ps aux

¿Tenemos algún rootkit instalado?
root@improvisa:/ chkrootkit #necesitamos instalarlo antees con apt-get install chkrootkit
root@improvisa:/ rkhunter -c –createlogfile /var/log/rkhunter.log #necesitamos instalarlo antees con apt-get install rkhunter

¿Algún puerto a la escucha escondido?
root@improvisa:/ unhide-tcp

¿Algún proceso escondido?
root@improvisa:/ unhide proc
root@improvisa:/ unhide sys
root@improvisa:/ unhide brute 

¿Tenemos bien la memoria o está defectuosa?
root@improvisa:/ apt-get install memtest86 #una vez instalado nos aperecerá al inicio de GRUB una opción para testearla

¿Problemas de Temepratura de Disco Duro?
root@improvisa:/ hddtemp /dev/sda 

¿Problemas de Temepratura de CPU?
root@improvisa:/ sensors #tendremos que instalar antes el paquete lm-sensors y autodectectar la cpu que tenemos con sensors-detect (Contestar a todo Y)

¿Tráfico de datos raro?
root@improvisa:/ iptraf # Debemos instalar antes la aplicación con apt-get install iptraf
root@improvisa:/ tcpdum # Debemos instalar antes la aplicación con apt-get install tcpdump
root@improvisa:/ wiresark # Debemos instalar antes la aplicación con apt-get install wiresark

Hasta aquí dejo esta lista la cual iré rellenado de comandos útiles para debian.

¡Saludos!

Borrar música comprada de IPhone

Me ha surgido un problema con IPhone e Itunes, me era imposible borrar música comprada en IStore, por más que borraba el cd de la biblioteca este se volvía a copiar del IPhone al ITunes de nuevo. Probé de mil formas y con ninguna funcionó. Incluso al decirle que no sincronizase la música borró todo menos el cd en cuestión un auténtico infierno, lleno de charlies…….

El truco para poder borrar música comprada en el iphone es bien simple una vez que lo sabes. En iOS 5 puedes borrar música desde el IPhone te vas a la canción o al álbum que quieras borrar y encima deslizas el dedo hacia a la derecha y te saldrá el texto para eliminarlo. Como en la foto:

Improvisa :: Informática :: Borrar música comprada de IPhone

Desde aquí también expresar mis más sinceras quejas sobre ITunes, de las aplicaciones con menos facilidad de uso que he visto en mucho tiempo y encima obligados.

Saludos!

Internet Explorer 8 en modo explorador de windows para FTP

El otro día le surgió la duda a un amigo y al resolverla he decidido ponerla por aquí para que no se nos olvide ni a el ni a mi.

El problema que tuvo es que necesita poder gestionar su acceso FTP desde IE 8 o IE9 de la misma forma que si fuese un explorador de Windows, es decir poder copiar una carpeta entera y pegarla y no link a link, por ejemplo.

Para ello basta con hacer los siguiente:

1.- En Internet Explorer pinchar en Herramientas -> Opciones de Internet -> Opciones avanzadas  y comprobar que está marcada la casilla Habilitar la vista de carpetas para FTP

2.- Debemos entrar en el registro para ello pincharn en:

Inicio -> Ejecutar… regedit o Inicio -> Programas -> Accesorios -> Simbolo del sistema y ahí escribir regedit.

Buscar la siguiente linea:

HKLM\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_INTERNET_SHELL_FOLDERS

Y debemos cambiar el valor a 1

Reiniciar Internet Explorer y entrar en ftp://ftp.debian.org

Saludos.

Scripts para Cron en linux

Añadiendo un script en cron para que se ejecute cada hora me he dado cuenta de un error que siempre que tengo que utilizar me da problemas.

Los script que se añaden dentro de los directorios:

/etc/cron.daily/
/etc/cron.hourly/
/etc/cron.monthly/
/etc/cron.weekly/

Los scripts o links simbólicos deben ir SIN extensión, es decir no podremos añadir un prueba.sh sino un prueba ya que si no el comando run-parts no arroja el resultado esperado y no se ejecutan los scripts, aquí os dejo la prueba:

root@juanmi:/etc/cron.hourly# ls
prueba.sh
root@juanmi:/etc/cron.hourly# run-parts –test -v /etc/cron.hourly
root@juanmi:/etc/cron.hourly# mv prueba.sh prueba
root@juanmi:/etc/cron.hourly# ls
prueba
root@juanmi:/etc/cron.hourly# run-parts –test -v /etc/cron.hourly
/etc/cron.hourly/prueba

Al realizar este cambio run-parts necesitará que le indiquemos que shell debe usar cada script, para ello debemos poner al principio de cada script la shell, por ejemplo:

#!/bin/bash
#!/bin/sh
#!/bin/perl

Si no lo hacemos nos dará ell siguiente error:

run-parts: failed to exec /etc/cron.hourly/prueba: Exec format error

Con lo cual y como técnica a partir de ahora, dejar de usar extensiones y poner al principio de cada script quien será su interprete.

Saludos

Copia recursiva y en orden alfabético en linux

Hola a todos, agrego esta nueva entrada para explicar como hacer una copia de una carpeta recursivamente y en orden alfabético en linux.

Os preguntaréis para que hago esto, el caso es que el sistema de archivos no copia físicamente en orden los archivos en el disco duro, sino que lo hace siguiendo otras directivas, no me preguntéis cuales por que no lo se. Si pasas esa copia a un sistema donde lea según el orden de copia no lo tendrás bien, a mi me ocurre con mi tarjeta SD y el aparato de música del coche, que lee según el orden que hemos copiado.

El caso es que cuando copio con el gestor de archivos que sea, ya sea Dolphin, Konqueror, etcetera, donde él ordene los archivos no notas nada, porque estos gestores de archivos ordenan por defecto la vista que te muestran con lo cual, cuando voy a poner música lo escucho en orden y sin ningún problema. El problema ocurre cuando pongo la música en un sistema donde no ordena por nombre de fichero sino que me pone la música según la va leyendo directamente del sistema de archivos y como linux la copia según la tenía en su sistema pues me la reproduce mal. Esto me ocurre cuando llevo música al aparato musical del coche, el pobre es un poco tonto y no ordena, con lo cual no me queda otra que ordenar la lista antes de pasarsela a comando CP.

Aquí va el comando:

cd /juanmi/musica_para_el_coche/
for file in `find *| sort -n | sed ‘s% %?%g’`; do echo “${file//?/ }”; cp –parents “${file//?/ }” /tarjeta_sd_para_el_coche/ ;done

Lo que hace el comando es ordenar la lista alfabéticamente ya sustituidos los espacios por el caracter ? ya que si no no lo ordena bien. Una vez hecho se le pasa el la lista en un bucle al comando cp, que sustituye de nuevo el ? por espacios.

Un saludo.

Modificar plantilla DHCP en Zentyal para añadir tftp-server-name

Escribo esta entrada para que no me falle la memoria y acordarme para siempre de como modificar la plantilla de DHCP en Zentyal para añadir opciones que no podemos modificar por la web de administración.

En mi caso lo que quiero añadir es el tftp-server-name para que mis teléfonos IP se actualicen de forma automática, como explico en el documento de improvisa: http://www.improvisa.com/06-06-2007/auto-aprovisionamiento-voip/

Debemos editar el archivo:

vi /usr/share/zentyal/stubs/dhcp/subnet.mas

y debajo de la opción de netbios-node-type que está establecida 8 por defecto añadir nuestra regla:

option tftp-server-name “192.168.1.3”;

Sustituyendo la ip por nuestro servidor TFTP

Saludos.

Error Zentyal IPTables contra Windows 7

Dejo esta entrada ya que cada vez que se actualiza el módulo firewall de Zentyal tengo que repetir el cambio.

El síntoma es que Windows 7 no tiene acceso al puerto 443 o https si está detrás de un servidor Zentyal, ya que marca como state INVALID los paquetes que provienen de Windows 7 con salida al puerto 443.

El problema es que win7 usa funciones sin cargar todo el sistema pero adicionalmente algunos de los recursos de red no son gestionados de manera transparente para el SO, por lo que el paquete puede hacerse por el primer puerto que permita salir a buscar como debe hacer lo demás…

Dicen que depende mucho de internet para poder saber como gestiona las conexiones…

También dicen que depende del SO, que algunas de las cualidades de cache y similares se aceleran, pues es capaz de utilizar otros puertos para mientras revisas una pagina por el explorador por debajo y utilizando cualquier puerto o hueco va descargando UPDATES, COKIES, LOGS y hasta historiales…

Mi primer intento fue arreglarlo con este comando

echo 1 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_be_liberal

Lo he solucionado de la siguiente forma:

Abrir para su edición el archivo:
vi /usr/share/perl5/EBox/Iptables.pm

Buscar la linea:
pf(‘-A FORWARD  -m state –state INVALID -j fdrop’),

Sustituirla por esta:
pf(‘-A FORWARD -p tcp ! –dport 443 -m state –state INVALID -j fdrop’),

Reiniciamos el firewall con
/etc/init.d/zentyal firewall restart

Ya está con esto los W7 conseguiran atravesar el firewall para visitar paginas seguras.

Permisos óptimos para archivos de apache en Debian

Vuelvo a escribir después de más de 1 año……

Dejo esta entrada para acordarme de los permisos óptimos que deben tener los directorios de las webs de apache2 sobre un sistema Debian.

Establecemos grupo propietario ya que quiero respetar el del usuario.
chgrp www-data -R /var/www/*

Establecemos permisos a todos los ficheros, lectura y escritura a los propietarios y el grupo propietario:
chmod 664 -R /var/www/*

Establecemos permisos de ejecución, lectura y escritura sólo a los directorios, para los propietarios y el grupo propietario
find ./ -type d -exec chmod 775 {} \;

Establecemos el GUID para que herede grupo propietario a todo lo creado dentro de /var/www/
find ./ -type d -exec chmod g+s {} \;

Debe ser en este orden ya que si ejecutamos algún chmod después del GUID este se perderá.

Con esto tendremos óptimos nuestros permisos en /var/www/ para apache2 y Debian