GNU/Linux >> Belajar Linux >  >> Linux

Panduan untuk Menyiapkan Server SFTP di Linux

Apa itu SFTP?

SFTP adalah singkatan dari SSH File Transfer Protocol. Anda menebaknya dengan benar. Ini adalah versi FTP yang menggunakan SSH di atasnya. Ini memungkinkan pengguna untuk mengunggah dan mengunduh file ke dan dari server Linux melalui koneksi terenkripsi. FTP melakukan hal yang sama tanpa enkripsi dan inilah mengapa SFTP lebih disukai daripada FTP akhir-akhir ini.

Mari kita lihat bagaimana Anda dapat menyiapkan server SFTP di sistem Linux.

Menyiapkan Server SFTP di Linux

Saya telah menggunakan Ubuntu dalam tutorial ini. Perintah penginstalan khusus untuk Ubuntu dan Debian tetapi langkah selanjutnya dapat diikuti di distribusi Linux lainnya.

Untuk melakukan langkah-langkah, Anda perlu memiliki hak sudoer. Jadi jika Anda tidak memiliki hak sudo, hubungi administrator sistem Anda. Jika Anda salah satunya, silakan baca tentang membuat pengguna sudo di Ubuntu.

Menyiapkan SFTP sangat mudah. Sebelum itu, Anda harus menginstal OpenSSH di sisi server dan paket SSH di sisi klien.

Saya telah membahas pengaturan SSH di Ubuntu secara rinci dalam artikel terpisah, saya hanya akan menyebutkan langkah-langkah penting di sini.

Untuk menginstal OpenSSH di server, Anda dapat menggunakan perintah berikut:

sudo apt install openssh-server

Anda juga memerlukan SSH pada sistem tempat Anda akan mengakses server SFTP.

sudo apt install ssh

Setelah ini selesai, Anda akan memiliki segalanya untuk menyiapkan SFTP. Ini dilakukan dalam tiga langkah dan saya akan menunjukkannya kepada Anda satu per satu.

Langkah 1:Buat Grup, Pengguna, Direktori

Untuk menggunakan SFTP (atau layanan lain secara umum) dengan aman, yang terbaik adalah membuat grup dan pengguna untuk menggunakan layanan itu dan hanya layanan itu. “Yang terbaik adalah memberikan satu hak khusus kepada satu entitas tertentu” .

Jika Anda ingin memberikan akses SFTP dan juga akses sistem normal, buat pengguna sedemikian rupa sehingga mudah untuk mengidentifikasi mereka sesuai dengan layanan. Misalnya, jika lihat digunakan untuk akses sistem normal kemudian seenisftp dapat digunakan untuk akses SFTP. Menggunakan metode ini akan lebih mudah di sisi administrasi.

Mari buat grup bernama “sftpg ” menggunakan perintah groupadd:

sudo groupadd sftpg

Mari buat pengguna bernama “seenisftp” dan tambahkan dia ke grup di atas dan beri dia kata sandi.

sudo useradd -g sftpg seenisftp 
sudo passwd seenisftp

Dalam perintah useradd, -g option memberitahu grup pengguna mana yang harus ditambahkan. Anda dapat membuat daftar semua pengguna di Linux dan memverifikasi bahwa pengguna baru telah ditambahkan.

Mari kita asumsikan Anda ingin menggunakan direktori /data/ sebagai root Anda untuk sftp dan /data/USERNAME untuk setiap pengguna. Jadi ketika pengguna login melalui sftp, mereka harus berada di /data/USERNAME sebagai direktori default mereka (Sama seperti Anda berada di /home/USERNAME direktori saat Anda masuk ke sistem Linux melalui SSH). Juga, asumsikan batasan bahwa mereka dapat membaca file dari direktori itu tetapi hanya dapat mengunggah ke unggahan direktori.

Mari buat direktori dan ubah akses dan kepemilikannya sebagai berikut (baca tentang izin file di Linux untuk mengetahui lebih banyak tentangnya).

sudo mkdir -p /data/seenisftp/upload
sudo chown -R root.sftpg /data/seenisftp
sudo chown -R seenisftp.sftpg /data/seenisftp/upload

