Cara Install dan Konfigurasi SFTP Server di Ubuntu

SFTP (SSH File Transfer Protocol) adalah metode yang aman untuk mentransfer file antara komputer Anda dan server. Ini memungkinkan Anda untuk mengelola file jarak jauh dengan aman melalui koneksi SSH yang terenkripsi.

Cara Install dan Konfigurasi SFTP Server di Ubuntu

SFTP (Secure Shell File Transfer Protocol) adalah cara yang aman untuk mengirim file antara komputer Anda dan server. Dengan menggunakan SFTP, Anda dapat mengelola file secara aman dari jarak jauh melalui koneksi SSH yang terenkripsi. Jika Anda ingin mengaktifkan layanan SFTP di server Ubuntu Anda, berikut adalah panduan langkah demi langkahnya.

SFTP, yang juga dikenal sebagai "SSH File Transfer Protocol" merupakan protokol transfer file yang aman yang digunakan untuk mengirimkan file besar melalui internet. Dengan menggunakan SFTP, Anda dapat mengakses terowongan SSH yang aman dan mengenkripsi koneksi untuk menjaga keamanan data. Protokol ini memungkinkan Anda untuk memberikan akses terbatas ke file dan direktori tertentu. SSH dan SFTP adalah hasil dari desain oleh Internet Engineering Task Force (IETF) untuk meningkatkan keamanan web. SFTP juga efektif dalam melindungi terhadap serangan man-in-the-middle, sehingga sangat bermanfaat dalam berbagai situasi di mana perlindungan data sensitif menjadi prioritas.

Bagaimana Cara Kerja SFTP?

SFTP beroperasi dengan memanfaatkan protokol SSH, yang menghadirkan saluran aman dalam kerangka kerja arsitektur server-klien. SSH menggunakan teknik kriptografi kunci publik untuk mengidentifikasi dan mengautentikasi server. Ketika klien SFTP, seperti FileZilla, melakukan permintaan koneksi ke server, mereka mengirimkan pesan salam SSH yang mencakup versi protokol tertinggi yang mereka dukung.

Klien kemudian mengirimkan pesan salam SSH yang mencantumkan versi protokol tertinggi yang didukung olehnya. Selanjutnya, server merespons dengan daftar algoritma yang didukung dan mengirimkan sejumlah data acak kecil yang berfungsi sebagai cookie sesi. Pada saat yang sama, klien juga mengirimkan informasi mengenai algoritma yang mereka dukung dan menanggapi dengan cookie sesi acak yang sesuai.

Selanjutnya, klien memulai proses pertukaran kunci dengan menggunakan algoritma yang telah disetujui oleh keduanya, dan hasilnya dikirimkan ke server. Server merespons dengan parameter dan kunci publik yang sesuai. Selanjutnya, server menghitung hash dari semua data yang telah dipertukarkan hingga saat ini dan menandatanganinya menggunakan kunci pribadinya. Tanda tangan ini kemudian dikirimkan kembali kepada klien.

Klien juga melakukan perhitungan hash dari semua data yang telah dipertukarkan, dan selanjutnya, ia memeriksa tanda tangan yang diterima dari server dengan menggunakan kunci publik server. Jika tanda tangan tidak cocok, maka koneksi akan dibatalkan dari titik ini.

Kemudian, klien mengirimkan identifikasi pengguna dan kata sandi mereka ke server. Server melakukan autentikasi dan memberikan balasan mengenai status akses. Setelahnya, klien mengajukan permintaan kepada server untuk memulai subsistem SFTP. Server merespons dengan berhasil dan mengirimkan informasi mengenai versi subsistem SFTP yang didukung ke klien.

Kemudian, klien mengirimkan permintaan untuk melakukan operasi pada file tertentu, dan server melakukan pengecekan izin untuk operasi tersebut, lalu memberikan respons yang mencerminkan berhasil atau gagalnya operasi tersebut.

Fitur SFTP

SFTP (Secure File Transfer Protocol) adalah sebuah protokol yang memberikan berbagai fitur untuk mengamankan transfer file antara komputer klien dan server. Berikut adalah beberapa fitur utama dari SFTP:

Enkripsi: SFTP menggunakan enkripsi yang kuat, biasanya melalui protokol SSH, untuk melindungi data yang ditransfer. Ini memastikan bahwa informasi yang dikirimkan antara klien dan server tetap aman dan rahasia.

  1. Autentikasi: SFTP memungkinkan autentikasi pengguna yang aman. Pengguna harus mengidentifikasi diri mereka sendiri, dan ini biasanya melibatkan penggunaan nama pengguna dan kata sandi atau metode autentikasi lain seperti kunci SSH.
  2. Integritas Data: SFTP memastikan integritas data yang dikirimkan dengan menggunakan hash dan tanda tangan digital. Ini membantu mencegah perubahan atau manipulasi data selama proses transfer.
  3. Manajemen Direktori: SFTP memungkinkan pengguna untuk membuat, menghapus, dan mengelola direktori di server jarak jauh. Ini membantu dalam organisasi dan pengaturan file.
  4. Transfer File: Pengguna dapat mengunggah (upload) dan mengunduh (download) file dengan mudah antara komputer klien dan server.
  5. Kontrol Akses: SFTP memberikan kemampuan untuk mengendalikan akses pengguna ke file dan direktori tertentu. Ini memungkinkan administrator untuk mengatur hak akses dengan cermat.
  6. Logging dan Audit: SFTP biasanya mencatat aktivitas transfer file dan peristiwa penting lainnya, yang memungkinkan untuk pemantauan dan audit keamanan.
  7. Portabilitas: SFTP dapat digunakan di berbagai sistem operasi dan platform, menjadikannya solusi transfer file yang sangat portabel.
  8. Perlindungan terhadap Man-in-the-Middle Attack: SFTP memiliki perlindungan bawaan terhadap serangan man-in-the-middle yang dapat mengancam integritas dan keamanan data.
  9. Kemampuan Rekursif: SFTP dapat mengoperasikan transfer file rekursif, artinya Anda dapat mengunggah atau mengunduh seluruh direktori dan subdirektori dengan mudah.

