viernes, 6 de enero de 2012

policyd-light y posftix

Hay un software llamado policydaemon que es verdaderamente potente. También hay hay una versión de muerde y huye que si bien no es la máxima cosa al menos hace bien el trabajo. Es un script de perl "sencillo" Lo que hace es consultar las listas de RBL mas clásicas. Por eso entendemos a: njabl.org, spamcop.net, spamhaus.org y ix.dnsbl.manitu.net Con el de averiguar si el que veía esta cachado en una de ellas. Ahora usted dirá "postfix hace eso" pero este soft, aparte de tener una cache propia, consulta todas las listas de un solo palo; dando una respuestas más rápida. Como ya es normal, no hay una razón especial para usar un software que recomiendo.


Como dirían los miserables callejeros "manos a las sobras" Primero descargamos el script:


wget http://www.policyd-weight.org/policyd-weight


Ahora lo ponemos de manera apropiada para que se ejecute; hay que crearle un usuario llamado


useradd polw


Ahora lo hacemos que parezca una aplicación.


mv policyd-weight /usr/local/bin/policyd-weight
chmod 0555 /usr/local/bin/policyd-weight
chown polw /usr/local/bin/policyd-weight


Ahora hay que hacerle un ficherito de configuración:


/usr/local/etc/policyd-weight.conf
chmod 0644 /usr/local/etc/policyd-weight.conf

y a ese fichero le ponemos lo siguiente:

$dnsbl_checks_only = 1;
$TCP_PORT = 12525;


Por último, vamos al postfix y le configuramos la política de restricción. En la sesión de "smtpd_recipient_restrictions" le agregamos una linea que diga:

check_policy_service inet:127.0.0.1:12525,

Con eso, miramos el log y verán como va filtrando y probado cada correo que entre. El programa debe arrancar con cada inicio del sistema, si el servidor arranca sin policyd andando, rechazará todo los correos. Puedo palear este problema poniendo en /etc/rc.local


/usr/local/bin/policyd-weight start

Otra opción seria poner eso en /etc/init.d/postfix bajo la linea que dice:




start)
log_daemon_msg "Starting Postfix Mail Transport Agent" postfix


Así arranca junto con postfix.








jueves, 5 de enero de 2012

weechat & bitlbee

Como hago con todas las entradas, para empezar; justificaré el porque usar un software estrambótico del cual quizás usted nunca a oído hablar o no se convence de una buena razón para usarlo.


Un buen motivo para usar weechat es que mi computadora tiene 64 de RAM y encontrar un buen cliente IRC es una tragedia, para que hablar de un cliente Jabber. Otra gran ventaja de weechat es que puede usar proxy. Un amigo me dijo que lo usaba en la consola de Geany mientras programa con php pero no me siento muy cavernícola como para sugerirlo. De los clientes de consola, irssi es uno de los mas famosos pero en mi  arrogante opinión este está mejor. Mas extensible y el auto-completamiento está violento.


Nota preliminar:
Esta entrada se enfocará en configurar un weechat, en vista a un bitlbee previamente instalado y corriendo. Si no tienes uno echa un vistazo a está entrada o simplemente usa el de Wilmer como sale en el presente manual.


Mientras tanto, pasemos a la parte fácil de debian.


aptitude install weechat


Se especula de una interfaz Qt pero yo desconozco del tema por falta de interés. Entonces! ejecutamos weechat-curses. Abremos caido ante la interfaz principal de weechat. Ahora todo es cuesiton de "comandos" estilo IRC.


weechat-curses


Puede crear cuantos servidores le venga en gana pero primero crearemos un server llamado "bitlbee" para no confundirnos.


 /server add bitlbee testing.bitlbee.org/6667 -autoconnect


El último parámetro hace que se conecte de manera automática cuando arrancamos weechat, realmente muy útil. Pero aqui viene lo que mas me gusta. Con esto se autenticara en bitlbee de manera automática.


 /set irc.server.bitlbee.command "/msg &bitlbee identify mipassword"


Explico en letras de molde. Esto es decir la cadena de texto "identify mipassword" en el canal llamado "&bitlbee". Practicamente nos autenticara en el bitlbee sin necesidad de la intervención del usuario. Usted valore si le parece conveniente o seguro.


Ahora fijamos el nick a nivel local, es decir para este servidor somos "Fulano" Quizas usted tenga un nick muy terrorista y macabro para cada servicio, pero prefiere ver su nombre constante y sonante en el canal &bitlbee


/set irc.server.bitlbee.nicks Fulano


Eso es con respecto a bitlbee. A weechat como tal, yo le configuro algunas cositas. Por ejemplo, el mensaje que nos mostrara al partir de un canal:


/set irc.network.default_msg_part "Mientras lees esto, un gatito muere"
/set irc.network.default_msg_quit "Volvere en la proxima reencarnación"


Wee-chat por defecto usará nuestro nombre de usuario para autenticar, prefiero caerme de culo por un barranco antes de ponerle el nombre de usuario local a Internet.


