Apuntes de Kirby
  • 👀whoami
  • 🦉Redes
    • Introducción Redes
      • Organizaciones
      • Historia
      • Puntos de conexión
      • Métodos de acceso a la red
    • Clasificación de las redes
    • Topología de las red
    • Direccionamiento IP
      • IPv4
        • Subredes IPv4
        • Superredes IPv4
        • VLSM
      • IPv6
      • MAC
      • NAT
    • Enrutamiento estático
    • Enrutamiento dinámico
      • RIPv1 & RIPv2
      • Tablas de enrutamiento
      • 🚧Redes conmutadas
    • CML
      • 🚧1er CML lab
    • CISCO
      • ¿Qué son las VLAN?
        • Ejemplo 1 de VLAN
        • Ejemplo 2 de VLAN
      • Acceso y password
      • NAT / PAT
    • Firewalls
      • Tipos de firewalls
      • ZPF
        • Funcionamiento
        • Configurando un ZPF
      • Sophos Firewall XG
        • Sophos home
        • Aprendiendo a usar Sophos
      • pfSense
        • Instalando pfSense
        • OpenVPN en pfSense
        • Port Forward
        • Alias
    • Proxy
      • Squid en pfSense
        • Squid Proxy Server
        • SquidGuard Proxy
      • Proxy reverse Nginx
    • 🚧Suricata
  • 🐝Servicios
    • Servidores Web
      • Nginx
        • NGINX, hosts virtuales
        • Hosts virtuales basados en dominio
        • PHP-FPM
        • Nginx: PHP y MySQL
          • MySQLi - PHP
        • En Alpine linux
        • 🚧Proxy
    • Servidores de correo
      • Seguridad en el correo
      • Postfix
      • hMailServer
      • Clientes de correo
        • Mailutils
        • Mutt
    • Servidores de FTP
      • FileZilla
      • VSFTPD
      • FTP vía IIS
    • Servidores DNS
      • DNS - Windows Server 2016
      • DNS - Ubuntu Server 22.04
      • Systemd
    • Servidores DHCP
      • DHCP-Windows Server 2016
      • DHCP-Ubuntu Server 22.04
    • Servidores MySQL
    • 🚧Mensajería instantánea
      • Ejabberd
    • 🚧Imágenes - Vídeos
      • FFMPEG + YT-DLP
      • Plex
      • Jellyfin
      • Plesk
      • RTMP
      • SRT
    • Webmin + Virtualmin
  • NextCloud
  • 🔑Seguridad
    • NAS
      • Instalación Synology NAS en VirtualBox
        • Creación de volúmenes y su uso
        • Actualización Synology NAS
        • Creación de usuarios y carpetas compartidas
        • Funciones del panel de control
          • Acceso por SSH
          • Configuración de los servicios de archivos
          • Configuración de red
          • Copias de seguridad (restauración)
          • Seguridad
          • Personalizar páginas de inicio
          • Servicio de notificaciones
        • Centro de paquetes Synology
          • Servidores multimedia
          • Paquetes de utilidades
          • Cloud Sync
          • Hyper Backup
          • Synology Office
      • Truenas
        • Rsync en Truenas
      • OpenmediaVault
    • Backups
      • Rsync
        • Ejemplo de rsync
    • ¿Qué son las ACL?
    • SOPS/AGE
    • RAID
      • mdadm
  • 🐳Virtualización
    • Proxmox
      • Instalar en VMWare
      • Instalar en VirtualBox
      • Entorno Proxmox
      • Almacenamiento local
      • Añadir discos
      • Clonar
      • Qemu agent
      • Linux container - LXC
      • Clúster
      • Red Interna
      • 🚧Proxmox Backup
      • 🚧Otras consideraciones
    • Alpine Linux
    • Contenedores
      • Docker
        • YAML
        • Instalando Docker
        • Portainer
          • Instalando Portainer
          • Dentro de Portainer
        • Docker volumen
        • Docker compose
          • Docker: PHP y MySQL
          • Importar sitio web en Docker
          • Instalando Wordpress
      • Pi-hole
        • Instalando Pi-hole en Docker
        • Instalando Pi-hole en Debian
        • RDP
          • RDP - Docker
  • 🐞Misceláneas
    • Datos - codificación
    • IPTables
    • Túnel con Cloudflare
    • Servidor de video
    • Comandos de Linux
    • Anaconda & Spyder
    • CGI - NGINX
    • Arduino
      • Capítulo 0 Blink
      • Capítulo 1 Led
      • Capítulo 2 Botton & LED
  • ⁉️Interesante
    • Curioso
    • Ideas
Powered by GitBook
On this page
  • Configuración del FileZilla
  • Network Configuration Wizard
  • Firewall de Windows
  • Certificado TLS / SSL
  • Creación de certificado raíz auto firmado y generación de certificado cliente con PowerShell en Windows 10 o Windows Server 2016
  • Exportar la clave pública del certificado raíz (.cer)
  • Instalar certificado de cliente

Was this helpful?

