GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Menginstal dan Menggunakan SFTP di Server Linux

SFTP atau SSH File Transfer Protocol adalah metode untuk mentransfer data secara aman antara dua komputer dan lebih. Ini adalah FTP yang berjalan di atas protokol SSH dan memanfaatkan keamanannya serta mendukung penuh autentikasinya.

Saat ini, disarankan untuk menggunakan SFTP alih-alih protokol FTP atau FTP/S lama. SFTP aman secara default karena begitulah cara kerja SSH. Dari sudut pandang keamanan, SFTP juga melindungi Anda dari sniffing sandi dan serangan man-in-the-middle (MiTM).

Sama seperti SSH, SFTP juga melindungi integritas data Anda menggunakan enkripsi dan fungsi hash kriptografis. Juga, ini mendukung beberapa metode otentikasi aman, termasuk kata sandi dan otentikasi berbasis kunci. Selain itu, ini mengurangi port terbuka server ke jaringan luar, karena dijalankan pada port yang sama dengan protokol SSH.

Prasyarat

Dalam panduan ini, Anda akan mempelajari cara mengatur Server SFTP di sistem Linux. Selain itu, Anda akan mempelajari perintah dasar klien sftp.

Di bawah ini adalah lingkungan implementasi saat ini:

  • Server Linux - Anda dapat menggunakan Debian, Ubuntu, CentOS, Fedora, Rocky, atau distribusi Linux lainnya.
  • Pastikan paket OpenSSH tersedia di sistem Linux Anda.
  • Klien SFTP - baris perintah sftp atau klien GUI apa pun yang Anda inginkan.

Verifikasi Paket OpenSSH

Untuk menyiapkan server SFTP, Anda harus menginstal paket OpenSSH di sistem Linux Anda. Hampir semua server Distribusi Linux memiliki paket OpenSSH yang terinstal secara default. Namun, jika Anda tidak memiliki paket OpenSSH di sistem Anda, Anda dapat menginstalnya dari repositori resmi.

1. Untuk memastikan bahwa paket OpenSSH telah terinstal di sistem Linux Anda, gunakan perintah berikut.

Untuk server Debian atau Ubuntu, Anda dapat menggunakan perintah dpkg di bawah ini.

dpkg -l | grep ssh

Di bawah ini adalah output dari sistem Debian kami.

II LIBSSH2-1:AMD64 1.9.0-2 AMD64 SSH2 Perpustakaan Sisi Klien
II OpenSsh-Client 1:8.4P1-5 AMD64 Secure Shell (SSH) Klien, untuk akses aman ke mesin jarak jauh
ii  openssh-server              1:8.4p1-5                  amd64       secure shell (SSH) server, untuk akses aman dari mesin jarak jauh
ii  openssh-sftp-server                  shell server modul, untuk akses SFTP dari mesin jarak jauh

Kolom pertama 'ii ' berarti paket sudah diinstal. Paket 'openssh-sftp-server ' diinstal pada sistem Debian/Ubuntu.

Untuk pengguna RHEL/CentOS/Fedora/Rocky Linux/AlmaLinux, Anda dapat menggunakan perintah rpm seperti di bawah ini.

rpm -qa | grep ssh

Buat Grup dan Pengguna

Pada langkah ini, Anda akan membuat grup dan pengguna baru untuk server SFTP. Pengguna dalam grup ini akan diizinkan untuk mengakses server SFTP. Dan untuk alasan keamanan, pengguna SFTP tidak dapat mengakses layanan SSH. Pengguna SFTP hanya mengakses server SFTP.

1. Jalankan perintah berikut untuk membuat grup baru 'sftpgroup '.

sudo groupadd sftpgroup

2. Buat pengguna baru 'sftpuser ' menggunakan perintah berikut.

sudo useradd -G sftpgroup -d /srv/sftpuser -s /sbin/nologin sftpuser

Opsi terperinci:

  • -G :secara otomatis menambahkan pengguna ke 'sftpgroup '.
  • -d :menentukan direktori home untuk pengguna baru.
  • -s :setel default untuk pengguna baru ke '/sbin/nologin ', yang berarti pengguna tidak bisa mengakses Server SSH.

3. Selanjutnya, buat kata sandi untuk pengguna 'sftpuser ' menggunakan perintah di bawah ini.

passwd sftpuser

Ketik kata sandi Anda yang kuat dan ulangi, lalu tekan 'Enter ' untuk mengonfirmasi.

Untuk menambahkan lebih banyak pengguna, ulangi nomor tahapan 2 dan 3, dan yang terpenting, semua pengguna SFTP harus berada di grup 'sftpgroup ' tanpa akses shell melalui SSH.

Setel Direktori Penjara Chroot

Setelah membuat grup dan pengguna baru, Anda harus membuat dan mengonfigurasi direktori chroot untuk pengguna SFTP.

1. Untuk pengguna 'sftpuser', direktori home baru akan berada di '/srv/sftpuser' . Jalankan perintah di bawah ini untuk membuatnya.

mkdir -p /srv/sftpuser

