Een ouderwetse FTP server is geen goed idee en ook onnodig. Via SSH is het mogelijk om een SFTP op te zetten. De onderstaande instructies zijn voor SFTP gebruikers, welke niet met deze gegevens op SSH kunnen inloggen of browsen naar andere onderliggende directory’s.

De OpenSSH server gebruiken we al, maar de installatie is als volgt:

$ apt-get install ssh openssh-server

Controleer of de interne SFTP al aan in de OpenSSH server:

$ vi /etc/ssh/sshd_config
[...]
Subsystem sftp internal-sftp
[...]

En voeg aan het einde van /etc/ssh/sshd_config het volgende toe:

Match group sftpusers
  ChrootDirectory /home/%u
  X11Forwarding no
  AllowTcpForwarding no
  ForceCommand internal-sftp

Herstart nu OpenSSH:

$ service ssh restart

Maak de groep sftpusers aan:

$ addgroup sftpusers

Wel belangrijk nu dat de groepsrechten van de website op rw gezet worden.

$ find /var/www -type f -exec chmod 664 {} + -o -type d -exec chmod 775 {} +

Voor elk aan te maken SFTP gebruiker

Doe de volgende commando’s om een gebruiker aan te maken en alleen toegang te geven via SFTP en geen SSH:

$ adduser user
$ adduser user sftpusers    
$ chown root:root /home/user
$ usermod -g www-data -d / user
$ cd /home/user
$ mkdir mailing
$ mkdir uploads
$ mount --bind /var/www/example.com/mailing /home/user/mailing
$ mount --bind /var/www/example.com/wp-content/uploads /home/user/uploads

Om bij een herstart van de machine/VPS de mounts te remounten, zet dan het volgende onder in /etc/fstab:

$ vi /etc/fstab
/var/www/example.com/mailing /home/user/mailing none bind 0 0
/var/www/example.com/wp-content/uploads /home/user/uploads none bind 0 0

De gids “VPS opzetten” bestaat uit de volgende artikelen: