Cara Yang Benar Mengaktifkan SFTP Tanpa Akses Shell di Ubuntu

SFTP singkatan dari SSH File Transfer Protocol. Seperti namanya, ini yakni langkah aman utk mentransfer file ke server menggunakan koneksi SSH terenkripsi. Terlepas dari namanya, ini yakni protokol yang meskipun tidak sama dari FTP (File Transfer Protocol), walaupun didukung dengan luas oleh client FTP Server modern.



SFTP ada dengan default tak ada konfigurasi menambahkan pada semua server yang aktifkan akses SSH. Ini aman dan mudah digunakan, namun ada dengan kerugian : dalam konfigurasi standar, server SSH berikan akses transfer file dan akses shell terminal ke semua pengguna yang punyai akun di sistem.

Dalam beberapa permasalahan, Anda mungkin saja saja cuman ingin pengguna khusus diizinkan mentransfer file dan tidak punyai akses SSH. Dalam tutorial ini, kita juga mengatur daemon SSH utk membatasi akses SFTP ke satu direktori tak ada akses SSH yang diperbolehkan berdasarkan pada pengguna.

Langkah 1 – Buat Pengguna Baru 

Pertama, buat user baru yang juga di beri cuman transfer file akses ke server. Di sini, kita menggunakan username dicochol, tapi Anda sanggup menggunakan username yang Anda gemari.

Anda juga diminta buat untuk kata sandi utk akun itu, diikuti beberapa informasi berkaitan pengguna. Informasi pengguna bersifat opsional, sampai Anda dapat menekan ENTER utk membiarkan kolom kosong.

Anda waktu ini telah buat pengguna baru yang juga di beri akses ke direktori yang dibatasi. Pada langkah kemudian kita juga buat direktori utk transfer file dan mengatur hak akses yang diperlukan.

Langkah 2 – Buat Direktori utk Transfer File 


Untuk membatasi akses SFTP ke satu direktori, pertama-tama kita harus memberikan keyakinan bila direktori seperti sama persyaratan perizinan server SSH, yang demikian khusus.

Dengan khusus, direktori itu dan semua direktori di atasnya berada di tree filesystem harus dimiliki oleh root dan tidak dapat ditulis oleh orang yang beda. Mengakibatkan, tidak mungkin cuman berikan akses terbatas ke direktori home pengguna karna direktori home dimiliki oleh pengguna, tidaklah root.

Ada beberapa cara utk mengatasi permasalahan kepemilikan ini. Dalam tutorial ini, kita juga buat dan menggunakan/var/sftp/uploads jadi direktori unggah maksud. /var/sftp Juga juga akan dimiliki oleh root dan tidak akan disalahgunakan oleh pengguna lain ; Subdirektori/var/sftp/uploads juga dimiliki oleh dicochol, sampai pengguna sanggup mengupload file ke dalamnya.

Pertama, buat direktori.

sudo mkdir -p/var/sftp/upload

Tentukan pemiliknya/var/sftp ke root.

sudo chown root : root/var/sftp

Berikan izin menulis root ke direktori yang sama, dan berikan pengguna lain cuman hak baca dan eksekusi.

sudo chmod 755/var/sftp

Ubah kepemilikan di direktori unggah jadi dicochol

sudo chown sammyfiles : sammyfiles/var/sftp/uploads

Saat ini susunan direktori ada ditempat, kita sanggup mengkonfigurasi server SSH itu.

Langkah 3 – Membatasi Akses ke Satu Direktori 

Pada langkah ini, kita juga memodifikasi konfigurasi server SSH utk melarang akses terminal utk dicochol namun benar-benar mungkin saja akses transfer file.

Buka file konfigurasi server SSH menggunakan nano atau editor teks favorite Anda.


sudo nano/etc/ssh/sshd_config


Gulir ke bagian paling bawah dari file dan beri snipet konfigurasi berikut ini :


