Cara Mengatur SFTP Chroot Di Linux

Panduan ini menjelaskan cara mengatur SFTP Chroot di Linux untuk membatasi akses pengguna SSH ke direktori home atau direktori tertentu. Dengan kata lain, kita akan memaksa pengguna ke direktori tertentu dan mengatur shell mereka ke /bin/nologin atau shell lain yang menolak akses ke login ssh. Setelah SFTP chroot dikonfigurasi, pengguna hanya dapat mengakses direktori home yang ditetapkan, tetapi tidak seluruh sistem file.

Dengan cara ini kami dapat mengizinkan pengguna untuk terhubung hanya melalui SFTP, tetapi tidak mengizinkan mereka untuk terhubung melalui SSH.

Mengaktifkan akses SFTP chroot berguna ketika Anda ingin membatasi sesi pengguna SSH ke direktori home mereka atau direktori tertentu pilihan Anda. Ini juga berguna ketika Anda ingin membatasi akses SSH ke pengguna tertentu dan masih mengizinkan mereka untuk mentransfer file antara sistem lokal dan jarak jauh.

Sekarang, mari kita lanjutkan dan atur SFTP Chroot untuk membatasi pengguna SSH ke direktori Home dan/atau direktori lain dengan Chroot Jail di Linux.

Panduan ini secara resmi diuji pada distribusi Debian 11 bullseye, Ubuntu 20.04 LTS dan Ubuntu 18.04 LTS. Namun, langkah-langkah yang diberikan di bawah ini harus bekerja pada semua distribusi Linux yang mendukung openSSH.
Contents
Setup SFTP Chroot di LinuxBuat direktori ChrootBuat grup sftp dan tetapkan pengguna ke grup ituTetapkan izin yang tepat ke direktori chrootKonfigurasikan perintah SFTP Chrooted SFTPBasicConclusionSetup Chrooted SFTP, openShhh
di Linux2 memiliki fitur yang dikenal sebagai subsistem internal-sftp yang hanya mengizinkan akses SFTP, bukan akses SSH. Jadi, pengguna hanya dapat mengakses data dari server, tetapi mereka tidak dapat mengaksesnya menggunakan SSH.
Buat direktori Chroot

Pertama, Buat direktori chroot menggunakan perintah:
$ sudo mkdir /sftp

Jadikan direktori ini sepenuhnya dimiliki oleh pengguna root menggunakan perintah:
$ sudo chown root:root /sftp/

Di bawah direktori ini, buat direktori terpisah untuk setiap pengguna, seperti /sftp/user1, /sftp/user2, dan /sftp/user3 dan seterusnya.

Untuk tujuan panduan ini , saya akan membuat direktori bernama ostechnix di bawah /sftp directory.
$ sudo mkdir /sftp/ostechnix

Ini adalah direktori tempat pengguna dapat menyimpan data. Juga, pengguna tidak dapat melampaui direktori ini. Ini seperti direktori $HOME mereka.
Create grup sftp dan menetapkan pengguna ke grup itu

Sekarang, kita perlu membuat pengguna untuk dapat mengakses direktori chroot SFTP.

Buat grup bernama sftponly seperti yang ditunjukkan pada perintah berikut:
$ sudo groupadd sftponly

Lalu , buat pengguna SFTP baru atau tetapkan pengguna yang ada ke grup “sftponly” seperti yang ditunjukkan di bawah ini.

Biarkan saya membuat pengguna baru, misalnya senthil, dan tetapkan dia ke grup “sftponly”. Dan kemudian, atur direktori home-nya sebagai /sftp/ostechnix dan shell default sebagai /sbin/nologin.

Kita dapat melakukannya menggunakan perintah online berikut:
$ sudo useradd -g sftponly -d /ostechnix -s /sbin/nologin senthil

Set kata sandi untuk pengguna yang baru dibuat menggunakan perintah:
$ sudo passwd senthil

Untuk memodifikasi pengguna yang ada, gunakan perintah “usermod” alih-alih “useradd” seperti di bawah ini:
$ sudo usermod -g sftponly -d /ostechnix -s /sbin/nologin senthil