Fitur-fitur ini membuat SFTP menjadi pilihan yang populer untuk berbagai keperluan, termasuk transfer file bisnis, backup data, dan manajemen server jarak jauh, karena dapat menjaga keamanan data saat mentransfer informasi antara komputer.

Dalam artikel ini, kami akan memandu Anda tentang cara mengonfigurasi server SFTP dan bagaimana cara terhubung dengan di Ubuntu 20.04.

Instal Server SSH

SFTP mengandalkan protokol SSH, sehingga Anda perlu menginstal server SSH di server Anda. Secara umum, paket server SSH sudah ada dalam repositori bawaan Ubuntu 20.04. Anda dapat melakukan instalasi dengan perintah berikut:

apt-get install openssh-server -y

Setelah berhasil menginstal paket server SSH, Anda dapat memulai layanan SSH dan mengaktifkannya agar berjalan otomatis setiap kali sistem di-reboot dengan menjalankan perintah berikut:

systemctl start ssh
systemctl enable ssh

Untuk memastikan bahwa layanan SSH berjalan dengan baik, gunakan perintah berikut untuk melakukan verifikasi:

systemctl status ssh

Jika layanan SSH berjalan, Anda akan mendapatkan output berikut:

root@server:~# systemctl status ssh
● ssh.service - OpenBSD Secure Shell server
     Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2023-09-17 15:53:01 WIB; 1h 26min ago
       Docs: man:sshd(8)
             man:sshd_config(5)
    Process: 831 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
   Main PID: 871 (sshd)
      Tasks: 1 (limit: 6871)
     Memory: 7.5M
        CPU: 169ms
     CGroup: /system.slice/ssh.service
             └─871 "sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups"

Sekarang, setelah berhasil menginstal dan menjalankan paket server SSH, Anda dapat melanjutkan dengan melakukan konfigurasi SSH untuk SFTP.

Konfigurasikan SSH untuk SFTP

Langkah berikutnya adalah mengedit file konfigurasi SSH dan menyesuaikannya untuk pengaturan SFTP. Gunakan perintah di bawah ini untuk melakukan langkah ini:

nano /etc/ssh/sshd_config

Silakan tambahkan pengaturan berikut ke bagian akhir file:

Match group sftp
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp

Simpan dan tutup file lalu restart layanan SSH untuk menerapkan perubahan:

systemctl restart ssh

Konfigurasi di atas akan memungkinkan semua anggota grup sftp untuk mengakses direktori home masing-masing melalui SFTP.

Buat Akun Pengguna SFTP

Untuk membuat akun pengguna yang dapat mengakses SFTP, Anda dapat mengikuti langkah-langkah berikut di sistem berbasis Ubuntu:

1. Buat Pengguna Baru

Anda dapat membuat pengguna baru dengan perintah adduser. Gantilah username dengan nama pengguna yang Anda inginkan:

sudo adduser username

2. Tambahkan Pengguna ke Grup SFTP

Jika Anda telah mengikuti langkah-langkah sebelumnya untuk mengatur grup sftp dalam konfigurasi SSH, Anda dapat menambahkan pengguna yang baru dibuat ke dalam grup sftp dengan perintah berikut:

useradd -m username -g sftp

Selanjutnya, atur kata sandi untuk pengguna SFTP dengan menggunakan perintah berikut:

sudo passwd username

Gantilah username dengan nama pengguna SFTP yang ingin Anda atur kata sandinya. Setelah menjalankan perintah ini, Anda akan diminta untuk memasukkan dan mengonfirmasi kata sandi baru untuk pengguna tersebut. Pastikan untuk mengingat atau mencatat kata sandi dengan aman karena kata sandi ini akan digunakan untuk masuk ke akun SFTP pengguna tersebut.

3. Tambah Akses directory

Langkah selanjutnya adalah memberikan hak akses penuh kepada pengguna SFTP di dalam direktori home mereka masing-masing:

chmod 700 /home/username

Verifikasi Koneksi SFTP melalui Command Line

Pada tahap ini, server SFTP telah dikonfigurasi. Selanjutnya, mari kita hubungkan ke server SFTP dari baris perintah. Buka mesin klien dan jalankan perintah berikut untuk terhubung ke server SFTP:

sftp username@sftp-server-ip

Sekarang, buat direktori di server SFTP menggunakan perintah berikut:

mkdir testdir
ls -la

Dalam panduan di atas, kami menjelaskan cara mengatur server SFTP di Ubuntu. Anda sekarang dapat mengimplementasikan server SFTP di lingkungan produksi dan memberikan akses FTP kepada pengguna sesuai kebutuhan mereka.