SFTP adalah singkatan dari "Protokol Transfer File SSH." SFTP adalah protokol transfer file yang digunakan untuk mentransfer file antara dua server. Secara default, SFTP memungkinkan Anda untuk mentransfer file di semua server yang memiliki akses SSH diaktifkan. Namun, ini akan memberikan akses terminal ke semua pengguna dan ini tidak disarankan untuk alasan keamanan.
Dalam tutorial ini, kita akan mempelajari cara membuat pengguna SFTP tanpa akses shell sehingga pengguna hanya memiliki akses SFTP dan bukan akses SSH.
Prasyarat
- VPS CentOS 8 baru di Platform Cloud Atlantic.net.
- Kata sandi root yang dikonfigurasi di server Anda.
Langkah 1 – Buat Server Cloud Atlantic.Net
Pertama, masuk ke Server Cloud Atlantic.Net Anda. Buat server baru, pilih CentOS 8 sebagai sistem operasi dengan setidaknya 1GB RAM. Hubungkan ke Server Cloud Anda melalui SSH dan masuk menggunakan kredensial yang disorot di bagian atas halaman.
Setelah Anda masuk ke server CentOS 8 Anda, jalankan perintah berikut untuk memperbarui sistem dasar Anda dengan paket terbaru yang tersedia.
dnf update -y
Langkah 2 – Buat Pengguna SFTP
Pertama, Anda perlu membuat pengguna baru hanya dengan akses transfer file. Anda dapat membuat pengguna baru bernama sftp menggunakan perintah berikut:
adduser sftp
Selanjutnya, atur kata sandi untuk pengguna di atas:
passwd sftp
Berikan kata sandi yang Anda inginkan dan tekan enter.
Langkah 3 – Buat Struktur Direktori untuk Transfer File
Selanjutnya, Anda perlu membuat struktur direktori untuk transfer file guna membatasi akses SFTP ke satu direktori.
Anda dapat membuat direktori baru dengan perintah berikut:
mkdir -p /opt/sftp/public
Selanjutnya, atur kepemilikan direktori /opt/sftp/ ke root:
chown root:root /opt/sftp
Selanjutnya, berikan izin yang tepat dengan perintah berikut:
chmod 755 /opt/sftp
Selanjutnya, atur kepemilikan direktori publik ke pengguna sftp:
chown sftp:sftp /opt/sftp/public
Langkah 4 – Konfigurasikan SSH untuk SFTP
Selanjutnya, Anda perlu mengonfigurasi SSH untuk membatasi akses ke satu direktori dan melarang akses terminal ke pengguna sftp.
Anda dapat melakukannya dengan mengedit file /etc/ssh/sshd_config:
nano /etc/ssh/sshd_config
Tambahkan baris berikut di akhir file:
Match User sftp ForceCommand internal-sftp PasswordAuthentication yes ChrootDirectory /opt/sftp PermitTunnel no AllowAgentForwarding no AllowTcpForwarding no X11Forwarding no
Simpan dan tutup file setelah Anda selesai. Kemudian, restart layanan SSH untuk menerapkan perubahan:
systemctl restart sshd
Langkah 5 – Verifikasi SFTP
Sekarang, verifikasi akses SFTP dengan perintah berikut:
sftp [email protected]
Anda akan diminta untuk memberikan kata sandi seperti yang ditunjukkan di bawah ini:
kata sandi[email protected]'s password:
Berikan kata sandi pengguna sftp Anda dan tekan Enter. Setelah terhubung, Anda akan melihat output berikut:
Connected to your-server-ip. sftp>
Selanjutnya, jalankan perintah berikut untuk membuat daftar direktori:
sftp> ls
Anda akan melihat direktori publik di output berikut:
public sftp>
Selanjutnya, verifikasi apakah Anda dapat membuat koneksi SSH atau tidak:
ssh [email protected]
Anda akan diminta untuk memberikan kata sandi seperti yang ditunjukkan di bawah ini:
kata sandi[email protected]'s password:
Berikan kata sandi pengguna sftp Anda dan tekan Enter. Anda akan melihat output berikut:
This service allows sftp connections only. Connection to your-server-ip closed.
Output di atas menunjukkan bahwa pengguna sftp tidak dapat lagi mengakses shell server melalui SSH.
Kesimpulan
Selamat! Anda telah berhasil mengonfigurasi SFTP tanpa akses shell di CentOS 8. Anda juga dapat menggunakan pengaturan ini untuk banyak pengguna dan direktori. Mulailah dengan SFTP hari ini di VPS dari Atlantic.Net!