Cara Setting SFTP Only di CentOS 8

SFTP (SSH File Transfer Protocol/Secure File Transfer Protocol) adalah protokol transfer file yang aman, berjalan di atas protokol SSH.

Ketika sebuah server telah menjalankan SSH service, maka selain kita bisa melakukan remote login untuk manajemen server dengan command line, kita juga bisa melakukan transfer file dengan aman melalui SFTP.

Pertanyaan lain yang muncul kemudian adalah bagaimana cara membatasi hak akses user hanya untuk SFTP saja, tidak diberikan akses untuk remote shell? Nah, di tutorial kali ini membahas tentang bagaimana cara melakukan konfigurasi SSH untuk SFTP only.

*0.Membuat Group dan User*

Membuat group dan user khusus untuk akses SFTP, misalnya group sftponly dengan user webapp.

[INPUT]

1 2 3 groupadd sftponly useradd -g sftponly -s /bin/false -m -d /home/webapp webapp passwd webapp  

· -g sftponly user baru dimasukkan ke dalam group sftponly · -s /bin/false user baru tidak bisa mengakses shell (SSH) · -m -d /home/webapp nama home directory dari user baru

*1.Hak Akses Direktori*

Home directory dari user haruslah dimiliki oleh root dengan pengaturan akses 755.

[INPUT]

1 2 chown root:root /home/webapp     chmod 755 /home/webapp  

Karena sebelumnya home directory telah diubah kepemilikannya ke user root, maka user webapp tidak memiliki hak untuk membuat file atau directory di dalam home directory. Untuk itu perlu dibuat directory yang akan digunakan untuk directory upload file, misalnya public_html untuk directory aplikasi website.

[INPUT]

1 2 3 mkdir /home/webapp/public_html chmod 755 /home/webapp/public_html chown webapp:sftponly /home/webapp/public_html  

*2.Konfigurasi SSH*

Selanjutnya konfigurasi SSH untuk SFTP Only.

[INPUT]

1 vi /etc/ssh/sshd_config

Cari baris konfigurasi Subsystem dan ubah menjadi seperti di bawah ini.

[INPUT]

1 2 3 4 5 6 7 8 Subsystem sftp internal-sftp Match Group sftponly   ChrootDirectory %h   ForceCommand internal-sftp   AllowTcpForwarding no   X11Forwarding no   PermitTunnel no   AllowAgentForwarding no  

· Match Group nama group yang dipakai untuk SFTP. Berarti semua user yang berada dalam group tersebut hanya bisa melakukan SFTP, tidak bisa SSH remote. Match Group bisa diganti dengan Match User jika hanya satu user SFTP · ChrootDirectory %h direktori home dari masing-masing user menjadi direktori root saat login SFTP. Direktori ini bisa diganti dengan direktori lain

Restart SSH service.

[INPUT]

1 2 systemctl restart sshd systemctl status sshd

*3.Pengujian SFTP Only*

Pengujian konfigurasi SFTP Only menggunakan SFTP client berbasis CLI.

Buat file index.html terlebih dahulu di local untuk diupload ke server.

[INPUT]

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 echo “hello world” > /tmp/index.html sftp webapp@192.168.123.8   sftp> pwd Remote working directory: /   sftp> ls public_html   sftp> put /tmp/index.html public_html Uploading /tmp/index.html to /public_html/index.html /tmp/index.html                                  100%   12     9.6KB/s   00:00   sftp> cd public_html/ sftp> ls                   index.html

Dari perintah SFTP di atas memperlihatkan ketika login langsung berada di directory root (/) yang sebenarnya adalah home directory dari user webapp (/home/webapp). Kemudian dilakukan uji coba upload file ke direktori public_html.

Verifikasi hasil upload dengan melihat isi direktori public_html.

[INPUT]

1 2 3 cd /home/webapp/public_html/ ls -l -rw——- 1 webapp sftponly 12 Oct 23 21:11 index.html

Dari hasil perintah ls di atas, terdapat file index.html dengan user webapp dan group sftponly.

SFTP bisa juga dilakukan dengan menggunakan aplikasi FileZilla FTP/SFTP client.

FIleZilla FTP/SFTP Client

selamat mencoba 🙂

Leave a Reply

Your email address will not be published.