Match User dicochol

ForceCommand internal-sftp

Password Authentication yes

ChrootDirectory/var/sftp

PermitTunnel no

AllowAgentForwarding no

AllowTcpForwarding no

X11Forwarding no

Lalu simpan dan tutup file itu.

Tersebut yang semasing Himpunan perintah :

Match User Memberitahukan server SSH utk menerapkan perintah itu cuman utk pengguna yang diputuskan. Di sini, kami meyakinkan sammyfiles.

ForceCommand internal-sftp Memaksa server SSH utk menggerakkan server SFTP saat login, melumpuhkan akses shell.

PasswordAuthentication yes Sangat mungkin saja otentikasi password utk pengguna ini.

ChrootDirectory/var/sftp/Memberikan keyakinan bila pengguna tidak akan diizinkan tersambung apa-pun kecuali/var/sftp direktori.

AllowAgentForwarding no, AllowTcpForwarding no. Dan X11Forwarding no menonaktifkan penerusan port, tunneling dan penerusan X11 utk pengguna ini.

Untuk menerapkan perubahan konfigurasi, restart service.

sudo systemctl restart sshd


Anda waktu ini telah mengkonfigurasi server SSH utk membatasi akses ke transfer file cuman utk dicochol. Langkah terakhir yakni menguji konfigurasi utk memberikan keyakinan kerjanya seperti sama yang diinginkan.

Langkah 4 – Mengecek Konfigurasi 

Mari kita optimis bila pengguna dicochol baru kita cuman sanggup mentransfer file.

Masuk ke server jadi dicochol yang menggunakan akses shell normal harusnya tidak dapat diselesaikan lagi. Mari kita coba :

Anda juga saksikan pesan itu terlebih dulu dikembalikan ke prompt awal Anda :

This service allows sftp connections only.

Connection to localhost closed.

Ini berarti bila dicochol tidak bisa lagi tersambung shell server menggunakan SSH.

Kemudian, mari verifikasi apakah pengguna sukses tersambung SFTP utk transfer file.

sftp dicochol@localhost

Alih-alih pesan kesalahan, perintah ini juga mendatangkan pesan masuk yang sukses dengan prompt interaktif.

Connected to localhost
sftp

Anda dapat daftar isi direktori menggunakan ls dalam prompt :

Ini juga mendatangkan direktori uploads yang telah di buat pada langkah lebih dahulu dan kembalikan Anda ke sftp prompt.

SFTP file daftar output

uploads

Untuk memverifikasi bila pengguna memang terbatas pada direktori ini dan tidak dapat tersambung direktori apa pun di atasnya, Anda dapat cobalah mengubah direktori jadi direktori di atasnya.

sftp cd..

Perintah ini tidak akan berikan error, tapi daftar isi direktori seperti lebih dahulu tidak akan perlihatkan perubahan, membuktikan bila pengguna tidak dapat beralih ke direktori induknya.

Anda waktu ini telah memverifikasi bila konfigurasi yang dibatasi bertindak seperti harusnya. Pengguna dicochol yang baru di buat dapat tersambung server cuman dengan menggunakan protokol SFTP utk transfer file dan tidak punyai kemampuan utk tersambung shell penuh.

Anda telah membatasi pengguna cuman ke akses SFTP ke satu direktori di server tak ada akses shell penuh. Sesaat tutorial ini cuman menggunakan satu direktori dan satu pengguna utk singkat kata, Anda dapat memperpanjang contoh ini ke beberapa pengguna dan beberapa direktori.

Server SSH benar-benar mungkin saja skema konfigurasi yang lebih kompleks, termasuk membatasi akses ke group atau beberapa pengguna sekalian atau akses terbatas ke alamat IP khusus. Anda dapat dapatkan contoh pilihan konfigurasi menambahkan dan info berkaitan kesempatan arahan dalam OpenSSH Cookbook.
Newest
Previous
Next Post »