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,
- tecmint – nama pengguna sistem jarak jauh.
- 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> pwd
Remote working directory: /
sftp> ls
tecmint
Di sini, tecmint
adalah direktori home. CD ke direktori tecmint dan buat file atau folder pilihan Anda.
sftp> cd tecmint
Remote working directory: /
sftp> 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.