<?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>ftp | ahierro.es</title>
	<atom:link href="https://blog.ahierro.es/tag/ftp/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.ahierro.es</link>
	<description>Un blog personal  donde compartir experiencias e inquietudes relacionadas con internet, tecnología y otros asuntos interesantes</description>
	<lastBuildDate>Fri, 30 Oct 2020 05:28:10 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7.2</generator>

<image>
	<url>https://blog.ahierro.es/wp-content/uploads/2018/10/cropped-logo_small-1-2-32x32.png</url>
	<title>ftp | ahierro.es</title>
	<link>https://blog.ahierro.es</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>FTP activo vs FTP pasivo</title>
		<link>https://blog.ahierro.es/ftp-activo-vs-ftp-pasivo/</link>
					<comments>https://blog.ahierro.es/ftp-activo-vs-ftp-pasivo/#comments</comments>
		
		<dc:creator><![CDATA[Andres]]></dc:creator>
		<pubDate>Tue, 19 Nov 2019 07:02:42 +0000</pubDate>
				<category><![CDATA[Servicios]]></category>
		<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[ftp]]></category>
		<category><![CDATA[ftps]]></category>
		<category><![CDATA[servidor]]></category>
		<guid isPermaLink="false">https://blog.ahierro.es/?p=2078</guid>

					<description><![CDATA[<p>El protocolo FTP lleva con nosotros desde la década de los setenta, y hoy, casi cincuenta años después, sigue siendo una tecnología muy presente en el flujo de trabajo habitual de los desarrolladores web. Personalmente lo utilzo con relativa frecuencia, generalmente con el cliente FileZilla, un cliente FTP multiplataforma de código abierto muy recomendable. Y &#8230; </p>
<p class="link-more"><a href="https://blog.ahierro.es/ftp-activo-vs-ftp-pasivo/" class="more-link">Continuar leyendo<span class="screen-reader-text"> "FTP activo vs FTP pasivo"</span></a></p>
La entrada <a href="https://blog.ahierro.es/ftp-activo-vs-ftp-pasivo/">FTP activo vs FTP pasivo</a> apareció primero en <a href="https://blog.ahierro.es">blog.ahierro.es, programación, internet, tecnología y otras historias</a>.]]></description>
										<content:encoded><![CDATA[<p>El protocolo FTP lleva con nosotros desde la década de los setenta, y hoy, casi cincuenta años después, sigue siendo una tecnología muy presente en el flujo de trabajo habitual de los desarrolladores web.</p>



<figure class="wp-block-image is-resized"><img fetchpriority="high" decoding="async" src="https://lh3.googleusercontent.com/yRgL9935kWlYQIhJf0mXw_oaa6ulwsW9mbw2OWCo-QhDz2vE35Kqk1ZbjI9XiTU9T1wKhKKxCe3svz5S72pD9x5aFEjLxzGtLkD-00w4WLbB5wwqsJ--u_nrJI6DPuQlKHeQ7SDHmkW97ukFSNTdlWH-z43BzJJ0H51hasNjJkGvf3aDzz0cht-F78bk8TqGIYCYA_25bHZ0cGpk6fY2ZKXrTvPgklJ58JXibyWI2AtgDUz0A8RMmTtz3yFxJw0PWsgayACnamN032kXlb9yE8Y8APsNpmk5racVLM_EwsjceRCN0O9xperEORykp5IYUMaAdjb8VNGzHLjPvhuYo7JVsujGLhaN__eJxWH2TtwIXuu91K9KDmXMvigZKjTR6cmrtwaZ-wTrIXUBS1wAfo3c_sQ7QWwKEHLmSOwaYTwSC3jWRkHU8HlVbS3eNcjLvgEWwJ70F-H2Ti0KLJKo4ySqSPrOrG02v2gNJHrUaN46p6p6BNLgUIrOzHSUonfoOHY0j2YtojI8baFqt74LFyu4LuwC8lj-XpDIud2CLRBkGmBxi2zP3NyObUplJiwRbl7BnojmhpbqrPjAKpwY-rCatqymzedjgzpvCh9a5ADFKqQDM4-Vl8qMLEZ_iBrNBOPiJr8emKN_FXEM_HIOCKKA1dnb8rDf75_hRmm-c0D9e-0RDsl90V5crdwSkDmPWFwZ5SvO7xpQqusK8BzaG9CsvnXkYd0qiyN7n_7qhPo=w1622-h912-no" alt="FTP activo vs FTP pasivo" width="840" height="470"/></figure>



<span id="more-2078"></span>



<p>Personalmente lo utilzo con relativa frecuencia, generalmente con el cliente FileZilla, un cliente FTP multiplataforma de código abierto muy recomendable. Y siendo honestos, hasta la escritura de esta entrada, mi desconocimiento sobre los modos de conexión activo o pasivo era absoluto, algo que intuyo que le sucede a mucha gente, y ya se sabe que mal de muchos <s>consuelo de tontos</s> entrada en el blog.</p>



<h2 class="wp-block-heading">FTP, FTPS y SFTP.</h2>



<p>Recordemos que existen tres protocolos distintos a los que solemos referirnos cuando hablamos de FTP: FTP, FTPS y SFTP. Si tienes dudas sobre alguno de ellos puedes echarle un vistazo a la entrada <a href="https://blog.ahierro.es/ftp-ftps-y-sftp-diferencias-ventajas-inconvenientes/">FTP, FTPS y SFTP: diferencias, ventajas e inconvenientes</a>.</p>



<p>Pues bien, los modos activo o pasivo solo aplican sobre los protocolos FTP y FTPS, en ningún caso sobre SFTP, pues es un protocolo que dista bastante de los dos anteriores.</p>



<h2 class="wp-block-heading">Puerto de datos y puerto de control</h2>



<p>Otro aspecto clave que debemos conoce para entender el funcionamiento del FTP es que trabaja sobre dos puertos distintos: el puerto de datos y el puerto de comandos o puerto de control.</p>



<p>Los nombres son bastante auto-explicativos, el  puerto de datos se encarga de la transmisión de los ficheros y el puerto de control de las instrucciones entre ambos host. Se diseñó así para poder enviar comandos sin la necesidad de detener la transmisión de datos ni de encolarlos tras estos.</p>



<p>Si nos centramos en el servidor, tradicionalmente el puerto de control ha sido el 21 y el puerto de datos varía en función del modo, siendo el 20 para el modo activo, y un puerto aleatorio para el modo pasivo.</p>





<p>En el lado del cliente, en cambio, el puerto de control será un puerto aleatorio P superior a 1023, y el puerto de datos será P+1. Esto es así tanto en el modo activo, como en el pasivo.</p>



<p>Pero veamos cada uno de los modos en detalle para entenderlo mejor.</p>



<h2 class="wp-block-heading">FTP activo</h2>



<p>Es el modo predeterminado para las conexiones FTP, de hecho fue el primero en desarrollarse. En este modo el servidor utilizará el puerto 20 para la transferencia de datos, mientras que transmitirá los comandos utilizando el puerto 21. El cliente en cambio utilizará un puerto aleatorio P superior al 1023 para la transferencia de comandos, y un puerto P+1 para la transferencia de datos.</p>



<h3 class="wp-block-heading">Secuencia de conexión del modo activo</h3>



<p>La secuencia de conexión del modo activo es la siguiente:</p>



<ol class="wp-block-list"><li>El cliente FTP comienza la conexión dese un puerto de control aleatorio P con destino al puerto 21 del servidor. Como hemos mencionado el puerto P será superior a 1023.</li><li>El servidor responde desde el puerto de control.</li><li>El servidor inicia entonces la conexión del canal de datos: puerto 20 para el servidor y puerto P+1 para el cliente.</li><li>El cliente responde desde el puerto de datos estableciendo así la conexión.</li></ol>



<h3 class="wp-block-heading">Inconvenientes del modo activo</h3>



<p>Históricamente el principal inconveniente de este modo ha radicado en que si no hay una directiva específica en los firewalls del lado del cliente, la conexión es propensa a ser bloqueada. Esto se debe a que, como hemos visto, existen dos conexiones independientes: una de salida en la que el cliente establece la conexión del canal de control y otra de entrada en la que el servidor hace lo propio con el de datos. Esta última conexión es iniciada por el servidor en el puerto previamente negociado, y en ocasiones es bloqueada por el firewall del cliente al ser identificada como un intento de conexión externa no autorizada.</p>



<p>Recordemos que este sistema se diseñó en los años 70, cuando la democratización de los sistemas informáticos y los problemas de seguridad eran completamente distintos a los que podemos encontrar hoy en día.</p>



<p>Sea como sea, en todos los años que llevo utilizando el protocolo FTP desde el rol de cliente, no recuerdo haber experimentado nunca problemas de este tipo, y habré conectado con varias decenas de servidores de muchos proveedores distintos. Entiendo que esto se deba a la sofisticación de los sistemas de red y de seguridad más modernos.</p>



<h2 class="wp-block-heading">FTP pasivo</h2>



<p>El modo de FTP pasivo surge como consecuencia de los problemas de conexión  del modo activo. Este modo mantiene los dos canales (control y datos) pero en este caso es el cliente el encargado de establecer las dos conexiones.</p>



<p>El servidor sigue manteniendo el puerto 21 como puerto de comandos, el puerto de datos en cambio difiere del modo activo y pasa a ser un rango de puertos Q superior a 1023. Del lado del cliente seguimos manteniendo el puerto P superior a 1023 para control, y el puerto P+1 para datos.</p>



<h3 class="wp-block-heading">Secuencia de conexión del modo pasivo</h3>



<p>La secuencia de conexión del modo pasivo es la que sigue a continuación:</p>



<ol class="wp-block-list"><li>El cliente FTP comienza la conexión dese un puerto de control aleatorio P con destino al puerto 21 del servidor.</li><li>El servidor responde desde el puerto de control.</li><li>El cliente inicia la conexión del canal de datos dese el puerto P+1 hacia el puerto Q del servidor.</li><li>El servidor responde desde el puerto de datos estableciendo así la conexión.</li></ol>



<p>Como ves, los pasos uno y dos son iguales que en el modo activo, y es en los pasos tres y cuatro dónde vemos como se invierten los roles y es el cliente el que inicia la conexión de datos.</p>



<h3 class="wp-block-heading">Inconvenientes del modo pasivo del FTP</h3>



<p>El principal inconveniente de habilitar el modo pasivo en un servidor FTP está asociado con el riesgo extra en materia de seguridad que conlleva la apertura de un rango de puertos extra con respecto al modo activo. Notemos que para que el modo pasivo funcione adecuadamente estos puertos deben ser abiertos tanto en el servidor como en el firewall.</p>





<p>Para minimizar este riesgo la estrategia pasa por definir un rango de puertos lo más pequeño posible en función del número de conexiones concurrentes que esperemos tener, pero ojo, porque un cliente no se corresponde con una única conexión, es muy probable que cada cliente abra múltiples conexiones concurrentes.</p>



<h2 class="wp-block-heading">Resumen</h2>



<p>Para cerrar esta entrada os dejo una tabla con el resumen de lo que hemos visto.</p>



<figure class="wp-block-table"><table class=""><tbody><tr><th></th><th></th><th>Activo</th><th>Pasivo</th></tr><tr><th>Servidor</th><th>Puerto de control</th><td>21</td><td>21</td></tr><tr><th>Servidor</th><th>Puerto de datos</th><td>20</td><td>Rango Q &gt; 1023</td></tr><tr><th>Cliente</th><th>Puerto de control</th><td>P &gt; 1023</td><td>P &gt; 1023</td></tr><tr><th>Cliente</th><th>Puerto de datos</th><td>P + 1</td><td>P + 1</td></tr><tr><th>Quien inicia</th><th>Conexión de control</th><td>Cliente</td><td>Cliente</td></tr><tr><th>Quién inicia</th><th>Conexión de datos</th><td>Servidor</td><td>Cliente</td></tr><tr><th></th><th>Inconvenientes</th><td>Bloqueo por firewalls</td><td>Riesgo extra de seguridad</td></tr></tbody></table></figure>



<h2 class="wp-block-heading">Créditos, referencias y artículos relacionados</h2>



<ul class="wp-block-list"><li>Imagen de portada por <a rel="noreferrer noopener" aria-label="Michal Jarmoluk  (abre en una nueva pestaña)" href="https://pixabay.com/users/jarmoluk-143740/" target="_blank">Michal Jarmoluk </a>en Pixabay</li><li><a href="https://blog.ahierro.es/ftp-ftps-y-sftp-diferencias-ventajas-inconvenientes/">FTP, FTPS y SFTP: diferencias, ventajas e inconvenientes</a></li><li><a href="https://blog.ahierro.es/vsftp-instalar-y-configurar-un-servidor-ftp-en-raspberry-pi-con-ubuntu/">VSFTP instalar y configurar un servidor FTP en una Raspberry Pi con Ubuntu</a></li><li><a href="https://blog.ahierro.es/ftps-o-como-habilitar-ssl-en-vsftp/">FTPS o cómo habilitar SSL en vsftp</a></li><li><a href="https://blog.ahierro.es/usuarios-virtuales-en-vsftp/">Usuarios virtuales en vsftp</a></li></ul>



<p></p>La entrada <a href="https://blog.ahierro.es/ftp-activo-vs-ftp-pasivo/">FTP activo vs FTP pasivo</a> apareció primero en <a href="https://blog.ahierro.es">blog.ahierro.es, programación, internet, tecnología y otras historias</a>.]]></content:encoded>
					
					<wfw:commentRss>https://blog.ahierro.es/ftp-activo-vs-ftp-pasivo/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Clonar una web: los archivos</title>
		<link>https://blog.ahierro.es/clonar-una-web-los-archivos/</link>
					<comments>https://blog.ahierro.es/clonar-una-web-los-archivos/#respond</comments>
		
		<dc:creator><![CDATA[Andres]]></dc:creator>
		<pubDate>Thu, 06 Jun 2019 05:39:03 +0000</pubDate>
				<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[ftp]]></category>
		<category><![CDATA[linux]]></category>
		<guid isPermaLink="false">https://blog.ahierro.es/?p=1078</guid>

					<description><![CDATA[<p>En la entrada previa hemos visto cómo clonar la base de datos como parte de nuestro objetivo de disponer de un entorno de pruebas de nuestra web en un servidor local actualizado regularmente. En esta ocasión abordamos cómo mantener una copia actualizada de los archivos de nuestro servidor para así completar el proceso. Esta es &#8230; </p>
<p class="link-more"><a href="https://blog.ahierro.es/clonar-una-web-los-archivos/" class="more-link">Continuar leyendo<span class="screen-reader-text"> "Clonar una web: los archivos"</span></a></p>
La entrada <a href="https://blog.ahierro.es/clonar-una-web-los-archivos/">Clonar una web: los archivos</a> apareció primero en <a href="https://blog.ahierro.es">blog.ahierro.es, programación, internet, tecnología y otras historias</a>.]]></description>
										<content:encoded><![CDATA[<p>En la entrada previa hemos visto <a href="https://blog.ahierro.es/clonar-una-web-la-base-de-datos/">cómo clonar la base de datos </a>como parte de nuestro objetivo de disponer de un entorno de pruebas de nuestra web en un servidor local actualizado regularmente. En esta ocasión abordamos cómo mantener  una copia actualizada de los archivos de nuestro servidor para así completar el proceso.</p>



<figure class="wp-block-image"><img decoding="async" width="650" height="438" src="https://blog.ahierro.es/wp-content/uploads/2019/05/clonar_web.png" alt="Conar Web" class="wp-image-927" srcset="https://blog.ahierro.es/wp-content/uploads/2019/05/clonar_web.png 650w, https://blog.ahierro.es/wp-content/uploads/2019/05/clonar_web-300x202.png 300w" sizes="(max-width: 650px) 100vw, 650px" /></figure>



<span id="more-1078"></span>



<p>Esta es la tercera entrega de la serie <a href="https://blog.ahierro.es/clonar-una-web-en-un-servidor-local/">Clonar una web en un servidor local</a>, por lo que te recomiendo leer las entregas previas. No obstante, este artículo puede ser tratado como un artículo atómico asumiendo que perdemos ciertos matices.</p>





<p>Una de las ventajas del proceso de clonado de los archivos frente al de clonado de una base de datos es que si bien con la base de datos podíamos encontrarnos muchas limitaciones en función de los diferentes proveedores y planes de hostings, para clonar los archivos el único requisito que debemos cumplir con respecto a nuestro host remoto es tener acceso mediante ftp, algo que todos los hosting ofrecen.</p>



<h2 class="wp-block-heading">Descarga de archivos</h2>



<p>Para descargar los archivos nos serviremos del comando wget. Comenzaremos el proceso creando un script de consola y le asignándole los permisos necesarios:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; gutter: false; title: ; notranslate">
mkdir ~/scripts
vim ~/scripts/cloneWebFiles.sh
chmod 0755 ~/scripts/clonWebFiles.sh
</pre></div>


<p>Con el siguiente contenido:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; gutter: false; title: ; notranslate">
#!/bin/bash

wget -r -N -q --level=15 --user=user --password=&#039;password&#039; --directory-prefix=~/webBackUp fttp://ftp.url.com
</pre></div>


<p>Dónde:</p>



<ul class="wp-block-list"><li>-r, indica recursividad</li><li>-N, indica que descargue solo archivos nuevos y/o modificados</li><li>-q, oculta los mensajes de salida del comando</li><li>&#8211;level=15, es el numero de niveles de recursividad</li><li>&#8211;user=user, es el usuario ftp</li><li>&#8211;password=&#8217;password&#8217;, es la contraseña del ftp</li><li>&#8211;directory-prefix=~/webBackUp, es el directorio dónde copiaremos los archivos</li><li>fttp://ftp.url.com, es el ftp con el path del que queremos descargar los archivos</li></ul>



<p>Esto realizará una copia de los archivos de nuestra web en la carpeta <em>~/webBackUp/ftp.url.com</em>. Esta operación suele tardar bastante tiempo, así que para agilizarla hemos optado por descargar únicamente los archivos nuevos y/o modificados recientemente, aun así con una web de tamaño medio tardará un buen rato.</p>



<p>Debemos destacar que no descargamos los archivos directamente a nuestro entorno de pruebas, sino que los descargamos a una carpeta intermedia. Esto lo hacemos por dos motivos:</p>



<ol class="wp-block-list"><li>Modificaremos algunos archivos antes de copiarlos en nuestro entorno de pruebas.</li><li>Podemos crear un segundo script que omita la descarga y que restaure nuestra copia mucho más rápido, muy útil en caso de querer descartar los cambios realizados y comenzar desde 0.</li></ol>



<h2 class="wp-block-heading">Modificación de datos relativos al entorno</h2>



<p>Una vez hecha la descarga de los archivos deberemos modificar los que contienen datos relativos a nuestro host. En nuestro ejemplo, el archivo <em>wp-config.php </em>almacena la inforación de la conexión a la base de datos. En vuestro caso debereis localizar que archivos contienen este tipo de información antes de seguir avanzando.</p>



<p>La estrategia que seguiremos para ello sera la de realizar una copia inicial de forma manual de los archivos sensibles al entorno de pruebas. Una vez hecha actualizaremos los datos necesarios.</p>



<p>Por otro lado, automatizaremos una tarea que renombra estos archivos en la ubicación intermedia, de forma que cuando realicemos la copia al entorno de pruebas no se sobrescriban. Así que agregamos estas dos líneas a nuestro script:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; gutter: false; title: ; notranslate">
rm ~/webBackUp/ftp.url.com/w-config.php.renamed
mv ~/webBackUp/ftp.url.com/w-config.php ~/webBackUp/ftp.url.com/w-config.php.renamed
</pre></div>


<h2 class="wp-block-heading">Copia de archivos a la ubicación definitiva</h2>



<p>Ya con los archivos descargados y una vez resuelta la problemática de la información sensible al entorno copiamos los archivos:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; gutter: false; title: ; notranslate">
cp -r ~/webBackUp/ftp.url.com/* /var/www/targetVHost
</pre></div>


<p>Como vemos, este sistema solo copia los archivos nuevos y/o que han sufrido cambios, pero si hemos eliminado un archivo de nuestro host remoto no lo eliminará de nuestro host local. Para mi esta situación no supone un problema a día de hoy, así que simplemente no hago nada, pero siempre se puede preparar algún sistema que busque la diferencia de archivos entre la copia intermedia y el entorno de prueba y elimine los sobrantes de esta segunda ubicación. </p>



<h2 class="wp-block-heading">El script</h2>



<p>Y todo el rollazo que os he soltado se traduce básicamente en el siguiente script: </p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
#!/bin/bash

wget -r -N -q --level=15 --user=user --password=&#039;password&#039; --directory-prefix=~/webBackUp fttp://ftp.url.com
rm ~/webBackUp/ftp.url.com/w-config.php.renamed
mv ~/webBackUp/ftp.url.com/w-config.php ~/webBackUp/ftp.url.com/w-config.php.renamed
cp -r ~/webBackUp fttp://ftp.url.com/* /var/www/targetVHost
</pre></div>


<h2 class="wp-block-heading">Programar la ejecución de la copia</h2>



<p>Al igual que hicimos con la clonación de la base de datos programamos la ejecución del script con Cron:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; gutter: false; title: ; notranslate">
crontab -e
</pre></div>


<p>E incluimos la siguiente línea en el archivo crontab:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; gutter: false; title: ; notranslate">
0 2 * * 5 ~/scripts/clonWebFiles.sh
</pre></div>


<p>Aunque en principio ambos script podrían ejecutarse a la misma vez, hemos sido precavidos retrasando una hora la ejecución de la copia de los archivos, de forma que se ejecute cada viernes a las 02:00 de la madrugada.</p>



<h2 class="wp-block-heading">Créditos y Referencias</h2>



<ul class="wp-block-list"><li>Articulo de la serie: <a href="https://blog.ahierro.es/clonar-una-web-en-un-servidor-local/">Clonar una web en un servidor local</a>.</li><li>Entrega previa de la seie: <a href="https://blog.ahierro.es/clonar-una-web-la-base-de-datos/">Clonar una web: la base de datos</a>.</li><li>Imagen de portada: <a rel="noreferrer noopener" aria-label="Martin Harry (abre en una nueva pestaña)" href="https://pixabay.com/users/martinharry-1411929/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=941625" target="_blank">Martin Harry</a>.</li></ul>La entrada <a href="https://blog.ahierro.es/clonar-una-web-los-archivos/">Clonar una web: los archivos</a> apareció primero en <a href="https://blog.ahierro.es">blog.ahierro.es, programación, internet, tecnología y otras historias</a>.]]></content:encoded>
					
					<wfw:commentRss>https://blog.ahierro.es/clonar-una-web-los-archivos/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Clonar una web en un servidor local</title>
		<link>https://blog.ahierro.es/clonar-una-web-en-un-servidor-local/</link>
					<comments>https://blog.ahierro.es/clonar-una-web-en-un-servidor-local/#respond</comments>
		
		<dc:creator><![CDATA[Andres]]></dc:creator>
		<pubDate>Thu, 06 Jun 2019 05:34:58 +0000</pubDate>
				<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[ftp]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[php]]></category>
		<guid isPermaLink="false">https://blog.ahierro.es/?p=900</guid>

					<description><![CDATA[<p>Independientemente de los distintos entornos de desarrollo que podamos tener configurados, en muchas ocasiones es tremendamente util disponer de una copia exacta de nuestra web de producción en otro servidor local o remoto. Y cuando hablamos de «una copia exacta», queremos decir que tanto archivos como bases de datos estén perfectamente actualizados. Esto es muy &#8230; </p>
<p class="link-more"><a href="https://blog.ahierro.es/clonar-una-web-en-un-servidor-local/" class="more-link">Continuar leyendo<span class="screen-reader-text"> "Clonar una web en un servidor local"</span></a></p>
La entrada <a href="https://blog.ahierro.es/clonar-una-web-en-un-servidor-local/">Clonar una web en un servidor local</a> apareció primero en <a href="https://blog.ahierro.es">blog.ahierro.es, programación, internet, tecnología y otras historias</a>.]]></description>
										<content:encoded><![CDATA[<p>Independientemente de los distintos <a href="https://blog.ahierro.es/entornos-en-el-desarrollo-de-software/">entornos de desarrollo</a> que podamos tener configurados, en muchas ocasiones es tremendamente util disponer de una copia exacta de nuestra web de producción en otro servidor local o remoto.</p>



<p>Y cuando hablamos de «una copia exacta», queremos decir que tanto archivos como bases de datos estén perfectamente actualizados. Esto es muy útil para realizar pruebas de todo tipo: nuevos plugins, cambios de configuración, revisión de actualizaciones, etc.</p>



<figure class="wp-block-image"><img decoding="async" width="650" height="438" src="https://blog.ahierro.es/wp-content/uploads/2019/05/clonar_web.png" alt="Conar Web" class="wp-image-927" srcset="https://blog.ahierro.es/wp-content/uploads/2019/05/clonar_web.png 650w, https://blog.ahierro.es/wp-content/uploads/2019/05/clonar_web-300x202.png 300w" sizes="(max-width: 650px) 100vw, 650px" /></figure>



<span id="more-900"></span>



<p>Realizar esta tarea manualmente es tedioso, aburrido y consume mucho tiempo, eso sin contar que es probable que cuando nos propongamos realizar nuestras pruebas este entorno esté desactualizado, alterado por las últimas pruebas realizadas, o lo que es aún peor, no esté disponible. Así que una buena idea es automatizar esta tarea y programar su ejecución con la periodicidad que nos interese.</p>



<h2 class="wp-block-heading">Algunos aspectos relativos al clonado</h2>



<h3 class="wp-block-heading">Resumen del proceso</h3>



<p>Es buena idea tener una visión general del proceso antes de adentrarnos en él. Lo que vamos a hacer básicamente es un proceso ETL  (Extract, Transform, Load) manual.</p>



<p>Como parte del proceso de extracción realizaremos una copia de seguridad de la base de datos y la descargaremos a una ubicación intermedia. Haremos lo mismo con los archivos del servidor.</p>





<p>Una vez tenemos todo lo necesario en nuestro servidor local, modificamos algunos datos como son archivos de configuración o los registros en la base de datos relativos al entorno.</p>



<p>Finalmente restauraremos la base de datos y sobrescribiremos los archivos de nuestro servidor local.</p>



<h3 class="wp-block-heading">Local versus Remoto</h3>



<p>A pesar de que cada una de las tareas que realizaremos no son complicadas por si mismas, alternaremos de host continuamente y eso puede generar alguna confusión, así que para seguir los pasos indicados sin error deberemos estar muy  atentos al host en el que se realizan las distintas acciones. Identificaremos los hosts como «remoto», el servidor de producción que queremos clonar, y «local» el servidor de pruebas dónde queremos tener la copia.</p>



<p>Es importante que las versiones de <a href="https://blog.ahierro.es/servidor-web-en-raspberry-pi-y-ubuntu-mate/">LAMP (Linux, Apache, PHP y MySQL) </a>sean lo más similar posible, de este modo es posible que nos ahorraremos algunos quebraderos de cabeza. Además, es recomendable dedicar un <a href="https://blog.ahierro.es/como-configurar-virtual-hosts-en-apache-y-ubuntu/">virtual host de Apache </a>para este entorno en nuestro servidor local.</p>



<h3 class="wp-block-heading">Ejemplo sobre WordPress</h3>



<p>Y ya que estas líneas que lees están escritas sobre WordPress, utilizaremos esta plataforma como ejemplo para realizar el clonado. Esto quiere decir que por norma general, si queréis clonar otra plataforma, las mayores diferencias las encontraremos en los los registros de la base de datos y los archivos de configuración referentes al entorno.</p>



<h3 class="wp-block-heading">Periodicidad</h3>



<p>Como hemos dicho queremos automatizar el clonado de nuestra web para tener nuestra réplica preparada y actualizada en todo momento. Podemos establecer la periodicidad que más nos convenga, personalmente estoy cómodo con una semana por dos motivos:</p>



<ol class="wp-block-list"><li>En una semana no suelen producirse muchos cambios en el blog.</li><li>Algunas pruebas se extienden durante varios días, y una restauración diaria las sobrescribiría.</li></ol>



<p>Además, siempre estamos a tiempo de lanzar una actualización manual en caso de ser necesario con la simple ejecución de un script. Si no tienes una web muy grande el proceso será relativamente rápido.</p>



<h2 class="wp-block-heading">Requisitos hardware</h2>



<p>En cuanto a los requisitos de hardware puedes estar tranquilo, pues no necesitas un gran servidor para implementar este sistema. Un ejemplo muy claro de ello es que para este blog lo tengo implementado con una humilde Raspberry Pi. Por si te interesa, aquí te dejo un enlace en el que puedes ver cómo de sencillo es <a href="https://blog.ahierro.es/servidor-web-en-raspberry-pi-y-ubuntu-mate/">montar un servidor web Apache sobre una Raspberry Pi</a>.</p>



<h2 class="wp-block-heading">Clonando nuestra web: el proceso</h2>



<p>Llegados a este punto creo que al igual que yo ya tendréis ganas de poneros manos a la obra, así que no me enrollo más y vamos al lío.</p>



<p>Y puesto que esto se ha alargado un poco más de la cuenta, hemos dividido este artículo en varias entregas para que sea más fácil de seguir:</p>



<ol class="wp-block-list"><li>Clonar una web en un servidor local (es decir, esta entrada).</li><li><a href="https://blog.ahierro.es/clonar-una-web-la-base-de-datos/">Clonar una web: la base de datos</a>.</li><li><a href="https://blog.ahierro.es/clonar-una-web-los-archivos/">Clonar una web: los archivos</a>.</li></ol>



<h2 class="wp-block-heading">Créditos y referencias</h2>



<ul class="wp-block-list"><li>Imagen de portada: <a rel="noreferrer noopener" href="https://pixabay.com/users/martinharry-1411929/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=941625" target="_blank">Martin Harry</a>.</li></ul>





<p></p>La entrada <a href="https://blog.ahierro.es/clonar-una-web-en-un-servidor-local/">Clonar una web en un servidor local</a> apareció primero en <a href="https://blog.ahierro.es">blog.ahierro.es, programación, internet, tecnología y otras historias</a>.]]></content:encoded>
					
					<wfw:commentRss>https://blog.ahierro.es/clonar-una-web-en-un-servidor-local/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Usuarios virtuales en vsftp</title>
		<link>https://blog.ahierro.es/usuarios-virtuales-en-vsftp/</link>
					<comments>https://blog.ahierro.es/usuarios-virtuales-en-vsftp/#comments</comments>
		
		<dc:creator><![CDATA[Andres]]></dc:creator>
		<pubDate>Tue, 07 May 2019 05:46:22 +0000</pubDate>
				<category><![CDATA[Servicios]]></category>
		<category><![CDATA[ftp]]></category>
		<category><![CDATA[servidor]]></category>
		<category><![CDATA[vsftp]]></category>
		<guid isPermaLink="false">https://blog.ahierro.es/?p=859</guid>

					<description><![CDATA[<p>Ya os había comentado en otra entrada que tres de los motivos por los que valoro tanto vsftp son la versatilidad, la sencillez de configuración y la facilidad para dar respuesta a las dudas en internet. Y una de las características que contribuye a esa versatilidad y que me resulta de las más interesante es &#8230; </p>
<p class="link-more"><a href="https://blog.ahierro.es/usuarios-virtuales-en-vsftp/" class="more-link">Continuar leyendo<span class="screen-reader-text"> "Usuarios virtuales en vsftp"</span></a></p>
La entrada <a href="https://blog.ahierro.es/usuarios-virtuales-en-vsftp/">Usuarios virtuales en vsftp</a> apareció primero en <a href="https://blog.ahierro.es">blog.ahierro.es, programación, internet, tecnología y otras historias</a>.]]></description>
										<content:encoded><![CDATA[<p>Ya os había comentado en otra entrada que tres de los motivos por los que valoro tanto vsftp son la versatilidad, la sencillez de configuración y la facilidad para dar respuesta a las dudas en internet. Y una de las características que contribuye a esa versatilidad y que me resulta de las más interesante es la posibilidad de crear usuarios virtuales.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="650" height="438" src="https://blog.ahierro.es/wp-content/uploads/2019/05/vsftp_usuarios_virtuales.png" alt="" class="wp-image-875" srcset="https://blog.ahierro.es/wp-content/uploads/2019/05/vsftp_usuarios_virtuales.png 650w, https://blog.ahierro.es/wp-content/uploads/2019/05/vsftp_usuarios_virtuales-300x202.png 300w" sizes="auto, (max-width: 650px) 100vw, 650px" /></figure>



<span id="more-859"></span>



<p>Esta entrada continua el contenido iniciado en el artículo <a href="https://blog.ahierro.es/vsftp-instalar-y-configurar-un-servidor-ftp-en-raspberry-pi-con-ubuntu/">VSFTP instalar y configurar un servidor FTP en una Raspberry Pi con Ubuntu</a>, desde dónde enlazamos más contenido relacionado con la insralación y la configuración de vsftp. </p>



<h2 class="wp-block-heading">Usuarios virtuales vs usuarios de sistema</h2>



<p>La configuración por defecto de vsftp nos permite autentificarnos con las  credenciales de los usuarios que tengamos creados en el sistema, dándonos acceso a las mismas carpetas a las que estos tienen acceso. Pero además nos permite autentificarnos con usuarios virtuales creados especificamente para acceder por ftp a una determinada carpeta. Y lo mejor de todo es que estas dos opciones son totalmente compatible entre si, pudiendo elegir entre:</p>



<ol class="wp-block-list"><li>Habilitar solo el acceso de los usuarios del sistema (por defecto).</li><li>Habilitar solo el acceso de usuarios virtuales.</li><li>Habilitar el acceso de usuarios del sistema y usuarios virtuales.</li></ol>





<h2 class="wp-block-heading">/etc/vsftps.conf</h2>



<p>Para no extendernos demasiado en esta entrada, a continuación veremos el  resultado final del archivo /etc/vsftpd.conf. Si estás interesado en  conocer los detalles de cada línea de configuración puede echarle un  vistazo a la <a rel="noreferrer noopener" href="https://security.appspot.com/vsftpd/vsftpd_conf.html" target="_blank">documentación oficial de vsftp en este enlace</a>. Para facilitar la lectura hemos eliminado todas las líneas de comentarios originales del archivo:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
# configuración excluyendo comentarios
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
secure_chroot_dir=/var/run/vsftpd/empty
user_sub_token=$USER
hide_ids=YES
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
chroot_local_user=YES
allow_writeable_chroot=YES
hide_ids=YES

# Configuración específica de usuarios virtuales
user_config_dir=/etc/vsftpd/usersConf
guest_enable=YES
virtual_use_local_privs=YES
pam_service_name=vsftpd
</pre></div>


<h3 class="wp-block-heading">Creación de usuarios virtuales</h3>



<p>Una vez realizada la configuración de vsftp, lo siguiente que haremos será crear los usuarios virtuales. Para ello crearemos un directorio dónde alojar los ficheros de autentificación y acto seguido los propios ficheros, que en este ejemplo serán dos, uno por usuario. Por algún motivo que desconozco no he podido hacer funcionar la autentificación con PAM sin incluir la opción -d en la creación de los ficheros de autentificación, lo que nos limita a contraseñas con un máximo de 8 caracteres, una opción que lamentablemente reduce bastante la seguridad.</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
sudo mkdir /etc/vsftpd
sudo htpasswd -c -d /etc/vsftpd/ftpd.passwd ftpUser1
sudo htpasswd -d /etc/vsftpd/ftpd.passwd ftpUser2
</pre></div>


<p>El comando htpasswd nos solicitará que definamos la contraseña y que la confirmemos, y ojo que en el segundo usuario hemos omitido la opción -c, solo es necesario incluirla con el primer usuario, si la incluimos en el segundo o sucesivos truncaremos el fichero y por lo tanto únicamente dejaremos el último usuario que hemos creado.</p>





<h3 class="wp-block-heading">Instalación y Configuración de PAM</h3>



<p>Como adelantabamos en el punto anterior utilizaremos PAM (Pluggable Authentication Modules) para la autentificación de los usuarios, así que si no lo tenemos instalado deberemos hacerlo:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
sudo apt-get update
sudo apt-get install libpam-pwdfilev
</pre></div>


<p>El archivo de configuración de PAM para el servicio vsftp por defecto se encuentra en /etc/pam.d/vsftp, notad que hicimos referencia a él en la configuración de vsftp mediante la directiva pam_service_name. Así que por seguridad realizaremos una copia de seguridad de este archivo y acto seguido lo editaremos de forma que quede así:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
auth required pam_pwdfile.so pwdfile /etc/vsftpd/ftpd.passwd
account required pam_permit.so
</pre></div>


<p>Como ves, le estamos indicando que utilice el archivo que acabamos de crear con el comando htpasswd para autentificar a los usuarios virtuales.</p>



<h3 class="wp-block-heading">Directorios de usuarios virtuales</h3>



<p>El último paso que nos queda para tener nuestro servicio funcionando es definir cuales serán los directorios a los que tendrán acceso los usuarios. Para realizar esta configuración crearemos un archivo por cada usuario al que estemos concediendo acceso, y para mantenerlos organizados los almacenaremos dentro de un directorio que crearemos a tal efecto, al que ya hemos hecho referencia en /etc/vsftpd.conf mediante la directiva user_config_dir. El nombre de cada archivo debe ser idéntico al nombre de usuario al que hace referencia:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
sudo mkdir /etc/vsftpd/usersConf
sudo vim /etc/vsftpd/usersConf/ftpUser1
sudo vim /etc/vsftpd/usersConf/ftpUser2
</pre></div>


<p>El contenido de cada archivo debe hacer referencia al directorio al que le estamos concediendo acceso de la siguiente manera:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
local_root=/var/www/targetDir
</pre></div>


<h2 class="wp-block-heading">Permisos de escritura</h2>



<p>Un aspecto de gran importancia es configurar correctamente los permisos de escritura del directorio de cada usuario, en caso contrario nos encontraremos con un error cuando intentemos cargar cualquier archivo en nuestro servidor.</p>



<p>En nuestro caso, estamos concediendo acceso a una carpeta de un servidor web, así que daremos por hecho que los permisos están configurados tal y como explicamos en la entrada <a href="https://blog.ahierro.es/archivos-y-permisos-de-usuario-en-apache-y-linux/">Archivos y permisos de usuario en Apache 2 y Linux</a>.</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
sudo usermod -a -G www-data ftpd
sudo chown ftpd:www-data /var/www/users/ftpUser1
</pre></div>


<h2 class="wp-block-heading">Comprobamos que todo funciona</h2>



<p>Reiniciamos el servidor y comprobamos que todo funciona:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
sudo service vsftpd restart
</pre></div>


<p>Recuerda que si tienes algún problemalor archivos de logs de vsftp están en /var/log/vsftp.log y los logs de autentificación  /var/log/auth.log.</p>La entrada <a href="https://blog.ahierro.es/usuarios-virtuales-en-vsftp/">Usuarios virtuales en vsftp</a> apareció primero en <a href="https://blog.ahierro.es">blog.ahierro.es, programación, internet, tecnología y otras historias</a>.]]></content:encoded>
					
					<wfw:commentRss>https://blog.ahierro.es/usuarios-virtuales-en-vsftp/feed/</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
			</item>
		<item>
		<title>FTPS o cómo habilitar SSL en vsftp</title>
		<link>https://blog.ahierro.es/ftps-o-como-habilitar-ssl-en-vsftp/</link>
					<comments>https://blog.ahierro.es/ftps-o-como-habilitar-ssl-en-vsftp/#respond</comments>
		
		<dc:creator><![CDATA[Andres]]></dc:creator>
		<pubDate>Tue, 07 May 2019 05:23:28 +0000</pubDate>
				<category><![CDATA[Servicios]]></category>
		<category><![CDATA[ftp]]></category>
		<category><![CDATA[ftps]]></category>
		<category><![CDATA[servidor]]></category>
		<category><![CDATA[vsftp]]></category>
		<guid isPermaLink="false">https://blog.ahierro.es/?p=854</guid>

					<description><![CDATA[<p>El uso del protocolo https en la web es cada día es más habitual, las principales organizaciones que marcan el rumbo de la web, conocedoras de la necesidad de aumentar la seguridad en internet, fomentan su uso hasta el punto de que los principales navegadores del mercado identifican las webs que no cifran el tráfico &#8230; </p>
<p class="link-more"><a href="https://blog.ahierro.es/ftps-o-como-habilitar-ssl-en-vsftp/" class="more-link">Continuar leyendo<span class="screen-reader-text"> "FTPS o cómo habilitar SSL en vsftp"</span></a></p>
La entrada <a href="https://blog.ahierro.es/ftps-o-como-habilitar-ssl-en-vsftp/">FTPS o cómo habilitar SSL en vsftp</a> apareció primero en <a href="https://blog.ahierro.es">blog.ahierro.es, programación, internet, tecnología y otras historias</a>.]]></description>
										<content:encoded><![CDATA[<p>El uso del protocolo https en la web es cada día es más habitual, las principales organizaciones que marcan el rumbo de la web, conocedoras de la necesidad de aumentar la seguridad en internet, fomentan su uso hasta el punto de que los principales navegadores del mercado identifican las webs que no cifran el tráfico como no seguras.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="650" height="438" src="https://blog.ahierro.es/wp-content/uploads/2019/05/ftps_o_ssl_en_vsftp.png" alt="" class="wp-image-878" srcset="https://blog.ahierro.es/wp-content/uploads/2019/05/ftps_o_ssl_en_vsftp.png 650w, https://blog.ahierro.es/wp-content/uploads/2019/05/ftps_o_ssl_en_vsftp-300x202.png 300w" sizes="auto, (max-width: 650px) 100vw, 650px" /></figure>



<span id="more-854"></span>



<p>Lamentablemente, según mi experiencia, esa practica no está tan extendida en los servidores ftp, dónde a día de hoy todavía todavía existen un gran número de ellos que no implementan el protocolo FTPS, haciendo uso de conexiones sin encriptar y por lo tanto menos seguras. Una lástima teniendo en cuenta que no es algo complicado.</p>



<p>Hoy veremos cómo habilitar el protocolo FTPS en nuestro servidor vsftp, ampliando el contenido publicado en el artículo <a href="https://blog.ahierro.es/vsftp-instalar-y-configurar-un-servidor-ftp-en-raspberry-pi-con-ubuntu/">VSFTP instalar y configurar un servidor FTP en una Raspberry Pi con Ubuntu</a>. Además, es muy probable que también te interese echarle un vistazo a la entrada <a href="https://blog.ahierro.es/ftp-ftps-y-sftp-diferencias-ventajas-inconvenientes/">FTP, FTPS y SFTP: diferencias, ventajas e inconvenientes</a>, pues es una buena introducción si no estás familiarizado con estos protocolos.</p>





<p>Esta configuración está realizada sobre Ubuntu Mate 16.0.4.2 corriendo en una Raspberry PI, pero es perfectamente aplicable a otras distribuciones y versiones de Linux y otros hardwares.</p>



<p>Asumiremos que ya tenemos nuestro servidor vsftp funcionando y que tenemos OpenSSL instalado. Así que el primer paso será crear los certificados SSL pertinentes:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; gutter: false; title: ; notranslate">
sudo openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
</pre></div>


<p>A continuación agregamos las siguientes líneas al final del archivo /etc/vsftpd.conf: </p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
# Opciones para el certificado SSL
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
ssl_enable=YES
</pre></div>


<p>Ya solo nos queda reiniciar el servidor y comprobar que la configuración que hemos aplicado funciona correctamente.</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
sudo service vsftpd restart
</pre></div>


<p>Y con estos sencillos pasos hemos terminado, mejorando notablemente la seguridad de nuestro servidor FTP.</p>La entrada <a href="https://blog.ahierro.es/ftps-o-como-habilitar-ssl-en-vsftp/">FTPS o cómo habilitar SSL en vsftp</a> apareció primero en <a href="https://blog.ahierro.es">blog.ahierro.es, programación, internet, tecnología y otras historias</a>.]]></content:encoded>
					
					<wfw:commentRss>https://blog.ahierro.es/ftps-o-como-habilitar-ssl-en-vsftp/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>VSFTP instalar y configurar un servidor FTP en una Raspberry Pi con Ubuntu</title>
		<link>https://blog.ahierro.es/vsftp-instalar-y-configurar-un-servidor-ftp-en-raspberry-pi-con-ubuntu/</link>
					<comments>https://blog.ahierro.es/vsftp-instalar-y-configurar-un-servidor-ftp-en-raspberry-pi-con-ubuntu/#respond</comments>
		
		<dc:creator><![CDATA[Andres]]></dc:creator>
		<pubDate>Tue, 07 May 2019 05:20:29 +0000</pubDate>
				<category><![CDATA[Servicios]]></category>
		<category><![CDATA[ftp]]></category>
		<category><![CDATA[servidor]]></category>
		<category><![CDATA[vsftp]]></category>
		<guid isPermaLink="false">https://blog.ahierro.es/?p=437</guid>

					<description><![CDATA[<p>Históricamente los clientes y servidores FTP han formado parte del conjunto de herramientas más utilizadas por los desarrolladores web. Con la sofisticación de los entornos de desarrollo y la adopción cada vez mayor de los sistemas de control de versiones su uso ha disminuido ligeramente, pero sigue conservando su estatus de herramienta esencial. Esta entrada &#8230; </p>
<p class="link-more"><a href="https://blog.ahierro.es/vsftp-instalar-y-configurar-un-servidor-ftp-en-raspberry-pi-con-ubuntu/" class="more-link">Continuar leyendo<span class="screen-reader-text"> "VSFTP instalar y configurar un servidor FTP en una Raspberry Pi con Ubuntu"</span></a></p>
La entrada <a href="https://blog.ahierro.es/vsftp-instalar-y-configurar-un-servidor-ftp-en-raspberry-pi-con-ubuntu/">VSFTP instalar y configurar un servidor FTP en una Raspberry Pi con Ubuntu</a> apareció primero en <a href="https://blog.ahierro.es">blog.ahierro.es, programación, internet, tecnología y otras historias</a>.]]></description>
										<content:encoded><![CDATA[<p>Históricamente los clientes y servidores FTP han formado parte del conjunto de herramientas más utilizadas por los desarrolladores web. Con la sofisticación de los entornos de desarrollo y la adopción cada vez mayor de los sistemas de control de versiones su uso ha disminuido ligeramente, pero sigue conservando su estatus de herramienta esencial. </p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="650" height="365" src="https://blog.ahierro.es/wp-content/uploads/2019/05/vsftp.png" alt="servidor ftp raspberry pi y ubuntu" class="wp-image-849" srcset="https://blog.ahierro.es/wp-content/uploads/2019/05/vsftp.png 650w, https://blog.ahierro.es/wp-content/uploads/2019/05/vsftp-300x168.png 300w" sizes="auto, (max-width: 650px) 100vw, 650px" /></figure>



<span id="more-437"></span>



<p>Esta entrada pertenece a la serie de artículos sobre cómo utilizar una <a href="https://blog.ahierro.es/raspberry-pi-como-herramienta-de-apoyo-para-el-desarrollo-web/">Raspberry PI como herramienta de apoyo para el desarrollo web</a>,  y veremos como instalar y configurar vsftp en Ubuntu,  crear  usuarios virtuales y habilitar el acceso con el protocolo FTPS.</p>



<h2 class="wp-block-heading">vsftp</h2>



<p>Puestos a implementar una solución ftp el primer paso será elegir uno de las muchas posibilidades que existen en el mercado. Si ya hemos descartado el protocolo SFTP, y queremos un servidor FTP o FTPS que nos permita mantener la simplicidad pero ampliando la versatilidad, y que además esté disponible bajo licencia de software libre, vsftp (Very Secure FTP) es una buena opción. </p>



<p>Además otra de las ventajas de Vsftp es que su uso está muy extendido y es fácil resolver cualquier duda con alguna consulta en internet, y entre algunas de sus características podemos destacar: </p>



<ul class="wp-block-list"><li>  Usuarios virtuales</li><li> Configuración avanzada por usuario</li><li> Configuración por IP de origen</li><li> Límites por IP de origen</li><li> Limitación de ancho de banda</li><li> Encriptación sobre SSL </li></ul>



<p>Características más que suficientes para cubrir muchos de los casos que podemos necesitar. </p>





<p>Por otro lado, si leiste el articulo <a href="https://blog.ahierro.es/ftp-ftps-y-sftp-diferencias-ventajas-inconvenientes/">FTP, FTPS y SFTP: diferencias, ventajas e inconvenientes</a>, es interesante destacar que es totalmente compatible tener habilitado el acceso SFTP y el acceso FTP y FTPS con Vsftp. Esto nos permitiría por ejemplo utilizar SFTP para los usuarios del sistema y FTPS para una lista de usuarios específicos con unas necesidades distintas.</p>



<h2 class="wp-block-heading"> Instalar vsftp </h2>



<p>Como es habitual la instalación de cualquier programa incluido en los repositorios de una distro es algo muy sencillo.</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
sudo apt-get update
sudo apt-get install vsftpd
</pre></div>


<p>Tras la instalación de vsftp el servidor es perfectamente funcional con los usuarios del sistema </p>



<h2 class="wp-block-heading">Configurar vsftp </h2>



<p>La configuración de vsftp ofrece muchas posibilidades y  se realiza en el archivo <em>/etc/vsftpd.conf</em>, puedes ver <a rel="noreferrer noopener" aria-label="opciones de configuración que tiene en este enlace (abre en una nueva pestaña)" href="https://security.appspot.com/vsftpd/vsftpd_conf.html" target="_blank">todas las opciones de configuración que tiene en este enlace</a>.</p>



<p>En cuanto a las configuraciones que vamos a aplicar lo haremos en entradas separadas para facilitar la organización y la lectura y evitar que esto se convierta en un artículo demasiado largo y aburrido. A continuación tienes los enlaces:</p>



<ul class="wp-block-list"><li><a href="https://blog.ahierro.es/usuarios-virtuales-en-vsftp/">Creación y configuración de usuarios virtuales</a></li><li><a href="https://blog.ahierro.es/ftps-o-como-habilitar-ssl-en-vsftp/">Habilitar el acceso por FTPS</a></li></ul>



<h2 class="wp-block-heading">Comprobamos que todo funciona</h2>



<p>Después de aplicar cualquier configuración deberemos probar que funciona correctamente, para ello el primer paso será reiniciar el servidor para aplicar la nueva configuración y acto seguido conectarnos con nuestro cliente ftp favorito.</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
sudo service vsftpd restart
</pre></div>


<p>En caso de que tengamos algún tipo de problema podemos revisar los logs de vsftp en /var/log/vsftp.log y los logs de autentificación /var/log/auth.log. Ojo que podemos tener más de un archivo de log por servicio.</p>La entrada <a href="https://blog.ahierro.es/vsftp-instalar-y-configurar-un-servidor-ftp-en-raspberry-pi-con-ubuntu/">VSFTP instalar y configurar un servidor FTP en una Raspberry Pi con Ubuntu</a> apareció primero en <a href="https://blog.ahierro.es">blog.ahierro.es, programación, internet, tecnología y otras historias</a>.]]></content:encoded>
					
					<wfw:commentRss>https://blog.ahierro.es/vsftp-instalar-y-configurar-un-servidor-ftp-en-raspberry-pi-con-ubuntu/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>FTP, FTPS y SFTP: diferencias, ventajas e inconvenientes</title>
		<link>https://blog.ahierro.es/ftp-ftps-y-sftp-diferencias-ventajas-inconvenientes/</link>
					<comments>https://blog.ahierro.es/ftp-ftps-y-sftp-diferencias-ventajas-inconvenientes/#comments</comments>
		
		<dc:creator><![CDATA[Andres]]></dc:creator>
		<pubDate>Fri, 01 Feb 2019 06:51:39 +0000</pubDate>
				<category><![CDATA[Servicios]]></category>
		<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[ftp]]></category>
		<category><![CDATA[ftps]]></category>
		<category><![CDATA[servidor]]></category>
		<category><![CDATA[sftp]]></category>
		<category><![CDATA[software]]></category>
		<guid isPermaLink="false">https://blog.ahierro.es/?p=471</guid>

					<description><![CDATA[<p>La curiosidad y la predisposición a probar cosas nuevas suelen ser cualidades bastante habituales entre las personas relacionadas con la tecnología, pero existen ciertas situaciones en las que estamos tan acostumbrados a realizar algunas tareas de una determinada forma que no nos cuestionamos el por qué o si es posible hacerlo mejor con algunos cambios. &#8230; </p>
<p class="link-more"><a href="https://blog.ahierro.es/ftp-ftps-y-sftp-diferencias-ventajas-inconvenientes/" class="more-link">Continuar leyendo<span class="screen-reader-text"> "FTP, FTPS y SFTP: diferencias, ventajas e inconvenientes"</span></a></p>
La entrada <a href="https://blog.ahierro.es/ftp-ftps-y-sftp-diferencias-ventajas-inconvenientes/">FTP, FTPS y SFTP: diferencias, ventajas e inconvenientes</a> apareció primero en <a href="https://blog.ahierro.es">blog.ahierro.es, programación, internet, tecnología y otras historias</a>.]]></description>
										<content:encoded><![CDATA[<p>La curiosidad y la predisposición a probar cosas nuevas suelen ser cualidades bastante habituales entre las personas relacionadas con la tecnología, pero existen ciertas situaciones en las que estamos tan acostumbrados a realizar algunas tareas de una determinada forma que no nos cuestionamos el por qué o si es posible hacerlo mejor con algunos cambios.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="650" height="365" src="https://blog.ahierro.es/wp-content/uploads/2019/01/ftt_sftp_ftps.png" alt="FTP, SFTP y FTPS" class="wp-image-477" srcset="https://blog.ahierro.es/wp-content/uploads/2019/01/ftt_sftp_ftps.png 650w, https://blog.ahierro.es/wp-content/uploads/2019/01/ftt_sftp_ftps-300x168.png 300w" sizes="auto, (max-width: 650px) 100vw, 650px" /></figure>



<span id="more-471"></span>



<p>El uso del FTP suponía para mi una de esas situaciones, lo utilizo con relativa frecuencia pero nunca me había cuestionado cual era la diferencia entre FTPS y SFTP. Si bien sabía que ambos añadían una capa de encriptación con respecto al protocolo FTP,&nbsp; desconocía por completo que era lo que les distinguía. Así que cuando configuraba una nueva conexión, seleccionaba la opciones que me permitía conectar sin darle mayor importancia.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="474" height="146" src="https://blog.ahierro.es/wp-content/uploads/2019/01/filizilla_ftp_protocol.png" alt="Filezilla, protocolos ftp, ftps y sftp" class="wp-image-475" srcset="https://blog.ahierro.es/wp-content/uploads/2019/01/filizilla_ftp_protocol.png 474w, https://blog.ahierro.es/wp-content/uploads/2019/01/filizilla_ftp_protocol-300x92.png 300w" sizes="auto, (max-width: 474px) 100vw, 474px" /></figure>



<p>El caso es que hace unas semanas instalé un servidor FTP en mi Raspberry. No es el primero que instalo, pero cuando lo he hecho siempre han estado destinados a ámbitos muy concretos, protegidos por una red local y su uso ha sido prácticamente unipersonal,&nbsp; por lo que nunca me preocupé demasiado por los detalles más allá de que me permitieran conectar y hacer mi trabajo.</p>



<p>La diferencia fue que en esta ocasión quise profundizar un poco más, conocer exactamente la diferencia entre los distintos protocolos y aplicar configuraciones más complejas y eso es lo que os cuento en esta y otras entradas que vendrán.</p>



<h3 class="wp-block-heading">FTP</h3>



<p>FTP son siglas de File Transfer Protocol, es un protocolo que lleva con nosotros desde la década de los 70 y fue diseñado para la transferencia de archivos a través de la red con&nbsp; una configuración de cliente-servidor.</p>





<p>Su principal defecto es que carece de capa alguna de seguridad, los datos viajan por la red en texto plano, sin encriptación, de modo que es muy sencillo interceptar no solo los archivos que se transmiten sino también los datos de autentificación. Por otro lado, esta ausencia de encriptación es la responsable de que sea el protocolo de transmisión más rápido de los que veremos en esta entrada, pues no existe consumo de recursos relacionados con la encriptación y el tamaño de los paquetes transmitidos es menor.</p>



<p>Por defecto hace uso del puerto 21 y es el precursor de los otros dos protocolos que vamos a ver en esta entrada.</p>



<h3 class="wp-block-heading">FTPS</h3>



<p>Las siglas FTPS provienen de FTP over SSL y no es más que el protocolo estándar FTP transmitido sobre una conexión segura. Inicialmente la conexión segura hacía referencia únicamente&nbsp; SSL (Secure Sockets Layer), pero con el&nbsp; paso del tiempo y la aparición del protocolo TLS (Transport Layer Security), también soporta este último. Este protocolo hace uso de dos canales diferentes: uno de control y otro de transferencia, y tiene dos variantes bien diferenciadas:</p>



<ul class="wp-block-list"><li><strong>FTP implicito sobre SSL</strong>. Recibe este nombre porque la conexión cifrada es implicita, es decir, ocurre desde un primer instante, sin necesidad de solicitarla, motivo por el cual además está desaconsejada (deprecated). Por defecto utiliza el puerto 990 para el canal de control y el 998 para el de datos, de forma que el puerto 21 permanece libre para poder ofrecer un servicio FTP estandar. En cualquier caso los dos canales viajan encriptados.</li><li><strong>FTP explicito sobre SSL</strong> o también conocido como FTPES. El cliente establece una conexión FTP estándar mediante el puerto 21 con el servidor y una vez conectado se solicita explícitamente la negociación SSL, de ahí el nombre. En función de la configuración del servidor, si el cliente no solicita la encriptación es posible que ocurran dos cosas: que se rechace la conexión o que se establezca una conexión FTP estándar (insegura). Esta variante permite decidir si queremos encriptar los canales de control y transferencia o si por el contrario solo queremos encriptar uno de ellos.</li></ul>



<p>Un aspecto que puede resultar negativo de este protocolo es que por el hecho de utilizar más de un canal puede resultar problemático con algunas configuraciones en los firewalls, así que es posible que si tenemos un firewall en funcionamiento e implementamos un servidor FTPS nos veremos obligados a revisar su configuración.</p>





<h3 class="wp-block-heading">STFP</h3>



<p>SFTP o SSH File Transfer Protocol es un protocolo que «simula» el comportamiento del protocolo FTP pero que realmente poco o nada tiene que ver con él, no es una extensión o una mejora como puede ser FTPS, si no que fue desarrollado desde cero.</p>



<p>Tanto los datos de control como de transferencia se transmiten siempre encriptados y por un único canal, utilizando para ello el puerto 22 al igual que el protocolo SSH (Secure SHell) sobre el que está construido. Posiblemente por este motivo muchos servidores FTP implementan los protocolos FTP Y FTPS pero no SFTP. En su lugar podemos ver implementaciones&nbsp; de servidores SFTP de la mano de los propios servidores de SSH, algunos ejemplos son OpenSSH o LSH.</p>



<p>SFTP ha sido el último protocolo en llegar y cabe destacar que su especificación nunca ha pasado de ser un borrador, es decir, no existe un documento RFC.</p>



<h3 class="wp-block-heading">Conclusión</h3>



<p>Es interesante conocer qué hay detrás de los distintos protocolos de transmisión de ficheros para poder decidir cual es el que mejor se adapta a las necesidades que tengamos en cada momento.</p>



<p>Mi recomendación dependerá del uso que le vayamos a dar, pero siempre que sea posible utilizaría un protocolo que implemente una capa de encriptación y no esté desaconsejado (deprecated), es decir: SFTP o FTPES.</p>



<p>¿Y tú qué opinas al respecto? ¿Qué protocolo prefieres y por qué? ¿Has tenido alguna mala experiencia por utilizar un FTP sin encriptación? Déjanos un comentario contándonos tu experiencia.</p>



<h2 class="wp-block-heading">Créditos, referencias y artículos relacionados</h2>



<ul class="wp-block-list"><li><a href="https://blog.ahierro.es/vsftp-instalar-y-configurar-un-servidor-ftp-en-raspberry-pi-con-ubuntu/">VSFTP instalar y configurar un servidor FTP en una Raspberry Pi con Ubuntu</a></li><li><a href="https://blog.ahierro.es/ftps-o-como-habilitar-ssl-en-vsftp/">FTPS o cómo habilitar SSL en vsftp</a></li><li><a href="https://blog.ahierro.es/usuarios-virtuales-en-vsftp/">Usuarios virtuales en vsftp</a></li></ul>





<p></p>La entrada <a href="https://blog.ahierro.es/ftp-ftps-y-sftp-diferencias-ventajas-inconvenientes/">FTP, FTPS y SFTP: diferencias, ventajas e inconvenientes</a> apareció primero en <a href="https://blog.ahierro.es">blog.ahierro.es, programación, internet, tecnología y otras historias</a>.]]></content:encoded>
					
					<wfw:commentRss>https://blog.ahierro.es/ftp-ftps-y-sftp-diferencias-ventajas-inconvenientes/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
	</channel>
</rss>
