Rozul Imam
IT Web Programmer

Cara Membuat User SFTP yang Dibatasi Aksesnya di Linux (SUSE)

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.