Prolog
Jadi ceritanya selalu bingung ingin membuat web hosting yang lengkap dengan fasilitas FTP-nya, tapi selalu saja agak ragu mengenai file permission, ya seharusnya sih langsung dikerjakan aja yah, hehehe. Tau lah, orangnya terlalu banyak pertimbangan, hehehe. Ada yang bilang katanya FTP dah gak zaman, dah bukan eranya lagi, karena sekarang ada yang lebih secure, yaitu pakai SFTP.
Dipikir-pikir banyak juga sih keuntungannya dengan SFTP ini, seperti:
- Tidak perlu buka port lainnya, karena SFTP menggunakan port yang sama dengan SSH
- Sudah banyak software yang mendukung dengan SFTP
- Gak perlu bingung lagi mau pakai FTP server menggunakan vsftp atau pure-ftpd yang kadang malah jadi bingung lah kalau disuruh memilih, hehehe.
OK, kita lanjut aja langsung ke konfigurasi SFTP-nya.
Kebutuhan
Kita akan membuat skema yang mudah saja untuk SFTP server dimana nanti setiap user bisa mengupload file milik mereka di home directory mereka sendiri. Karena kita akan menggunakan Nginx sebagai web server, artinya kita tidak membutuhkan lagi membuat group khusus yang akan akses melalui SFTP melainkan menggunakan group default nginx.
Dan kita akan membuat user hanya bisa login melalui SFTP saja tanpa bisa login dengan SSH.
Membuat User
sudo adduser -G nginx rodja
sudo passwd rodja
Menyesuaikan Konfigurasi SSHD Untuk SFTP
sudo vim /etc/ssh/sshd_config
Rubah dan tambahkan sesuai seperti konfigurasi ini:
PasswordAuthentication yes
Subsystem sftp internal-sftp
Match group nginx
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
Setelah itu kita restart SSH service dengan perintah:
sudo systemctl restart sshd
Mempersiapkan Folder
- Sebelumnya kita sudah membuat user rodja dan langsung memasukkannya ke group nginx, maka otomatis home directory akan langsung dibuat juga di /home/rodja.
- Menurut dokumentasi OpenSSH, home directory (ChrootDirectory) harus dimiliki oleh root
sudo chown root:nginx /home/rodja
sudo chmod 755 /home/rodja
Tentu saja saat ini user sudah bisa login melalui SFTP tetapi belum memiliki akses untuk membuat file di folder rodja, maka untuk mengakalinya kita akan membuat folder html dan kemudian menjadikan folder ini sebagai root directory di Nginx untuk domain² yang dibuat oleh user tersebut.
sudo mkdir /home/rodja/html
sudo chown rodja:nginx /home/rodja/html
Sip. Selesai sudah dan silakan untuk test ditempat masing² hehehe.

Disadur dari LinuxTeck