
<?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>Linux Tips &#187; proxy</title>
	<atom:link href="http://www.gumularz.net/linux-tips/tag/proxy/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.gumularz.net/linux-tips</link>
	<description>Linux - HowTo, Tips &#38; Tricks, ...</description>
	<lastBuildDate>Fri, 30 Jul 2010 11:09:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>Gdy wredny admin blokuje porty&#8230;</title>
		<link>http://www.gumularz.net/linux-tips/2009/06/gdy-wredny-admin-blokuje-porty/</link>
		<comments>http://www.gumularz.net/linux-tips/2009/06/gdy-wredny-admin-blokuje-porty/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 22:23:49 +0000</pubDate>
		<dc:creator>wgumularz</dc:creator>
				<category><![CDATA[Dodatki do kursów]]></category>
		<category><![CDATA[Tips n' tricks]]></category>
		<category><![CDATA[proxy]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://www.gumularz.net/linux-tips/?p=75</guid>
		<description><![CDATA[Częstą praktyką wśród administratorów jest ograniczanie możliwości "wyjścia na świat" z ich sieci do kilku dobrze znanych portów. Dla ludzi takich jak ja - "zwiedzających" różne sale konferencyjne, hotele itp. bywa to uciążliwe. Brak połączenia z pocztą czy jabberem nie zawsze jestem w stanie zaakceptować :) Na szczęście jest światełko w tunelu...]]></description>
			<content:encoded><![CDATA[<p>Chciałbyś posiedzieć na gadulcu ale firewall nie puszcza? A może często bywasz w siedzibie klienta, z której łaskawie wypuszczają tylko HTTP lub HTTPS? W takim razie witaj w klubie <img src='http://www.gumularz.net/linux-tips/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />   Ja bywam od czasu do czasu w miejscach, w których trzeba zdrowo kombinować żeby spiąć Jabbera albo nawet pocztę sprawdzić. Na szczęście nie wszystkich stać na komercyjne rozwiązania filtrujące ruch i analizujące przepuszczane protokoły i stawiają Squida. Dzięki temu można pokusić się o przetunelowanie praktycznie każdego ruchu na zewnątrz&#8230;<br />
<span id="more-75"></span><br />
<strong>Squid a HTTPS&#8230;.</strong></p>
<p>Przepuszczanie i kontrolowanie ruchu HTTP nie jest specjalnie skomplikowane. Niestety (a może na szczęście) konstrukcja protokołu SSL uniemożliwia wykonanie tego samego z HTTPS&#8217;em. Tak długo jak nie stosuje się metod opartych o &#8216;man in the middle&#8217; &#8211; możemy tylko kontrolować dostęp na poziomie portów i adresów IP. Jedyne co może zrobić Squid w przypadku transmisji HTTPS to zablokować ją lub otworzyć tunel i przepuścić. Standardowa polityka konfiguracji squida opiera się o zdefiniowanie tzw. &#8222;bezpiecznych portów&#8221; dla połączeń metodą CONNECT:</p>
<pre>acl SSLPorts dport 443
acl CONNECT method connect
...
http_access deny CONNECT !SSLPorts
...</pre>
<p>Tłumacząc na ludzki język, Squid blokuje próby zestawienia tunelu na porty inne niż określone w zmiennej SSLPorts. Ponieważ standardowo HTTPS działa na porcie TCP 443 &#8211; ten port jest z reguły przepuszczany bez większych obostrzeń. Można go więc wykorzystać do zbudowania tunelu SSH, jeśli mamy dostęp do serwera SSH działającego na porcie 443.</p>
<p>Serwer OpenSSH może słuchać na dowolnym porcie &#8211; w szczególności 443, wystarczy tylko ustawić dyrektywę &#8216;Port 443&#8242; w pliku /etc/ssh/sshd_config i zrestartować serwer SSH.</p>
<p><strong>Korkociągiem w prosiaka&#8230;.</strong></p>
<p>Jeśli już dysponujemy działającym gdzieś w sieci na porcie 443 serwerem SSH &#8211; możemy zbudować tunel przez proxy. Do tego celu można wykorzystać narzędzie corkscrew, które w imieniu klienta SSH połączy się z proxy i otworzy tunel. Aby oszczędzić sobie ustawiania parametru ProxyCommand przy każdym połączeniu SSH, można utworzyć plik ~/.ssh/.config z następującą zawartością:</p>
<pre>ProxyCommand corkscrew IP.SQ.UI.DA 3128 %h %p</pre>
<p>Na tym etapie można się już logować po SSH do naszego serwera i korzystać z możliwości tunelowania portów, zestawienia proxy SOCKS a nawet kanału VPN&#8230;</p>
<p><strong>Proxy w tunelu przez proxy <img src='http://www.gumularz.net/linux-tips/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </strong></p>
<p>Gdy już nam się uda oszukać proxy i przetunelować SSH &#8222;w świat&#8221;, możemy wykorzystać funkcjonalność SSH do zbudowania proxy SOCKS i przekierować przez nie praktycznie dowolny ruch. W tym celu podczas logowania na nasz serwer SSH należy dodać parametr -D, np.:</p>
<pre>bash$ ssh -D1080  -p443  user@nasz.serwer.ssh -f -N</pre>
<p>Dodatkowe parametry -f -N powodują zestawienie tunelu w tle &#8211; bez przejmowania powłoki na zdalnej maszynie. Teraz pozostaje tylko zmusić aplikacje do wykorzystania naszego proxy. W przypadku aplikacji, które nie posiadają obsługi proxy SOCKS przydatna jest biblioteka tsocks dostępna w podstawowych lub dodatkowych repozytoriach większości dystrybucji linuksowych. Po zainstalowaniu należy utworzyć plik konfiguracyjny /etc/tsocks.conf:</p>
<pre>server = 127.0.0.1
server_port = 1080</pre>
<p>Aby aplikacja wykorzystywała nasz serwer proxy należy ją uruchomić za pośrednictwem polecenia tsocks lub &#8211; w wersji bardziej &#8222;hakierskiej&#8221; z dyrektywą LD_PRELOAD;</p>
<pre>bash$ LD_PRELOAD=/usr/lib/libtsocks.so.1 pidgin</pre>
<p><strong>Mało?</strong></p>
<p>Od niedawna OpenSSH wspiera tworzenie tuneli VPN między wirtualnymi interfejsami TUN &#8211; jak znajdę czasopodwajacz to może przetestuję i opiszę&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gumularz.net/linux-tips/2009/06/gdy-wredny-admin-blokuje-porty/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

