Debian : SFTP Server: Difference between revisions
| (4 intermediate revisions by the same user not shown) | |||
| Line 56: | Line 56: | ||
</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"> | </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 | groupadd sftp-webgroup | ||
usermod - | usermod -aG sftp-webgroup 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"> | </syntaxhighlight>Hasil dari perintah di atas adalah kita telah membuat satu group baru dengan nama sftp-webgroup, tentunya nama group terserah anda masing-masing. setelah group baru dibuat, selanjutnya kita akan mendaftarkan user www-data kedalam group sftp-webgroup. 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/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 71: | ||
chown root:root /var/www | chown root:root /var/www | ||
chmod 755 /var/www | chmod 755 /var/www | ||
chown -R | 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> | ||
| Line 81: | Line 80: | ||
</syntaxhighlight>Setelah file terbuka pada baris paling bawah tambahkan baris konfigurasi berikut ini<syntaxhighlight lang="linuxconfig" line="1"> | </syntaxhighlight>Setelah file terbuka pada baris paling bawah tambahkan baris konfigurasi berikut ini<syntaxhighlight lang="linuxconfig" line="1"> | ||
Match Group sftp-webgroup | Match Group sftp-webgroup | ||
ChrootDirectory /var/www | ChrootDirectory /var/www | ||
ForceCommand internal-sftp | ForceCommand internal-sftp | ||
PasswordAuthentication yes | PasswordAuthentication yes | ||
Latest revision as of 22:25, 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. |
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 -aG sftp-webgroup www-data
Hasil dari perintah di atas adalah kita telah membuat satu group baru dengan nama sftp-webgroup, tentunya nama group terserah anda masing-masing. setelah group baru dibuat, selanjutnya kita akan mendaftarkan user www-data kedalam group sftp-webgroup. 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
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.