# proftpd
[TOC]
## instal·lació: observar que contesten les següents ordres
```
sudo apt install proftpd
vs
sudo apt install proftpd-basic
```
## comprovació de l'accés
- sols comptes del sistema
## habilitar tls (xifrat)
1) generar certificat
```
sudo openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 -keyout /etc/ssl/private/proftpd.key -out /etc/ssl/certs/proftpd.crt -subj "/C=SP/ST=Testing/L=Barcelona/O=ITIC/CN=proftp.lab22.test"
```
2) habilitar el mòdul
```
sudo sed -i '/mod_tls.c/s/^#//' /etc/proftpd/modules.conf
```
3) incloure el mòdul
```
sudo sed -i '/tls/ s/^#//' /etc/proftpd/proftpd.conf
```
4) generar fitxer tsl.conf
```
sudo tee /etc/proftpd/tls.conf << EOF
<IfModule mod_tls.c>
TLSEngine on
TLSLog /var/log/proftpd/tls.log
TLSProtocol SSLv23
TLSRSACertificateFile /etc/ssl/certs/proftpd.crt
TLSRSACertificateKeyFile /etc/ssl/private/proftpd.key
TLSVerifyClient off
TLSRequired on
TLSRenegotiate required off
</IfModule>
EOF
```
## habilitar el compte anònim
## compte anònim
1) copiar la configuració al directori de configuracions
```
sudo tee /etc/proftpd/conf.d/anonim.conf << EOF
<Anonymous ~ftp>
User ftp
Group nogroup
# We want clients to be able to login with "anonymous" as well as "ftp"
UserAlias anonymous ftp
# Cosmetic changes, all files belongs to ftp user
DirFakeUser on ftp
DirFakeGroup on ftp
RequireValidShell off
# Limit the maximum number of anonymous logins
MaxClients 10
# We want 'welcome.msg' displayed at login, and '.message' displayed
# in each newly chdired directory.
DisplayLogin welcome.msg
DisplayChdir .message
# Limit WRITE everywhere in the anonymous chroot
<Directory *>
<Limit WRITE>
DenyAll
</Limit>
</Directory>
</Anonymous>
EOF
```
## comptes virtuals
1) crear els directoris dels comptes virtuals
```
sudo mkdir -m 700 -p /home/proftpd/{test01,test02}
sudo chown 15001 /home/proftpd/test01
sudo chown 15002 /home/proftpd/test02
```
2) creació de la base de dades
```
sudo touch /etc/proftpd/ftpd.passwd
sudo chown proftpd: /etc/proftpd/ftpd.passwd
sudo chmod ug=r,o-r /etc/proftpd/ftpd.passwd
echo 'c0ntr@sseny@01' | sudo ftpasswd --stdin --passwd --file=/etc/proftpd/ftpd.passwd --name=test01 --uid=15001 --gid=15001 --home=/home/proftpd/test01 --shell=/bin/false
echo 'c0ntr@sseny@02' | sudo ftpasswd --stdin --passwd --file=/etc/proftpd/ftpd.passwd --name=test02 --uid=15002 --gid=15002 --home=/home/proftpd/test02 --shell=/bin/false
```
3) copiar la configuració al directori conf.d
```
sudo tee /etc/proftpd/conf.d/comptes-virtuals << EOF
### --
## -- fitxer de configuracio (virtual_users.conf a /etc/proftpd/conf.d )
### --
# no permetre que els comptes retrocedesquen ("pugen") en l'arbre de directoris
DefaultRoot ~
RequireValidShell off
# fitxer associat per als comptes virtuals
AuthUserFile /etc/proftpd/ftpd.passwd
# no crearem grups per compartir info entre els comptes virtuals
## AuthGroupFile /etc/proftpd/ftpd.group
# Sols permetre l'acces amb comptes virtuals
AuthOrder mod_auth_file.c
# si vulguerem que tambe els comptes del sistema ho feren...
## AuthOrder mod_auth_file.c mod_auth_unix.c
EOF
```