Oxygen
Usuario (Argentina)

.bashrc Estos script on-liners y/o utiles deben estar dentro de $HOME/.bashrc o bien dentro de $HOME/.bash_aliases. Con hacer un copy & paste, y ejecutando nuevamente la consola (o bien, escribiendo bash) entraran en efecto. Cita : alias grep='grep --color=auto' alias fgrep='fgrep --color=auto' alias egrep='egrep --color=auto' alias vi='vim' alias more='less' alias tree="ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/ /' -e 's/-/|/'" alias miip="wget -O - -q myip.dk |grep '<title>'|sed -e 's/[^.0-9]*//g'" alias axel='axel -a' alias ssh_status="/usr/bin/fail2ban-client status ssh" alias iptables_status="watch iptables -vL -n --line-numbers" Los que considero mas utiles: miip (me permite saber cual es mi IP publica); iptables_status (permite ver cada dos segundos las estadisticas de las reglas aplicadas). Con solo escribirlo en la consola, muestra el resultado en pantalla. Ademas, tengo una tercera, que es para realizar backups de archivos simples: Cita :bu () { cp -v $1 ~/.backup/`basename $1`-`date +%Y%m%d%H%M`.backup ; } Esta es una funcion (NO un alias) y copiara el archivo indicado a $HOME/.backup/archivo.fecha-de-hoy.backup . MUY util !! Sincronizacion de archivos Para almacenar las contraseñas, utilizo el programa KeePass por poder utilizar la DB tanto para la version Linux como Windows. El problema, es mantenerla sincronizada. Si usamos el pendrive, hay que encuchar, desenchufar, se puede perder, nos olvidamos que ayer cambiamos la clave del ebanking y hoy sobreescribimos la DB con otra copia. Es un dolor de huev... lo se porque ya me paso. Por ese motivo, me hice un pequeño bash script. La idea es simple: Principalmente, utilizo linux en la lap, asi que las copias las voy a tener en el pendrive y en un servidor externo sincronizadas con rsync . Cita :#!/bin/bash # Parte1 OPTIONS=" --verbose --recursive --backup --update --times --human-readable --progress --itemize-changes " SOURCE=" /home/mi-user/keepass/ " DESTINATION_REMOTE=" [email protected]:/home/mi-user/keepass " DESTINATION_PENDRIVE=" /media/KINGSTON/utiles/KeePassPortable/Database.kbd " # Parte2 /usr/bin/rsync $OPTIONS $SOURCE $DESTINATION_REMOTE # Parte3 if [ -f /media/KINGSTON/utiles/KeePassPortable/Database.kdb ]; then /usr/bin/rsync /home/mi-user/keepass/Database.kdb /media/KINGSTON/utiles/KeePassPortable/Database.kdb fi Explicacion: #Parte1: Creamos una variable (OPTIONS) y la definimos con las opciones que queremos utilizar con rsync (mas info en el comando "man rsync" o "rsync --help " Al mismo tiempo,establecemos el origen (SOURCE) y los destinos (DESTINATION_x) #Parte2: enviamos la base.kbd al servidor remoto (ver siguiente titulo). #Parte3: Con la funcion IF nos fijamos si esta montado el pendrive, y si existe la DB. En caso de ser ambas validas, sincronizamos el archivos, sino, no hace nada SSH / scp/ rsync sin password Si utilizan el script anterior, al realizar rsync contra el servidor van a notar que les pide contraseña; y si tienen el script croneado como yo, les daria un error. Yo lo solucione utilizando una opcion de ssh/rsync, que permite loguearse sin ingresar una contraseña. ADVERTENCIA: ni yo ni admines de taringa o responsables de taringa, colaboradores etc, nos hacemos responsables si tu equipo se ve comprometido y el server es vulnerado. por favor, lean mas sobre esta opcion, ventajas y desventajas, antes de implementarla!! Tu equipo (casa, trabajo, etc) Cita :# ssh-keygen -t dsa Nos hara 3 preguntas (presionen enter) Cita :# scp $HOME/.ssh/id_dsa.pub mi-usuario@servidor:/home/mi-usuario/.ssh/authorized_keys # ssh mi-usuario@servidor Si por alguna razon falla, verifiquen primero en el servidor: Cita :mkdir -p $HOME/.ssh chmod 700 $HOME/.ssh chmod 600 $HOME/.ssh/authorized_keys Luego vuelvan a copiar el archivo id_dsa.pub (o reubiquen correctamente el anterior) La hora del boludeo: Sabias que se puede escuchar "la musica" de cualquier archivo bajo linux? Cita :while true; do cat /usr/src/linux/kernel/signal.c > /dev/dsp; done

