<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>.:: Marcos Dione/StyXman's glob ::. (Posts about piercing)</title><link>https://www.grulic.org.ar/~mdione/glob/</link><description></description><atom:link href="https://www.grulic.org.ar/~mdione/glob/categories/piercing.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2025 &lt;a href="mailto:mdione@grulic.org.ar"&gt;Marcos Dione&lt;/a&gt; </copyright><lastBuildDate>Thu, 29 May 2025 15:41:12 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Socks over ssh</title><link>https://www.grulic.org.ar/~mdione/glob/posts/socks-over-ssh/</link><dc:creator>Marcos Dione</dc:creator><description>&lt;p&gt;Soon I'll be changing jobs, going from one MegaCorp to another. The problem is, my current workplace already
has a silly security policy that does not allow you to use IRC or do HTTP against a dynamic DNS/IP (like the
one at home), but happily lets you use webmails through which you can send anyone the company's IP without
leaving much trace. Furthermore, my next assignment will have stricter Internet policy, so I finally sit
down to see alternatives to have more traffic with the less footprint.&lt;/p&gt;
&lt;p&gt;As I already mentioned, back home I have &lt;code&gt;ssh&lt;/code&gt; listening on port 443 (and the port forwarded from the
router to the server), and this worked for a while. Then these connections were shutdown, so I used &lt;code&gt;stunnel&lt;/code&gt;
on the server and &lt;code&gt;openssl s_client&lt;/code&gt; plus some &lt;code&gt;ssh&lt;/code&gt; config magic to go over that. This allowed me to use
&lt;code&gt;screen&lt;/code&gt; and &lt;code&gt;irssi&lt;/code&gt; to do IRC and that was enough for a while. This meant I could talk to the communities
around the tools and libs we were using.&lt;/p&gt;
&lt;p&gt;But now I plan to change the way I do my mail. So far the setup includes using &lt;code&gt;fetchmail&lt;/code&gt; to bring
everything to that server, then use &lt;code&gt;dovecot&lt;/code&gt; and/or a webmail to check from anywhere. But as ports are
filtered and I already use 443 for &lt;code&gt;ssh&lt;/code&gt;, I can't connect to IMAPS and I don't want to use something like
&lt;code&gt;sslh&lt;/code&gt; to multiple &lt;code&gt;ssh&lt;/code&gt; and &lt;code&gt;https&lt;/code&gt; on the same port because it sounds to ohacky, I turned towards SOCKS
proxying.&lt;/p&gt;
&lt;p&gt;Setting up a SOCKS proxy through &lt;code&gt;ssh&lt;/code&gt; is simple. Most of the tutorials you'll find online use &lt;code&gt;putty&lt;/code&gt;,
but here I'll show how to translate those to the CLI client:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;Host home
    Hostname www.xxx.yyy.zzz  # do not even do a DNS req; the IP is mostly static for me
    Port 443
    ProxyCommand openssl s_client -connect %h:%p -quiet 2&amp;gt;/dev/null
    DynamicForward 9050  # this is the line that gives you a SOCKS proxy
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Then the next step is to configure each of your clients to use it. Most clients have an option for that,
but when not, you need a proxyfier. For instance, even when KDE has a global setting for the SOCKS proxy,
&lt;code&gt;kopete&lt;/code&gt; does not seem to honor it. These proxifyers work by redirecting any &lt;code&gt;connect()&lt;/code&gt;, &lt;code&gt;gethostbyname()&lt;/code&gt;
and most probably others to the SOCKS proxy. One of the best sources for SOCKS configuration is
&lt;a href="https://trac.torproject.org/projects/tor/wiki/doc/TorifyHOWTO/"&gt;TOR's wiki&lt;/a&gt;, which heavily relies on
SOCKS proxies, but right now the proxyfier they suggest (&lt;code&gt;dante-client&lt;/code&gt;) does not install on my Debian
setup, so I went with &lt;code&gt;proxychains&lt;/code&gt;. Its final config is quite simple:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Strict&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;Each&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;connection&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;will&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;be&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;done&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;via&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;chained&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;proxies&lt;/span&gt;
&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ow"&gt;all&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;proxies&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;chained&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ow"&gt;in&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;the&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;order&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;as&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;they&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;appear&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ow"&gt;in&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;the&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;list&lt;/span&gt;
&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ow"&gt;all&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;proxies&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;must&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;be&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;online&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;to&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;play&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ow"&gt;in&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;chain&lt;/span&gt;
&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;otherwise&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;EINTR&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;is&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;returned&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;to&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;the&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;app&lt;/span&gt;
&lt;span class="n"&gt;strict_chain&lt;/span&gt;

&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Proxy&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;DNS&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;no&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;leak&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;DNS&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;data&lt;/span&gt;
&lt;span class="n"&gt;proxy_dns&lt;/span&gt;

