Atur SFTP dan Cegah SSH di Ubuntu 20.04. SFTP (Secure File transfer Protocol), cara aman untuk mentransfer file ke server menggunakan koneksi SSH terenkripsi. Semua server dengan SSH akan mengaktifkan SFTP secara default.
Dalam panduan ini Anda akan mempelajari cara membatasi akses SFTP ke direktori untuk pengguna tertentu dan mencegah akses SSH.
Pengaturan ini diuji pada mesin virtual yang menjalankan OS Ubuntu 20.04. Jadi tutorial ini harus bekerja pada server apapun dengan Ubuntu.
Prasyarat
Akses SSH ke server dengan hak istimewa sudo.
Langkah 1:Buat pengguna baru
Buat pengguna baru yang memiliki akses SFTP untuk melakukan tindakan tertentu pada direktori tertentu.
sudo adduser username
Anda akan diminta untuk menyiapkan kata sandi dan detail opsional lainnya yang dapat Anda atur atau abaikan.
Jika Anda ingin menggunakan login berbasis kunci SSH, periksa cara mengatur akses SSH di Ubuntu Anda.
Langkah 2:Siapkan akses SFTP
Untuk menyiapkan akses SFTP, Anda perlu mengonfigurasi izin direktori yang benar, direktori induk dari direktori baru yang akan Anda buat harus dimiliki oleh root dan bukan oleh pengguna lain.
Misalnya, jika Anda akan membuat direktori bernama /sftp/folder
, sftp
direktori harus dimiliki oleh root dan folder
direktori harus dimiliki oleh pengguna tertentu siapa yang mengaksesnya.
Buat direktori.
sudo mkdir -p /sftp/folder
Konfigurasikan izin yang benar.
sudo chmod 755 /sftp sudo chown root:root /sftp sudo chmod -R 755 /sftp/folder sudo chown username:username /sftp/folder
Langkah 3:Cegah akses SSH dan Batasi Akses SFTP
Sekarang kita dapat memodifikasi konfigurasi SSH untuk mencegah akses SSH bagi pengguna dan membatasi pengguna untuk hanya mengakses direktori tertentu.
Edit file konfigurasi SSH Anda.
sudo nano /etc/ssh/sshd_config
Tambahkan berikut ini di akhir file.
Match User username ForceCommand internal-sftp PasswordAuthentication yes ChrootDirectory /sftp PermitTunnel no AllowAgentForwarding no AllowTcpForwarding no X11Forwarding no
Match User
memberitahu server SSH untuk menerapkan perintah berikut hanya untuk pengguna tertentu.ForceCommand internal-sftp
memaksa server SSH untuk menjalankan server SFTP saat login dan mencegah akses SSH.PasswordAuthentication yes
memungkinkan otentikasi kata sandi untuk pengguna ini. Jika Anda menggunakan login berbasis kunci SSH, Anda dapat mencegah otentikasi berbasis kata sandi dengan menyetel nilainya keno
.ChrootDirectory /sftp
memastikan bahwa pengguna tidak akan diizinkan mengakses apa pun di luar/sftp
direktori.AllowAgentForwarding no
,AllowTcpForwarding no
, danX11Forwarding no
menonaktifkan penerusan port, tunneling, dan penerusan X11, masing-masing.
Tekan CTRL + X
diikuti oleh Y
lalu ENTER
untuk menyimpan dan keluar dari file.
Sekarang ada konfigurasi yang hanya mengizinkan akses SFTP dan mencegah login SSH untuk pengguna.
Mulai ulang layanan SSH agar perubahan diterapkan.
sudo systemctl restart sshd
Untuk detail selengkapnya tentang mengonfigurasi akses untuk beberapa nama pengguna, Anda dapat mengikuti panduan penyiapan Chroot ini.
Langkah 4:Verifikasi penyiapan SFTP
Coba masuk ke server menggunakan detail SFTP Anda dengan perintah SSH. Anda akan ditolak akses ke SSH.
ssh [email protected]_ip
Anda akan menerima output seperti di bawah ini.
Output This service allows sftp connections only. Connection to server_ip closed.
Sekarang verifikasi menggunakan perintah sftp.
sftp [email protected]_ip
Sekarang Anda harus masuk ke server dan memiliki akses ke direktori yang telah Anda konfigurasikan sebelumnya.
Output Connected to server_ip sftp>
Gunakan ls
perintah untuk membuat daftar direktori Anda akan melihat direktori bernama folder
Anda telah membuat dan mengonfigurasi izin.
sftp> ls
Output folder
Kesimpulan
Sekarang Anda telah mempelajari cara menyiapkan SFTP dan mencegah akses SSH ke pengguna melalui direktori tertentu.
Terima kasih atas waktunya. Jika Anda menghadapi masalah atau umpan balik, silakan tinggalkan komentar di bawah.