Debian : SFTP Server: Difference between revisions
| 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 | 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 | 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> | </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

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:
- Sebuah koneksi SSH yang aman pertama-tama dibuat antara klien (komputermu) dan server.
- Melalui terowongan (tunnel) SSH yang aman inilah, perintah-perintah SFTP dan data file kamu dilewatkan.
- 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)?
- 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.
- 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.
- Pengganti FTP yang Sudah Usang: FTP sudah dianggap tidak aman untuk standar modern. SFTP adalah penggantinya yang wajib dipelajari.
- 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.