Edit on GitHub
  1. Servicios
  2. Servidores de FTP

FileZilla

En Windows Server

PreviousServidores de FTPNextVSFTPD

Last updated 2 years ago

Was this helpful?

Voy a utilizar el servidor de Windows Server 2016 que tengo instalado y que brinda servicio de DNS y DHCP.

Características:

  • Windows Server 2016

  • FileZilla server, versión1.5.1

Servidor
IP
OBS.

trantor.local

dominio del servidor

IP LAN

192.168.5.100

La IP estática del servidor

IP WAN

192.168.X.Y

La IP otorgada por el DHCP del router de casa

DNS

DHCP

192.168.5.20 - 192.168.5.40

rango de IP

Configuración del FileZilla

Los grupos a crear son:

Crear dos usuarios para los dos grupos previamente creados y asignar un usuario a cada uno. FileZilla Server utiliza un sistema de archivos virtual bajo el cual los archivos y directorios estarán disponibles para aquellos usuarios conectados al servidor FTP.

La llamada ruta virtual es la ubicación en el sistema de archivos virtual al que se asignará el directorio nativo y su contenido. De este modo, lo que se visualiza a través de FTP es independiente de la estructura del sistema de archivos nativo subyacente.

Importante tener control del log file. En caso de errores, ahí es donde tenemos que entrar a analizar qué es lo que puede estar fallando. Esto es:

C:\Program Files\FileZilla Server\Logs\filezilla-server.log

Network Configuration Wizard

El servicio de FTP soporta dos modos de establecimiento de la conexión: modo activo y modo pasivo.

El modo pasivo es el modo recomendado para la mayoría de los clientes. En este modo, el equipo cliente pregunta al servidor de FileZilla a qué puerto del servidor debe conectarse. Por el contrario, el modo activo no requiere de configuración en el lado del servidor.

En el modo pasivo es necesario establecer un rango de puertos a utilizar por el servidor para las conexiones de datos. Me voy a quedar con el rango de puertos por defecto de 49512 al 65534.

Las recomendaciones del asistente nos dice que en caso de tener el servidor de FileZilla conectado a la red externa a través de un router NAT, entonces debemos especificar la IP externa o el nombre de host desde el que se puede acceder al servidor de FileZilla. En este punto podemos ingresar la IP pública, el nombre de host o dejarlo vacío en cuyo caso FileZilla utilizará la IP local.

Utilizaremos la IP estática del servidor: 192.168.5.100 y clicamos en Usar la IP local para la conexiones locales, que es lo recomendado y justo lo que probaremos.

Lo siguiente que debemos hacer será abrir los puertos necesarios en el firewall.

Firewall de Windows

Vamos a crear una nueva regla de entrada y salida que permita la conexión del protocolo TCP a los puertos del rango previamente establecido, esto es: del 49512 al 65534.

Una vez hecho esto ya estamos en condiciones de testear la conexión con el servidor.

Prueba de conectividad desde el propio servidor de Windows Server 2016

Aunque no tiene mucho sentido realizar la prueba de conectividad desde el propio servidor, al menos no sirve para testear la configuración básica del servicio de FTP, sin certificado de seguridad:

Para ello, desde el propio CMD podemos hacer:

ftp 192.168.5.100

Nos pedirá usuario y contraseña y como vemos nos ha dado un mensaje de bienvenida que ya había establecido anteriormente.

Prueba de conectividad desde el cliente Windows 10 conectado al servidor

Desde el cliente podemos testear la conexión tanto desde el cliente de FileZilla como desde la línea de comandos, haciendo exactamente lo mismo que en el caso anterior.

A modo de mostrar la conexión establecida os muestro un pantallazo de Wireshark, instalado en el cliente de Windows 10, que muestra:

  • IP del equipo cliente: 192.168.5.20

  • IP del servidor de FTP: 192.168.5.100

  • Usuario: pepa

Esta configuración tiene un grave inconveniente como podéis observar y es que no tiene seguridad y los datos se transmiten en texto plano. Esto sería inadmisible en un entorno real, con lo cual tenemos que configurar el servicio.

¿Pudiéramos conectarnos desde una app en nuestro móvil?

Certificado TLS / SSL

Creación de certificado raíz auto firmado y generación de certificado cliente con PowerShell en Windows 10 o Windows Server 2016

En el PowerShell, vamos a crear un certificado raíz firmado de modo automático con el nombre "FTPCert" y que se instalará automáticamente en Certificates-Current User\Personal\Certificates. Para ver el certificado escribe certmgr.msc, o bien busca Administrar certificados de usuario.