/set irc.server_default.nicks Catracho-418
/set irc.server_default.username cucarachon
/set irc.server_default.realname Fulano_Letal


Ahora y siempre me ha parecido que la pantalla de weechat esta muy apretada, mi pantalla es de 1024x768. Con esto, ganamos espacio.


/set weechat.bar.nicklist.size 12
/set weechat.bar.nicklist.size_max 15
/set weechat.look.buffer_time_format %H:%M
/set weechat.look.nickmode off


...y estamos listos para usar "jabber al estilo retro".




Superviciencia con weechat y atajos de teclado:


weechat es un clasico cliente IRC de consola pero realmente si no tiene experiencia con este tipos de cosas encontrara grandes estorbos. Aquí les daré uno de los mas básicos.


Primero y "principioso": Cambios de buffer. Los buffer son las "ventanas" del IRC. Una puede ser la del servidor, otra un canal y otra una querry. Con Ctrl+N avanzamos a la siguiente pero hay algo mucho mejor. El llamado "smart Jump", literalmente salto inteligente. Esto se hace con "Alt+A" y nos conduce al próximo buffer con mensajes sin leer.  CUando todos sean leídos, tocamos por última vez Alt+A y nos traerá al primero del cual salimos. Muy útil.


Otra caracteristica potente de weechat es el completamiento. Autocompleta incluso configuraciones. Pero vallamos de los básico a lo complejo.


Pongamos el caso de que estamos en un canal. Tenemos un compañero que se llama "ammattikorkeakoulu" Pero teclear su nick resulta incomodo porqueee... bueno por mil razones. En ese caso tecleamos las dos o tres primeras letras.


amm[Tab]


Entonces tocamos la tecla "Tab" o Tabulador, es decir la de las dos flechitas que esta sobre el "CapsLock" y el como todo cliente IRC decente, nos completara el nick.


Pero tenemos el caso de que podemos completar comandos. Por ejemplo,
tenemos el comando /connect


/con[Tab]


y pondrá


/connect


Con un espacio al final y todo. En weechat, tambien las opciones de
configuracion son autocompletables.


/set ir[Tab]


Ahí nos saldrá seguramente:


/set irc.color.input_nick


Tienes dos opciones. Una es ser menos vago y tecleará:


/set irc.server.bi[Tab]


Esto completaría:


/set irc.server.bitlbee.addresses


La otra opción hubiera sido tocar el Tabulador de nuevo. Así es el caso que cuando con completo hasta .addresses. Tocamos Tab de nuevo y saldrá sucesivamente.


irc.server.bitlbee.autoconnect
irc.server.bitlbee.autojoin
irc.server.bitlbee.autoreconnect
irc.server.bitlbee.autoreconnect_delay
irc.server.bitlbee.autorejoin


...y así sucesivamente. Podemos completar de todo. Por último agregaré que si queremos ayuda para los comando, solo tenemos que pedirla.


/help


Ahi saldrá toda una lista de comandos. Con poner:


/help server


Veremos la ayuda especificamente del comando "/server" Generalmente a usar ayuda saldrá una bola de cosas. Puedes subir y bajar el texto que el buffer a dejado atras con PgUp y PgDn sucesivamente o bien puedes buscar con Ctrl+R


Hasta aquí por hoy. Algún comentario?



viernes, 23 de diciembre de 2011

el repo con la cache

En mi país, las conexiones son un poco lentas. Aveces conseguir los repos se vuelven MUY difícil. Una alternativa que me resuelve mucho es convertir la cache en un repositorio local. Así puedo dársela a mis amigos luego y que ellos lo usen como repo.

Un script sencillo para estos sería así:

#!/bin/sh
# crea el directorio local
mkdir -p /usr/local/var/repo/
cd /usr/local/var/
# refresca el fichero Packages.gz
touch /usr/local/var/repo/Packages.gz
rm /usr/local/var/repo/Packages.gz
# mueve la cache al repo
mv /var/cache/apt/archives/*.deb /usr/local/var/repo/
# genera la lista de paquetes
dpkg-scanpackages repo/ /dev/null | gzip > repo/Packages.gz
# crea la entrada en APT
echo "deb file:/usr/local/var/ repo/" > /etc/apt/sources.list.d/lazaro.list


Con eso tenemos un repo, aptitude update y tendremos el repo local funcionado. A los amigos le copiamos el repo en /usr/local/var/repo/ y le ponemos en el source.list la linea:
deb copy:/usr/local/var/ repo/
Entonces ya podemos tener la amabilidad de proveerle los paquetes a los colegas sin acceso a Internet.

miércoles, 21 de diciembre de 2011

ver solo nuevos

Con Mutt: Aveces cuando estamos leyendo muchos correos, sobre todo de las listas. Nos encontramos que distinguir los nuevos en correos en un hilo, puede llegar a ser un poco tedioso. Aveces los nuevos correos se mezclan en hilos que quedaron atrás. En otros clientes de correo tenemos la opción de "mostrar solo los sin leer". En mutt podemos hacer algo por el estilo. Creamos un macro que diga:
macro index     n      "l(~N|~O)\n"

Con eso, solo se mostrarán solo los mensajes sin leer. Podemos jugar con esos parámetros y crear una gama de  opciones bien amplia.  Por ejemplo con esto:
macro index     y      "l~d<2d ~d>1d\n"
Mostraremos solamente los mensajes de ayer. Se puede crear ganchos, por ejemplo, para que en las carpetas de lista se muestren solo los nuevos. Al final lo deje así.
macro index n "l(~N|~O)\n"
macro index y "l~d<2d ~d>1d\n"
macro index , "l~A\n"
folder-hook lista "push n"
folder-hook . "push ,"
Donde "n" muestra los nuevos y sin leer. La "y" los de ayer y la "," muestra todo de nuevo y al entrar en la carpeta "lista" veremos solo los nuevos.

lunes, 19 de diciembre de 2011

sarg en debian 6

Sarg, es una herramienta especializada en analizar los log de squid. No usa bases de datos y lo único que hace es generar unos HTML estáticos con el reporte detallado de la navegación. En debian todo es muy fácil.

aptitude install sarg

y editamos su fichero de configuración, es muy probable que este junto a squid.

mc -e  /etc/squid/sarg.conf

Ahi le editamos los parametros y le ponemos el idioma que sea de su agrado. Como no hay finlandés lo pongo en español :-D. Localizen las cadena "language" y vera todas las opciones disponibles.

language Spanish

Si lo desea y es un malvado adminitrador de red, puede asegurarlo con un .httacces. Otra linea últil es una que esta llegando a la linea 140. Esta dice donde saldrán los reportes.

output_dir /var/www/squid-reports

En este caso el valor esta en www pero yo opte por hacerle un virtualhost en otro lugar. Ahi usted puede, si lo desea cambiar el directorio de salida del HTML con el reporte.

No se embulle en mirar configuraciones y cambiarlas a lo loco, sarg es un softweare caprichoso y una configuración aparentemente normal, puede generar un treintena de errores que no indican ni remotamente a la configuración realizada, como por ejemplo, "Error: fichero truncado" Otra que si es segura modificar, es la fecha, cerca de linea 195.

date_format e

Donde e es el formato Europeo, dd/mm/yy, el mas similar al que aprendimos en la escuela. Por ultimo, una observación del fichero /etc/squid/sarg.users Ahí podemos poner nuestro usuario, todo los usuarios ahí, NO saldrán en el reporte. Mi usuario, es el que uso para descargar los antivirus y siempre acabo siendo el peor y mas inconsciente en cuanto a descargas.

De la misma forma hay un sarg.hosts que controla los sitios o host ignorados. Por ejemplo, yimg.com para no tener que ver las imágenes del yahoo! en el reporte.

Por ultimo ya estamos listos, sarg se ejecutara de una manera muy discreta durante un rato laaaaaargo. Al cabo del rato, terminara de ejecutarse, aparentemente no hizo nada, pues alégrese, el solo muestra los errores; MUY ÚTIL para el cron. Valla al directorio de la variable output_dir o a su vhost con una navegador.


Nota:

Si lo desea generar una tarea de cron que corra sarg y luego corra: "sarg -e direccion@dominio.tld" para crear un reporte por correo. Cuando mire el pertinente reporte vera que solo genero el reporte de este mes o
de este dia, segun lo tenga el fichero /var/log/squid/access.log yo roto los logs semanales. En caso de que usted tenga esta buena costumbre, le recomiendo que la primera vez corra sarg de una manera especial.

Valla al fichero de configuracion y localize la variable "access_log" esta cerca de la linea 35. Ahí configure TEMPORALMENTE un fichero.

access_log /tmp/reporte.log

Ahora, crearemos un concenso de todo el logueo. En mi caso yo roto los logs en el mismo directorio, asique tengo algo así.

ls /var/log/squid/
access.log.1 access.log.2 access.log.3 access.log.4
access.log.5 access.log.6 access.log.7 access.log.8

Entonces lo juntamos todo.

cat /var/log/squid/access.* > /tmp/reporte.log

Valla por un cafe y demorece segun el tamanho de los logs. Cuando vuelva, si ya a terminado la tarea, corra sarg con esa "configuración especial". Al terminar, vera que se genero un reporte bien completo. Le recomiendo que corra sarg a la hora de almuerzo, preferiblemtne antes de almorzar. Para aprovechar el tiempo. Si hay pescado, mejor tadovaia, asi se demora mas. Una vez con la barriga llena, probablemente ya sarg halla terminado. Valla a la configuracion y restablezca la linea a la normalidad.

access_log /var/log/squid/access.log

Entonces, valla al reporte y vea si es de su argado. Ya solo le faltaría programar el cron. Yo roto los logs una vez a la semana pero emito un reporte diario con sarg, uno para los html y otro el martes y el jueves con sarg -e por correo.