Meningkatkan Keamanan SFTP di Linux
Membatasi akses pengguna Secure File Transfer Protocol (SFTP) hanya ke direktori tertentu merupakan langkah keamanan krusial dalam pengelolaan server Linux. Ini mencegah pengguna yang dibatasi untuk menjelajahi sistem file secara bebas, memitigasi risiko akses tidak sah ke data atau konfigurasi sensitif di luar area kerja mereka. Dengan menerapkan pembatasan ini, administrator dapat memastikan bahwa pengguna hanya berinteraksi dengan file dan direktori yang memang diperuntukkan bagi mereka.
Pengaturan Pengguna dan Grup SFTP Terisolasi
Langkah pertama dalam menyiapkan lingkungan SFTP yang terbatas adalah membuat grup khusus dan pengguna baru yang akan dibatasi aksesnya. Direkomendasikan untuk membuat grup terpisah, misalnya sftpusers
, untuk mempermudah pengelolaan kebijakan akses. Kemudian, buat pengguna baru tanpa shell login standar dan tambahkan ke grup ini. Contoh perintah yang umum digunakan adalah groupadd sftpusers
diikuti dengan useradd -m -g sftpusers -s /sbin/nologin nama_pengguna
. Ini membuat pengguna, membuat direktori home-nya, menetapkannya ke grup sftpusers
, dan mencegahnya melakukan login shell interaktif. Jangan lupa mengatur kata sandi untuk pengguna baru menggunakan perintah passwd nama_pengguna
.
Menyiapkan Direktori Akar SFTP yang Dibatasi
Direktori tempat pengguna SFTP akan “dikurung” disebut sebagai direktori chroot. Anda perlu membuat direktori utama yang akan menjadi akar virtual bagi pengguna SFTP ini, misalnya /sftpdata. Di dalam direktori ini, Anda bisa membuat subdirektori untuk menyimpan data spesifik per pengguna, misalnya /sftpdata/namapengguna. Direktori /sftpdata inilah yang akan dikonfigurasi sebagai ChrootDirectory
dalam pengaturan SSH.
Konfigurasi Hak Akses Direktori yang Aman
Ini adalah bagian yang paling penting dan sering kali menjadi sumber kesalahan. Direktori yang ditetapkan sebagai ChrootDirectory
(dalam contoh ini, /sftpdata) harus dimiliki oleh pengguna root
dan tidak boleh memiliki izin tulis untuk pemilik grup atau lainnya. Izin yang disarankan adalah 755
(pemilik: baca, tulis, eksekusi; grup & lainnya: baca, eksekusi). Subdirektori di dalamnya (misalnya /sftpdata/nama_pengguna) dapat dimiliki oleh pengguna SFTP yang bersangkutan dan grup sftpusers
dengan izin yang memungkinkan pengguna untuk menulis (misalnya 775
atau 755
tergantung kebutuhan). Gunakan perintah chown root:root /sftp_data
dan chmod 755 /sftp_data
untuk menerapkan izin ini. Untuk direktori data pengguna, gunakan chown nama_pengguna:sftpusers /sftp_data/nama_pengguna
.
Mengaktifkan Pembatasan SSH/SFTP
Pengaturan utama dilakukan dalam file konfigurasi SSH server, biasanya /etc/ssh/sshdconfig. Tambahkan blok Match Group sftpusers
di bagian akhir file. Di dalam blok ini, tentukan konfigurasi spesifik untuk anggota grup tersebut. Directive kunci adalah ChrootDirectory /sftp_data
. Ini akan mengunci pengguna di direktori /sftpdata begitu mereka terhubung melalui SFTP. Untuk memastikan hanya SFTP yang diizinkan dan fitur lain seperti shell login atau penerusan port dinonaktifkan, tambahkan juga baris ForceCommand internal-sftp
, AllowTcpForwarding no
, dan X11Forwarding no
. Pastikan directive Subsystem sftp /usr/lib/openssh/sftp-server
atau yang serupa sudah ada dan tidak dikomentari di bagian atas file sshd_config
.
Menyelesaikan dan Menguji Penerapan
Setelah semua konfigurasi dan izin direktori diterapkan, Anda harus me-restart layanan SSH agar perubahan berlaku. Gunakan perintah seperti systemctl restart sshd
pada sistem modern atau service sshd restart
pada sistem lama. Penting untuk tidak mereload (reload
) karena beberapa perubahan konfigurasi ChrootDirectory
mungkin memerlukan restart penuh. Setelah layanan dimulai kembali, gunakan klien SFTP untuk terhubung sebagai pengguna yang baru dibuat. Verifikasi bahwa pengguna tersebut hanya dapat mengakses direktori /namapengguna di dalam lingkungan chroot /sftpdata dan tidak dapat menavigasi ke direktori lain di luar struktur tersebut. Pengujian yang cermat memastikan konfigurasi keamanan diterapkan dengan benar.
Sumber: https://kifarunix.com/restrict-sftp-user-access-to-specific-directories-in-linux/