# Despligue de servicio FTP

El protocolo FTP (File Transfer Protocol) es uno de los métodos más comunes para transferir archivos entre sistemas. Aquí te explico varias formas de desplegar un servicio FTP que debería conocer un hacker, utilizando diferentes herramientas y configuraciones en diversos sistemas operativos.

## <mark style="color:green;">1.</mark> <mark style="color:green;"></mark><mark style="color:green;">**vsftpd (Very Secure FTP Daemon) en Linux**</mark>

`vsftpd` es uno de los servidores FTP más seguros y populares en Linux.

**Instalación y Configuración:**

1. **Instalar vsftpd:**

   ```bash
   sudo apt-get install vsftpd
   ```
2. **Configurar vsftpd:** Edita el archivo de configuración `/etc/vsftpd.conf`:
   * Permitir acceso anónimo (opcional):

     ```makefile
     anonymous_enable=YES
     ```
   * Permitir acceso local:

     ```makefile
     local_enable=YES
     write_enable=YES
     ```
3. **Reiniciar el servicio vsftpd:**

   ```bash
   sudo systemctl restart vsftpd
   ```
4. **Agregar usuarios al servicio FTP (si no se permite el acceso anónimo):**

   ```bash
   sudo useradd -m -s /bin/false ftpuser
   sudo passwd ftpuser
   ```

## <mark style="color:green;">2.</mark> <mark style="color:green;"></mark><mark style="color:green;">**ProFTPD (Professional FTP Daemon) en Linux**</mark>

`ProFTPD` es un servidor FTP flexible y altamente configurable.

**Instalación y Configuración:**

1. **Instalar ProFTPD:**

   ```bash
   sudo apt-get install proftpd
   ```
2. **Configurar ProFTPD:** Edita el archivo de configuración `/etc/proftpd/proftpd.conf`:
   * Habilitar acceso anónimo (opcional):

     ```mathematica
     <Anonymous ~ftp>
       User ftp
       Group nogroup
       UserAlias anonymous ftp
       RequireValidShell off
       MaxClients 10
     </Anonymous>
     ```
3. **Reiniciar el servicio ProFTPD:**

   ```bash
   sudo systemctl restart proftpd
   ```

## <mark style="color:green;">3.</mark> <mark style="color:green;"></mark><mark style="color:green;">**Pure-FTPd en Linux**</mark>

`Pure-FTPd` es un servidor FTP seguro y fácil de configurar.

**Instalación y Configuración:**

1. **Instalar Pure-FTPd:**

   ```bash
   sudo apt-get install pure-ftpd
   ```
2. **Configurar Pure-FTPd:** Crear un usuario virtual:

   ```bash
   sudo pure-pw useradd ftpuser -u ftpuser -d /home/ftpusers/ftpuser
   sudo pure-pw mkdb
   ```
3. **Reiniciar el servicio Pure-FTPd:**

   ```bash
   sudo systemctl restart pure-ftpd
   ```

## <mark style="color:green;">4.</mark> <mark style="color:green;"></mark><mark style="color:green;">**Serv-U FTP Server en Windows**</mark>

`Serv-U FTP Server` es un servidor FTP robusto para Windows, utilizado tanto en entornos personales como empresariales.

**Instalación y Configuración:**

1. **Descargar e instalar Serv-U FTP Server** desde el sitio web oficial.
2. **Configurar Serv-U FTP Server** utilizando la interfaz gráfica:
   * Crear un nuevo dominio FTP.
   * Configurar usuarios y permisos.
   * Especificar las rutas de los directorios compartidos.
3. **Iniciar el servicio FTP** desde la interfaz de administración.

## <mark style="color:green;">5.</mark> <mark style="color:green;"></mark><mark style="color:green;">**FileZilla Server en Windows**</mark>

`FileZilla Server` es una opción popular y gratuita para configurar un servidor FTP en Windows.

**Instalación y Configuración:**

1. **Descargar e instalar FileZilla Server** desde el sitio web oficial.
2. **Configurar FileZilla Server**:
   * Abrir FileZilla Server Interface.
   * Crear usuarios y asignarles contraseñas.
   * Configurar directorios compartidos y permisos.
3. **Iniciar el servicio FTP** desde la interfaz de administración.

## <mark style="color:green;">6.</mark> <mark style="color:green;"></mark><mark style="color:green;">**Utilizando Python para un servidor FTP rápido**</mark>

Python puede ser utilizado para crear un servidor FTP rápido y simple, útil para pruebas y transferencias rápidas.

**Ejemplo utilizando pyftpdlib:**

1. **Instalar pyftpdlib:**

   ```bash
   pip install pyftpdlib
   ```
2. **Iniciar el servidor FTP:**

   ```bash
   python -m pyftpdlib -p 21
   ```

## <mark style="color:green;">7.</mark> <mark style="color:green;"></mark><mark style="color:green;">**Utilizando Docker para un servidor FTP**</mark>

Docker puede ser utilizado para desplegar rápidamente un servidor FTP utilizando contenedores.

**Ejemplo con vsftpd:**

1. **Crear un archivo Dockerfile** para configurar el contenedor:

   ```Dockerfile
   FROM fauria/vsftpd
   ```
2. **Construir y ejecutar el contenedor Docker:**

   ```bash
   docker build -t my-vsftpd .
   docker run -d -p 21:21 -p 21100-21110:21100-21110 -e FTP_USER=user -e FTP_PASS=pass -v /host/path:/home/vsftpd --name vsftpd my-vsftpd
   ```

Estas son algunas de las formas más comunes de desplegar un servicio FTP. La elección del método depende del entorno y las necesidades específicas del pentest. Cada método tiene sus propias ventajas y configuraciones específicas que pueden ser explotadas o utilizadas para diversos propósitos.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://books.spartan-cybersec.com/cppj/transferencia-de-archivos/despligue-de-servicio-ftp.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
