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.
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 +%sPuede 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
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.
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.
Suscribirse a:
Entradas (Atom)

