Line 48: Line 48:


== Konfigurasi SFTP di Debian Server ==
== Konfigurasi SFTP di Debian Server ==
Untuk contoh kasus yang digunakan saat ini adalah sebuah user yang khusus digunakan untuk melakukan manajemen sebuah website, seperti yang kita ketahui bahwa direktori untuk menyimpan halaman web site terletak di '''''/var/www'''''. maka dari itu kita buatkan user khusus yang nantinya user ini hanya bisa mengakses folder '''''/var/www''''' melalui SFTP.
Untuk contoh kasus yang digunakan saat ini adalah sebuah user yang khusus digunakan untuk melakukan manajemen sebuah website, seperti yang kita ketahui bahwa direktori untuk menyimpan halaman website terletak di '''''/var/www'''''. maka dari itu kita buatkan user khusus yang nantinya user ini hanya bisa mengakses folder '''''/var/www''''' melalui SFTP.


Langkah pertama pastikan di dalam server Debian kita telah terinstall aplikais '''''openssh-server'''''. jika belum ada silahkan baca pada artikel berikut ini :[[Instalasi SSH Server di Debian Linux]].
Langkah pertama pastikan di dalam server Debian kita telah terinstall aplikasi '''''openssh-server'''''. jika belum ada silahkan baca pada artikel berikut ini :[[Instalasi SSH Server di Debian Linux]].


setelah dipastikan SSH server terinstall di server debian, selanjutnya lakukan Backup file konfigurasi sshd_config dengan menjalankan perintah beikut<syntaxhighlight lang="linuxconfig">
setelah dipastikan SSH server terinstall di server debian, selanjutnya lakukan Backup file konfigurasi sshd_config dengan menjalankan perintah beikut<syntaxhighlight lang="linuxconfig">
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup
</syntaxhighlight>Untuk penerapan SFTP kali ini, kita akan memfokuskan untuk keperluan update website yang ada di server debian kita. Untuk itu kita perlu membuat user baru yang khusus menangani file-file website di dalam server Debian, namun user ini tidak diperbolehkan login ke dalam sistem server kita secara langsung. Perintah untuk membuat user adalah sebagai berikut
</syntaxhighlight>Pada penerapan SFTP kali ini, kita akan memfokuskan untuk keperluan update website yang ada di server debian kita. Untuk itu kita perlu membuat user baru yang khusus menangani file-file website di dalam server Debian, namun user ini tidak diperbolehkan login ke dalam sistem server kita secara langsung. Sebelum membuat user kita harus membuat group baru terlebih dahulu untuk membuat group baru di debian jalankan perintah berikut ini :<syntaxhighlight lang="linuxconfig" line="1">
groupadd sftp-webgroup
usermod -a -G sftp-webgroup www-data
</syntaxhighlight>Hasil dari perintah di atas adalah kita telah membuat satu group baru dengan nama webgroup, tentunya nama group terserah anda masing-masing. setelah group baru dibuat, selanjutnya kita akan mendaftarkan group baru tersebut kedalam kelompoknya www-data. karena yang berhak mengakses dan menjalankan website hanyalah group www-data.
 
Setelah membuat group baru, selanjutnya kita akan membuat user baru. jalankan perintah berikut ini untuk membuat user baru yang khusus untuk penggunaan SFTP<syntaxhighlight lang="linuxconfig" line="1">
useradd -g www-data -G sftp-webgroup -d /var/www -s /usr/sbin/nologin webadmin
useradd -g www-data -G sftp-webgroup -d /var/www -s /bin/false webadmin
</syntaxhighlight>dari perintah di atas akan dihasilkan user baru dengan nama '''<code>webadmin</code>  ,''' user ini terbatas hanya pada penggunaan SFTP saja tidak bisa digunakan untuk login ke dalam sistem Debian. Tentunya user webadmin dapat diganti dengan nama user yang lainnya sesuai keinginan.
 
Tahap berikutnya kita berikan password untuk user yang baru saja kita buat, jalankan perintah berikut ini.<syntaxhighlight lang="linuxconfig">
passwd webadmin  #<--nama user bisa jadi tidak sama, silahkan disesuaikan.
</syntaxhighlight>
 
 
Setelah user baru di buat. selanjutnya kita akan mengkonfigurasi file SSH. jalankan perintah berikut ini<syntaxhighlight lang="linuxconfig">
nano /etc/ssh/sshd_config
</syntaxhighlight>Setelah file terbuka pada baris paling bawah tambahkan baris konfigurasi berikut ini<syntaxhighlight lang="linuxconfig" line="1">
Match Group sftp-webgroup
    ChrootDirectory /var/www/smktkj  #<--- untuk nama smktkj disesuaikan dengan folder web masing-masing
    ForceCommand internal-sftp
    PasswordAuthentication yes
    PermitTunnel no
    AllowAgentForwarding no
    AllowTcpForwarding no
    X11Forwarding no
</syntaxhighlight>setelah selesai di tambahkan, simpan dan keluar.

Revision as of 11:33, 16 October 2025

Sftp

Apa itu SFTP ?

Bayangkan kamu punya sebuah file penting (misalnya, skrip konfigurasi router atau laporan prakerin) yang ingin kamu kirim ke server yang letaknya jauh di data center.

  • Jika kamu pakai FTP (File Transfer Protocol), itu seperti mengirim surat terbuka. Siapa saja yang "mengintip" di perjalanan bisa membaca isi suratmu. Ini tidak aman.
  • SFTP (SSH File Transfer Protocol) adalah seperti mengirim surat berharga dengan mobil armored. Suratnya dikunci dalam kotak besi dan hanya bisa dibuka oleh si penerima yang tepat. Ini sangat aman.