$cert = New-SelfSignedCertificate -Type Custom -KeySpec Signature -Subject "CN=FTPCert" -KeyExportPolicy Exportable -HashAlgorithm sha256 -KeyLength 2048 ` -CertStoreLocation "Cert:\CurrentUser\My" -KeyUsageProperty Sign -KeyUsage CertSign

Generación de un certificado de cliente

Cada equipo cliente que se conecta debe tener instalado un certificado (de cliente). Es posible generarlo desde un certificado raíz auto firmado y, más tarde, exportar e instalarlo, puesto que de no encontrarlo se producirá un error de autenticación.

Generación de certificado de cliente a partir de un certificado auto firmado

Desde el mismo certificado raíz se pueden generar varios certificados de cliente. En este caso, el certificado de cliente se instala automáticamente en el equipo que se usó para generar el certificado. Para instalar un certificado de cliente en otro equipo, es posible exportar el certificado.

El ejemplo siguiente genera un certificado de cliente con el nombre "FTPChildCert". Puedes modificar el nombre del certificado secundario, modificando el valor CN.

El certificado de cliente que se genera se instala en Certificates - Current User\Personal\Certificates.

New-SelfSignedCertificate -Type Custom -DnsName FTPChildCert -KeySpec Signature -Subject "CN=FTPChildCert" -KeyExportPolicy Exportable -HashAlgorithm sha256 -KeyLength 2048 -CertStoreLocation "Cert:\CurrentUser\My" -Signer $cert -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.2")

Si cerraste la consola o vas a crear más certificados

Si vas a crear otros certificados de clientes, o en caso de no usar la misma sesión de PowerShell que has utilizado previamente para crear el certificado raíz auto firmado, entonces:

Identifica el certificado raíz auto firmado que se instaló en el equipo. Para ello haz lo siguiente y verás una lista de certificados instalados en el equipo.

Get-ChildItem -Path "Cert:\CurrentUser\My"

Busca el nombre del firmante de la lista devuelta. Después, busca la huella digital que se encuentra en un archivo de texto. El nombre CN es el nombre del certificado raíz auto firmado a partir del que va a generar un certificado secundario. En nuestro caso, "FTPCert".

Declara una variable para el certificado raíz con la huella digital del paso anterior. Reemplaza la huella digital con la del certificado raíz a partir del que va a generar un certificado secundario.

$cert = Get-ChildItem -Path "Cert:\CurrentUser\My\AED812AD883826FF76B4D1D5A77B3C08EFA79F3F"

Modifica y ejecuta el comando siguiente para generar un certificado de cliente. El resultado es un certificado de cliente con el nombre "FTPCert" y se instala automáticamente en la ruta del equipo Certificates - Current User\Personal\Certificates.

New-SelfSignedCertificate -Type Custom -DnsName FTPCert -KeySpec Signature -Subject "CN=FTPChildCert" -KeyExportPolicy Exportable -HashAlgorithm sha256 -KeyLength 2048 -CertStoreLocation "Cert:\CurrentUser\My" -Signer $cert -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.2")

Exportar la clave pública del certificado raíz (.cer)

Una vez creado el certificado raíz, se puede exportar el archivo .cer de clave pública. Este archivo se cargará más adelante en Azure. Esto es:

  1. Abre el Administrar certificados de usuario.

  2. Busca el certificado raíz auto firmado en Certificados - Usuario actual\Personal\Certificados

  3. Haz clic en Todas las tareas y, luego, en Exportar.

  4. Abre el Asistente para exportar certificados.

  5. Sigue las indicaciones del Asistente y selecciona No exportar la clave privada

  6. En Formato de archivo de exportación, selecciona X.509 codificado base 64 (.CER)

  7. Haz clic en clic en Examinar para buscar una ruta adecuada.

Exportar el certificado raíz auto firmado y la clave privada

En caso de querer exportar el certificado auto firmado para tener una copia de seguridad necesitas seguir los pasos anteriores pero exportando el archivo .pfx.

Exportación del certificado de cliente

Al generar un certificado cliente, éste se instala automáticamente en el equipo utilizado para generarlo. Pero en caso de querer instalarlo en otro equipo cliente, éste se debe exportar.

  1. Exportar certificado cliente:

    1. Abre el Administrar certificados de usuario.

    2. Haz clic en Todas las tareas y en Exportar para abrir el Asistente para exportar certificados.

    3. Selecciona Exportar la clave privada.

    4. Deja seleccionados los valores predeterminados

    5. En Seguridad , debes usar una contraseña para proteger la clave privada.

    6. Establece la ubicación

Instalar certificado de cliente

Una vez exportado el certificado:

  1. Busca y copia el archivo .pfx en el equipo cliente.

  2. Haz doble clic en el archivo .pfx para instalarlo. Deja la Ubicación del almacén como Usuario actual y selecciona Siguiente.

  3. En File to import no hagas cambios.

  4. En Protección de clave privada, escribe la contraseña del certificado

  5. En el Almacén de certificados, deja la ubicación predeterminada

  6. Finalizar

🐝
https://docs.microsoft.com/es-es/azure/vpn-gateway/vpn-gateway-certificates-point-to-site
https://www.goanywhere.com/es/blog/sftp-vs-ftps-cuales-son-las-principales-diferencias
Network Configuration - FileZilla Wiki
Logo
FTPS using Explicit TLS howto (Server) - FileZilla Wiki
Logo