&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ow"&gt;Some&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;timeouts&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ow"&gt;in&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;milliseconds&lt;/span&gt;
&lt;span class="n"&gt;tcp_read_time_out&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;15000&lt;/span&gt;
&lt;span class="n"&gt;tcp_connect_time_out&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;8000&lt;/span&gt;

&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;ProxyList&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;
&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;defaults&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;set&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;to&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ss"&gt;"tor"&lt;/span&gt;
&lt;span class="n"&gt;socks5&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="mf"&gt;127.0.0.1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;9050&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;In fact, that's the default config with only one modification: the SOCKS protocol is forced to 5, so we
can do DNS requests with its UDP support.&lt;/p&gt;
&lt;p&gt;With this simple setup I managed to connect to my XMMP server with &lt;code&gt;kopete&lt;/code&gt;, which is already a lot. Next
step will be to figure out the mail setup and I can call this done.&lt;/p&gt;</description><category>piercing</category><category>sysadmin</category><guid>https://www.grulic.org.ar/~mdione/glob/posts/socks-over-ssh/</guid><pubDate>Sun, 09 Aug 2015 17:37:21 GMT</pubDate></item><item><title>Ssl3_Get_Record wrong version number</title><link>https://www.grulic.org.ar/~mdione/glob/posts/SSL3_GET_RECORD-wrong-version-number/</link><dc:creator>Marcos Dione</dc:creator><description>&lt;p&gt;Since I work in MegaCorp I found a new level of security policy; for me this is
a low point: I not only can't &lt;code&gt;ssh&lt;/code&gt; home; since I changed my DynDNS provider from
dym.com to afraid.org, I can't even access my webserver because the proxy denies
me access citing: &lt;code&gt;Your request was denied because of its content categorization:
"Dynamic DNS Host;Suspicious"&lt;/code&gt;. So I can access lots of questionable contents
using Google cache but not my own photos, fine.&lt;/p&gt;
&lt;p&gt;At the beginning, the classical trick of making the &lt;code&gt;ssh&lt;/code&gt; server to listen in the
port 443 worked fine, but at some point Network Operations managed to close that
hole. This change was not communicated, so it's not clear that it was completely
on purpose. I once asked for the Network Usage Policy, if it exists, but the
unofficial answer was on the lines of «I'm not sure you really want to ask».&lt;/p&gt;
&lt;p&gt;So, I managed to pierce the firewall again with a further trick: &lt;a href="https://systemoverlord.com/blog/2011/02/19/ssh-across-a-layer-7-filter/"&gt;wrapping &lt;code&gt;ssh&lt;/code&gt;
traffic in a SSL connection&lt;/a&gt;.
This makes the traffic look like regular &lt;code&gt;https&lt;/code&gt; traffic (remember, the &lt;code&gt;s&lt;/code&gt; stands
for SSL/TLS) but it encrypts the traffic twice.&lt;/p&gt;
&lt;p&gt;Everything was smooth again, until the server crashed due to a lack of power.
After I powered it on again, I found that I couldn't connect anymore. This morning I
decided to take a couple of minutes to figure out why. The &lt;code&gt;ssh&lt;/code&gt; client tells me
this:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;$&lt;span class="w"&gt; &lt;/span&gt;ssh&lt;span class="w"&gt; &lt;/span&gt;-v&lt;span class="w"&gt; &lt;/span&gt;-o&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'ProxyCommand openssl s_client -connect %h:%p -quiet 2&amp;gt;/dev/null'&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-p&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;443&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;foo.afraid.org
OpenSSH_5.1p1&lt;span class="w"&gt; &lt;/span&gt;Debian-5,&lt;span class="w"&gt; &lt;/span&gt;OpenSSL&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;.9.8g&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;19&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;Oct&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;2007&lt;/span&gt;
debug1:&lt;span class="w"&gt; &lt;/span&gt;Reading&lt;span class="w"&gt; &lt;/span&gt;configuration&lt;span class="w"&gt; &lt;/span&gt;data&lt;span class="w"&gt; &lt;/span&gt;/home/user/.ssh/config
debug1:&lt;span class="w"&gt; &lt;/span&gt;Reading&lt;span class="w"&gt; &lt;/span&gt;configuration&lt;span class="w"&gt; &lt;/span&gt;data&lt;span class="w"&gt; &lt;/span&gt;/etc/ssh/ssh_config
debug1:&lt;span class="w"&gt; &lt;/span&gt;Applying&lt;span class="w"&gt; &lt;/span&gt;options&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;*
debug1:&lt;span class="w"&gt; &lt;/span&gt;Executing&lt;span class="w"&gt; &lt;/span&gt;proxy&lt;span class="w"&gt; &lt;/span&gt;command:&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;exec&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;openssl&lt;span class="w"&gt; &lt;/span&gt;s_client&lt;span class="w"&gt; &lt;/span&gt;-connect&lt;span class="w"&gt; &lt;/span&gt;foo.afraid.org:443&lt;span class="w"&gt; &lt;/span&gt;-quiet&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt;&amp;gt;/dev/null
debug1:&lt;span class="w"&gt; &lt;/span&gt;permanently_drop_suid:&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;1004&lt;/span&gt;
debug1:&lt;span class="w"&gt; &lt;/span&gt;identity&lt;span class="w"&gt; &lt;/span&gt;file&lt;span class="w"&gt; &lt;/span&gt;/home/user/.ssh/identity&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;type&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-1
debug1:&lt;span class="w"&gt; &lt;/span&gt;identity&lt;span class="w"&gt; &lt;/span&gt;file&lt;span class="w"&gt; &lt;/span&gt;/home/user/.ssh/id_rsa&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;type&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;
debug1:&lt;span class="w"&gt; &lt;/span&gt;Checking&lt;span class="w"&gt; &lt;/span&gt;blacklist&lt;span class="w"&gt; &lt;/span&gt;file&lt;span class="w"&gt; &lt;/span&gt;/usr/share/ssh/blacklist.RSA-1024
debug1:&lt;span class="w"&gt; &lt;/span&gt;Checking&lt;span class="w"&gt; &lt;/span&gt;blacklist&lt;span class="w"&gt; &lt;/span&gt;file&lt;span class="w"&gt; &lt;/span&gt;/etc/ssh/blacklist.RSA-1024
debug1:&lt;span class="w"&gt; &lt;/span&gt;identity&lt;span class="w"&gt; &lt;/span&gt;file&lt;span class="w"&gt; &lt;/span&gt;/home/user/.ssh/id_dsa&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;type&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-1
ssh_exchange_identification:&lt;span class="w"&gt; &lt;/span&gt;Connection&lt;span class="w"&gt; &lt;/span&gt;closed&lt;span class="w"&gt; &lt;/span&gt;by&lt;span class="w"&gt; &lt;/span&gt;remote&lt;span class="w"&gt; &lt;/span&gt;host
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Not much info, really. Form the server side I have this:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;&lt;span class="n"&gt;SSL_accept&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1408&lt;/span&gt;&lt;span class="n"&gt;F10B&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;error&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;1408&lt;/span&gt;&lt;span class="n"&gt;F10B&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="n"&gt;SSL&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;routines&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="n"&gt;SSL3_GET_RECORD&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="n"&gt;wrong&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;version&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;number&lt;/span&gt;
&lt;span class="n"&gt;Connection&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;reset&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;byte&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;sent&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;to&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;SSL&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;byte&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;sent&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;to&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;socket&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Nice, a cryptic error message, at least for me. Strange enough, &lt;code&gt;openssl&lt;/code&gt; by
itself manages to connect alright:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;$&lt;span class="w"&gt; &lt;/span&gt;openssl&lt;span class="w"&gt; &lt;/span&gt;s_client&lt;span class="w"&gt; &lt;/span&gt;-connect&lt;span class="w"&gt; &lt;/span&gt;foo.afraid.org:443&lt;span class="w"&gt; &lt;/span&gt;-ssl3
CONNECTED&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="m"&gt;00000003&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
&lt;span class="o"&gt;[&lt;/span&gt;...&lt;span class="o"&gt;]&lt;/span&gt;
SSH-2.0-OpenSSH_6.2p2&lt;span class="w"&gt; &lt;/span&gt;Debian-6
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;That's the &lt;code&gt;ssh&lt;/code&gt; server saying hi. After some DDG'ing&lt;sup id="fnref:1"&gt;&lt;a class="footnote-ref" href="https://www.grulic.org.ar/~mdione/glob/posts/SSL3_GET_RECORD-wrong-version-number/#fn:1"&gt;1&lt;/a&gt;&lt;/sup&gt; I find &lt;a href="http://serverfault.com/questions/303090/stunnel-wont-work-with-sslv3-from-some-hosts"&gt;this post in
serverfault&lt;/a&gt;.
The first answer itself is not very helpful, but the second one is actually the
OP saying how he solved it. It's telling &lt;code&gt;stunnel&lt;/code&gt; &lt;a href="https://www.stunnel.org/static/stunnel.html"&gt;to accept any version of SSL
client&lt;/a&gt; while &lt;a href="https://www.openssl.org/docs/ssl/SSL_CTX_set_options.html#NOTES"&gt;telling SSL to ignore
SSLv2&lt;/a&gt;. I don't
understand how it fixes it, but it works, yay!&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;DuckDuckGo is getting better by the day. &lt;a class="footnote-backref" href="https://www.grulic.org.ar/~mdione/glob/posts/SSL3_GET_RECORD-wrong-version-number/#fnref:1" title="Jump back to footnote 1 in the text"&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description><category>piercing</category><category>sysadmin</category><guid>https://www.grulic.org.ar/~mdione/glob/posts/SSL3_GET_RECORD-wrong-version-number/</guid><pubDate>Mon, 02 Dec 2013 08:19:54 GMT</pubDate></item></channel></rss>