<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>fabiolagana.net &#187; dynamic</title>
	<atom:link href="http://blog.fabiolagana.net/tag/dynamic/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.fabiolagana.net</link>
	<description>640 Kb should be enough memory for anybody</description>
	<lastBuildDate>Mon, 26 Oct 2009 13:17:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>SSH dynamic port forwarding with SOCKS</title>
		<link>http://blog.fabiolagana.net/ssh-dynamic-port-forwarding-with-soks/</link>
		<comments>http://blog.fabiolagana.net/ssh-dynamic-port-forwarding-with-soks/#comments</comments>
		<pubDate>Thu, 26 Oct 2006 14:38:09 +0000</pubDate>
		<dc:creator>Fabio Laganà</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[dynamic]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[port forwarding]]></category>
		<category><![CDATA[SOCKS]]></category>
		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://blog.fabio.lagana.name/?p=11</guid>
		<description><![CDATA[&#160;Powered by Max Banner Ads&#160;SSH has numerous uses beyond just logging into a remote system. In particular, SSH allows you to forward ports from one machine to another, tunnelling traffic through the secure SSH connection. This provides a convenient means of accessing a service hosted behind a firewall, or one blocked by an outgoing firewall. [...]]]></description>
			<content:encoded><![CDATA[<p>SSH has numerous uses beyond just logging into a remote system. In<br />
particular, SSH allows you to forward ports from one machine to another,<br />
tunnelling traffic through the secure SSH connection. This provides a<br />
convenient means of accessing a service hosted behind a firewall, or one<br />
blocked by an outgoing firewall.</p>
<p>However, forwarding an individual port still requires you to change<br />
where your program connects, telling it to use a non-standard port on<br />
|localhost| rather than the standard port on the remote machine, and it<br />
requires a separate port forward for each machine you want to access.<br />
Dynamic port forwarding via SOCKS<br />
provides a more convenient alternative.</p>
<p>The examples in this article assume that you reside behind a restrictive<br />
firewall which does not allow outgoing SMTP connections except to a<br />
designated mail server. You want to connect to a different mail server,<br />
|mail.example.net|, on port 25. You have an SSH account on a machine<br />
|shell.example.org|, which does not reside within the restrictive<br />
firewall and can thus access port 25 on |mail.example.net|.</p>
<p>With standard SSH port forwarding, you could enter the command:</p>
<p>ssh -L 2525:mail.example.net:25 shell.example.org</p>
<p>This will forward port 2525 on your machine to port 25 on<br />
|mail.example.net|, by way of |shell.example.org|. You will then need to<br />
configure your mailer to send mail to |localhost|, port 2525, and use<br />
the authentication information for your mail account on<br />
|mail.example.net|. For example, in Thunderbird^WIcedove, you could add<br />
an additional outgoing mail server via Edit-&gt;Preferences, &#8220;Outgoing Mail<br />
Server (SMTP)&#8221;, &#8220;Add&#8230;&#8221;, and either set it as the default or explicitly<br />
set your mail account to use that server. You can then send your mail,<br />
which will potentially (if you use secure authentication with<br />
|mail.example.net|) give you a security warning about |localhost|<br />
presenting a certificate for |mail.example.net|, and then prompt you for<br />
your account password. After you have finished sending all the mails you<br />
want to send, you can then change your outgoing mail server back to the<br />
previous setting, and exit SSH.</p>
<p>To avoid all this hassle, SSH also supports dynamic port forwarding via<br />
SOCKS. SOCKS defines a standard mechanism for a client to connect to a<br />
server by way of a proxy. SSH can serve as the proxy, allowing you to<br />
connect to |shell.example.org| and make connections from there to an<br />
arbitrary server such as |mail.example.net|. Simply run:</p>
<p>ssh -D 1080 shell.example.org</p>
<p>to make the connection to |shell.example.org| and start a SOCKS proxy on<br />
|localhost| port 1080.</p>
<p>In order to make use of the SOCKS proxy, you can either use applications<br />
which can speak SOCKS natively, or you can use a socksifier program like<br />
tsocks. tsocks provides a library used with |LD_PRELOAD|, which replaces<br />
the standard sockets functions like |socket|, |connect|, and |sendto|<br />
with functions that make use of a designated SOCKS proxy. The tsocks<br />
script runs a program with this library loaded. The library will read<br />
|/etc/tsocks.conf| to find out what SOCKS proxy to use. To configure<br />
tsocks to work with an SSH SOCKS proxy on localhost, edit the default<br />
|/etc/tsocks.conf|, change the server variable to 127.0.0.1, and comment<br />
out the path example.</p>
<p>Now that you have tsocks configured, you can run the following whenever<br />
you want to send mail via |mail.example.net|:</p>
<p>ssh -D 1080 shell.example.org<br />
tsocks thunderbird</p>
<p>This will open the SSH-tunnelled SOCKS proxy to |shell.example.org| and<br />
run thunderbird. You can then send mail normally, without changing the<br />
outgoing server configuration, and without seeing any authentication<br />
mismatch warnings.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.fabiolagana.net/ssh-dynamic-port-forwarding-with-soks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->
