Android

Cara mengatur jail chroot sftp

How To Configure Sftp With Chroot On CentOS 7

How To Configure Sftp With Chroot On CentOS 7

Daftar Isi:

Anonim

Dalam tutorial ini, kami akan menjelaskan cara menyiapkan lingkungan SFTP Chroot Jail yang akan membatasi pengguna ke direktori home mereka. Pengguna hanya akan memiliki akses SFTP, akses SSH akan dinonaktifkan. Instruksi ini harus bekerja untuk distribusi Linux modern termasuk Ubuntu, CentOS, Debian, dan Fedora.

Membuat Grup SFTP

Alih-alih mengonfigurasi server OpenSSH untuk setiap pengguna secara individual, kami akan membuat grup baru dan menambahkan semua pengguna chroot kami ke grup ini.

Jalankan perintah groupadd berikut untuk membuat grup pengguna sftponly :

sudo groupadd sftponly Anda dapat memberi nama grup seperti yang Anda inginkan.

Menambahkan Pengguna ke Grup SFTP

Langkah selanjutnya adalah menambahkan pengguna yang ingin Anda batasi ke grup sftponly .

Jika ini adalah pengaturan baru dan pengguna tidak ada, Anda dapat membuat akun pengguna baru dengan mengetik:

sudo useradd -g sftponly -s /bin/false -m -d /home/username username

  • Opsi -g sftponly akan menambahkan pengguna ke grup sftponly. Opsi -s /bin/false menetapkan shell login pengguna. Dengan mengatur shell login ke /bin/false pengguna tidak akan dapat login ke server melalui SSH. Opsi -m -d /home/username memberitahu useradd untuk membuat direktori home user.

Tetapkan kata sandi yang kuat untuk pengguna yang baru dibuat:

sudo passwd username

Kalau tidak, jika pengguna yang ingin Anda batasi sudah ada, tambahkan pengguna ke grup sftponly dan ubah shell pengguna:

sudo usermod -G sftponly -s /bin/false username2

Direktori home user harus dimiliki oleh root dan memiliki 755 izin:

sudo chown root: /home/username sudo chmod 755 /home/username

Karena direktori home pengguna dimiliki oleh pengguna root, pengguna ini tidak akan dapat membuat file dan direktori di direktori home mereka. Jika tidak ada direktori di rumah pengguna, Anda harus membuat direktori baru di mana pengguna akan memiliki akses penuh. Misalnya, Anda dapat membuat direktori berikut:

sudo mkdir /home/username/{public_html, uploads} sudo chmod 755 /home/username/{public_html, uploads} sudo chown username:sftponly /home/username/{public_html, uploads}

Jika aplikasi web menggunakan direktori public_html pengguna sebagai root dokumen, perubahan ini dapat menyebabkan masalah izin. Sebagai contoh, jika Anda menjalankan WordPress Anda harus membuat kumpulan PHP yang akan berjalan sebagai pengguna yang memiliki file dan menambahkan sftponly web ke grup sftponly .

Mengkonfigurasi SSH

SFTP adalah subsistem SSH dan mendukung semua mekanisme otentikasi SSH.

Buka file konfigurasi SSH /etc/ssh/sshd_config dengan editor teks Anda:

sudo nano /etc/ssh/sshd_config

Cari baris yang dimulai dengan Subsystem sftp , biasanya di akhir file. Jika baris dimulai dengan hash # hapus hash # dan modifikasi agar terlihat seperti berikut:

/ etc / ssh / sshd_config

Subsystem sftp internal-sftp

Menjelang akhir file, blok pengaturan berikut:

/ etc / ssh / sshd_config

Match Group sftponly ChrootDirectory %h ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no

Arahan ChrootDirectory menentukan jalur ke direktori chroot. %h berarti direktori home user. Direktori ini, harus dimiliki oleh pengguna root dan tidak dapat ditulisi oleh pengguna atau grup lain.

Berhati-hatilah saat memodifikasi file konfigurasi SSH. Konfigurasi yang salah dapat menyebabkan layanan SSH gagal untuk memulai.

Setelah selesai simpan file dan mulai ulang layanan SSH untuk menerapkan perubahan:

sudo systemctl restart ssh

Di CentOS dan Fedora, layanan ssh bernama sshd :

sudo systemctl restart sshd

Menguji Konfigurasi

Sekarang Anda telah mengkonfigurasi chroot SFTP Anda dapat mencoba masuk ke mesin jarak jauh melalui SFTP menggunakan kredensial pengguna chroot. Dalam kebanyakan kasus, Anda akan menggunakan klien SFTP desktop seperti FileZilla tetapi dalam contoh ini, kami akan menggunakan perintah sftp.

Buka koneksi SFTP menggunakan perintah sftp diikuti oleh nama pengguna server jarak jauh dan alamat IP server atau nama domain:

sftp [email protected]

Anda akan diminta memasukkan kata sandi pengguna. Setelah terhubung, server jarak jauh akan menampilkan pesan konfirmasi dan permintaan sftp> :

[email protected]'s password: sftp>

Jalankan perintah pwd , seperti yang ditunjukkan di bawah ini, dan jika semuanya berfungsi seperti yang diharapkan, perintah akan kembali / .

sftp> pwd Remote working directory: /

Anda juga dapat membuat daftar file dan direktori jarak jauh menggunakan perintah ls dan Anda akan melihat direktori yang telah kita buat sebelumnya:

sftp> ls public_html uploads

Kesimpulan

Dalam tutorial ini, Anda telah belajar cara mengatur lingkungan SFTP Chroot Jail di server Linux Anda dan membatasi akses pengguna ke direktori home mereka.

Secara default, SSH mendengarkan pada port 22. Mengubah port SSH default menambah lapisan keamanan tambahan ke server Anda dengan mengurangi risiko serangan otomatis. Anda mungkin juga ingin mengatur otentikasi berbasis kunci SSH dan terhubung ke server tanpa memasukkan kata sandi.

ssh sftp keamanan