2016-04-13 22 views
3

Also, ich habe es geschafft, ProFTPD zu konfigurieren, Passwort-Login für Systembenutzer zu ermöglichen. Ich habe zwei Probleme: umask und pk Auth.Wie konfiguriere ich ProFTPD als SFTP-only-Server mit Systembenutzern, PK-Auth und benutzerdefinierten Umasks?

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 

und sftp.conf ist wie folgt

<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] Wenn jedoch ein Benutzer anmeldet und put sa Datei, die hochgeladene Datei die Berechtigungen nimmt, dass es ursprünglich hatte (ich bin Testen mit OS X und Linux als Clients, das macht Sinn. Ich habe die reine FTP-Lösung nicht getestet, aber ich würde lieber SFTP bereitstellen.

[pk Auth] Wenn ich eine PK-Authentifizierung versuchen, richtig der Kunde den richtigen Schlüssel bietet, und sagt

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 

aber dann schließt mit

debug1: Authentications that can continue: password 

, die mich nicht verwechselt Ende. Auf der Serverseite habe ich

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

, die lustig ist, weil der Benutzer tatsächlich existiert (und ein Passwort Login erfolgreich durchführen kann). Ich habe sogar meinen OpenSSH-Schlüssel in das RFC4716-Format konvertiert, das ProFTPD zu bevorzugen scheint.

Ich gebe zu, ich habe insgesamt etwa 4 Stunden Erfahrung mit ProFTPD, aber ich habe alles gelesen, was ich konnte, und die Konfigurationsdateien ergeben für mich Sinn. Dies alles läuft in einem Docker-Container. Was vermisse ich?

+0

Stackoverflow ist für Hilfe bei der Softwareentwicklung. Sie sollten diese Frage auf [sf] oder [unix.se] stellen. – Kenster

+0

Wie verbinden Sie sich mit dem Server? – Jakuje

+0

@Kenster: Du hast Recht, danke. Kann ich das selbst bewegen? - Jakuje: jeder sftp Client, wie FileZilla oder cli sftp. – Morpheu5

Antwort

2

Im Gegensatz zu FTP enthalten SFTP-Uploads oft ihre eigenen Berechtigungen als Teil der SFTP OPEN Anfrage. Um SFTP Uploads mehr wie FTP-Uploads verhalten, im Hinblick auf die ProFTPD-Konfiguration (zBUmask) Sie mod_sftp-ignorieren die Upload-Berechtigungen mit der IgnoreSFTPUploadPermsSFTPOptions konfigurieren möchten:

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

Für die publickey Authentifizierung Problem, das SFTPLog, das Sie konfigurierten, sollte mehr Anhaltspunkte haben, was das Problem sein könnte. Vielleicht existiert die konfigurierte Datei nicht oder hat nicht die notwendigen Berechtigungen? Denken Sie daran, dass ~/.ssh/authorized_keys oft von OpenSSH, und verwendet wird, dass das Format dieser Datei anders ist als das, was ProFTPD wünscht. Aus diesem Grunde verwende ich oft:

SFTPAuthorizedUserKeys file:~/.sftp/authorized_keys 

heißt eine verschiedenen Datei von dem, was OpenSSH will, in einem anderen Format (RFC 4716), um zu verhindern mögliche Verwechslungen/Kollision.

Hoffe, das hilft!

+0

Aus einigen Gründen fehlten mir die SFTOPOptions. Aufgrund eines Tippfehlers wurden die authorized_keys nicht mit Schlüsseln gefüllt ... Ich kann mich nicht erinnern, wie oft ich 'ssh-keygen' falsch geschrieben habe ... (Ich erzeuge das Skript, das OpenSSH-Schlüssel in RCF4716 umwandelt, weil sie Einzeiler sind, also einfacher in ein Bash-Skript zu steckst .. Ich werde in der Zukunft noch ausgefeilter sein :) Danke! – Morpheu5