---
# System prepended metadata

title: proftpd

---

# 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
```

