2016-04-13 7 views
3

Sistem kullanıcıları için parola girişine izin vermek için ProFTPD'yi yapılandırabildim. İki sorunum var: umask ve pk auth.ProFTPD'yi sistem kullanıcıları, PK auth ve custom umasks ile SFTP'ye özel bir sunucu olarak nasıl yapılandırabilirim?

<IfModule mod_sftp.c> 
    <VirtualHost $(hostname)> 
     Port 23 
     SFTPEngine on 
     SFTPAuthorizedUserKeys file:/home/%u/.ssh/authorized_keys 
     SFTPHostKey /etc/ssh/ssh_host_dsa_key 
     SFTPHostKey /etc/ssh/ssh_host_rsa_key 
     SFTPHostKey /etc/ssh/ssh_host_ecdsa_key 
     SFTPCompression delayed 
     SFTPLog /var/log/proftpd/sftp.log 
    </VirtualHost> 
</IfModule mod_sftp.c> 

[umask'ı] Ancak, kullanıcı günlükleri ve put sa dosya, yüklenen dosya (başlangıçta sahip olduğu izinleri aldığında ben şöyle

Include /etc/proftpd/modules.conf 

UseIPv6    on 
ServerName   "Debian" 
ServerType   standalone 
MultilineRFC2228 on 
DefaultServer  on 
Port    21 
PassivePorts  49152 49407 
MaxInstances  30 
SystemLog   /var/log/proftpd/proftpd.log 

<IfModule mod_ctrls.c> 
    ControlsEngine  off 
    ControlsMaxClients 2 
    ControlsLog   /var/log/proftpd/controls.log 
    ControlsInterval 5 
    ControlsSocket  /var/run/proftpd/proftpd.sock 
</IfModule> 

<IfModule mod_ctrls_admin.c> 
    AdminControlsEngine off 
</IfModule> 

<Global> 
    UseFtpUsers   on 
    IdentLookups  off 
    DeferWelcome  off 
    ShowSymlinks  on 
    TimeoutNoTransfer 600 
    TimeoutStalled  600 
    TimeoutIdle   1200 
    DisplayLogin  welcome.msg 
    DisplayChdir  .message true 
    ListOptions   "-l" 
    DenyFilter   \*.*/ 
    DefaultRoot   ~ 
    RequireValidShell off 
    User    proftpd 
    Group    nogroup 
    Umask    007 007 
    AllowOverwrite  on 
    # AuthOrder   mod_sql.c 
    CreateHome   on 
    TransferLog   /var/log/proftpd/xferlog 

    <IfModule mod_quotatab.c> 
     QuotaEngine off 
    </IfModule> 

    <IfModule mod_ratio.c> 
     Ratios off 
    </IfModule> 

    <IfModule mod_delay.c> 
     DelayEngine on 
    </IfModule> 

    <IfModule mod_xfer.c> 
     MaxStoreFileSize 70 Mb 
     HiddenStores  on 
     DeleteAbortedStores on 
    </IfModule mod_xfer.c> 

    <Directory /htdocs/*/> 
     Umask 0007 
     <Limit MKD XMKD RMD XRMD SITE_CHMOD> 
      DenyUser !ftpadmin 
     </Limit> 
    </Directory> 
</Global> 

Include /etc/proftpd/sftp.conf 

ve sftp.conf olduğunu OS X ve Linux'u istemciler olarak kullanarak test etmek, böylece anlam ifade eder). Saf FTP çözümünü test etmedim, ancak SFTP'yi tercih ederim.

[pk auth] Bir PK kimlik çalıştığınızda, istemci doğru doğru anahtarı sunar ve

debug2: we sent a publickey packet, wait for reply 
debug1: Server accepts key: pkalg ssh-rsa blen 535 
debug2: input_userauth_pk_ok: fp SHA256:Eft1LIOozSylL20lfMc9gUdl3gKtd0zEdeyNtCb1p8Q 

diyor ama sonra hiçbir beni karıştırır

debug1: Authentications that can continue: password 

ile sona eriyor son. Sunucu tarafında, ben kullanıcı gerçekten mevcut mu (ve başarıyla Şifre girişini yapabilir) çünkü komik

no account for user 'sftpuser' found 
sending userauth failure; remaining userauth methods: password 

var. OpenSSH anahtarımı bile ProFTPD'nin tercih ettiği gibi RFC4716 formatına dönüştürdüm.

ProFTPD ile ilgili toplam 4 saatlik deneyimim olduğunu kabul ediyorum, ancak yapabildiğim her şeyi okuyordum ve yapılandırma dosyaları bana mantıklı geliyor. Bunların hepsi bir Docker konteynerinde çalışıyor. Neyi kaçırıyorum?

+0

Stackoverflow, yazılım geliştirme konusunda yardım amaçlıdır. Bunu [sf] veya [unix.se] 'de sormayı düşünmelisiniz. – Kenster

+0

Sunucuya nasıl bağlanırsınız? – Jakuje

+0

@Kenster: Haklısınız, teşekkürler. Bunu kendim taşıyabilir miyim? - Jakuje: FileZilla veya cli sftp gibi herhangi bir sftp istemcisi. – Morpheu5

cevap

2

FTP'den farklı olarak, SFTP yüklemeleri, SFTP OPEN isteği'un bir parçası olarak genellikle kendi izinlerini içerir. publickey kimlik doğrulaması için

<IfModule mod_sftp.c> 
    ... 
    SFTPOptions IgnoreSFTPUploadPerms 
    ... 
</IfModule> 

: SFTP yüklenenler Proftpd yapılandırması (örnUmask), yapılandırmak istediğiniz mod_sftp-IgnoreSFTPUploadPermsSFTPOptions kullanılarak yükleme izinleri görmezden bakımından, FTP yükleme gibi davranmaya yapmak için Sorun, yapılandırdığınız SFTPLog sorunun ne olabileceği konusunda daha fazla ipucu olmalıdır. Belki de yapılandırılmış dosya mevcut değil veya gerekli izinlere sahip değil mi? ~/.ssh/authorized_keys'un genellikle OpenSSH, ve tarafından kullanıldığını ve bu dosyanın formatının ProFTPD'nin istediği farklı olduğunu unutmayın. Bu nedenle, sık sık kullanın:

SFTPAuthorizedUserKeys file:~/.sftp/authorized_keys 

yani OpenSSH farklı bir biçimde (RFC 4716) 'de, ne istediğini bir farklı dosya, herhangi bir olası karışıklık/çarpışmayı önlemek için.

Bu yardımcı olur umarız!

+0

Bazı nedenlerden dolayı SFTPOptions eksik. Ayrıca, bir yazım hatası nedeniyle, yetkili_kahtarlar anahtarlarla doldurulmadı… Ssh-keygen’in yanlış yazıldığını nasıl hatırlayamıyorum… (OpenSSH anahtarlarını RCF4716’ya dönüştürdüğüm için tek linerler Bu yüzden bir bash betik içine takmak daha kolay Gelecekte daha sofistike olacağım :) Teşekkürler! – Morpheu5

İlgili konular