Menetapkan izin yang tepat ke direktori chroot

Anda perlu memberikan izin yang tepat kepada pengguna SFTP untuk mengakses direktori HOME mereka seperti di bawah ini.
$ sudo chown senthil:sftponly /sftp/ostechnix

$ sudo chmod 700 /sftp/ostechnix/

Pengguna SFTP lainnya dapat’ t akses direktori ini.

Demikian pula, tetapkan izin yang sesuai untuk semua pengguna SFTP lainnya juga.

Unduhan yang Disarankan – eBuku Gratis: “Pelajari Linux dalam 5 Hari”
Configure Chrooted SFTP

Edit /etc/ssh/sshd_config file:
$ sudo vi /etc/ssh/sshd_config

Temukan dan beri komentar pada baris berikut (mis. tambahkan tanda bintang # di depannya untuk berkomentar).
#Subsystem sftp /usr/libexec/openssh/sftp-server

Dalam beberapa distribusi, misalnya Ubuntu 18.04 LTS, temukan dan beri komentar pada baris berikut:
#Subsystem sftp /usr/ lib/openssh/sftp-server

Selanjutnya, tambahkan baris berikut di akhir file:
Subsystem sftp internal-sftp Grup yang cocok sftponly ChrootDirectory /sftp/ X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp

Configure $HOMEpn untuk membatasi pengguna SFTPn jika Anda ingin direktori chroot SFTPn , ganti saja /sftp dengan /home pada kode di atas. Pastikan Anda telah menentukan jalur direktori sftp yang benar. Tekan ESC dan ketik :wq untuk menyimpan file dan keluar.

Restart layanan ssh untuk memperbarui perubahan.
$ sudo systemctl restart sshd

Sekarang, coba SSH ke sistem ini dari sistem lain di jaringan menggunakan pengguna sftp (mis. case).
$ ssh [email protected]

Anda akan mendapatkan pesan kesalahan berikut.
[email protected]’s password: Layanan ini hanya mengizinkan koneksi sftp. Sambungan ke 192.168.122.181 closed.

Di sini, 192.168.122.181 adalah alamat IP sistem Debian jarak jauh tempat saya mengonfigurasi SFTP.

Anda hanya dapat mengakses sistem jarak jauh menggunakan sftp seperti yang ditunjukkan di bawah ini.
$ sftp [email protected][email protected]’s kata sandi: Terhubung ke 192.168.43.2. sftp>

Lihat? Pengguna “senthil” dapat terhubung melalui sftp, tetapi tidak melalui ssh.

Untuk mengetahui direktori kerja saat ini, gunakan perintah ‘pwd’:
sftp> pwd Direktori kerja jarak jauh: /ostechnix sftp>

Setup SFTP chroot di Linux
Perintah SFTP dasar

menggunakan port alternatif menggunakan -p flag.
$ sftp -P [email protected]_host

Untuk mentransfer file jarak jauh ke sistem lokal, lakukan:
sftp> get /path/remote_file

Kita dapat mentransfer file lokal ke sistem jarak jauh menggunakan perintah:
sftp> put /path/local_file

Untuk mentransfer folder jarak jauh ke sistem lokal secara rekursif:
sftp> get -R /path/remote_folder

Untuk menampilkan daftar file di mesin lokal:
sftp> lls

Untuk menampilkan daftar file di mesin jarak jauh:
sftp> ls

n bsp> untuk detail lebih lanjut tentang bspspftps penggunaan, lihat halaman manual.
$ man sftp

Conclusion

Dalam panduan ini, kita telah membahas cara mengkonfigurasi dan mengatur SFTP chroot di sistem operasi Linux seperti Debian dan Ubuntu.

Disarankan baca:
Cara Mengubah Port Default FTP Ke Port KustomInstal server VSFTPD di UbuntuSecure VSFTPD server dengan enkripsi TLS/SSL di UbuntuSetup Server FTP langkah demi langkah di CentOSFTP_Manager : Skrip Sederhana Untuk Menginstal Dan Mengelola Server FTP di CentOS