Güvenli SFTP sunucusu için dosya sisteminin güvenliğini sağlama


12

Bu bir gelişme sorusu gibi görünmeyebilir, ama aslında öyledir. Nasıl olduğunu açıklayayım. Temel odak noktamız dinamik içerik sayfalarıdır. Bazı müşterilerimiz, eski statik içerikleri için sunucularımızda (ödeme yaptıkları) yer bırakmalarını istedi. Bunu, müşteriye farklı bir etki alanına ftp hesabı vererek başarmak için kullanırız. (örn. Müşteri alan adı customer.com'dur, ancak statik içeriğine otherdomain.com/customerstatic üzerinden erişiyorlardı).

Artık müşterilere linux sunucularında sftp hesapları veren güvenliği artırmak istiyoruz. Ben onların oturum açma veya komutları yürütmek edemez kabuk ortamlarında openssh / sftp-sunucu kullanıyorum.

Sorun, doğası gereği birçok dosya sistemi dosyasının varsayılan olarak (drwxr-xr-x) olmasıdır, bu da herhangi bir kullanıcının dizinin içeriğini ve muhtemelen bazı dosyaları okuyabileceği anlamına gelir. Tüm dosya sistemini -rwxr-x - x olarak değiştirmenin akıllıca bir hareket olduğunu düşünmüyorum çünkü kaç sistem dosyasının bu okuma iznine ihtiyacı olacağını bilmiyorum.

Birisi geçmişte bu sorunla yüzleşti. Eğer varsa, yolu aydınlatabilir misiniz?

Teşekkürler


İyi soru ve özlü tam cevap - bir moderatör muhtemelen başlığı değiştirmeli ve wiki olmayan bir soruya dönüştürmelidir.
MikeyB

bir sorunun wiki'sinin kaldırılması mümkün değildir; üzgünüm
Jeff Atwood

Yanıtlar:


22

Doğası gereği SFTP güvensiz değildir; tüm dosya sisteminize girmelerini sağlamaktır. SFTP erişimini, temel olarak erişebilecekleri dizinleri (örneğin, kendi dizinlerine veya yüklemelerini istediğiniz yere) kilitleyecek şekilde, kroot temelinde nasıl etkinleştirebileceğinizi görmek için buna göz atın .

Linux'ta, bu bölüme dikkat ediyorum (yapılandırma / etc / ssh / sshd_config):

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

Bu, 'sftponly' kullanıcı grubundaki herkesin ev dizinleriyle sınırlı olacağı anlamına gelir.

Daha fazla bilgi için bağlantıya bakın ve sshd_config man sayfasını okuyun. Umarım yardımcı olur.


Ayrıca internal-sftp, istemci sftp alt sistemini istediğinde OpenSSH'ye bunu kullanmasını söylemeniz gerekebilir - harici sftp-serverprogramı kullanacak şekilde ayarlanmış olabilir . Bunu yapmak için Subsystem sftp internal-sftp, yapılandırma dosyasının ana bölümüne (bölümün altında değil Match) satır ekleyin veya değiştirin .
Nate

Josh, bunu kullanıcıların ev dizinlerinin kök sahipliğini gerektirmeyen bir yol buldunuz mu?
Matt Simmons


1

"Birçok dosya sistemi varsayılan olarak 755 izinlidir" dediğinizde, aslında varsayılan umask 022 olarak ayarlanır. umask'ı varsayılan izinleri 770 yapacak olan 007 olarak ayarlayın.


0

Bir OpenVZ sunucusu kurmayı ve sonra her şirket için ayrı bir küçük VM ftp / sftp 'kapsayıcısı' oluşturmayı düşünebilirsiniz. Bu hepsini ayrı tutar ve bir kez OpenVZ asmaya başlarsanız bu tür küçük şeyler için gerçekten kullanışlıdır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.