Como ya se explico anteriormente en T!, fail2ban analiza logs de linux y busca intentos de conexiones fallidas. Normalmente, esto es ocasionado por intentos de hackeos (scriptkiddies, hackers, crackers) o simplemente, usuarios pelotudos. Fail2ban soporta muchos logs, uno de ellos es postfix, el MTA predilecto. Que buscamos eliminar en los logs? * Usuarios desconocidos (logueos) * Registros PTR o A no configurados correctamente. * Usuarios desconocidos (mail no existente al recibir) En /etc/fail2ban/filter.d/postfix.conf , agregamos las siguientes lineas (o adaptamos) dijo: failregex = reject: RCPT from (.*)[<HOST>]: 550 5.1.1 reject: RCPT from (.*)[<HOST>]: 450 4.7.1 reject: RCPT from (.*)[<HOST>]: 550 5.7.1 Comprobamos que este todo bien con dijo:fenix:~# fail2ban-regex /var/log/zimbra.log /etc/fail2ban/filter.d/postfix.conf|less Running tests ============= Use regex file : /etc/fail2ban/filter.d/postfix.conf Use log file : /var/log/zimbra.log Results ======= Failregex |- Regular expressions: | [1] reject: RCPT from (.*)[<HOST>]: 550 5.1.1 | [2] reject: RCPT from (.*)[<HOST>]: 450 4.7.1 | [3] reject: RCPT from (.*)[<HOST>]: 554 5.7.1 | `- Number of matches: [1] 7242 match(es) [2] 0 match(es) [3] 380 match(es) Ignoreregex |- Regular expressions: | `- Number of matches: Summary ======= Addresses found: [1] 24.244.172.17 (Sun Aug 22 06:25:20 2010) 94.217.138.77 (Sun Aug 22 06:25:20 2010) [....] Muchas IPs [...] 84.229.123.248 (Sun Aug 22 08:05:51 2010) 84.229.123.248 (Sun Aug 22 08:05:51 2010) Date template hits: 113840 hit(s): Month Day Hour:Minute:Second 0 hit(s): Weekday Month Day Hour:Minute:Second Year 0 hit(s): Weekday Month Day Hour:Minute:Second 0 hit(s): Year/Month/Day Hour:Minute:Second 0 hit(s): Day/Month/Year Hour:Minute:Second 0 hit(s): Day/Month/Year:Hour:Minute:Second 0 hit(s): Year-Month-Day Hour:Minute:Second 0 hit(s): Day-Month-Year Hour:Minute:Second[.Millisecond] 0 hit(s): TAI64N 0 hit(s): Epoch 0 hit(s): ISO 8601 Success, the total number of match is 7565 However, look at the above section ‘Running tests’ which could contain important information. Si todo marcha supercaligfragilisticoultraespialidoso, la habilitamos en jail.conf , estableciendo enabled = true dijo:[postfix] enabled = true port = smtp,ssmtp filter = postfix maxretry = 6 bantime = 86400 findtime = 600 action = %(action_)s logpath = /var/log/zimbra.log Como soy un sysadmin muy, pero que muy sorete, bloqueo por 24 horas (86.400 segundos, bantime) a aquellos que me molestaron 6 veces (maxretry) en los ultimos 10 minutos (findtime). Si fuera sorete total, setearia bantime a -1, lo cual lo haria permanente (o hasta que se reinice el server, las reglas de iptables o recarguemos el filtro de fail2ban) Recargamos fail2ban dijo:fenix:~# fail2ban-client reload Y si queremos ver como va la cosa, utilizamos el comando watch, que cada 2 segundos nos muestra el estado del comando pasado. (Salimos presionando Ctrl+C) dijo:fenix:~# watch fail2ban-client status postfix Every 2,0s: fail2ban-client status postfix Sun Aug 22 09:42:56 2010 Status for the jail: postfix |- filter | |- File list: /var/log/zimbra.log | |- Currently failed: 598 | `- Total failed: 7657 `- action |- Currently banned: 342 | `- IP list: 62.194.198.x ... .... .... ... ... ... ... ... ... ... ... 166.227 `- Total banned: 341 Y asi, mi joven Padawan, es como yo he filtrado casi 350 IPs en 30 minutos, ahorrandome recursos y dandome mas tiempo para ir a decorar mis pulmones con un hermoso color alquitran. Atencion: en mi caso, utilizo Zimbra OS, si solo usan postfix cambiar /var/log/zimbra.log por el path al log correspondiente. Atencion: Cuidadin con los tiempos que utilizan, vayan probando de a 5 minutos. Sino, es probable que bloqueen a un usuario valido, y se arme la rosca ... Hablo por experiencia
Instalación OpenVZ es un virtualizador de sistemas operativos, más hacia el lado de servidores que desktop (asi que si queres montar una vm para instalar ubuntu, windows u otra cosa con desktop, segui de largo) La verdad que instalar OpenVZ es una papa Necesitamos agregar el repositorio de OpenVZ a yum cd /etc/yum.repos.d wget http://download.openvz.org/openvz.repo rpm --import http://download.openvz.org/RPM-GPG-Key-OpenVZ Luego, habilitar el repositorio de nuestro sistema (5.5 o 6.2) Editamos vi openvz.repo Y vemos en el ejemplo, que el repo para CentOS 5.5 está deshabilitado y habilitado para 6.2 [openvz-kernel-rhel5] name=OpenVZ RHEL5-based kernel #baseurl=http://download.openvz.org/kernel/branches/rhel5-2.6.18/current/ mirrorlist=http://download.openvz.org/kernel/mirrors-rhel5-2.6.18 enabled=0 gpgcheck=1 gpgkey=http://download.openvz.org/RPM-GPG-Key-OpenVZ [...] [openvz-kernel-rhel6] name=OpenVZ RHEL6-based kernel #baseurl=http://download.openvz.org/kernel/branches/rhel6-2.6.32/current/ mirrorlist=http://download.openvz.org/kernel/mirrors-rhel6-2.6.32 enabled=1 gpgcheck=1 gpgkey=http://download.openvz.org/RPM-GPG-Key-OpenVZ [...] Listo, ahora, instalamos el kernel de OpenVZ, correspondiente a nuestra arquitectura [root@server1 yum.repos.d]# yum search vzkernel [...] vzkernel.i686 : The Linux kernel vzkernel.x86_64 : The Linux kernel vzkernel-debug.i686 : The Linux kernel compiled with extra debugging enabled vzkernel-debug.x86_64 : The Linux kernel compiled with extra debugging enabled vzkernel-debug-devel.i686 : Development package for building kernel modules to match the debug kernel vzkernel-debug-devel.x86_64 : Development package for building kernel modules to match the debug kernel vzkernel-devel.i686 : Development package for building kernel modules to match the kernel vzkernel-devel.x86_64 : Development package for building kernel modules to match the kernel vzkernel-firmware.noarch : Firmware files used by the Linux kernel vzkernel-headers.i686 : Header files for the Linux kernel for use by glibc vzkernel-headers.x86_64 : Header files for the Linux kernel for use by glibc [root@server1 yum.repos.d]#yum install vzkernel Bien, ahora tenemos que estar seguros que está agregado en menu.lst como default less /boot/grub/menu.lst # grub.conf generated by anaconda # # Note that you do not have to rerun grub after making changes to this file # NOTICE: You have a /boot partition. This means that # all kernel and initrd paths are relative to /boot/, eg. # root (hd0,0) # kernel /vmlinuz-version ro root=/dev/mapper/vg_server1-lv_root # initrd /initrd-[generic-]version.img #boot=/dev/sda default=0 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title CentOS Linux OpenVZ (2.6.32-042stab020.1) root (hd0,0) kernel /vmlinuz-2.6.32-042stab020.1 ro root=/dev/mapper/vg_server1-lv_root rd_LVM_LV=vg_server1/lv_root rd_LVM_LV=vg_server1/lv_swap rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=de crashkernel=auto rhgb quiet initrd /initramfs-2.6.32-042stab020.1.img title CentOS (2.6.32-71.el6.x86_64) root (hd0,0) kernel /vmlinuz-2.6.32-71.el6.x86_64 ro root=/dev/mapper/vg_server1-lv_root rd_LVM_LV=vg_server1/lv_root rd_LVM_LV=vg_server1/lv_swap rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=de crashkernel=auto rhgb quiet initrd /initramfs-2.6.32-71.el6.x86_64.img Bien, ahora, algunas herramientas: yum install vzctl vzquota ( Ya casi casi, terminamos ) Configurar sysctl.conf con los siguientes parámetros: vi /etc/sysctl.conf [...] net.ipv4.ip_forward = 1 net.ipv4.conf.default.proxy_arp = 0 net.ipv4.conf.all.rp_filter = 1 kernel.sysrq = 1 net.ipv4.conf.default.send_redirects = 1 net.ipv4.conf.all.send_redirects = 0 net.ipv4.icmp_echo_ignore_broadcasts=1 net.ipv4.conf.default.forwarding=1 [...] sysctl -p #para releer sysctl Ahora, esto es importante: si la direccion IP de las maquinas virtuales estan en distintas subnets que el host, hay que realizar el paso siguiente, o no se habrá conectividad!! vi /etc/vz/vz.conf [...] NEIGHBOUR_DEVS=all [...] Listo! Eso es todo!! Por cierto, deshabilita SElinux y reinicia para bootear con el kernel de OpenVZ Creación de una VM desde la shell Ahora, vamos a crear nuestra primer vm con OpenVZ En mi caso, en el ambiente de testing, elegí descargar un template desde el sitio original (http://wiki.openvz.org/Download/template/precreated) . En el ejemplo, vamos a virtualizar un Debian6 sobre un Centos6 Bajemos el template: cd /vz/template/cache wget http://download.openvz.org/template/precreated/debian-6.0-x86.tar.gz Configuremos la VM: vzctl create 101 --ostemplate debian-6.0-x86 --config basic # creamos el template vzctl set 101 --onboot yes --save # al inicio del SO host vzctl set 101 --hostname test.example.com --save # le ponemos un nombre fqdn vzctl set 101 --ipadd 192.168.0.101 --save # asignamos la ip vzctl set 101 --nameserver 8.8.8.8 --nameserver 8.8.4.4 --nameserver 145.253.2.75 --save # y ahora los DNS a utilizar vzctl exec 101 passwd # especificamos un password para root vzctl start 101 #levantamos la instancia 101 representa un ID unico para cada instancia. Yo uso el ultimo octeto de la IP Bueno, ahora podemos entrar directamente con vzctl enter 101 o con ssh [email protected] En caso de necesitar eliminar una vm, antes tenemos que pararla y luego, proceder al borrado: vzctl stop 101 vzctl destroy 101 ¿Cúantas VM tengo en el sistema? # vzlist -a CTID NPROC STATUS IP_ADDR HOSTNAME 101 16 running 10.0.0.101 test.example.com Qué recursos está utilizando la VM ? # vzctl exec 101 cat /proc/user_beancounters (si pego el texto, no se ve como corresponde) Importante:: si algun valor de la columna failcnt es distinto de 0, significa que habrá que ampliar algun recurso Instalación del Panel de Control La instalación del Panel, es la parte más complicada: wget -O - http://ovz-web-panel.googlecode.com/svn/installer/ai.sh | sh Solito se encarga de instalar las dependencias de ruby Una vez terminado, hay que ingresar a http://<your-host>:3000 con usuario y clave default, de admin/admin Agregamos el servidor local Bajamos un template de servidor (plantilla) (esperamos un rato, segun la velocidad de descarga) y creamos una VM
En linux, tenemos unos archivos especiales, que son similares a los accesos directos de Windows. Los mas utilizados, son los enlaces simbolicos duros (hardlink) y los enlaces simbolicos blandos (softlink) La diferencia entre ellos, esta en su comportamiento. Con los hardlink, se crea un archivo identico al original, ocupando la misma cantidad de espacio e inodos. Cuando editamos uno, el cambio se refleja en sus enlaces. Por ejemplo: ls -lh total 183M drwxr-xr-x 2 root root 4,0K abr 27 23:09 ./ drwxrwxrwx 4 root root 16K abr 27 23:09 ../ -rw------- 1 root root 183M abr 27 23:08 hardlink # ln hardlink hardlink2 # ls -lh total 366M drwxr-xr-x 2 root root 4,0K abr 27 23:09 ./ drwxrwxrwx 4 root root 16K abr 27 23:09 ../ -rw------- 2 root root 183M abr 27 23:08 hardlink -rw------- 2 root root 183M abr 27 23:08 hardlink2 Como ven, ahora son dos archivos distintos, a hardlink2 pueden moverlo, eliminarlo o hacer lo que quieran, pero siempre va a estar referido al original. Ahora, los enlaces simbolicos (softlink), son solo accesos directos (similar a tener una planilla de calculo en Documentos, pero un acceso directo en el escritorio) Su tamaño, es igual a la cantidad de caracteres que hay en su path. Vean el siguiente ejemplo: drwxrwxrwx 4 root root 16K abr 27 23:14 ../ -rw------- 2 root root 183M abr 27 23:08 EsteEsHardlink2Renombrado lrwxrwxrwx 1 root root 7 abr 27 23:14 hardlink3 -> hardlink lrwxrwxrwx 1 root root 25 abr 27 23:15 hardlink4 -> EsteEsHardlink2Renombrado -rw------- 2 root root 183M abr 27 23:08 hardlink Ademas, cuando hacemos un ls -lh para listar el contenido del directorio, vemos que aparece algo mas: el nombre del archivo original al cual apunta (si estuviese en otro path, muestra todo completo). Para crear un enlace simbolico: #ln -s NuevoNombre ArchivoOriginal Para crear un hard#ln NuevoNombre ArchivoOriginal sanchezdiego.com.ar
Hace poco estoy probando ownCloud, que es un servicio similar a DropBox, con la diferencia que lo administras vos. Esto, significa: * Vos das de alta usuarios * Vos asignas y controlas la quota. * Vos controlas qué se comparte y qué no con usuarios de OwnCloud o externos. Lo instalé en una máquina virtual en OpenVZ y si bien aún tiene muchas cosas por pulir, realmente, yo estoy reemplazando mi DropBox con 8Gb de espacio para tener toda mi info a mano. Si todo marcha bien entre las pruebas, y hasta conocerlo bien; más adelante lo voy a sugerir en la empresa para compartir archivos entre, al menos, el sector. ----- Como requisitos (La verdad, que en cuanto a requerimientos, necesita muy poco (la vm ni se mosquea, tampoco el host : un p4 con 512 de ram). * Una compu * Un webserver con soporte PHP (apache, lighttpd,nginx,cherokee, IIS, etc) En cuanto a la instalación básica del administrador (web) todo pasa por descomprimir y subir al directorio correspondiente de su webserver, el contenido del tar.gz Al acceder, pide un nombre de usuario y clave, el cual será el admin de ownCloud La autenticación en el sistema, se basa en sqlite. Si tenés ganas/tiempo/necesidad, se puede configurar una DB en mysql, o bien usar ldap, Active Directory, etc (útil para empresas, por ejemplo) Aquellos que usen servicios similares a DropBox, habrán notado que se puede hacer un rollback de los archivos (modificados, eliminados). Lo mismo es posible hacer con ownCloud, asi que la data está protegida gracias a su sistema de cambios de versión; pero a diferencia de otros servicios en la nube, puede ser 30, 60, 90 días, o años atrás, según lo que determine tu configuración y necesidades. Sólo hay que estar pendiente del espacio del disco rígido (si hay un archivo de 1mb, y lo modifico, ahora voy a tener dos archivos de 1mb) En mi caso particular, soy único usuario, asi que mucho no me preocupo (además que puedo borrar lo que no necesite) Obviamente, es un sistema GPL; asi que tenemos la posibilidad de desarrollar nuestros propios plugins e integrar otras soluciones armadas dentro de la empresa, o bien propios; gracias a su API. Y de última, cambiar el theme predeterminado y adecuarlo al contexto Algunos de los plugins que incluye en forma nativa: agenda, contactos, tareas, reproductor de música, encriptación, vista previa de imágenes y ODFs Para aquellos que no tienen la oportunidad o facilidad de tener una maquina para esto, hay un servicio pago que proveen ellos (http://owncloud.com/) Posee clientes para Windows, Mac y Linux. Para móviles, en desarrollo, aunque ya hay para iPhone (http://owncloud.org/synchronisation/) Obviamente, si el server está en su casa (como en mi caso), la velocidad de sincronización depende del ancho de banda, pero la finalidad la cumple, y sobre todo, bien. Aún tiene algunas cosas que pulir, otras que arreglar, pero anda. Yo estoy contento. Si pueden, denle una oportunidad Sitio: http://owncloud.org/ Descarga del server: http://owncloud.org/install/ Descarga de clientes: http://owncloud.org/sync-clients/ Manejador de archivos Calendario Contactos
Si estamos en el gran quilombo (como yo) de necesitar entender un fw de la p**a madre, con 18k lineas (sin comentarios ni lineas en blanco), un diagrama de flujo (flow chart) con la estructura de las reglas, puede ser muy util. Para eso, estoy utilizano la herramienta iptables-map de wodny que encontre en bitbucket.org, que analiza las reglas en produccion, las parsea en formato dot para ser posteriormente graficadas con dot (graphviz) El modo de utilizacion es muy simple. Descargamos la ultima version (al dia de hoy, 14Jul2013) es 5a02ecc97998 root@proxy /tmp/ # wget -nv https://bitbucket.org/wodny/iptables-map/get/5a02ecc97998.zip 2013-07-14 17:29:43 URL:https://bitbucket.org/wodny/iptables-map/get/5a02ecc97998.zip [1558] -> "5a02ecc97998.zip" Descomprimimos el .zip root@proxy /tmp/ # unzip 5a02ecc97998.zip Archive: 5a02ecc97998.zip inflating: wodny-iptables-map-5a02ecc97998/.hg_archival.txt inflating: wodny-iptables-map-5a02ecc97998/README.txt inflating: wodny-iptables-map-5a02ecc97998/iptables-transitions.py entramos en el directorio y ejecutamos iptables-save (para realizar un dump de las reglas en produccion), la parseamos con iptables-transitions.py, y la salida, la enviamos a dot para generar el grafico correspondiente root@proxy /tmp/ # cd wodny-iptables-map-5a02ecc97998/ root@proxy /tmp/wodny-iptables-map-5a02ecc97998/ # iptables-save|./iptables-transitions.py | dot -Tpng >| graph.png Esto, genera una salida como la siguiente iptables-map: https://bitbucket.org/wodny/iptables-map graphviz : http://www.graphviz.org/
Tutorial 100% APB: Estadisticas de qmail con isoqlog. Que es Isoqlog? Isoqlog es un analizador de logs de MTA escrito en C. Esta desarrollado para trabajar con los logs de qmail, postfix, sendmail and exim y genera estadísticas en formato HTML. Algunas características Soporte Multi MTA, Multi dominio, estadísticas de envió y de recepción, estadísticas por tiempo, estadísticas por tamaño, traducción a varios idiomas incluido el español. http://www.enderunix.org/isoqlog/output/ Y vea un ejemplo de los resultados que genera. Descarga e Instalacion wget http://www.enderunix.org/isoqlog/isoqlog-2.2.1.tar.gz tar -zxvf isoqlog-2.2.1.tar.gz cd isoqlog-2.1.1 ./configure make make install make clean Perfecto! Ya esta instalado (o “deberia”). Ahora, la configuracion. Configuracion Si estas usando qmail, hay que crear un enlace simbolico al archivo rcpthost, asi no escribimos como boludos todos los dominios. Tambien tenemos que crear el directorio de salida de los html generados, y copiar algunos archivos necesarios (el template, imagenes, css, etc) ln -s /var/qmail/control/rcpthosts /usr/local/etc/isoqlog.domains mkdir -p /var/www/vhosts/dominio.com/httpdocs/mailstats cp -pr /usr/local/share/isoqlog/htmltemp/images /var/www/vhosts/dominio.com/httpdocs/mailstats Ahora si, la configuracion propiamente dicha. cd /usr/local/etc/ cp isoqlog.conf-dist isoqlog.conf vi /usr/local/etc/isoqlog.conf Configuracion de ejemplo: =================Isoqlog.conf============================== #Este es mi archivo de configuración /usr/local/etc/isoqlog.conf logtype = “qmail-syslog” # log type qmai-multilog, qmail-syslog, sendmail, postfix logstore = “/usr/local/psa/var/log/maillog” domainsfile = “/usr/local/etc/isoqlog.domains” outputdir = “/var/www/vhosts/dominio.com/httpdocs/mailstats” htmldir = “/usr/local/share/isoqlog/htmltemp” langfile = “/usr/local/share/isoqlog/lang/spanish” hostname = “server.dominio.com” maxsender = 100 maxreceiver = 100 maxtotal = 100 maxbyte = 100 ====================================== Ahora, ejecutar manualmente /usr/local/bin/isoqlog Agregalo al cron: crontab -e */59 * * * * root /usr/local/bin/isoqlog 1>/dev/null 2>/dev/null Listo, ahora entra en dominio.com/mailstats y disfruta llamando al boludo que envia spam Fuente: sanchezdiego.com.ar
Algunos son mios, otros de internet. La verdad que no sabria a quien poner como autor/fuente, asi que espero que alcancen las urls de los comentarios Como saber mi ip en la consola? #!/bin/sh IP_WAN=$(lynx --dump http://www.wimi.com 2> /dev/null | grep 'Your IP' | cut -d 's' -f 2 | cut -d ' ' -f 2) 2> /dev/null IP_eth0=$(/sbin/ifconfig | grep Bcast | awk '{print $2}' | cut -d":" -f 2) if [ $IP_WAN eq ""]; then IP_WAN="Aun no asignada/ Sin internet" fi echo "" echo "=============================================" echo "IP publica (internet) : $IP_WAN" echo "IP privada (red local en casa): $IP_eth0" echo "=============================================" echo "" Escuchar radio online #!/bin/bash # # llama a mplayer, segun la radio indicada # # $Id: radio.sh,v 1.8 2007-01-04 14:48:32 javier Exp $ # # Fixes en etapa de ejecucion por Arturo 'Buanzo' Busleiman # <buanzo arroba buanzo.com.ar> - 20070104 case "$1" in # # radios argentinas # mitre) # Radio Mitre 792 AM URII='mms://streammitre.uigc.net/mitrevivo' ;; rp) # Rock and Pop URII="mms://200.59.146.10/rockandpop-ba" ;; delplata) # Del Plata AM 1030 URII='mms://delplata.telecomdatacenter.com.ar/delplata' ;; continental) # AM 590 Continental URII='http://66.175.96.10/arcontinental' ;; los40) # Los 40 Principales URII='http://66.175.96.10/ARLOS40P' ;; mega) # Mega 98.3 Puro Rock Nacional URII='http://mega.telecomdatacenter.com.ar/mega' ;; fm100) # FM 100 99.9 rtsp://g2.prima.com.ar/vivo/cadena100.rm URII='rtsp://g2.prima.com.ar/vivo/cadena100.rm' ;; fmsi) # 89.1 FM BA San Isidro # (requiere faad/aac) URII='http://streaming.euro-web.com.ar:8000' ;; fzero) # frecuencia zero URII='http://200.32.10.12:8017/listen.pls' ;; metro) # metro 95.1 URII='http://200.59.146.10/radiometro-ba' ;; radio10) # DOLINA! URII="mms://radio10.telecomdatacenter.com.ar/radio10" ;; # # television # tn24) # TN 24 Horas URII="mms://wmedia01.uigc.net/TN" ;; # # otras radios # kehuelga) #Radio libre y social 102.9FM ::.K-HUELGA> URII="http://www.kehuelga.org:8000/radio.mp3" #Aca estan otros espejos en caso de saturacion #http://stream.r23.cc:2323/kehuelga.mp3 #http://radio.resistenciacreativa.org.mx:8000/radioresisteincia.mp3.m3u #http://radio.indymedia.org:8000/radiozapote-alta.mp3.m3u #http://radio.indymedia.org:8000/appo.mp3.m3u ;; *) echo " Uso: radio.sh opci mitre ( Radio Mitre 792 AM ) rp ( Rock and Pop ) los40 ( Los 40 Principales ) fm100 ( FM 100 99.9 ) delplata ( AM 1030 ) continental ( AM 590 ) mega ( Mega 98.3 Puro Rock Nacional ) fmsi ( 89.1 FM BA San Isidro ) radio10 ( Dolina) metro ( Metro 95.1) kehuelga ( Radio libre y social 102.9FM ::.K-HUELGA ) tn24 ( TN 24 Horas ) " exit 1 ;; esac mplayer -af lavcresample=44100 -cache 64 "$URII" Grabar radio online #!/bin/bash # Script para la grabacion de un programa de radio por internet. #emisora RNE5 #emisora=http://a1360.l910520572.c9105.e.lm.akamaistream.net/D/1360/9105/v0001/reflector:20572 emisora=mms://radio10.telecomdatacenter.com.ar/radio10 #numero de minutos minutos=180 #Nombre del programa programa=radio10_dolina_la_venganza_sera_terrible #Directorio donde grabarlo (’.’ = actual) dir=$HOME # Nombre del fichero nombre=${dir}/${programa}_`date +%y_%m_%d`.mp3 #————————————————# #Creamos un pipe [ -e /home/nept1/Radio/tmp ] && rm /home/nept1/Radio/tmp mkfifo /home/nept1/Radio/tmp #Lame lame /home/nept1/Radio/tmp $nombre 2>/dev/null 1>/dev/null & #mplayer mplayer $emisora -cache 32 -ao pcm:file=/home/nept1/Radio/tmp 2>/dev/null </dev/null & #Esperamos el tiempo marcado sleep $(($minutos * 60)) #acabamos con el mplayer kill %2 #borramos el pipe rm /home/nept1/Radio/tmp Tomar datos de temperatura del sistema #!/bin/bash # #HOY=`/bin/date %Y%m%d` DESTINO='/var/www/midominio.com.ar/data/temp.txt' rm $DESTINO echo $HOY > $DESTINO sensors >> $DESTINO echo "" >> $DESTINO echo "Temperatura de los discos:" >> $DESTINO hddtemp /dev/hda >> $DESTINO hddtemp /dev/hdc >> $DESTINO echo "" >> $DESTINO echo "Espacio libre en las particiones:" >> $DESTINO df -h | grep '/dev/hd' >> $DESTINO echo "" >> $DESTINO echo "Usuarios logueados:" >> $DESTINO w >> $DESTINO #www-data = usuario y grupo de apache,tengo un miniserver en casa7 chown www-data:www-data /www/xxxxxxxxx.com.ar/data chmod 755 /www/xxxxx.com.ar/data/temp.txt -------------------------------------------------------- Actualizacion -------------------------------------------------------- Para bajar un archivo desde la consola: wget ftp://ftp.slackware-brasil.com.br/slackware-12.0-iso/slackware-12.0-install-dvd.iso Pero que pasa si se corta la conexion o nos aburrimos y nos queremos ir? Bajamos todo otra vez? Ni a palos! Si agregamos la opcion -c, continua desde donde se quedo wget -c ftp://ftp.slackware-brasil.com.br/slackware-12.0-iso/slackware-12.0-install-dvd.iso Quiero bajar TODO un sitio web y mirarlo comodo en casa, o en la laptop en el baño wget -r http://www.tusitio.org/ Cuantos equipos hay encendidos en la red? Que IPs hay ocupadas? #!/bin/sh # ESCANEO=$(nmap -sP 192.168.1.0/24 | grep 'to be up' | cut -d ' ' -f 2) echo "IP ocupadas en la red :" $ESCANEO echo "Equipos conectados a la red:" $(nmap -sP 192.168.1.0/24 | grep 'to be up' | wc -l) Libro sobre bash (ingles) Bash Cookbook: Solutions and Examples for Bash Users http://www.linux-os.com.ar/linuxos/bash-cookbook-solutions-and-examples-for-bash-users/#more-528 Libros varios http://www.linux-os.com.ar/linuxos/category/libros/ Muchos libros, con descarga de hasta 50 libros diarios, previo registro http://knigaonline.net//SearchBooks.aspx?searchText=samba