<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Francisco David</title>
	
	<link>http://blog.franciscodavid.eu</link>
	<description>Computing, Bioscience and other stuff</description>
	<lastBuildDate>Sun, 08 Apr 2012 15:20:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/FranciscoDavid_all" /><feedburner:info uri="franciscodavid_all" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Google nos toma por tontos</title>
		<link>http://feedproxy.google.com/~r/FranciscoDavid_all/~3/Hg0zxSZ4r1Y/</link>
		<comments>http://blog.franciscodavid.eu/es/2011/08/01/google-nos-toma-por-tontos/#comments</comments>
		<pubDate>Mon, 01 Aug 2011 20:22:50 +0000</pubDate>
		<dc:creator>Francisco David</dc:creator>
				<category><![CDATA[Opinión]]></category>
		<category><![CDATA[búsqueda]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[palabra clave]]></category>
		<category><![CDATA[relevancia]]></category>

		<guid isPermaLink="false">http://blog.franciscodavid.eu/?p=622</guid>
		<description><![CDATA[Google no es lo que era. Lleva tiempo frustrando mis búsquedas inventándose keywords que yo no le escribo. Supongo que cree saber mejor que yo lo que quiero buscar. Pero esta prepotencia, o mejor dicho impertinencia, del buscador ya me &#8230; <a href="http://blog.franciscodavid.eu/es/2011/08/01/google-nos-toma-por-tontos/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Google no es lo que era. Lleva tiempo frustrando mis búsquedas inventándose <em>keywords</em> que yo no le escribo. Supongo que cree saber mejor que yo lo que quiero buscar. Pero esta prepotencia, o mejor dicho impertinencia, del buscador ya me tiene hasta las narices.</p>
<p>Si algo me gustaba de Google en sus inicios era que buscaba <strong>exactamente</strong> aquello que le indicabas. Incluso te permitía buscar frases exactas con el uso de las comillas en las consultas; pero eso ya no es así. Ahora se cree más listo que el usuario inventándose lo que él cree que quisiste decir, incluso entre comillas o con el operador &#8216;+&#8217; precediendo la palabra clave.</p>
<p><span id="more-622"></span>Todo empezó con un simpático &#8220;quizá quiso decir&#8230;&#8221; que sugería posibles errores en tu búsqueda. Con el tiempo, el quizá desapareció misteriosamente quedando el &#8220;quiso decir&#8230;&#8221;, que ya me parece una afirmación demasiado rotunda, más imperativa de lo normal teniendo en cuenta que viene de una máquina refiriéndose a la voluntad de un humano. Más tarde, te aparecían en primer lugar dos o tres impertinentes resultados de la búsqueda que habías querido decir. Pero ahora no sale ni el mensaje de advertencia. Directamente Google busca lo que le da la gana basándose en vete tú a saber qué tipo de algoritmo o intento de <em>estúpida </em>inteligencia artificial.</p>
<p>Google, además de <em>don&#8217;t be evil</em>, deberían recordarte otra cosa: <em>don&#8217;t be pedant.</em></p>
<img src="http://feeds.feedburner.com/~r/FranciscoDavid_all/~4/Hg0zxSZ4r1Y" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.franciscodavid.eu/es/2011/08/01/google-nos-toma-por-tontos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.franciscodavid.eu/es/2011/08/01/google-nos-toma-por-tontos/</feedburner:origLink></item>
				<item>
		<title>Secure port forwarding with SSH</title>
		<link>http://feedproxy.google.com/~r/FranciscoDavid_all/~3/qSR0G2hGVqU/</link>
		<comments>http://blog.franciscodavid.eu/en/2011/02/01/secure-port-forwarding-with-ssh/#comments</comments>
		<pubDate>Tue, 01 Feb 2011 12:00:12 +0000</pubDate>
		<dc:creator>Francisco David</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[port forwarding]]></category>
		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://www.franciscodavid.com/?p=1</guid>
		<description><![CDATA[Sometimes, it&#8217;s desirable to connect to a remote machine running a specific service without enabling it for the whole Internet. This can be done with port forwarding. Port forwarding allows you to bind a local IP socket to a remote &#8230; <a href="http://blog.franciscodavid.eu/en/2011/02/01/secure-port-forwarding-with-ssh/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Sometimes, it&#8217;s desirable to connect to a remote machine running a specific service without enabling it for the whole Internet. This can be done with port forwarding.</p>
<p>Port forwarding allows you to bind a local IP socket to a remote one so that you can access to a service running in the remote machine as you would if it was running on your own computer.</p>
<p>SSH can handle that situation adding a secure layer. It can create an encrypted tunnel to connect the ports and all you need is to have an SSH server running anywhere on the network.</p>
<p><span id="more-258"></span></p>
<h2>A simple case: SSH server running on the remote host<strong></strong></h2>
<p style="text-align: center;"><em>ssh -L [local_IP_address]:local_port:remote_host:remote_port remote_host</em></p>
<p><em>Local_IP_address</em> is an optional parameter that allows you to specify which address you want to use in case your local computer has multiple IP addresses. It&#8217;s important to notice that when you run that command an SSH session will be opened and the port forwarding will be active until you log out from that session.</p>
<h2 style="text-align: justify;">An exotic situation: SSH server on a third machine</h2>
<p>The only restriction on that command is that the <em>remote_host</em> parameter should be a domain the SSH server can resolve or an address the SSH server can reach to. Therefore, you can use an SSH server to bind sockets from other machines. For example, you can access <em>The Linux Kernel Archives</em> from a local port!</p>
<p style="text-align: center;"><em>ssh -L 9090:kernel.org:80 ssh_server</em></p>
<p>Now, open your browser and go to <a href="http://localhost:9090">http://localhost:9090</a>. Are you impressed?</p>
<img src="http://feeds.feedburner.com/~r/FranciscoDavid_all/~4/qSR0G2hGVqU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.franciscodavid.eu/en/2011/02/01/secure-port-forwarding-with-ssh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.franciscodavid.eu/en/2011/02/01/secure-port-forwarding-with-ssh/</feedburner:origLink></item>
				<item>
		<title>La Partitocracia Española</title>
		<link>http://feedproxy.google.com/~r/FranciscoDavid_all/~3/afjS2VTQCAQ/</link>
		<comments>http://blog.franciscodavid.eu/es/2011/01/27/la-partitocracia-espanola/#comments</comments>
		<pubDate>Wed, 26 Jan 2011 23:00:43 +0000</pubDate>
		<dc:creator>Francisco David</dc:creator>
				<category><![CDATA[Opinión]]></category>
		<category><![CDATA[democracia]]></category>
		<category><![CDATA[España]]></category>
		<category><![CDATA[gobierno]]></category>
		<category><![CDATA[partido]]></category>
		<category><![CDATA[política]]></category>

		<guid isPermaLink="false">http://blog.franciscodavid.eu/?p=562</guid>
		<description><![CDATA[¿Quién elige los dirigentes de España? ¿Por qué, sea cual sea el resultado de las elecciones generales, la política de este país parece seguir un camino inescrutable hacia la frustración y el desapego de la ciudadanía con sus instituciones y &#8230; <a href="http://blog.franciscodavid.eu/es/2011/01/27/la-partitocracia-espanola/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>¿Quién elige los dirigentes de España? ¿Por qué, sea cual sea el resultado de las elecciones generales, la política de este país parece seguir un camino inescrutable hacia la frustración y el desapego de la ciudadanía con sus instituciones y órganos políticos?</p>
<p>España ha evolucionado mucho desde los tiempos oscuros de la dictadura y la esperanzadora transición. Ciertamente, hay libertades, pero los acontecimientos que tienen lugar últimamente alrededor de las políticas económica y cultural hacen que me plantee si vivo en un país realmente democrático.</p>
<p>Que un partido socialdemócrata lleve a cabo políticas económicas contrarias a su ideario, con un cambio de discurso y de agenda a media legislatura, es más que sospechoso. Pero lo es más todavía que se empecine en aprobar una ley que no sólo no tiene un apoyo social mayoritario, sino que suscita un rechazo amplio y manifiesto por parte de diferentes sectores de la sociedad.</p>
<p><span id="more-562"></span>Efectivamente, me refiero a la <strong>Ley Sinde</strong>. Y me niego a hablar de un debate entre creadores e internautas. Me niego porque creadores somos todos desde el momento en que dedicamos parte de nuestro tiempo a hacer cosas para los demás, y porque los internautas no son un colectivo definido y con intereses comunes, sino un conjunto de ciudadanos, cada vez mayor, que comparte un punto de encuentro en la Red, pero que se dedica a sus quehaceres cotidianos fuera de ella. Cuando hablamos de internautas englobamos a abogados, escritores, actores, estudiantes, adolescentes, jubilados, emprendedores, informáticos, científicos, profesores&#8230; y así sigue una retahíla de variopintos sustantivos. Personalmente, prefiero ver el asunto como un conflicto entre los beneficiarios de derechos sobre obras intelectuales, que no necesariamente son sus autores —o no sólo—, contra el resto de la sociedad.</p>
<p>La puesta en marcha de un <a title="Acuerdo entre el PSOE, el PP y CiU para resucitar la 'ley Sinde'" href="http://www.elperiodico.com/es/noticias/ocio-y-cultura/20110124/acuerdo-entre-psoe-ciu-para-resucitar-ley-sinde/677533.shtml" target="_blank">acuerdo entre gobierno y oposición</a> para sacar adelante una ley que rechazaría la inmensa mayoría de sus votantes si supieran de qué va el asunto es preocupante. Lo es también descubrir a través de  filtraciones de Wikileaks que nos gobiernan unos <a title="Cablegate / Bono sin pantalones" href="http://www.nacionred.com/acceso-a-informacion/cablegate-bono-sin-pantalones" target="_blank">hipócritas al servicio de EEUU</a> que llegaron al poder criticando el servilismo del anterior gobierno a los intereses norteamericanos e incluso <a title="Zapatero evita honrar la bandera de EEUU en el desfile de la Hispanidad" href="http://www.elperiodicoextremadura.com/noticias/noticia.asp?pkid=76695" target="_blank">despreciando sus símbolos nacionales</a>. Pero lo que más me preocupa es la manera en la que se gobierna en España. El modo mediante el que se llega al poder en este país no es ni transparente, ni mucho menos democrático.</p>
<p>No se puede llamar democracia al simple hecho de dejar en manos de la sociedad la elección entre dos colores como quien escoge las prendas con las que se viste cada mañana. La elección real no es el color, sino quién está detrás de él. ¿Quién elige a los cabezas de lista? ¿Quién decide las opciones que tenemos los ciudadanos a la hora de elegir las alternativas de gobierno? He aquí una explicación. El poder político de España no está en manos del pueblo, sino en mano de los partidos. O mejor dicho, en manos de quienes controlan de facto los partidos políticos.</p>
<p>No me gusta nada la forma en la que <a title="Rubalcaba moviliza al PSOE" href="http://www.elpais.com/articulo/espana/Rubalcaba/moviliza/PSOE/elpepiesp/20110109elpepinac_1/Tes" target="_blank">se está promocionando a Rubalcaba</a> como posible sucesor de Zapatero como candidato por el Partido Socialista. Debería haber unas primarias democráticas y abiertas a cualquier posible candidato, no sólo a los que la dirección del partido diera su visto bueno. Aún menos aceptable es que esa misma dirección escoja a quién podremos elegir los ciudadanos para que el partido pueda seguir llevando a cabo sus políticas reprobables de manera falsamente respaldada por la población.</p>
<p>Hace falta una profunda reforma democrática del sistema político español.  Los partidos políticos actuales son entes demasiado abstractos y poco transparentes. Hay una división demasiado clara entre política y ciudadanía y deberíamos tener un sistema que facilite el paso de la ciudadanía por la vida política y el retorno de los políticos a la vida de los ciudadanos sin poder de manera no traumática. La política no puede ser una profesión. Debe ser el instrumento de la sociedad para ejercer su autogobierno, no el <em>modus</em> <em>vivendi</em> de un gremio de profesionales de los que desconocemos sus intereses particulares y dicen trabajar por el bien de la sociedad. Esa sociedad a la que pretenden representar pero a la que creen que no le deben ningún tipo de explicación ni justificación de sus actos.</p>
<img src="http://feeds.feedburner.com/~r/FranciscoDavid_all/~4/afjS2VTQCAQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.franciscodavid.eu/es/2011/01/27/la-partitocracia-espanola/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.franciscodavid.eu/es/2011/01/27/la-partitocracia-espanola/</feedburner:origLink></item>
				<item>
		<title>How to configure pwsafe properly in Ubuntu Maverick Meerkat</title>
		<link>http://feedproxy.google.com/~r/FranciscoDavid_all/~3/ftHNuxSnTJY/</link>
		<comments>http://blog.franciscodavid.eu/en/2011/01/11/how-to-configure-pwsafe-properly-in-ubuntu-maverick-meerkat/#comments</comments>
		<pubDate>Tue, 11 Jan 2011 16:30:01 +0000</pubDate>
		<dc:creator>Francisco David</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[maverick]]></category>
		<category><![CDATA[memlock]]></category>
		<category><![CDATA[password]]></category>
		<category><![CDATA[pwsafe]]></category>
		<category><![CDATA[random]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.franciscodavid.eu/?p=540</guid>
		<description><![CDATA[pwsafe is a command line application that stores safely your passwords on an encrypted database located at your $HOMEDIR/.pwsafe.dat file. It also suggests random passwords for you to use, and it&#8217;s perfect to store all your passwords at home and &#8230; <a href="http://blog.franciscodavid.eu/en/2011/01/11/how-to-configure-pwsafe-properly-in-ubuntu-maverick-meerkat/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a title="pwsafe homepage" href="http://nsd.dyndns.org/pwsafe/" target="_blank"><em>pwsafe</em></a> is a command line application that stores safely your passwords on an encrypted database located at your <em>$HOMEDIR/.pwsafe.dat</em> file. It also suggests random passwords for you to use, and it&#8217;s perfect to store all your passwords at home and retrieve them using an <em>ssh</em> connection to your personal machine if you need it.</p>
<p>When you install <em>pwsafe</em> on Ubuntu Maverick Meerkat, you need to do a couple of tweaks in order to use the application without these annoying warnings:</p>
<blockquote><p>WARNING: pwsafe unable to seed rng from /home/pressure/.rnd<br />
WARNING: pwsafe unable to use secure ram (need to be setuid root)</p></blockquote>
<p><span id="more-540"></span>To get rid of the first warning, you need to populate a <em>$HOMEDIR/.rnd</em> file with random data. A tip you can read on <em>pwsafe</em> man page is to do that based on the <em>/var/log/*</em> files checksum on your machine. So let&#8217;s do that with the following command:</p>
<p style="text-align: center;"><div id="gist-774748" class="gist">

        <div class="gist-file">
          <div class="gist-data gist-syntax">
              <div class="highlight"><pre><div class='line' id='LC1'>md5sum /var/log/* &gt; ~/.rnd</div></pre></div>
          </div>

          <div class="gist-meta">
            <a href="https://gist.github.com/raw/774748/f1c0958bedd9c2305e3d1674a2aa5f98f69ed021/rndPopulation.sh" style="float:right;">view raw</a>
            <a href="https://gist.github.com/774748#file_rnd_population.sh" style="float:right;margin-right:10px;color:#666">rndPopulation.sh</a>
            <a href="https://gist.github.com/774748">This Gist</a> brought to you by <a href="http://github.com">GitHub</a>.
          </div>
        </div>
</div>
</p>
<p>The first time you execute <em>pwsafe</em>, the content of the <em>.rnd</em> file will be used to build a random seed that will help the application to generate any random passwords you ask for.</p>
<p>Concerning the second warning<em>, pwsafe</em> uses a method implemented in the Linux Kernel to secure the memory it needs and impede it to be swapped into the hard disk. Some time ago, such method required to run the commands as root, but that&#8217;s not the case anymore.</p>
<p>As explained in the <a title="pwsafe and memlock on OpenSUSE" href="https://build.opensuse.org/package/view_file?file=README.SUSE&amp;package=pwsafe&amp;project=home%3Atoganm%3Asecurity&amp;srcmd5=10decd67f12227ed97326776d9222b2e" target="_blank">README file of the SUSE package of <em>pwsafe</em></a>, you should add this two lines to the end of <em>/etc/security/limits.conf</em></p>
<p style="text-align: center;"><div id="gist-774748" class="gist">

        <div class="gist-file">
          <div class="gist-data gist-syntax">
              <div class="highlight"><pre><div class='line' id='LC1'>@users soft memlock 5000</div><div class='line' id='LC2'>@users hard memlock 10000</div></pre></div>
          </div>

          <div class="gist-meta">
            <a href="https://gist.github.com/raw/774748/fc295b72d79c6d3a62cb6abf339ad2bc23192fbf/limits.conf" style="float:right;">view raw</a>
            <a href="https://gist.github.com/774748#file_limits.conf" style="float:right;margin-right:10px;color:#666">limits.conf</a>
            <a href="https://gist.github.com/774748">This Gist</a> brought to you by <a href="http://github.com">GitHub</a>.
          </div>
        </div>
</div>
</p>
<p>and check that every user that will run <em>pwsafe</em> belongs to the <em>users</em> group. Now log off and log in again with your username and there should not be any warning when you execute the <em>pwsafe</em> command.</p>
<p>And remember that it&#8217;s also convenient to make regular backups of your <em>.pwsafe.dat</em> file!</p>
<img src="http://feeds.feedburner.com/~r/FranciscoDavid_all/~4/ftHNuxSnTJY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.franciscodavid.eu/en/2011/01/11/how-to-configure-pwsafe-properly-in-ubuntu-maverick-meerkat/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.franciscodavid.eu/en/2011/01/11/how-to-configure-pwsafe-properly-in-ubuntu-maverick-meerkat/</feedburner:origLink></item>
				<item>
		<title>Reaching services over HTTP with HTTPtunnel</title>
		<link>http://feedproxy.google.com/~r/FranciscoDavid_all/~3/aHB6q1TUV6I/</link>
		<comments>http://blog.franciscodavid.eu/en/2010/11/21/reaching-services-over-http-with-httptunnel/#comments</comments>
		<pubDate>Sun, 21 Nov 2010 13:35:13 +0000</pubDate>
		<dc:creator>Francisco David</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[firewall]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[httptunnel]]></category>
		<category><![CDATA[port]]></category>
		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://blog.franciscodavid.eu/?p=533</guid>
		<description><![CDATA[Having some ports closed is very common in public wireless networks. For example, when I&#8217;m at University I&#8217;m able to use only a small set of ports like 80 (HTTP) and 443 (HTTPS). Sometimes you need to connect to web &#8230; <a href="http://blog.franciscodavid.eu/en/2010/11/21/reaching-services-over-http-with-httptunnel/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Having some ports closed is very common in public wireless networks. For example, when I&#8217;m at University I&#8217;m able to use only a small set of ports like 80 (HTTP) and 443 (HTTPS). Sometimes you need to connect to web servers listening on rare ports such as 8080. In this cases <a title="HTTPtunnel official site" href="http://www.nocrew.org/software/httptunnel.html" target="_blank">HTTPtunnel</a> may be a good application to solve this problem.</p>
<p>HTTPtunnel consists of two small programs, a server called <em>hts</em> and its client <em>htc</em>. Imagine you need to reach your SSH home server, but you are not allowed to connect to services on port 22. However you may have access to services running on port 21, such as an FTP server, or port 80 like web servers.</p>
<p><span id="more-533"></span>On the server side you should configure the <em>hts</em> server like this:</p>
<p style="text-align: center;"><em>hts -F localhost:22 80</em></p>
<p>Now, you can access the SSH port through the web server&#8217;s one, but you need to configure the client side with a command like:</p>
<p style="text-align: center;"><em>htc -F 10022 example.com:80</em></p>
<p>If you connect to your local 10022 port, htc will redirect the traffic to your server&#8217;s port 80 simulating an HTTP connection.</p>
<p style="text-align: center;"><em>ssh -p 10022 user@localhost</em></p>
<p>That&#8217;s it! HTTPtunnel has available Debian and Ubuntu packages in its official repositories, so you shouldn&#8217;t have many problems installing it. In MacOS X, you can install HTTPtunnel through <a title="Homebrew, The missing package manager for OS X" href="http://mxcl.github.com/homebrew/" target="_blank">Homebrew</a>.</p>
<img src="http://feeds.feedburner.com/~r/FranciscoDavid_all/~4/aHB6q1TUV6I" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.franciscodavid.eu/en/2010/11/21/reaching-services-over-http-with-httptunnel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.franciscodavid.eu/en/2010/11/21/reaching-services-over-http-with-httptunnel/</feedburner:origLink></item>
				<item>
		<title>La Neutralidad de la Red (II): Los contenidos y la parte por el todo</title>
		<link>http://feedproxy.google.com/~r/FranciscoDavid_all/~3/EqCaMsSy-WQ/</link>
		<comments>http://blog.franciscodavid.eu/es/2010/08/16/la-neutralidad-de-la-red-ii-los-contenidos-y-la-parte-por-el-todo/#comments</comments>
		<pubDate>Mon, 16 Aug 2010 06:30:54 +0000</pubDate>
		<dc:creator>Francisco David</dc:creator>
				<category><![CDATA[Opinión]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[neutralidad de la red]]></category>
		<category><![CDATA[red]]></category>

		<guid isPermaLink="false">http://blog.franciscodavid.eu/?p=518</guid>
		<description><![CDATA[Cuando se nombra Internet, automáticamente uno visualiza una cantidad inmensa de sitios en los que podemos encontrar contenido muy diverso. Google, Youtube, Spotify, Facebook, The Pirate Bay&#8230; Pero ello no quiere decir que Internet sea una colección de sitios con &#8230; <a href="http://blog.franciscodavid.eu/es/2010/08/16/la-neutralidad-de-la-red-ii-los-contenidos-y-la-parte-por-el-todo/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Cuando se nombra Internet, automáticamente uno visualiza una cantidad inmensa de sitios en los que podemos encontrar contenido muy diverso. Google, Youtube, Spotify, Facebook, The Pirate Bay&#8230; Pero ello no quiere decir que Internet <em>sea</em> una colección de sitios con contenido audiovisual. Ante todo, la Red es una infraestructura de telecomunicaciones que sirve para emitir, transmitir y recibir información.</p>
<p><span id="more-518"></span>Los proveedores de acceso a Internet son conscientes del poder que tienen en sus manos. Ellos deciden en primer lugar de dónde a dónde llega la información estableciendo sus redes allí donde les resulta más rentable. Esto es legítimo, ya que están para hacer negocio con las comunicaciones. El problema surge cuando quieren ir un paso más allá, cuando pretenden controlar qué información transmiten a través de las redes que mantienen. Esto no es ni más ni menos que censura. Y cuando lo que quieren es simplemente reclamar su derecho de pernada y permitir o no el paso de información a cambio de alguna contraprestación económica tiene un nombre no más bonito, soborno.</p>
<p>Las redes de comunicaciones deben seguir siendo independientes de los contenidos que por ella circulan. Los operadores no deben preocuparse de qué circula por sus cables, es más, deben garantizar que se facilitará igual trato a cualquier tipo de contenido. Las infraestructuras de telecomunicaciones deben ser neutrales en este sentido. Para saber si los contenidos son legítimos o no, está la justicia. Y para respetar y mantener a sus clientes deben garantizar los derechos de secreto de las telecomunicaciones y de la libertad de información.</p>
<p>Este vídeo que he encontrado resume muy bien lo que, para mí, es la neutralidad de la red.</p>
<span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='584' height='359' src='http://www.youtube.com/embed/GMD_T7ICL0o?version=3&amp;rel=1&amp;fs=1&amp;showsearch=0&amp;showinfo=1&amp;iv_load_policy=1&amp;wmode=transparent' frameborder='0'></iframe></span>
<img src="http://feeds.feedburner.com/~r/FranciscoDavid_all/~4/EqCaMsSy-WQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.franciscodavid.eu/es/2010/08/16/la-neutralidad-de-la-red-ii-los-contenidos-y-la-parte-por-el-todo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.franciscodavid.eu/es/2010/08/16/la-neutralidad-de-la-red-ii-los-contenidos-y-la-parte-por-el-todo/</feedburner:origLink></item>
				<item>
		<title>La Neutralidad de la Red: la propiedad y la explotación de las redes</title>
		<link>http://feedproxy.google.com/~r/FranciscoDavid_all/~3/PFZ2CSms2Oc/</link>
		<comments>http://blog.franciscodavid.eu/es/2010/08/15/la-neutralidad-de-la-red-la-propiedad-y-la-explotacion-de-las-redes/#comments</comments>
		<pubDate>Sun, 15 Aug 2010 15:37:48 +0000</pubDate>
		<dc:creator>Francisco David</dc:creator>
				<category><![CDATA[Opinión]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[neutralidad de la red]]></category>
		<category><![CDATA[red]]></category>

		<guid isPermaLink="false">http://blog.franciscodavid.eu/?p=504</guid>
		<description><![CDATA[El asunto de la Neutralidad de la Red vuelve a estar calentito en estos días de verano. El acuerdo entre Google y Verizon no ha gustado mucho a los colectivos más comprometidos con los ciberderechos y ya resulta evidente la &#8230; <a href="http://blog.franciscodavid.eu/es/2010/08/15/la-neutralidad-de-la-red-la-propiedad-y-la-explotacion-de-las-redes/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>El asunto de la Neutralidad de la Red vuelve a estar calentito en estos días de verano. El <a title="Lluvia de críticas a Google y Verizon por su postura 'contra la neutralidad de la Red'" href="http://www.elmundo.es/elmundo/2010/08/10/navegante/1281424726.html" target="_blank">acuerdo entre Google y Verizon</a> no ha gustado mucho a los colectivos más comprometidos con los ciberderechos y ya resulta evidente la necesidad de regular el funcionamiento de Internet. Una red que sólo puede estar fundamentada en tres principios. La neutralidad de las infraestructuras, la libertad de información y el secreto de las telecomunicaciones. Cualquier otra cosa, destruiría la red global tal y como la conocemos hoy en día.</p>
<p><span id="more-504"></span>Al transitar por una autopista, seguimos unas normas de circulación. Nadie espera que la empresa concesionaria establezca los límites de velocidad, ni que otorgue &#8220;a dedo&#8221; las prioridades de circulación a los vehículos que se mueven por sus vías. De la misma manera, no podemos dejar la regulación de las redes de telecomunicaciones en manos de las empresas que las gestionan.</p>
<p>A menudo, los operadores de dichas infraestructuras se refieren a ellas como &#8220;nuestras redes&#8221;. Tal es el caso de unas desafortunadas declaraciones de César Alierta, presidente de Telefónica.</p>
<blockquote><p><a title="&quot;lo que es evidente es que los buscadores de Internet utilizan nuestras redes sin pagarnos nada, lo cual es una suerte para ellos y una desgracia para nosotros. Pero esto no puede seguir así. Las redes, las facturas, los sistemas, la atención al cliente, el servicio post-venta, la instalación... Todo lo hacemos nosotros, lo hacemos todo. Hasta los contenidos los hacemos nosotros&quot;" href="http://www.publico.es/ciencias/292654/buscadores/utilizan/redes/pagarnos/cambiar" target="_blank">Los buscadores utilizan nuestras redes sin pagarnos y eso tiene que cambiar</a></p></blockquote>
<p>La cuestión es que los que pagamos somos los abonados a los operadores de red. Y los buscadores, si no pagan su conexión, es simplemente porque durante mucho tiempo a los operadores de las redes les ha beneficiado contar con sus servicios para captar clientes. Lo que no se puede consentir de ninguna de las maneras es que pretendan cobrarnos por un lado a los consumidores de información y por otro lado a los productores de esa misma información. Es decir, cobrar dos veces por lo mismo bajo el pretexto de que la propiedad de las redes es de alguien. Las redes son un servicio público y quienes las gestionan deben velar por su correcto funcionamiento, no apropiarse de ellas indebidamente.</p>
<p>Eso de cobrar dos veces por lo mismo resulta muy tentador para las compañías gestoras de las redes de telecomunicaciones. Hasta el punto que ya prevén hacerlo mediante el <a title="Se trata de una estación base miniaturizada al tamaño de un router que proporciona cobertura 3G en sus proximidades. El servicio, que utiliza la línea ADSL para transportar el tráfico de voz y datos de los dispositivos conectados a ella, tendrá un precio de 15 € al mes." href="http://bandaancha.eu/articulo/7283/vodafone-introduce-femtoceldas-espana-15-mes" target="_blank">uso de las femtoceldas</a>. Tú, que tienes contratada una línea ADSL con un ancho de banda irrisorio por el módico precio de un ojo de tu cara, pones una antenita en el salón de tu casa para tener cobertura 3G en tu móvil y realizar llamadas y conectarte a Internet a través de la señal 3G que tú mismo estás irradiando en tu hogar. Es decir, les realquilas gratis tu conexión a Internet para que ellos te vuelvan a cobrar por realizar llamadas sobre una infraestructura que ya estás pagando por otro lado.</p>
<p>La ingeniería financiera que nos llevó a una grave crisis económica no es nada en comparación con algunos modelos de negocio <em>excesivamente creativos</em>.</p>
<img src="http://feeds.feedburner.com/~r/FranciscoDavid_all/~4/PFZ2CSms2Oc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.franciscodavid.eu/es/2010/08/15/la-neutralidad-de-la-red-la-propiedad-y-la-explotacion-de-las-redes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.franciscodavid.eu/es/2010/08/15/la-neutralidad-de-la-red-la-propiedad-y-la-explotacion-de-las-redes/</feedburner:origLink></item>
				<item>
		<title>Using SCP Port Knocking Remote Hosts</title>
		<link>http://feedproxy.google.com/~r/FranciscoDavid_all/~3/CTqLuW_aZ3A/</link>
		<comments>http://blog.franciscodavid.eu/en/2010/08/03/using-scp-port-knocking-remote-hosts/#comments</comments>
		<pubDate>Tue, 03 Aug 2010 16:48:50 +0000</pubDate>
		<dc:creator>Francisco David</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[port knocking]]></category>
		<category><![CDATA[scp]]></category>

		<guid isPermaLink="false">http://blog.franciscodavid.eu/?p=489</guid>
		<description><![CDATA[The scripts I posted to open SSH connections through port knocking are very useful to me. But when it comes to transferring files with SCP, port knocking is a nightmare. So I&#8217;ve done a similar bash function that automatically deals &#8230; <a href="http://blog.franciscodavid.eu/en/2010/08/03/using-scp-port-knocking-remote-hosts/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The <a title=" Port Knocking The Easy Way" href="http://blog.franciscodavid.eu/2010/08/02/port-knocking-the-easy-way/" target="_self">scripts I posted to open SSH connections</a> through port knocking are very useful to me. But when it comes to transferring files with SCP, port knocking is a nightmare. So I&#8217;ve done a similar bash function that automatically deals with the knocks before starting the scp command.</p>
<p>I&#8217;ve introduced a delay of 0.5 seconds between the knocks, because I noticed that sometimes the server was not responding to the knocks. The gist code available at GitHub for the <a href="https://gist.github.com/504499#file_pssh.sh">pssh()</a> bash function has also been updated with the delay.</p>
<p><span id="more-489"></span>
<p style="text-align: center;"><div id="gist-504499" class="gist">

        <div class="gist-file">
          <div class="gist-data gist-syntax">
              <div class="highlight"><pre><div class='line' id='LC1'><span class="c">#!/bin/bash</span></div><div class='line' id='LC2'><br/></div><div class='line' id='LC3'><span class="c"># SCP Connection Port Knocker</span></div><div class='line' id='LC4'><span class="c">#</span></div><div class='line' id='LC5'><span class="c"># 1 - Append this code to your .bashrc or .bash_profile file</span></div><div class='line' id='LC6'><span class="c"># 2 - Create a .portknocks file in your home directory with a list like</span></div><div class='line' id='LC7'><span class="c"># host1 port1</span></div><div class='line' id='LC8'><span class="c"># host1 port2</span></div><div class='line' id='LC9'><span class="c"># ...</span></div><div class='line' id='LC10'><span class="c"># host1 portN</span></div><div class='line' id='LC11'><span class="c"># host2 port1</span></div><div class='line' id='LC12'><span class="c"># ...</span></div><div class='line' id='LC13'><span class="c"># 3 - You must open a new terminal session to use the new function</span></div><div class='line' id='LC14'><span class="c"># 4 - Use it as you would use the ssh command</span></div><div class='line' id='LC15'><span class="c"># scp user@server:~/hello ~/hello =&gt; psscp user@server:~/hello ~/hello</span></div><div class='line' id='LC16'><span class="c">#</span></div><div class='line' id='LC17'><span class="c"># It accepts the usual options of the SCP program</span></div><div class='line' id='LC18'><br/></div><div class='line' id='LC19'>psscp<span class="o">()</span> <span class="o">{</span></div><div class='line' id='LC20'>&nbsp;&nbsp;<span class="k">while </span><span class="nb">getopts</span> <span class="s2">&quot;dfl:prtvBCc:i:P:q1246S:o:F:&quot;</span> FLAG</div><div class='line' id='LC21'>&nbsp;&nbsp;<span class="k">do</span></div><div class='line' id='LC22'><span class="nb">true</span></div><div class='line' id='LC23'><span class="k">done</span></div><div class='line' id='LC24'><br/></div><div class='line' id='LC25'><span class="nv">j</span><span class="o">=</span><span class="nv">$OPTIND</span></div><div class='line' id='LC26'>&nbsp;&nbsp;<span class="k">while</span> <span class="o">[</span> <span class="k">${</span><span class="p">@:</span><span class="nv">$j</span><span class="p">:</span><span class="nv">1</span><span class="k">}</span> <span class="o">]</span></div><div class='line' id='LC27'>&nbsp;&nbsp;<span class="k">do</span></div><div class='line' id='LC28'><span class="nv">HOST</span><span class="o">=</span><span class="k">${</span><span class="p">@:</span><span class="nv">$j</span><span class="p">:</span><span class="nv">1</span><span class="k">}</span></div><div class='line' id='LC29'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="nv">HOST</span><span class="o">=</span><span class="k">${</span><span class="nv">HOST</span><span class="p">#*@</span><span class="k">}</span></div><div class='line' id='LC30'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="nv">HOST</span><span class="o">=</span><span class="k">${</span><span class="nv">HOST</span><span class="p">%:*</span><span class="k">}</span></div><div class='line' id='LC31'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">if</span> <span class="o">[</span> <span class="s2">&quot;$HOST&quot;</span> !<span class="o">=</span> <span class="s2">&quot;.&quot;</span> <span class="o">]</span> <span class="o">&amp;&amp;</span> <span class="o">[</span> <span class="s2">&quot;$HOST&quot;</span> !<span class="o">=</span> <span class="s2">&quot;..&quot;</span> <span class="o">]</span></div><div class='line' id='LC32'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">then</span></div><div class='line' id='LC33'><span class="nv">HOSTS</span><span class="o">=</span><span class="s2">&quot;${HOSTS}${HOST}\n&quot;</span></div><div class='line' id='LC34'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">fi</span></div><div class='line' id='LC35'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="o">((</span>j++<span class="o">))</span></div><div class='line' id='LC36'>&nbsp;&nbsp;<span class="k">done</span></div><div class='line' id='LC37'><br/></div><div class='line' id='LC38'><span class="nb">echo</span> -e <span class="nv">$HOSTS</span> | sort -u | <span class="se">\</span></div><div class='line' id='LC39'>&nbsp;&nbsp;<span class="k">while </span><span class="nb">read </span>HOST</div><div class='line' id='LC40'>&nbsp;&nbsp;<span class="k">do</span></div><div class='line' id='LC41'><span class="k">if</span> <span class="o">[</span> <span class="nv">$HOST</span> <span class="o">]</span></div><div class='line' id='LC42'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">then</span></div><div class='line' id='LC43'><span class="nv">CNT</span><span class="o">=</span>1</div><div class='line' id='LC44'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cat ~/.portknocks | grep ^<span class="nv">$HOST</span> | awk <span class="s1">&#39;{ for(i=2; i &lt;= NF; i++) printf &quot;%s\n&quot;, $i}&#39;</span> | <span class="se">\</span></div><div class='line' id='LC45'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">while </span><span class="nb">read </span>PORT</div><div class='line' id='LC46'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">do</span></div><div class='line' id='LC47'><span class="nb">echo</span> <span class="s2">&quot;Knocking $HOST ($CNT)&quot;</span></div><div class='line' id='LC48'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nc -w 1 <span class="nv">$HOST</span> <span class="nv">$PORT</span> &amp; sleep 0.5 <span class="o">&amp;&amp;</span></div><div class='line' id='LC49'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="o">((</span>CNT++<span class="o">))</span></div><div class='line' id='LC50'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">done</span></div><div class='line' id='LC51'><span class="k">fi</span></div><div class='line' id='LC52'><span class="k">done</span></div><div class='line' id='LC53'><br/></div><div class='line' id='LC54'>scp <span class="nv">$*</span></div><div class='line' id='LC55'><span class="o">}</span></div></pre></div>
          </div>

          <div class="gist-meta">
            <a href="https://gist.github.com/raw/504499/4ece9397b7b08e22d5ba7cf157bd5594803450db/psscp.sh" style="float:right;">view raw</a>
            <a href="https://gist.github.com/504499#file_psscp.sh" style="float:right;margin-right:10px;color:#666">psscp.sh</a>
            <a href="https://gist.github.com/504499">This Gist</a> brought to you by <a href="http://github.com">GitHub</a>.
          </div>
        </div>
</div>
</p>
<img src="http://feeds.feedburner.com/~r/FranciscoDavid_all/~4/CTqLuW_aZ3A" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.franciscodavid.eu/en/2010/08/03/using-scp-port-knocking-remote-hosts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.franciscodavid.eu/en/2010/08/03/using-scp-port-knocking-remote-hosts/</feedburner:origLink></item>
				<item>
		<title>Port Knocking The Easy Way</title>
		<link>http://feedproxy.google.com/~r/FranciscoDavid_all/~3/flNABR2LvXo/</link>
		<comments>http://blog.franciscodavid.eu/en/2010/08/02/port-knocking-the-easy-way/#comments</comments>
		<pubDate>Mon, 02 Aug 2010 11:23:55 +0000</pubDate>
		<dc:creator>Francisco David</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[iptables]]></category>
		<category><![CDATA[port knocking]]></category>
		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://blog.franciscodavid.eu/?p=8</guid>
		<description><![CDATA[I had implemented port knocking before with linux daemons and knocking clients but this requires installing software that is always running and consuming memory and processor resources. If you are using a Virtual Private Server –as I am–, you can&#8217;t &#8230; <a href="http://blog.franciscodavid.eu/en/2010/08/02/port-knocking-the-easy-way/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I had implemented port knocking before with linux daemons and knocking clients but this requires installing software that is always running and consuming memory and processor resources. If you are using a Virtual Private Server –as I am–, you can&#8217;t afford to waste a single megabyte of memory. Therefore, you begin looking for creative alternatives that minimize the load on the server.</p>
<p>Some time ago, I found a curious implementation of port knocking using iptables. So, if you already have iptables installed on your (virtual) machine, you can get rid of an always-running daemon.</p>
<p><span id="more-30"></span>You can find the original script <a title="Debian-Administration.org - Multiple-port knocking Netfilter/IPtables only implementation" href="http://www.debian-administration.org/articles/268" target="_blank">here</a>, or get the more complete script I&#8217;ve made.</p>
<p style="text-align: center;"><div id="gist-504499" class="gist">

        <div class="gist-file">
          <div class="gist-data gist-syntax">
              <div class="highlight"><pre><div class='line' id='LC1'><span class="c">#!/bin/bash</span></div><div class='line' id='LC2'><br/></div><div class='line' id='LC3'><span class="c">#</span></div><div class='line' id='LC4'><span class="c"># Port Knocking server configuration. It closes all ports but the webserver one.</span></div><div class='line' id='LC5'><span class="c"># When the correct sequence of ports is detected (1000. 2000. 3000. 4000), the</span></div><div class='line' id='LC6'><span class="c"># SSH port is opened for 5 seconds to allow connections.</span></div><div class='line' id='LC7'><span class="c">#</span></div><div class='line' id='LC8'><br/></div><div class='line' id='LC9'><span class="c"># Erase all the rules</span></div><div class='line' id='LC10'>iptables -F</div><div class='line' id='LC11'><br/></div><div class='line' id='LC12'><span class="c"># Close all incoming connections</span></div><div class='line' id='LC13'>iptables -P INPUT DROP</div><div class='line' id='LC14'>iptables -P OUTPUT ACCEPT</div><div class='line' id='LC15'>iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT</div><div class='line' id='LC16'>iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT</div><div class='line' id='LC17'><br/></div><div class='line' id='LC18'><br/></div><div class='line' id='LC19'><span class="c"># Open the web server port to the public</span></div><div class='line' id='LC20'>iptables -A INPUT -m state --state NEW -p TCP --dport 80 -j ACCEPT</div><div class='line' id='LC21'><br/></div><div class='line' id='LC22'><span class="c"># Allow the loopback interface (mysql, ...)</span></div><div class='line' id='LC23'>iptables -A INPUT -i lo -j ACCEPT</div><div class='line' id='LC24'><br/></div><div class='line' id='LC25'><br/></div><div class='line' id='LC26'><span class="c"># Port Knocking</span></div><div class='line' id='LC27'><span class="c">###############</span></div><div class='line' id='LC28'><span class="c"># Original Script http://pub.ligatura.org/fs/netfilter/misc/portknock_multi</span></div><div class='line' id='LC29'><span class="c">#</span></div><div class='line' id='LC30'><span class="c"># Netfilter/IPtables - example of multiple-port knocking</span></div><div class='line' id='LC31'><span class="c"># Note: Knock ports to open SSH port for 5 seconds.</span></div><div class='line' id='LC32'><br/></div><div class='line' id='LC33'>iptables -N INTO-PHASE2</div><div class='line' id='LC34'>iptables -A INTO-PHASE2 -m recent --name PHASE1 --remove</div><div class='line' id='LC35'>iptables -A INTO-PHASE2 -m recent --name PHASE2 --set</div><div class='line' id='LC36'>iptables -A INTO-PHASE2 -j LOG --log-prefix <span class="s2">&quot;INTO PHASE2: &quot;</span></div><div class='line' id='LC37'><br/></div><div class='line' id='LC38'>iptables -N INTO-PHASE3</div><div class='line' id='LC39'>iptables -A INTO-PHASE3 -m recent --name PHASE2 --remove</div><div class='line' id='LC40'>iptables -A INTO-PHASE3 -m recent --name PHASE3 --set</div><div class='line' id='LC41'>iptables -A INTO-PHASE3 -j LOG --log-prefix <span class="s2">&quot;INTO PHASE3: &quot;</span></div><div class='line' id='LC42'><br/></div><div class='line' id='LC43'>iptables -N INTO-PHASE4</div><div class='line' id='LC44'>iptables -A INTO-PHASE4 -m recent --name PHASE3 --remove</div><div class='line' id='LC45'>iptables -A INTO-PHASE4 -m recent --name PHASE4 --set</div><div class='line' id='LC46'>iptables -A INTO-PHASE4 -j LOG --log-prefix <span class="s2">&quot;INTO PHASE4: &quot;</span></div><div class='line' id='LC47'><br/></div><div class='line' id='LC48'>iptables -A INPUT -m recent --update --name PHASE1</div><div class='line' id='LC49'><br/></div><div class='line' id='LC50'>iptables -A INPUT -p tcp --dport 1000 -m recent --set --name PHASE1</div><div class='line' id='LC51'>iptables -A INPUT -p tcp --dport 2000 -m recent --rcheck --name PHASE1 -j INTO-PHASE2</div><div class='line' id='LC52'>iptables -A INPUT -p tcp --dport 3000 -m recent --rcheck --name PHASE2 -j INTO-PHASE3</div><div class='line' id='LC53'>iptables -A INPUT -p tcp --dport 4000 -m recent --rcheck --name PHASE3 -j INTO-PHASE4</div><div class='line' id='LC54'><br/></div><div class='line' id='LC55'>iptables -A INPUT -p tcp --dport 22 -m recent --rcheck --seconds 5 --name PHASE4 -j ACCEPT</div></pre></div>
          </div>

          <div class="gist-meta">
            <a href="https://gist.github.com/raw/504499/b29c7673d3aaac73c33800b476d1ff0f9188ec2a/doorman.sh" style="float:right;">view raw</a>
            <a href="https://gist.github.com/504499#file_doorman.sh" style="float:right;margin-right:10px;color:#666">doorman.sh</a>
            <a href="https://gist.github.com/504499">This Gist</a> brought to you by <a href="http://github.com">GitHub</a>.
          </div>
        </div>
</div>
</p>
<p>On the client side, I use a small bash function that performs the knocks and connects to the SSH server. The only requirement it needs is the netcat utility.</p>
<p style="text-align: center;"><div id="gist-504499" class="gist">

        <div class="gist-file">
          <div class="gist-data gist-syntax">
              <div class="highlight"><pre><div class='line' id='LC1'><span class="c">#!/bin/bash</span></div><div class='line' id='LC2'><br/></div><div class='line' id='LC3'><span class="c"># SSH Connection Port Knocker</span></div><div class='line' id='LC4'><span class="c">#</span></div><div class='line' id='LC5'><span class="c"># 1 - Append this code to your .bashrc or .bash_profile file</span></div><div class='line' id='LC6'><span class="c"># 2 - Create a .portknocks file in your home directory with a list like</span></div><div class='line' id='LC7'><span class="c"># host1 port1</span></div><div class='line' id='LC8'><span class="c"># host1 port2</span></div><div class='line' id='LC9'><span class="c"># ...</span></div><div class='line' id='LC10'><span class="c"># host1 portN</span></div><div class='line' id='LC11'><span class="c"># host2 port1</span></div><div class='line' id='LC12'><span class="c"># ...</span></div><div class='line' id='LC13'><span class="c"># 3 - You must open a new terminal session to use the new function</span></div><div class='line' id='LC14'><span class="c"># 4 - Use it as you would use the ssh command</span></div><div class='line' id='LC15'><span class="c"># ssh user@server =&gt; pssh user@server</span></div><div class='line' id='LC16'><span class="c">#</span></div><div class='line' id='LC17'><span class="c"># It accepts the usual options of the SSH program</span></div><div class='line' id='LC18'><br/></div><div class='line' id='LC19'>pssh<span class="o">()</span> <span class="o">{</span></div><div class='line' id='LC20'><br/></div><div class='line' id='LC21'>&nbsp;&nbsp;<span class="k">while </span><span class="nb">getopts</span> <span class="s2">&quot;1246ab:c:e:fgi:kl:m:no:p:qstvxACD:F:I:KL:MNO:PR:S:TVw:W:XYy&quot;</span> FLAG</div><div class='line' id='LC22'>&nbsp;&nbsp;<span class="k">do</span></div><div class='line' id='LC23'><span class="nb">true</span></div><div class='line' id='LC24'><span class="k">done</span></div><div class='line' id='LC25'><br/></div><div class='line' id='LC26'><span class="nv">HOST</span><span class="o">=</span><span class="k">${</span><span class="p">@:</span><span class="nv">$OPTIND</span><span class="p">:</span><span class="nv">1</span><span class="k">}</span></div><div class='line' id='LC27'>&nbsp;&nbsp;<span class="nv">HOST</span><span class="o">=</span><span class="k">${</span><span class="nv">HOST</span><span class="p">#*@</span><span class="k">}</span></div><div class='line' id='LC28'>&nbsp;&nbsp;<span class="nv">CNT</span><span class="o">=</span>1</div><div class='line' id='LC29'><br/></div><div class='line' id='LC30'>&nbsp;&nbsp;cat ~/.portknocks | grep ^<span class="nv">$HOST</span> | awk <span class="s1">&#39;{ for(i=2; i &lt;= NF; i++) printf &quot;%s\n&quot;, $i}&#39;</span> | <span class="se">\</span></div><div class='line' id='LC31'>&nbsp;&nbsp;<span class="k">while </span><span class="nb">read </span>PORT</div><div class='line' id='LC32'>&nbsp;&nbsp;<span class="k">do</span></div><div class='line' id='LC33'><span class="nb">echo</span> <span class="s2">&quot;Knocking $HOST ($CNT)&quot;</span></div><div class='line' id='LC34'>&nbsp;&nbsp;&nbsp;&nbsp;nc -w 1 <span class="nv">$HOST</span> <span class="nv">$PORT</span> &amp; sleep 0.5 <span class="o">&amp;&amp;</span></div><div class='line' id='LC35'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="o">((</span>CNT++<span class="o">))</span></div><div class='line' id='LC36'>&nbsp;&nbsp;<span class="k">done</span></div><div class='line' id='LC37'><br/></div><div class='line' id='LC38'>ssh <span class="nv">$*</span></div><div class='line' id='LC39'><span class="o">}</span></div></pre></div>
          </div>

          <div class="gist-meta">
            <a href="https://gist.github.com/raw/504499/851babfd593caf07b5e8e11d98121e3a0dd4c55d/pssh.sh" style="float:right;">view raw</a>
            <a href="https://gist.github.com/504499#file_pssh.sh" style="float:right;margin-right:10px;color:#666">pssh.sh</a>
            <a href="https://gist.github.com/504499">This Gist</a> brought to you by <a href="http://github.com">GitHub</a>.
          </div>
        </div>
</div>
</p>
<p>Enjoy it!</p>
<img src="http://feeds.feedburner.com/~r/FranciscoDavid_all/~4/flNABR2LvXo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.franciscodavid.eu/en/2010/08/02/port-knocking-the-easy-way/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.franciscodavid.eu/en/2010/08/02/port-knocking-the-easy-way/</feedburner:origLink></item>
				<item>
		<title>Academic Earth: asiste a las mejores universidades del mundo desde tu casa</title>
		<link>http://feedproxy.google.com/~r/FranciscoDavid_all/~3/CS49LdtQbAM/</link>
		<comments>http://blog.franciscodavid.eu/es/2010/03/21/academic-earth-asiste-a-las-mejores-universidades-del-mundo-desde-tu-casa/#comments</comments>
		<pubDate>Sun, 21 Mar 2010 00:55:38 +0000</pubDate>
		<dc:creator>Francisco David</dc:creator>
				<category><![CDATA[Opinión]]></category>
		<category><![CDATA[conocimiento]]></category>
		<category><![CDATA[educación]]></category>
		<category><![CDATA[universidad]]></category>

		<guid isPermaLink="false">http://franciscodavid.com/?p=356</guid>
		<description><![CDATA[Academic Earth es un proyecto basado en una idea simple pero revolucionaria. Consiste en un repositorio de clases universitarias grabadas en vídeo en las mejores instituciones de Estados Unidos.  La finalidad de su trabajo es poner a disposición de todo &#8230; <a href="http://blog.franciscodavid.eu/es/2010/03/21/academic-earth-asiste-a-las-mejores-universidades-del-mundo-desde-tu-casa/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a title="Academic Earth" href="http://academicearth.org/" target="_blank">Academic Earth</a> es un proyecto basado en una idea simple pero revolucionaria. Consiste en un repositorio de clases universitarias grabadas en vídeo en las mejores instituciones de Estados Unidos.  La finalidad de su trabajo es poner a disposición de todo el mundo material de estudio para facilitar el aprendizaje de personas que no pueden permitirse la asistencia a una buena universidad ya sea por su poder adquisitivo o por su lugar de residencia.</p>
<p>En la práctica, los vídeos te permiten asistir de manera virtual a clase. Tomar notas, escuchar preguntas de otros estudiantes, ver lo que escribe en la pizarra el profesor y tener a disposición material docente como resúmenes o esquemas. Todo esto con el añadido que supone poder pausar la clase cuando te apetece para digerir las explicaciones y volver a un punto determinado de una explicación que no te ha quedado clara.</p>
<p><span id="more-357"></span>Lo único que se hecha en falta, y mucho, es la interacción que se tiene con el profesor y el resto de la clase cuando se asiste presencialmente, —hacer preguntas y exponer dudas, básicamente—.</p>
<p>Entre las universidades que participan en Academic Earth destacan nombres como MIT, Harvard, Princeton y Yale, entre otros.</p>
<p>El impacto de proyectos como Academic Earth puede ser extraordinario. Que cualquier persona del mundo pueda aprender de los mejores profesores y comprobar de primera mano cómo son las clases de las mejores universidades del planeta abre un escenario de conocimiento inimaginable hace unos años. Supone un escaparate para el mundo de la cultura occidental, en el que habitantes de países en vías de desarrollo o aquellos históricamente hostiles hacia el &#8220;imperialismo&#8221; yanqui o europeo pueden conocer mejor los valores y la forma de transmitir el conocimiento del mundo occidental.</p>
<p>Academic Earth puede resultar un buen instrumento para combatir la ignorancia a nivel mundial.</p>
<img src="http://feeds.feedburner.com/~r/FranciscoDavid_all/~4/CS49LdtQbAM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.franciscodavid.eu/es/2010/03/21/academic-earth-asiste-a-las-mejores-universidades-del-mundo-desde-tu-casa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.franciscodavid.eu/es/2010/03/21/academic-earth-asiste-a-las-mejores-universidades-del-mundo-desde-tu-casa/</feedburner:origLink></item>
		</channel>
</rss>