2. Untuk mengatur chroot untuk pengguna 'sftpuser ', Anda harus mengubah kepemilikan direktori ke root pengguna, tetapi tetap menjadi grup untuk membaca dan mengeksekusi tanpa akses tulis.

Ubah kepemilikan direktori menjadi 'root' pengguna menggunakan perintah berikut.

sudo chown root /srv/sftpuser

Berikan izin kepada grup untuk membaca dan mengeksekusi, tetapi tidak untuk menulis.

sudo chmod g+rx /srv/sftpuser

3. Selanjutnya, buat direktori 'data' baru di dalam '/srv/sftpuser ' dan ubah kepemilikan 'data itu ' direktori ke pengguna 'sftpuser '.

mkdir -p /srv/sftpuser/data
chown sftpuser:sftpuser /srv/sftpuser/data

Sejauh ini, di bawah ini merinci konfigurasi untuk direktori pengguna SFTP.

  • Direktori '/srv/sftuser' adalah direktori home default.
  • Pengguna 'sftpuser ' tidak bisa tulis ke direktori '/srv/sftpuser ', tetapi dapat membaca di dalam direktori tersebut.
  • Pengguna 'sftpuser ' dapat mengunggah file ke server SFTP di direktori '/srv/sftpuser/data '.

Aktifkan SFTP di Server SSH

Untuk mengaktifkan server SFTP di OpenSSH, Anda harus mengedit konfigurasi SSH '/etc/ssh/sshd_config'.

1. Edit konfigurasi ssh '/etc/ssh/sshd_config ' menggunakan nano atau vim.

sudo nano /etc/ssh/sshd_config

2. Komentar konfigurasi berikut untuk menonaktifkan 'sftp-server' mandiri ' fitur.

#Subsistem      sftp    /usr/lib/openssh/sftp-server

3. Tempel konfigurasi berikut ke bagian bawah baris.

Subsystem sftp internal-sftp

Match Group sftpgroup
     ChrootDirectory %h
     X11Forwarding no
     AllowTCPForwarding no
     ForceCommand internal-sftp

Simpan konfigurasi dan keluar.

Konfigurasi terperinci:

  • Alih-alih menggunakan sub-proses 'sftp-server ', kami menggunakan 'internal-sftp '.
  • Server SFTP diaktifkan untuk grup 'sftpgroup '.

4. Untuk menerapkan konfigurasi baru, restart layanan ssh menggunakan perintah di bawah ini.

sudo systemctl restart sshd

Server SFTP sudah siap dan dapat diakses, dan dijalankan pada port yang sama dengan layanan SSH.

Mengakses Server SFTP

Di sisi klien, kami akan menggunakan baris perintah sftp, yang diinstal secara default di sebagian besar Distribusi Linux. Namun, Anda juga dapat menggunakan klien baris perintah lain atau klien FTP GUI seperti FileZilla , Cyberduck , dll.

1. Untuk terhubung ke server SFTP, jalankan perintah sftp seperti di bawah ini.

sftp [dilindungi email]

Jika SFTP dan/atau server SSH Anda berjalan pada custom port, Anda dapat menggunakan perintah sftp seperti di bawah ini.

sftp -P PORT [dilindungi email]

Ketik sandi untuk 'sftpuser '.

2. Setelah Anda terhubung ke server SFTP, jalankan perintah berikut.

Tampilkan direktori kerja jalur saat ini dan daftar semua file dan direktori yang tersedia.

pwd
ls

3. Unggah file lokal ke server SFTP di direktori '/ ', yang akan menghasilkan 'izin ditolak ', karena ini adalah direktori chroot.

letakkan /path/to/file/on/local /

4. Unggah file lokal ke direktori '/data/ ' di server SFTP. Jika konfigurasi Anda benar, file Anda akan diunggah ke '/data/ ' direktori.

letakkan /path/to/file1/on/local1 /data/
put /path/to/file2/on/local /data/

5. Sekarang periksa file yang tersedia di '/data ' menggunakan perintah berikut.

ls /data/

Dan Anda akan melihat file Anda diunggah ke server SFTP.

Kesimpulan

Selamat! Anda telah berhasil mengonfigurasi Server SFTP di sistem Linux. Jenis konfigurasi ini dapat diterapkan pada sebagian besar sistem Linux dengan OpenSSH yang diinstal di atasnya. Selain itu, Anda telah mempelajari cara menyiapkan direktori chroot untuk pengguna SFTP dan mempelajari perintah klien sftp dasar.


Ubuntu
  1. Cara Menginstal Dan Menggunakan Flatpak Di Linux

  2. Cara menginstal dan mengatur server sftp di Ubuntu 20.04

  3. Cara Menginstal dan Menggunakan Traceroute di Linux

  1. Cara Memasang dan Menggunakan Layar Linux, Dengan Perintah

  2. Cara menginstal dan menggunakan Hubot di Ubuntu Linux

  3. Bagaimana Cara Menginstal dan Menggunakan Layar Linux?

  1. Cara Menginstal Dan Menggunakan Putty Di Linux

  2. Cara Menginstal dan Menggunakan Steam di Ubuntu 20.04 LTS

  3. Cara Menginstal dan Menggunakan Editor Vim di Linux