Satu hal yang mungkin membingungkan adalah memberikan kepemilikan direktori pengguna ke root itu sendiri. Ini wajib untuk chroot di SFTP. Jadi pastikan bahwa pemilik /data/USERNAME adalah akar .

Sampai sekarang, kami memiliki pengguna bernama seenisftp dengan grup sftpg dan dengan izin akses yang disetel untuk /data/seenisftp .

Langkah 2:Konfigurasi sshd_config

Selanjutnya Anda perlu mengkonfigurasi server ssh sehingga setiap kali pengguna yang tergabung dalam grup sftpg login, ia masuk ke sftp alih-alih shell normal yang Anda dapatkan melalui ssh. Tambahkan cuplikan berikut ke /etc/ssh/sshd_config jika belum ada.

Match Group sftpg
        ChrootDirectory /data/%u
        ForceCommand internal-sftp

Dalam cuplikan di atas, ChrootDirectory mengizinkan direktori yang ditentukan untuk dibuat sebagai simpul root (“/” directory ) di pohon direktori. Pengguna yang masuk tidak dapat melihat apa pun di atas direktori itu. Jadi itu akan menghentikan pengguna saat ini mengakses file pengguna lain melalui sftp . %u adalah kode escape untuk mengisinya dengan nama pengguna saat ini pada saat login. Ketika seenisftp masuk melalui sftp , dia akan berada di /data/seenisftp sebagai direktori root-nya. Dia tidak akan bisa melihat apapun di atasnya.

Langkah 3:Mulai ulang layanan

Untuk membuat perubahan, kami membuat sshd_config hidup, mulai ulang layanan sebagai berikut.

sudo systemctl restart sshd

Mengakses SFTP melalui baris perintah Linux

Anda dapat login ke SFTP seperti yang biasa Anda lakukan dengan SSH.

sftp [email protected]

Contoh perintah SFTP

Perintah SFTP biasanya dalam format berikut.

COMMAND [SOURCE] [DESTINATION]

Untuk perintah apa pun, argumen dapat berupa jalur sistem lokal atau jalur sistem jarak jauh. Tidak ada perbedaan khusus yang terlihat di antara mereka. Anda dapat menentukan jalur seperti biasa setelah mempertimbangkan apakah argumennya lokal atau jauh.

DAPATKAN – mengunduh konten dari server jauh ke sistem lokal. Perintah di bawah ini mengunduh file jarak jauh poster.img ke ~/Gambar sistem lokal direktori.

GET poster.img ~/Pictures

PUT – Unggah konten dari sistem lokal ke sistem jarak jauh. Perintah di bawah ini mengunggah ~/Pictures/poster2.jpg ke dalam unggahan saya direktori.

PUT ~/Pictures/poster2.jpg uploads/

RM – Untuk menghapus file di sistem jarak jauh. Ini sangat mirip dengan rm memerintah. Anda dapat melihatnya dari perintah di bawah yang menghapus gambar di uploads/poster3.jpg

RM uploads/poster3.jpg

Perintah di atas sangat mendasar dan cukup untuk menjelajahi server FTP/SFTP. Jika Anda ingin tahu lebih banyak, gunakan help perintah atau gunakan sumber daya ini.

Saya harap artikel ini membantu Anda dalam menyiapkan server SFTP di Linux.

Beri tahu kami di komentar tentang pengaturan sistem file SFTP Anda. Apakah seperti yang disebutkan dalam artikel ini atau direktori gabungan atau yang lainnya?

Jika Anda menemukan artikel ini bermanfaat, bagikan dengan teman-teman Anda. Jika Anda memiliki saran, jangan ragu untuk menyampaikannya di bawah.


Linux
  1. 7 langkah untuk mengamankan server Linux Anda

  2. Menginstal dan mengatur Grafana di linux

  3. Blokir alamat IP di server Linux

  1. Panduan terminal Linux untuk pemula

  2. Apa Itu Linux? Panduan untuk Pengguna Non-teknis

  3. Cara Menginstal Server Web Nginx di Linux

  1. Cara menginstal Borgmatic untuk backup server Linux yang mudah

  2. 11 Perangkat Lunak CAD Terbaik untuk Linux

  3. Menyiapkan sudo tanpa kata sandi di distribusi Linux