Dalam panduan ini, kita akan membuat user SFTP di Linux SUSE dengan akses terbatas menggunakan metode chroot. Dengan konfigurasi ini, user hanya dapat mengakses direktori tertentu tanpa bisa menjelajahi sistem lainnya.
1. Membuat User Baru
Pertama, buat user baru dengan perintah berikut:
sudo useradd -s /sbin/nologin sftpuser
Perintah ini membuat user sftpuser tanpa akses shell, sehingga user ini hanya bisa digunakan untuk SFTP.
2. Memastikan User Berhasil Dibuat
Gunakan perintah berikut untuk mengecek apakah user telah dibuat:
id sftpuser
Jika user berhasil dibuat, Anda akan melihat informasi UID, GID, dan grup yang terkait dengan user tersebut.
3. Mengatur Password User
Tetapkan password untuk sftpuser agar bisa digunakan untuk login SFTP:
sudo passwd sftpuser
Ikuti instruksi untuk memasukkan dan mengonfirmasi password baru.
4. Menguji Login
Untuk memastikan user telah dibuat, coba login sebagai user tersebut:
sudo su sftpuser
Jika berhasil masuk tanpa error, berarti user telah aktif.
5. Mengonfigurasi SSH agar Mendukung SFTP
Buka file konfigurasi SSH:
vi /etc/ssh/sshd_config
Cari baris yang mengandung Subsystem dan pastikan bagian berikut ditambahkan di akhir file:
Match User sftpuser
ForceCommand internal-sftp
ChrootDirectory /usr/share/sftp-chroot/sftpuser
AllowTcpForwarding no
X11Forwarding no
PermitTTY no
Simpan perubahan dan keluar dari editor.
6. Membuat Direktori Chroot
Buat direktori chroot untuk membatasi akses user SFTP:
mkdir -p /usr/share/sftp-chroot/sftpuser
Atur kepemilikan direktori agar sesuai dengan aturan chroot:
chown root:root /usr/share/sftp-chroot chown root:root /usr/share/sftp-chroot/sftpuser chmod 755 /usr/share/sftp-chroot /usr/share/sftp-chroot/sftpuser
7. Membuat Mount Point
Agar user SFTP bisa mengakses direktori tertentu (misalnya /srv/www/htdocs), kita bisa menggunakan mount binding:
mount --bind /srv/www/htdocs /usr/share/sftp-chroot/sftpuser
8. Membuat Mounting Permanen
Agar mount tetap aktif setelah reboot, tambahkan entri berikut di /etc/fstab:
/srv/www/htdocs /usr/share/sftp-chroot/sftpuser none bind 0 0
Edit file /etc/fstab dengan:
vi /etc/fstab
Tambahkan baris di atas, lalu simpan dan keluar.
9. Restart SSH Service
Setelah konfigurasi selesai, restart service SSH agar perubahan diterapkan:
sudo systemctl restart sshd
Jika ada kegagalan ketika login, kita bisa cek log dengan menjalankan perintah berikut
sudo journalctl -u sshd --no-pager | tail -n 50
Kesimpulan
Sekarang, user sftpuser dapat mengakses direktori /srv/www/htdocs menggunakan SFTP, tetapi tidak bisa menjelajahi sistem lainnya. Metode ini meningkatkan keamanan dengan membatasi ruang kerja user hanya pada direktori yang diizinkan. Panduan ini khusus dibuat untuk distro Linux SUSE agar sesuai dengan konfigurasi sistem yang digunakan.