Mengamankan sistem file untuk server SFTP yang aman

12

Ini mungkin tidak tampak sebagai pertanyaan pembangunan, tetapi pada dasarnya itu. Biarkan saya jelaskan caranya. Fokus pengembangan utama kami adalah halaman konten dinamis. Beberapa pelanggan kami telah meminta kami untuk memberi mereka ruang di server kami (yang mereka bayar) untuk konten statis lama mereka. Kami menggunakannya untuk mencapai ini dengan memberikan pelanggan akun ftp ke domain yang berbeda. (mis. Domain Pelanggan adalah customer.com tetapi mereka mengakses konten statis mereka melalui otherdomain.com/customerstatic).

Sekarang kami ingin meningkatkan keamanan memberi pelanggan akun sftp di server linux mereka. Saya menggunakan openssh / sftp-server di lingkungan shell mereka sehingga mereka tidak dapat masuk atau menjalankan perintah.

Masalahnya adalah bahwa pada dasarnya banyak file sistem file secara default (drwxr-xr-x) yang berarti bahwa setiap pengguna akan dapat membaca konten direktori dan mungkin beberapa file. Saya tidak berpikir bahwa mengubah seluruh sistem file menjadi -rwxr-x - x adalah langkah bijak karena saya tidak tahu berapa banyak file sistem yang memerlukan izin baca.

Pernahkah seseorang menghadapi masalah ini di masa lalu. Jika sudah, bisakah Anda mencerahkan jalan?

Terima kasih

anon
sumber
Pertanyaan bagus dan jawaban lengkap ringkas - seorang moderator mungkin harus mengubah judul dan mengubahnya menjadi pertanyaan non-wiki.
MikeyB
tidak mungkin membatalkan pertanyaan di wiki; maaf
Jeff Atwood

Jawaban:

22

SFTP pada dasarnya tidak aman; membiarkannya masuk ke seluruh sistem file Anda. Lihat ini untuk melihat bagaimana Anda dapat mengaktifkan akses SFTP berdasarkan chroot , yang akan mengunci direktori yang dapat mereka akses, katakanlah, direktori home mereka, atau di mana pun Anda ingin mereka mengunggah.

Di Linux, saya akan memperhatikan bagian ini (mengkonfigurasi / etc / ssh / sshd_config):

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

Ini berarti bahwa siapa pun di grup pengguna 'sftponly' akan dibatasi ke direktori home mereka.

Lihat tautan untuk informasi lebih lanjut, dan baca juga halaman manual sshd_config. Semoga itu bisa membantu.

Josh K.
sumber
Selain itu, Anda mungkin perlu memberi tahu OpenSSH untuk menggunakannya internal-sftpketika klien meminta subsistem sftp — mungkin telah diatur untuk menggunakan sftp-serverprogram eksternal . Untuk melakukan ini, tambahkan atau ubah baris Subsystem sftp internal-sftpdi bagian utama file konfigurasi (bukan di bawah Matchbagian).
Nate
Josh, apakah Anda pernah menemukan cara untuk membuatnya tidak memerlukan kepemilikan root terhadap direktori home pengguna?
Matt Simmons
1

Ketika Anda mengatakan "Banyak filesystem secara default 755 izin", itu sebenarnya berarti umask default diatur ke 022. Anda dapat mengubah default ini (untuk file baru) dengan mengatur umask ke 027, yang akan membuat izin default 750, atau atur umask ke 007, yang akan membuat izin default 770.

Brent
sumber
0

Anda mungkin mempertimbangkan untuk menyiapkan server OpenVZ, dan kemudian membuat 'wadah' VM ftp / sftp kecil yang terpisah untuk masing-masing perusahaan. Ini membuat mereka semua terpisah, dan begitu Anda memahami OpenVZ, itu sangat berguna untuk hal-hal kecil semacam ini.

Kyle Brandt
sumber