Jadi, SFTP adalah protokol untuk transfer file yang menggunakan jalur aman (enkripsi), sehingga data dan kredensial login kamu tidak bisa dicuri oleh orang yang tidak berhak.

SFTP adalah ekstensi dari SSH (Secure Shell). SSH sendiri adalah protokol yang digunakan untuk mengakses dan mengelola server secara remote dengan aman. Karena SFTP "nebeng" pada SSH, ia secara otomatis mendapatkan semua fitur keamanan SSH.

Cara Kerja SFTP:

  1. Sebuah koneksi SSH yang aman pertama-tama dibuat antara klien (komputermu) dan server.
  2. Melalui terowongan (tunnel) SSH yang aman inilah, perintah-perintah SFTP dan data file kamu dilewatkan.
  3. Semua data yang dikirimkan di-enkripsi (dikacaukan), sehingga jika ada yang menyadap, mereka hanya akan melihat data acak yang tidak berarti.

Mengapa SFTP Sangat Penting untuk Kita (Anak TKJ)?

  1. Keamanan: Ini adalah alasan utama. Kita sering berurusan dengan file konfigurasi, log sistem, dan data sensitif lainnya. SFTP melindunginya dari sniffing dan serangan man-in-the-middle.
  2. Mengelola Perangkat Jaringan & Server: Banyak device seperti Cisco IOS (dari versi tertentu), Linux server, dan firewall menggunakan SFTP untuk backup/restore konfigurasi dan transfer file sistem.
  3. Pengganti FTP yang Sudah Usang: FTP sudah dianggap tidak aman untuk standar modern. SFTP adalah penggantinya yang wajib dipelajari.
  4. Port yang Sederhana: SFTP biasanya hanya menggunakan satu port saja, yaitu port 22 (port default SSH). Ini memudahkan konfigurasi firewall dibandingkan FTP yang butuh multiple port.

Perbandingan SFTP vs. FTP

Fitur FTP (Tidak Aman) SFTP (Aman)
Enkripsi Tidak ada. Data dikirim plain text. Ada. Data di-enkripsi penuh.
Port Default 21 (control) dan 20 (data) 22 (lewat SSH)
Authentication Username/Password biasa (plain text). Menggunakan metode keamanan SSH (password atau yang lebih aman: SSH Key).
Kegunaan di TKJ Sebaiknya dihindari. Wajib untuk transfer file ke server Linux, backup konfigurasi perangkat, dll.

Konfigurasi SFTP di Debian Server

Untuk contoh kasus yang digunakan saat ini adalah sebuah user yang khusus digunakan untuk melakukan manajemen sebuah website, seperti yang kita ketahui bahwa direktori untuk menyimpan halaman website terletak di /var/www. maka dari itu kita buatkan user khusus yang nantinya user ini hanya bisa mengakses folder /var/www melalui SFTP.

Langkah pertama pastikan di dalam server Debian kita telah terinstall aplikasi openssh-server. jika belum ada silahkan baca pada artikel berikut ini :Instalasi SSH Server di Debian Linux.

setelah dipastikan SSH server terinstall di server debian, selanjutnya lakukan Backup file konfigurasi sshd_config dengan menjalankan perintah beikut

cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup

Pada penerapan SFTP kali ini, kita akan memfokuskan untuk keperluan update website yang ada di server debian kita. Untuk itu kita perlu membuat user baru yang khusus menangani file-file website di dalam server Debian, namun user ini tidak diperbolehkan login ke dalam sistem server kita secara langsung. Sebelum membuat user kita harus membuat group baru terlebih dahulu untuk membuat group baru di debian jalankan perintah berikut ini :

groupadd sftp-webgroup
usermod -a -G sftp-webgroup www-data

Hasil dari perintah di atas adalah kita telah membuat satu group baru dengan nama webgroup, tentunya nama group terserah anda masing-masing. setelah group baru dibuat, selanjutnya kita akan mendaftarkan group baru tersebut kedalam kelompoknya www-data. karena yang berhak mengakses dan menjalankan website hanyalah group www-data. Setelah membuat group baru, selanjutnya kita akan membuat user baru. jalankan perintah berikut ini untuk membuat user baru yang khusus untuk penggunaan SFTP

useradd -g www-data -G sftp-webgroup -d /var/www -s /usr/sbin/nologin webadmin
useradd -g www-data -G sftp-webgroup -d /var/www -s /bin/false webadmin

dari perintah di atas akan dihasilkan user baru dengan nama webadmin , user ini terbatas hanya pada penggunaan SFTP saja tidak bisa digunakan untuk login ke dalam sistem Debian. Tentunya user webadmin dapat diganti dengan nama user yang lainnya sesuai keinginan. Tahap berikutnya kita berikan password untuk user yang baru saja kita buat, jalankan perintah berikut ini.

passwd webadmin  #<--nama user bisa jadi tidak sama, silahkan disesuaikan.


Setelah user baru di buat. selanjutnya kita akan mengkonfigurasi file SSH. jalankan perintah berikut ini

nano /etc/ssh/sshd_config

Setelah file terbuka pada baris paling bawah tambahkan baris konfigurasi berikut ini

Match Group sftp-webgroup
    ChrootDirectory /var/www/smktkj   #<--- untuk nama smktkj disesuaikan dengan folder web masing-masing
    ForceCommand internal-sftp
    PasswordAuthentication yes
    PermitTunnel no
    AllowAgentForwarding no
    AllowTcpForwarding no
    X11Forwarding no

setelah selesai di tambahkan, simpan dan keluar.