Line 60: Line 60:


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">
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/smktkj.net -s /usr/sbin/nologin webadmin
useradd -g www-data -G sftp-webgroup -d /var/www -s /bin/false webadmin
useradd -g www-data -G sftp-webgroup -d /var/www/smktkj.net -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.
</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.


Line 72: Line 72:
chown root:root /var/www
chown root:root /var/www
chmod 755 /var/www
chmod 755 /var/www
chown -R www-data:www-data /var/www/smktkj.net  #<--untuk penamaan smktkj.net bisa jadi tidak sama, silahkan disesuaikan
chown -R webadmin:www-data /var/www/smktkj.net  #<--untuk penamaan smktkj.net bisa jadi tidak sama, silahkan disesuaikan
chmod -R 755 /var/www/smktkj.net/
chmod -R 755 /var/www/smktkj.net/
</syntaxhighlight>
</syntaxhighlight>

Revision as of 12:04, 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.

Membuat user khusus 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 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/smktkj.net -s /usr/sbin/nologin webadmin
useradd -g www-data -G sftp-webgroup -d /var/www/smktkj.net -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.

Merubah Hak Akses dan Permission Folder /var/www

Tahap selanjutnya kita akan memberikan hak akses kepada folder yang berada di direktori /var/www, folder ini adalah tempat untuk menaruh konten-konten website dan aplikasi web. Jalankan perintah berikut ini untuk memberikan hak akses dan permission

chown root:root /var/www
chmod 755 /var/www
chown -R webadmin:www-data /var/www/smktkj.net  #<--untuk penamaan smktkj.net bisa jadi tidak sama, silahkan disesuaikan
chmod -R 755 /var/www/smktkj.net/

Konfigurasi pada file sshd_config

Setelah tahapan di atas di lakukan. 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. lakukan restart pada service ssh dengan menjalankan perintah berikut ini

systemctl restart sshd
systemctl status sshd

Jika sudah dipastikan tidak ada error maka tahap selanjutnya adalah uji coba.

Uji Coba SFTP

Untuk melakukan uji coba SFTP ada berbagai macam cara, salah satunya adalah menggunakan aplikasi FileZilla, untuk mendownload aplikasi FileZilla silahkan klik tombol ini Download Aplikasi FileZilla. Setelah di download install aplikasi seperti biasanya, kemudian jalankan.

Setelah FileZilla di jalankan akan tampil seperti pada gambar berikut ini

Untuk mengkases SFTP isikan parameter seperti berikut ini

Host  : sftp://ip_debian atau sftp://ftp.namadomain

Username  : webadmin / disesuaikan

Password  : disesuaikan

Port  : di kosongkan

Setelah semua terisi tekan tombol Quickconnect. apabila semua parameter di atas sudah benar. seharusnya saat ini kita sudah masuk ke dalam folder /var/www yang ada di server debian kita seperti pada gambar berikut ini.