Pure-FTPd es un servidor FTP gratuito y liviano basado en Troll-FTPd, el desarrollo comenzó en 2001 y se ejecuta en muchos sistemas operativos similares a Unix, incluidos Linux, *BSD, Solaris y HP-UX. Pure-FTPd tiene muchas características como dominios virtuales, directorio de inicio chroot, usuarios virtuales, compatibilidad con TLS/SSL, cuota virtual y muchas más.
En este tutorial, le mostraré cómo instalar y configurar pure-ftpd en OpenSUSE Leap 42.1. Le mostraré cómo configurar ftpd puro con TLS/SSL y luego configurar usuarios virtuales.
Requisito previo
- OpenSUSE Leap 42.1
- Privilegios de raíz
- OpenSUSE, conocimiento de 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.
Instale SuSEfirewall2 con zypper:
zypper in SuSEfirewall2
Luego, edite el archivo de configuración '/etc/sysconfig/SuSEfirewall2' con vim:
vim /etc/sysconfig/SuSEfirewall2
Agregue los nuevos servicios ssh y FTP a la línea 253:
FW_SERVICES_EXT_TCP="ssh ftp"
Guardar y salir.
Ahora inicie 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 de TLS/SSL y configuraremos el usuario y el grupo de pure-ftpd.
Instale las aplicaciones con zypper como se muestra a continuación:
zypper in pure-ftpd openssl
Ahora agregue el nuevo grupo 'ftpgroup ' y el nuevo usuario para el maestro 'FTP user' llamado 'ftpuser ' al grupo.
groupadd ftpgroup
useradd -g ftpgroup -d /dev/null -s /etc ftpuser
Vaya al directorio pure-ftpd y edite el archivo de configuración 'pure-ftpd.conf' con el editor vim:
cd /etc/pure-ftpd/
vim pure-ftpd.conf
Cambie el valor en la línea 81 a 'sí' para deshabilitar al usuario anónimo.
NoAnonymous yes
Descomente 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' para el respaldo.
PureDB /etc/pure-ftpd/pureftpd.pdb
Comente 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
Guardar y salir.
Paso 3:configurar TLS/SSL para Pure-FTPd
Genere 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
Cambie los permisos del archivo del certificado a 0600:
chmod 600 /etc/ssl/private/pure-ftpd.pem
A continuación, vuelva al directorio pure-ftpd y edite el archivo de configuración para habilitar la compatibilidad con TLS/SSL para la conexión del cliente.
cd /etc/pure-ftpd/
vim pure-ftpd.conf
Descomente la línea 439 para habilitar TLS.
TLS 1
Descomente la línea 449 y agregue una nueva opción para que sea más segura.
TLSCipherSuite HIGH:MEDIUM:+TLSv1:!SSLv2:!SSLv3
Descomente la línea 445 para definir el archivo de certificado.
CertFile /etc/ssl/private/pure-ftpd.pem
Guardar y salir.
Ahora inicie pure-ftpd con el comando systemctl:
systemctl start pure-ftpd
Paso 4:configurar usuarios virtuales
Pure-FTPd proporciona funciones para crear y utilizar usuarios virtuales en lugar de usuarios del sistema real (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, configuramos 'PureDB' como 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 de inicio de ftp y el usuario se conecta a ese directorio para que no pueda acceder a los otros directorios del sistema.
Cree el nuevo usuario virtual con pure-pw:
pure-pw useradd shiro -u ftpuser -d /srv/ftp/shiro
Cree el directorio para el usuario virtual y cambie el propietario de ese directorio al 'usuario de FTP' maestro.
mkdir -p /srv/ftp/shiro
chown -R ftpuser.ftpgroup /srv/ftp/shiro
A continuación, debemos guardar los cambios con el siguiente comando:
pure-pw mkdb
Ahora que el usuario shiro está listo para usarse, podemos usar FTPp desde la línea de comandos o FileZilla para la interfaz GUI para conectarnos al servidor.
pure-pw tiene más opciones de comando, puede usar 'ayuda de pure-pw ' para ver todos los comandos útiles.
Paso 5 - Prueba
Usaré el comando FTP en la terminal para la prueba. Abre tu terminal y escribe "ftp":
ftp
Luego ingrese la ip del servidor pure-ftpd:
open 192.168.43.69
Inicie sesión con el usuario 'shiro' y la contraseña y luego presione 'Enter'.
Intente cargar el archivo con el comando 'put':
put picture.png mypict.png
Ahora verá el archivo mypict.png en el servidor con el siguiente comando ls:
ls