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.

jueves, 12 de enero de 2012

HP P1006

Decir HP-P1006 es una mala impresora sería decir muy poco. Habría que buscar un grado superlativo de la palabra "desastroso" para entonces decírselo a la impresora. Realmente echarla a funcionar con foo2zjs es algo bien sencillo si tienes acceso a internet. Primero descargamos el código fuente en este link. Descomprimimos el fichero y nos posicionamos en la carpeta. Se compila como lo mas normal del mundo.



make

Después viene el toque mágico. Dentro del directorio resultante de la descompresión ejecutamos:

./getweb P1006


Esto sirve para las Pxxx y para otras muchas mas extrañas.

lunes, 9 de enero de 2012

squid autenticando con IMAP

El archiconocido servidor proxy squid, tiene muchas maneras de autenticar. Mucha gente lo hace contra mySQL o contra ldap. Gente muy obtusa y estrambótica (como yo) suelen usar métodos de autenticación mas sencillos que ldap. Por ejemplo, si ya tenemos un server de correo, porque usar otro? Acá conozco algunos coterraneos míos que montan un ldap para el server de correo y otro para el de navegación. GENIAL! :-D Es como decir, pasar trabajo al cuadrado.



Bueno en cuestión, la idea es simple y la implementación sencilla. El server proxy, usará como autenticador externo una aplicación que consultara un servidor imap. El autenticador de squid quedaría así.

auth_param basic program /usr/local/sbin/imap.py
auth_param basic children 5
auth_param basic realm Autenticacion de LEX-SA para la navegacion
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
acl ncsa_users proxy_auth REQUIRED

El script imap.py lo pueden recoger en este link. De todas formas lo pegare aquí:


#!/usr/bin/env python
from imaplib import IMAP4
import sys
#IMAP server against which we authenticate
server="127.0.0.1"
port=143
while 1:
 line=sys.stdin.readline()[:-1]
 [user,password]=line.split(' ')
 p=IMAP4(server,port)
 try:
  p.login(user,password)
 except:
  sys.stderr.write("ERR authenticating %s\n"%user)
  sys.stdout.write("ERR\n")
  sys.stdout.flush()
  continue
 sys.stderr.write("OK authenticated %s\n"%user)
 sys.stdout.write("OK\n")
 sys.stdout.flush()