En Debian, la instalación simplemente se reduce a:
aptitude install proftpd-basic
El archivo de configuración principal es /etc/proftpd/proftpd.conf. En éste se deben cambiar algunas opciones.
Si no se requiere IPv6:
UseIPv6 off
Configuración para los usuarios y jailing de los mismos:
# Users require a valid shell listed in /etc/shells to login. # Use this directive to release that constrain. RequireValidShell off # Use this to jail all users in their homes DefaultRoot ~ # Add this if you want to limit access to users of some group <Limit LOGIN> DenyGroup !ftpuser </Limit>
La directiva MasqueradeAddress existe para enmascarar la dirección privada del servidor FTP en caso de que se use NAT. Pero al usarla se invalida el propósito de los ftp helper modules de Netfilter, por lo que no debe activarse:
# If your host was NATted, this option is useful in order to # allow passive tranfers to work. You have to use your public # address and opening the passive ports used on your firewall as well. #MasqueradeAddress aaa.bbb.ccc.ddd
Como se limitó el acceso a los usuarios que pertenezcan al grupo “ftpuser”, se debe crear dicho grupo para agregar a él los usuarios que accederán:
addgroup ftpuser
Además, crearemos un directorio donde se crearán los homes de los usuarios:
mkdir /var/ftp
Para agregar usuarios:
adduser usuario -shell /bin/false -home /var/ftp
El paso final es agregar el usuario al grupo ftpuser:
adduser usuario ftpuser
Para proteger de ataques por fuerza bruta, se puede instalar Fail2Ban, activando el jail para ProFTPd:
[proftpd] enabled = true port = ftp,ftp-data,ftps,ftps-data filter = proftpd logpath = /var/log/proftpd/proftpd.log maxretry = 3
Si se tiene instalado Shorewall en un firewall, y el ProFTPd está detrás del mismo, se debe agregar una línea como la siguiente en rules:
#ACTION SOURCE DESTINATION PROTO DEST SOURCE ORIGINAL # PORT(S) PORT(S) DESTINATION DNAT net loc:192.168.1.12 tcp 21 - <external IP addr>