Cara membuat user SFTP tanpa akses shell/ssh pada CentOS 7

SFTP adalah singkatan dari SSH File Transfer Protocol, ada juga kadang yang menyebut dengan Secure FTP, dari namanya sudah kelihatan bahwa SFTP menyediakan jalur aman dalam mengirim file menggunakan koneksi SSH yang dienkripsi. Meskipun hampir sama dengan FTP, namun SFTP adalah sebuah protokol yang berbeda, meskipun aplikasi klien FTP bisa juga digunakan untuk konek SFTP.

SFTP tersedia secara default sudah tersedia pada server yang sudah terpasang SSH Server. SFTP aman dan mudah untuk digunakan, namun memiliki kekurangan dalam konfigurasi standar yang ada secara default, setiap pengguna yang ada bisa melakukan akses SSH.

Kebutuhan Awal

Sebelum mengikuti langkah ini, kita membutuhkan :

  • Satu server CentOS 7 yang sudah dikonfigurasi awal pada tutorial konfigurasi awal server CentOS 7, termasuk membuat pengguna non-root yang bisa melakukan perintah sudo.
  • Optional, kami akan mengunakan teks editor vim, anda dapat memasang dengan perintah # yum install vim -y, secara default didalam CentOS sudah terpasang aplikasi vi.

1 – Membuat pengguna baru

Pertama, membuat sebuah pengguna baru yang akan diberikan akses transer saja di server. Kami akan menggunakan nama pengguna henri, anda membuat pengguna sesuai keinginan.

# adduser henri

Kemudian berikan pengguna baru kata sandi :

# passwd henri

Silahkan masukan kata sandi, akan diminta memasukan sebanyak dua kali untuk verifikasi.

Kita sudah berhasil membuat pengguna yang akan diberikan akses ke folder tertentu di server kita.

2 – Membuat folder untuk transfer dokumen

Selanjutnya kita akan membuat folder yang akan digunakan pengguna sebagai folder utama ketika pengguna login melakui SFTP.

Folder tersebut dan folder diatasnya harus milik pengguna root dan tidak bisa ditulis oleh orang lain. Jadi kita tidak bisa memberikan folder pengguna tersebut, karena folder pengguna dimiliki oleh pengguna bukan root.

Kita akan membuat folder /var/sftp/uploads sebagai folder yang akan menjadi tempat mengunggah. Folder /var/sftp akan menjadi milik root dan tidak bisa di tulis oleh pengguna lain. Folder /var/sftp/uploads akan dimiliki oleh pengguna henri, jadi bisa melakukan unggah dokumen

Pertama, kita membuat folder.

# mkdir -p /var/sftp/uploads

Membuat folder stfp menjadi milik root, dengan perintah chown.

# chown root:root /var/sftp

Ganti mode hak akses menjadi 755 dengan perintah chmod. Sehingga pengguna root saja yang bisa menulis, pengguna lain hanya bisa membaca dan melakukan eksekusi.

# chmod 755 /var/sftp

Ganti pemilik folder uploads kepada pengguna henri, dengan menggunakan perintah chown.

# chown henri:henri /var/sftp/uploads

Sampai disini kita sudah membuat susunan folder sesuai dengan kebutuhan, selanjutnya kita melakukan konfigurasi di SSH server kita.

3 – Membatasi hak akses terhadap satu folder

Pada tahap ini kita akan memodifikasi konfigurasi SSH server sehingga pengguna henri hanya bisa melakukan unggah dokumen tidak bisa akses SSH.

Buka konfigurasi SSH server dengan editor vim.

# vim /etc/ssh/sshd_config

Pada bagian bawah dokumen, tambahkan konfigurasi berikut :

. . .

Match User henri
ForceCommand internal-sftp
PasswordAuthentication yes
ChrootDirectory /var/sftp
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no

Kemudian simpan dan keluar dengan menekan tombol esc dan ketik perintah :wq.

Ini penjelasan setiap kode diatas :

  • Match User mengatur hanya pengguna tertentu yang terkait dengan set perintahtah diabawahnya, dalam hal ini pengguna henri.
  • ForceCommand internal-sftp memaksa login ke SFTP pada SSH server, menolak akses shell.
  • PasswordAuthentication yes mengizinkan login dengan menggunakan kara sandi.
  • ChrootDirectory /var/sftp/ pengguna hanya diizinkan untuk mengakses folder /var/sftp.
  • AllowAgentForwarding noAllowTcpForwarding no. and X11Forwarding no tidak mengaktifkan port forwarding, tunnel dan X11 forwarding.

Kumpulan konfigurasi diatas dapat diduplikasi untuk pengguna lainnya, silahkan ganti nama pengguna sesuai dengan yang kita butuhkan.

Untuk menyimpan dan mengaktifkan konfigurasi tambahan yang telah kita buat, kita lakukan restart pada layaan SSH server, dengan perintah dibawah ini :

# systemctl restart sshd

4 – Verifikasi konfigurasi

Memastikan penggung henri hanya bisa melakukan layanan SFTP. Yakni dengan melakukan koneksi dengan SSH ke server. Bisa di lakukan dengan PuTTY atau melalui terminal CLI :

# ssh henri@ip_server

Jika konfigurasi kita benar, maka kita akan mendapat pesan kesalahan dari terminal.

This service allows sftp connections only.
Connection to localhost closed.

Ini artinya pengguna henri tidak bisa melakukan koneksi ke server menggunakan SSH Shell.

Untuk penggunakan SFTP, bisa menggunakan FTP klien yang tersedia, misalnya WinSCP, FileZila dan sebagainya.

Demikianlah cara membuat user/pengguna SFTP pada SSH Server tanpa akses shell/ssh pada Centos 7. Semoga tulisan ini bermanfaat.

Jika ada yang membingungkan atau ada kesalahan pada tulisan ini, silahkan hubungi kami melalui komentar pada tulisan ini.

Sumber : Bahasa Inggris

Leave a Reply

Silahkan isi perhitungan di bawah ini : *