Using Pidgin to access Google Talk behind a Proxy requiring Authentication

There are many posts referring to accessing Google Talk from Pidgin, though I had some trouble accessing it from behind a proxy in addition to that. After finally getting it working, here is what I had to do.

Firstly, you’re going to want to install cntlm, because I could not get Pidgin to go via the proxy directly. (This may not be necessary for you, in which case you can try with your own proxy settings below). If you are doing to install cntlm from behind a proxy (and hence the reason for this post), you must first update /etc/apt/apt.conf. The Gnome network properties app with which you set proxy settings system-wide does set these values, but ignores authentication (so it’s a bit of a farce, really), so either way, you will have to hand-edit the file to add in your credentials in the form protocol://user:password@proxy.host:port:

martin@martin-laptop:~$ more /etc/apt/apt.conf
Acquire::http::proxy "http://user:password@proxy.domain.com:80/";
Acquire::ftp::proxy "ftp://user:password@proxy.domain.com:80/";
Acquire::https::proxy "https://user:password@proxy.domain.com:80/";

Now you can

sudo apt-get update
sudo apt-get install cntlm

After this, edit the following values in /etc/cntlm.conf:

  • Username
  • Domain
  • Password
  • Proxy

and restart cntlm with (on Ubuntu):

sudo service cntlm restart

Now to add your Google Talk account in Pidgin. Add a new account as follows:

Set the protocol to XMPP (you can choose Google Talk, but it changes it to XMPP anyway), add your Google User name and domain (most likely gmail.com unless you have a hosted domain there), and optionally your password.

On the Advanced tab, tick both “Require SSL/TLS” and “Force old (port 5223) SSL” and then set the port to 443 and the server to “talk.google.com”.

On the Proxy tab, choose HTTP, then add your proxy details. If you installed cntlm as described above, set just the host name to localhost and the port to 3128 (or whatever you may have changed it to in /etc/cntlm.conf).

Success!

Tags: , ,