Cara Membatasi Pengguna SFTP ke Direktori Home Menggunakan chroot Jail


Dalam tutorial ini, kita akan membahas cara membatasi pengguna SFTP ke direktori home atau direktori tertentu. Artinya pengguna hanya dapat mengakses direktori home masing-masing, bukan keseluruhan sistem file.

Membatasi direktori home pengguna sangat penting, terutama dalam lingkungan server bersama, sehingga pengguna yang tidak sah tidak akan mengintip file dan folder pengguna lain.

Penting: Harap perhatikan juga bahwa tujuan artikel ini adalah untuk memberikan akses SFTP saja, bukan login SSH, dengan mengikuti artikel ini Anda akan memiliki izin untuk melakukan transfer file, tetapi tidak diperbolehkan melakukan sesi SSH jarak jauh.

Saran Baca: Batasi Akses Pengguna SSH ke Direktori Tertentu Menggunakan Chrooted Jail

Cara paling sederhana untuk melakukan ini adalah dengan membuat lingkungan jail yang di-chroot untuk akses SFTP. Cara ini sama untuk semua sistem operasi Unix/Linux. Dengan menggunakan lingkungan chroot, kita dapat membatasi pengguna ke direktori home mereka atau ke direktori tertentu.

Batasi Pengguna ke Direktori Beranda

Di bagian ini, kita akan membuat grup baru bernama sftpgroup dan menetapkan kepemilikan dan izin yang benar ke akun pengguna. Ada dua pilihan untuk membatasi pengguna ke direktori home atau tertentu, kita akan melihat keduanya di artikel ini.

Buat atau Ubah Pengguna dan Grup

Mari kita batasi pengguna yang ada, misalnya tecmint, ke direktori home-nya yang bernama /home/tecmint. Untuk melakukan ini, Anda perlu membuat grup sftpgroup baru menggunakan perintah groupadd seperti yang ditunjukkan:

groupadd sftpgroup

Selanjutnya, tetapkan pengguna 'tecmint' ke grup sftpgroup.

usermod -G sftpgroup tecmint

Anda juga dapat membuat pengguna baru menggunakan perintah useradd, misalnya senthil dan menetapkan pengguna ke grup sftpusers.

adduser senthil -g sftpgroup -s /sbin/nologin
passwd tecmint

Ubah File Konfigurasi SSH

Buka dan tambahkan baris berikut ke file konfigurasi /etc/ssh/sshd_config.

Subsystem sftp internal-sftp
 
   Match Group sftpgroup
   ChrootDirectory /home
   ForceCommand internal-sftp
   X11Forwarding no
   AllowTcpForwarding no

Simpan dan keluar dari file, mulai ulang layanan sshd untuk menerapkan perubahan baru.

systemctl restart sshd
OR
service sshd restart

Jika Anda melakukan chroot beberapa pengguna ke direktori yang sama, Anda harus mengubah izin direktori home masing-masing pengguna untuk mencegah semua pengguna menjelajahi direktori home pengguna lainnya.

chmod 700 /home/tecmint

Verifikasi Login Pengguna SSH dan SFTP

Sekarang saatnya memeriksa login dari sistem lokal. Cobalah untuk ssh sistem jarak jauh Anda dari sistem lokal Anda.

ssh [email 

Di Sini,

  1. tecmint – nama pengguna sistem jarak jauh.
  2. 192.168.1.150 – Alamat IP sistem jarak jauh.
Contoh keluaran:
[email 's password: 
Could not chdir to home directory /home/tecmint: No such file or directory
This service allows sftp connections only.
Connection to 192.168.1.150 closed.

Kemudian, akses sistem jarak jauh menggunakan SFTP.

sftp [email 
Contoh keluaran:
[email 's password: 
Connected to 192.168.1.150.
sftp>

Mari kita periksa direktori kerja saat ini:

sftp&gt pwd
Remote working directory: /

sftp&gt ls
tecmint  

Di sini, tecmint adalah direktori home. CD ke direktori tecmint dan buat file atau folder pilihan Anda.

sftp&gt cd tecmint
Remote working directory: /

sftp&gt mkdir test
tecmint  

Batasi Pengguna ke Direktori Tertentu

Dalam contoh kami sebelumnya, kami membatasi pengguna yang ada ke direktori home. Sekarang, kita akan melihat cara membatasi pengguna baru ke direktori khusus.

Buat Grup dan Pengguna Baru

Buat grup baru sftpgroup.

groupadd sftpgroup

Selanjutnya, buat direktori untuk grup SFTP dan berikan izin untuk pengguna root.

mkdir -p /sftpusers/chroot
chown root:root /sftpusers/chroot/

Selanjutnya, buat direktori baru untuk setiap pengguna, yang mana mereka akan memiliki akses penuh. Misalnya, kita akan membuat pengguna tecmint dan direktori home barunya dengan izin grup yang benar menggunakan serangkaian perintah berikut.

adduser tecmint -g sftpgroup -s /sbin/nologin
passwd tecmint
mkdir /sftpusers/chroot/tecmint
chown tecmint:sftpgroup /sftpusers/chroot/tecmint/
chmod 700 /sftpusers/chroot/tecmint/

Konfigurasikan SSH untuk Akses SFTP

Ubah atau tambahkan baris berikut di akhir file:

#Subsystem  	sftp	/usr/libexec/openssh/sftp-server
Subsystem sftp  internal-sftp
 
Match Group sftpgroup
   ChrootDirectory /sftpusers/chroot/
   ForceCommand internal-sftp
   X11Forwarding no
   AllowTcpForwarding no

Simpan dan keluar dari file. Mulai ulang layanan sshd untuk menerapkan perubahan yang disimpan.

systemctl restart sshd
OR
service sshd restart

Itu saja, Anda dapat memeriksanya dengan masuk ke server SSH dan SFTP jarak jauh Anda dengan menggunakan langkah yang disediakan di atas pada Verifikasi login SSH dan SFTP.

Perlu diingat bahwa metode ini akan menonaktifkan akses shell, yaitu Anda tidak dapat mengakses sesi shell sistem jarak jauh menggunakan SSH. Anda hanya dapat mengakses sistem jarak jauh melalui SFTP dan melakukan transfer file ke dan dari sistem lokal dan jarak jauh.

Kesimpulan

Sekarang Anda tahu cara membatasi direktori home pengguna menggunakan lingkungan Chroot di Linux. Jika menurut Anda ini bermanfaat, bagikan artikel ini di jejaring sosial Anda dan beri tahu kami di bagian komentar di bawah jika ada metode lain untuk membatasi direktori beranda pengguna.