Socks Proxy con dante o sacar el correo por guifi

Otro post mas sobre proxys, se nos ha atascado el cuerno con esto y hasta que no lo podamos sacar vamos dándole, como tiene que ser :)

De momento no hay autenticación con los usuarios de la web de guifi, para ello se tiene que rascar un poquito más, así que de momento dejaremos el proxy abierto y la recomendación es configurar el cliente de correo con el socks proxy y el cliente de http por el proxy squid de cabecera, con la autenticación de los usuarios y tal.

La instalación de dante es realmente sencilla:

# apt-get install dante-server

Justo con esto tendremos que empezar a configurar el fichero de configuración /etc/danted.conf


El fichero se divide en 3 partes principales, la de la configuración del servidor, el acceso de las conexiones (de donde vienen y hacia donde van) y las reglas de tipos de puertos o servicios que usamos. Para que quede mas claro el ultimo apartado lo vamos a definir simplemente con los puertos, si hace falta alguno simplemente lo añadimos.

No entro en muchos detalles con lo que es cada cosa porque algunas las cuenta perfectamente en el propio fichero de configuración, otras no tengo ni idea, pero espero que tras un poco de lectura pueda sacar información relevante para terminar de configurar este servicio. Voy anotando algunas cosas a tener en cuenta.

1a parte: configuración del servicio

logoutput: /var/log/danted.log
internal: eth0 port = 1080
external: eth1
method: username none
user.privileged: proxy
user.notprivileged: nobody
user.libwrap: nobody
connecttimeout: 30   
iotimeout: 30000

Destaco internal y external, la internal va a ser la boca de guifi, la external la boca de internet, si está todo en la misma tarjeta, obviamente lo ponemos todo en la misma interfaz.

El puerto de trabajo by default de dante es el 1080, esto va a permitir que podemos tener conviviendo un squid en el 3128 y el dante en el 1080. Esto a gusto del consumidor :P

Dejamos los logs en el fichero /var/log/danted.log desconozco lo que puede crecer este log, así que mejor controlarlo con logrotate o con un scriptillo guarro que lo vacíe de vez en cuando o directamente lo mandamos a /dev/null si no queremos guardar cyberbasura.

2a parte: Conexiones de los clientes

client pass {
        from: 10.0.0.0/8 port 1-65535 to: 0.0.0.0/0
}

client block {
        from: 0.0.0.0/0 to: 0.0.0.0/0
        log: connect error
}

3a parte: Conexiones por puertos y protocolos

# permitir http (comentado porque vamos a usar squid para el http)
#pass {
#        from: 10.0.0.0/8 to: 0.0.0.0/0 port = 80
#}

#imap
pass {
        from: 10.0.0.0/8 to: 0.0.0.0/0 port = 143
}

pass {
        from: 10.0.0.0/8 to: 0.0.0.0/0 port = 993
}

#pop
pass {
        from: 10.0.0.0/8 to: 0.0.0.0/0 port = 110
}

pass {
        from: 10.0.0.0/8 to: 0.0.0.0/0 port = 995
}

#smtp
pass {
        from: 10.0.0.0/8 to: 0.0.0.0/0 port = 25
}

pass {
        from: 10.0.0.0/8 to: 0.0.0.0/0 port = 587
}

pass {
        from: 10.0.0.0/8 to: 0.0.0.0/0 port = 465
}


block {
       from: 0.0.0.0/0 to: 0.0.0.0/0
       log: connect error disconnect
}

Con el último block bloqueamos el resto de conexiones, añado el http para poder realizar las pruebas de forma más rápida, pero si lo comentáis o simplemente tratáis de acceder por el socks proxy a un puerto que no hagáis definido, en principio no tendría porqué permitir las conexiones. Probad por ejemplo de acceder a una página con https. ¿Cómo lo resolveríais?

En principio con esta configuración ya tendríamos las funciones básicas que no nos permite squid porque se trata de un proxy http, no un socks proxy tal como lo es dante.

Para iniciar dante simplemente tenemos que arrancarlo como un servicio de los de toda la vida:

# /etc/init.d/danted start

Ahora ya sólo faltará configurar el cliente de correo con el SOCKS PROXY, atentos que no es lo mismo que HTTP PROXY, y que el puerto de trabajo es el 1080 no el 3128.

De momento las pruebas sólo han sido satisfactorias con thunderbird. Evolution no he visto que permitiese configurar socks proxy, sólo http proxy o coger la configuración del sistema, con la configuración del sistema no ha funcionado.
También he maltratado unos minutos mi máquina tratando de configurar el socks proxy sobre outlook express, pero la prueba tampoco ha sido satisfactoria… mucho mejor hehe :)

Pues esto es todo amigos! a mandar mails con vuestros clientes de correo soportados como unos cosacos!

Gracias knoppix por prestarme la máquina para hacer las pruebas y ya has visto que las cosas con calma salen mucho mejor, así que presiones fuera y menos aún en La Garrotxa! xD

Fuente: kartbuilding.net wiki

13 Comments

  1. ondia! molt bonpost aquest, ara que estic muntant un servidor nou a casa potser ho provo perque això dels gestors de correu a la gent li costa molt d’entendre.

    salut!

    albert

    Respon
  2. Per a solucionar el següent error que dona amb ubuntu

    (1347410594) danted[32013]: symbolfunction(): compiletime configuration error? Failed to open “libc.so”: libc.so: cannot open shared object file: No such file or directory

    Apliqueu el següent:
    sudo ln -sf /lib/x86_64-linux-gnu/libc-2.15.so /usr/lib/x86_64-linux-gnu/libc.so

    Respon
  3. estoy probando a configurarlo contra el ldap de guifi, a la que consiga algo te aviso por aquí

    Respon
  4. Merci, blackhold!

    La meva aportació: amb
    kill -SIGUSR1 $(pidof danted)
    el process danted envia a l’arxiu de log (definit a danted.conf) els clients connectats al socks. Només els que estan connectats en l’instant de llençar el comando. Es pot fer un script i passar-ho per cron cada x temps, tot i que hi ha perill que el log creixi molt.

    Salut!

    Respon
  5. Merci, blackhold!

    La meva aportació: amb
    kill -SIGUSR1 $(pidof danted)
    el process danted envia a l’arxiu de log (definit a danted.conf) els clients connectats al socks. Només els que estan connectats en l’instant de llençar el comando. Es pot fer un script i passar-ho per cron cada x temps, tot i que hi ha perill que el log creixi molt.

    Salut!

    Respon

Deixa un comentari

L'adreça electrònica no es publicarà. Els camps necessaris estan marcats amb *

Aquest lloc utilitza Akismet per reduir els comentaris brossa. Apreneu com es processen les dades dels comentaris.