FTP Server · 3 min read · Dec 16, 2025

Cómo instalar Pure-FTPd con TLS y usuarios virtuales en OpenSUSE Leap 42.1

Pure-FTPd es un servidor FTP gratuito y ligero basado en Troll-FTPd, cuyo desarrollo comenzó en 2001 y funciona en muchos sistemas operativos similares a Unix, incluyendo Linux, *BSD, Solaris y HP-UX. Pure-FTPd tiene muchas características como dominios virtuales, directorio home chroot, usuarios virtuales, soporte TLS/SSL, cuotas virtuales y muchas más.

En este tutorial, te mostraré cómo instalar y configurar pure-ftpd en OpenSUSE Leap 42.1. Te mostraré cómo configurar pure-ftpd con TLS/SSL y luego configurar usuarios virtuales.

Requisitos previos

  • OpenSUSE Leap 42.1
  • Privilegios de root
  • Conocimiento de OpenSUSE, Zypper

Paso 1 - Instalar y configurar SuSEfirewall2

SuSEfirewall2 es un script para generar la configuración del firewall en el archivo ‘/etc/sysconfig/SuSEfirewall2’. Instalaremos SuSEfirewall2 y luego abriremos los puertos para SSH y el servicio FTP.

Instala SuSEfirewall2 con zypper:

zypper in SuSEfirewall2

A continuación, edita el archivo de configuración ‘/etc/sysconfig/SuSEfirewall2’ con vim:

vim /etc/sysconfig/SuSEfirewall2

Agrega los nuevos servicios ssh y FTP a la línea 253:

FW_SERVICES_EXT_TCP="ssh ftp"

Guarda y sal.

Ahora inicia SuSEfirewall2 con el comando systemctl:

systemctl start SuSEfirewall2

Paso 2 - Instalar y configurar Pure-FTPd

En este paso, instalaremos pure-ftpd con OpenSSL para la configuración TLS/SSL y configuraremos el usuario y grupo de pure-ftpd.

Instala las aplicaciones con zypper como se muestra a continuación:

zypper in pure-ftpd openssl

Ahora agrega el nuevo grupo ‘ftpgroup‘ y el nuevo usuario para el maestro ‘usuario FTP’ llamado ‘ftpuser‘ al grupo.

groupadd ftpgroup  
useradd -g ftpgroup -d /dev/null -s /etc ftpuser

Ve al directorio de pure-ftpd y edita el archivo de configuración ‘pure-ftpd.conf’ con el editor vim:

cd /etc/pure-ftpd/  
vim pure-ftpd.conf

Cambia el valor en la línea 81 a ‘yes’ para deshabilitar el usuario anónimo.

NoAnonymous                     yes

Descomenta la línea 131 para configurar el backend. Pure-ftpd tiene soporte para MySQL, PostgreSQL y LDAP como backend, pero en este tutorial, usaremos ‘PureDB’ como el backend.

PureDB                        /etc/pure-ftpd/pureftpd.pdb

Comenta la línea PAMAuthentication para deshabilitar la autenticación PAM en la línea 141 ya que usaremos PureDB como fuente de autenticación.

#PAMAuthentication             yes

Guarda y sal.

Paso 3 - Configurar TLS/SSL para Pure-FTPd

Genera un nuevo archivo de certificado autofirmado en el directorio ‘/etc/ssl/private’ con el comando openssl:

openssl req -x509 -nodes -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem -days 365

Cambia los permisos del archivo de certificado a 0600:

chmod 600 /etc/ssl/private/pure-ftpd.pem

A continuación, regresa al directorio de pure-ftpd y edita el archivo de configuración para habilitar el soporte TLS/SSL para la conexión del cliente.

cd /etc/pure-ftpd/  
vim pure-ftpd.conf

Descomenta la línea 439 para habilitar TLS.

TLS                          1

Descomenta la línea 449 y agrega una nueva opción para hacerlo más seguro.

TLSCipherSuite           HIGH:MEDIUM:+TLSv1:!SSLv2:!SSLv3

Descomenta la línea 445 para definir el archivo de certificado.

CertFile                  /etc/ssl/private/pure-ftpd.pem

Guarda y sal.

Ahora inicia pure-ftpd con el comando systemctl:

systemctl start pure-ftpd

Paso 4 - Configurar usuarios virtuales

Pure-FTPd proporciona características para crear y usar usuarios virtuales en lugar de usuarios reales del sistema (Linux). Pure-FTPd proporciona varios backends de autenticación y la configuración del usuario virtual depende del backend que utiliza el servidor. En el paso 2 hemos establecido ‘PureDB’ como el backend.

Podemos crear un nuevo usuario virtual con el comando ‘pure-pw’ proporcionado por pure-ftpd. En este paso, crearemos un nuevo usuario virtual llamado ‘shiro’ con el directorio ‘/srv/ftp/shiro’ como el directorio home de ftp y el usuario está chrooted a ese directorio para que no pueda acceder a otros directorios del sistema.

Crea el nuevo usuario virtual con pure-pw:

pure-pw useradd shiro -u ftpuser -d /srv/ftp/shiro

Crea el directorio para el usuario virtual y cambia el propietario de ese directorio al maestro ‘usuario FTP’.

mkdir -p /srv/ftp/shiro  
chown -R ftpuser.ftpgroup /srv/ftp/shiro

A continuación, debemos guardar los cambios con el comando a continuación:

pure-pw mkdb

Ahora el usuario shiro está listo para ser utilizado, podemos usar FTP desde la línea de comandos o FileZilla para la interfaz gráfica para conectarnos al servidor.

Nota:

pure-pw tiene más opciones de comando, puedes usar ‘pure-pw help‘ para ver todos los comandos útiles.

Paso 5 - Pruebas

Usaré el comando FTP en la terminal para las pruebas. Abre tu terminal y escribe “ftp”:

ftp

A continuación, ingresa la IP del servidor pure-ftpd:

open 192.168.43.69

Inicia sesión con el usuario ‘shiro’ y la contraseña y luego presiona ‘Enter’.

Intenta subir un archivo con el comando ‘put’:

put picture.png mypict.png

Ahora verás el archivo mypict.png en el servidor con el comando ls a continuación:

ls

Conexión FTP

Referencia

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.