lunes, 23 de abril de 2012

borrar correo en buzon remoto


Para los usuarios de Apop:

Ahora si tengo la ultima cocacola del desierto! El santo grial de la recoleccion aPOP.

Borrar un correo grande DESDE EL BUZON SIN BAJARLO.

aptitude install mailutils

Creen un fichero, yo le puse "sieve.sc" y pongale dentro esto:

    require ["fileinto", "reject"];
    if size :over 10K {discard; stop;}

Ademas! si desea descartar correos segun el remitente, pongalo así:

    if header :contains ["From"] "nomescribas@dominio.com" {discard; stop;}

Entonces corran sieve asi:

sieve -f imap://usuario:password@servidor/ sieve.sc

Por supuesto, corran eso ANTES de fetchmail

miércoles, 11 de abril de 2012

unix time

Despues de pasar mucho trabajo tratando de convertir la fecha a segundos, me di cuanta que había perdido tiempo. Digo esto porque aveces queremos hacer operaciones de tiempo.

El tiempo de unix, es decir la cantidad de segundos transcurridos desde la medianoche UTC del 1 de enero de1970, sin contar segundos intercalares (afirmó Wikipedia). Es un tipo de horario que se usa para ciertas y determinadas operaciones. En fin, con:

date +%s

Puede verse la hora de unix y con:

date -d "2011-10-02" "+%s"

Puede calcular cualquier hora de unix pertienente a una fecha dada. Así se pueden escribir shell script que calculen fechas sumando y restando tiempo.

jueves, 23 de febrero de 2012

weechat y el proxy


Bueno, como ya expliqué hace rato, weechat es un cliente IRC muy fresco, vean los detalles en está entrada. Ahora voy dar unos nortes de como configurarlo para usarlo detrás de un proxy, cosa que yo y mis paisanos necesitamos mucho.

Demos por sentado que ya lo instalo, ahora ejecute en una consola:

weechat-curses

Una ves en el buffer principal, podemos darles instrucciones a weechat. Lo priemro que haremos sera crear un proxy. Usanmos el comando proxy para añadir el nuevo proxy:

/proxy add default http proxy.lex-sa.cu 3128 fulanito secreto

Nota para retrasados mentales:
El proxy puede llamarse como usted desee, default fue el nombre que le puse, en donde dice proxy.lex-sa.cu pone la dirección de su proxy, en 3128 pone su pertinente puerto y lo de atrás es el nombre de usuario y la contraseña respectivamente.

Ya tenemos un proxy con el nombre default creado. Ahora crearemos un servidor IRC (es decir, una conección).



/server add nombre irc.direccion.com/80 -autoconnect

Con esto creamos un server llamado "nombre" que se conecta atravez del puerto 80. la opción autoconnect nos dice que cuando levantemos weechat, se conecte. Ahora viene la parte mágica.

/set irc.server.nombre.proxy default

Con eso le diremos que use ese proxy para conectarse. Ahora:

/reconnect nombre

Y con suerte estamos en linea. Para mas detalles vea la entrada de weechat y bitlbee que la final explica algo de como funciona weechat.







viernes, 27 de enero de 2012

postfix con sasl

Hoy en día no concibo un servidor de correo con postfix y sin autenticación... es como un zapatero sin un barco. El otro día un paisano me pregunta que como configurar sus postfix con autenticación SMTP. En mi didiwiki tengo los pasos que di durante la instalación asi que abusaré de mi memoria para ver como armo el muñeco.


Primero y principioso, instalar los paquetes necesarios. En debian todo es muy fácil.


aptitude install postfix-tls libsasl2-modules sasl2-bin


Ahora editamos el fichero de configuración:


mc -e /etc/default/saslauthd


 # arranque autamatico
 START=yes
 # "shadow" or "sasldb", like this:
 MECHANISMS="shadow"
 PARAMS="-m /var/spool/postfix/var/run/saslauthd/"
 PIDFILE="/var/spool/postfix/var/run/${NAME}/saslauthd.pid"


Ahora le decimos a smptd que funcione de una forma diferente. En /etc/postfix/sasl/smtpd.conf ponemos esto otro:


 saslauthd_path: /var/run/saslauthd/mux
 pwcheck_method: saslauthd
 mech_list: plain login


Si te pones de suerte alomejor puedes quitar plain, yo tuve esa suerte pero se de gente que no. Ahora toca decirle a postfix que pida nombre de usuario y contraseña.


#sasl
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain =
smtp_sasl_auth_enable = no
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_sasl_authenticated, reject_unauth_destination


Ojo, no tiene que remplazar el cotenido de su "smtpd_recipient_restrictions" la cuestión es que estas dos deben estar de última, póngale encima todo lo que se le ocurra. Ya que estamos asegurando, pongamos a postfix a funcionar como chroot. Dicen que eso se hace así. En /etc/postfix/master.cnf debemos tener algo como esto:


smtp inet n - - - - smtpd


Cámbielo por esto:


smtp inet n - y - - smtpd


Note una "y" en lugar del segundo "-"


Ahor creamos el directorio para saslauthd. Mucho ojos, hay que hacer un paso raro con los permisos.


mkdir -p /var/spool/postfix/var/run/saslauthd
chown root.sasl -R /var/spool/postfix/var/
dpkg-statoverride --add root sasl 710 /var/spool/postfix/var/run/saslauthd


Para que postfix y sasl se entiendan, postfix debe pertencer al grupo sasl


adduser postfix sasl


Bueno solo faltaría reinicera postfix.


/etc/init.d/postfix restart

jueves, 26 de enero de 2012

evitar remplazo de dominio

Resulta que SASL no es tan bueno nada. Con postfix en estado natural podemos autenticarnos con un usuario y mandar con otro. Pregunte en la lista de correo local si había una solución  pero acabe respondiéndome yo mismo. Para que tenga una idea de lo que hablo:


AUTH fulano@dominio.tld
MAIL FROM: siclano@dominio.tld


Y se envia sin problemas porque ya autenticamos como fulano, no importa como salga el correo. Supuestamente postfix tiene como controlar eso con:


reject_unauthenticated_sender_login_mismatch
reject_authenticated_sender_login_mismatch
reject_sender_login_mismatch




Pero ni mierda!



No funciona. Sucede algo incrible. Cuando envias como fulano. Te dice que fulano, no ortenece al usuario fulano. Apesar de que tengan el nombre IDENTICO. Entonces...


Como resuelve?


Simple pero no sencillo. Primero necesitamos postfix con las extensión pcre. Si eres usaurio de debian te salvaste. 


aptitude install postfix-pcre


Con eso tendremos la extensión de perl para postfix, ahora podemos crear ficheros con expresiones regulares de perl. Ahora le agregamos esto al main.cf


smtpd_sender_login_maps = pcre:${config_directory}/sender_login.pcre



...y conjuramos este echizo. En el pertinente archivo /etc/postfix/sender_login.pcre le ponemos esto:


/^(.*)@tudominio\.tld$/ $1



Entonces es cuando viene a jugar la sentencia que ya habiamos visto.


smtpd_recipient_restrictions =
     [...]
     reject_sender_login_mismatch,
     permit_sasl_authenticated


OJO, debe ir antes de permit. Ya solo faltaría reinicar postfix.