Назад | Перейти на главную страницу

ProFTPd - Невозможно войти в систему, постоянная ошибка 530

По какой-либо причине я не могу подключиться / войти в систему через FTP-клиент или из командной строки к моему FTP-серверу. Я использую Webmin и ProFTPd. Я установил пользователя с простым паролем как часть группы ftp с / sbin / nologin в качестве пути к оболочке. В журналах указывается только «FTP-соединение открыто» и «FTP-соединение закрыто». Указанные мной пассивные порты открыты на брандмауэре.

Как будто пароль неправильный, но это так. Вот мой файл proftpd.conf:

# This is the ProFTPD configuration file
# $Id: proftpd.conf,v 1.1 2004/02/26 17:54:30 thias Exp $

DefaultRoot ~
ServerName          "ProFTPD server"
ServerIdent         on "FTP Server ready."
ServerAdmin         root@localhost
ServerType standalone
#ServerType         inetd
DefaultServer           off
AccessGrantMsg          "User %u logged in."
#DisplayConnect         /etc/ftpissue
#DisplayLogin           /etc/ftpmotd
#DisplayGoAway          /etc/ftpgoaway
DeferWelcome            off

# Use this to excude users from the chroot
DefaultRoot         ~ !adm

# Use pam to authenticate (default) and be authoritative
AuthPAMConfig           proftpd
AuthOrder           mod_auth_pam.c* mod_auth_unix.c

# Do not perform ident nor DNS lookups (hangs when the port is filtered)
IdentLookups            off
UseReverseDNS off

# Port 21 is the standard FTP port.
Port                21

# Umask 022 is a good standard umask to prevent new dirs and files
# from being group and world writable.
Umask               022

# Default to show dot files in directory listings
ListOptions         "-a"

# See Configuration.html for these (here are the default values)
#MultilineRFC2228       off
#RootLogin          off
#LoginPasswordPrompt        on
#MaxLoginAttempts       3
#MaxClientsPerHost      none
#AllowForeignAddress        off # For FXP

# Allow to resume not only the downloads but the uploads too
AllowRetrieveRestart        on
AllowStoreRestart       on

# To prevent DoS attacks, set the maximum number of child processes
# to 30.  If you need to allow more than 30 concurrent connections
# at once, simply increase this value.  Note that this ONLY works
# in standalone mode, in inetd mode you should use an inetd server
# that allows you to limit maximum number of processes per service
# (such as xinetd)
MaxInstances 20

# Set the user and group that the server normally runs at.
User                ftp
Group               ftp

# Disable sendfile by default since it breaks displaying the download speeds in
# ftptop and ftpwho
UseSendfile         no

# This is where we want to put the pid file
ScoreboardFile          /var/run/proftpd.score

# Normally, we want users to do a few things.
<Global>
  AllowOverwrite        yes
  <Limit ALL SITE_CHMOD>
    AllowAll
  </Limit>
PassivePorts 64000 64321
RequireValidShell off
</Global>

# Define the log formats
LogFormat default "%h %l %u %t \"%r\" %s %b"
LogFormat auth "%v [%P] %h %t \"%r\" %s"

# TLS
# Explained at http://www.castaglia.org/proftpd/modules/mod_tls.html
#TLSEngine          on
#TLSRequired            on
#TLSRSACertificateFile      /etc/pki/tls/certs/proftpd.pem
#TLSRSACertificateKeyFile   /etc/pki/tls/certs/proftpd.pem
#TLSCipherSuite         ALL:!ADH:!DES
#TLSOptions         NoCertRequest
#TLSVerifyClient        off
##TLSRenegotiate        ctrl 3600 data 512000 required off timeout 300
#TLSLog             /var/log/proftpd/tls.log

# SQL authentication Dynamic Shared Object (DSO) loading
# See README.DSO and howto/DSO.html for more details.
#<IfModule mod_dso.c>
#   LoadModule mod_sql.c
#   LoadModule mod_sql_mysql.c
#   LoadModule mod_sql_postgres.c
#</IfModule>

# A basic anonymous configuration, with an upload directory.
#<Anonymous ~ftp>
#  User             ftp
#  Group                ftp
#  AccessGrantMsg       "Anonymous login ok, restrictions apply."
#
#  # We want clients to be able to login with "anonymous" as well as "ftp"
#  UserAlias            anonymous ftp
#
#  # Limit the maximum number of anonymous logins
#  MaxClients           10 "Sorry, max %m users -- try again later"
#
#  # Put the user into /pub right after login
#  #DefaultChdir            /pub
#
#  # We want 'welcome.msg' displayed at login, '.message' displayed in
#  # each newly chdired directory and tell users to read README* files. 
#  DisplayLogin         /welcome.msg
#  DisplayFirstChdir        .message
#  DisplayReadme            README*
#
#  # Some more cosmetic and not vital stuff
#  DirFakeUser          on ftp
#  DirFakeGroup         on ftp
#
#  # Limit WRITE everywhere in the anonymous chroot
#  <Limit WRITE SITE_CHMOD>
#    DenyAll
#  </Limit>
#
#  # An upload directory that allows storing files but not retrieving
#  # or creating directories.
#  <Directory uploads/*>
#    AllowOverwrite     no
#    <Limit READ>
#      DenyAll
#    </Limit>
#
#    <Limit STOR>
#      AllowAll
#    </Limit>
#  </Directory>
#
#  # Don't write anonymous accesses to the system wtmp file (good idea!)
#  WtmpLog          off
#
#  # Logging for the anonymous transfers
#  ExtendedLog      /var/log/proftpd/access.log WRITE,READ default
#  ExtendedLog      /var/log/proftpd/auth.log AUTH auth
#
#</Anonymous>

Я думаю, что перечисление недопустимых оболочек вроде /sbin/nologin как действительные - не лучший способ (они были удалены намеренно), и ни то, ни другое не позволяет пользователям FTP входить в систему, когда им нельзя разрешать это делать.

IMHO, лучший способ - просто настроить ProFTPD так, чтобы не требовалась действительная оболочка для пользователей FTP.

Просто добавьте директиву RequireValidShell off в раздел в вашем proftpd.conf и перезагрузите / перезапустите ProFTPD.

<Global>
...
RequireValidShell off
</Global>

Если вы используете аутентификацию PAM в своем ProFTPD (вероятно, так как она включена по умолчанию), вам также может потребоваться отключить требование действительной оболочки в настройках PAM. В моем случае мне пришлось закомментировать приведенную ниже строку из моего файла конфигурации PAM ProFTPD (/etc/pam.d/proftpd)

#auth       required     pam_shells.so

Войдите в оболочку как root

vi /etc/passwd

найдите свое имя пользователя и в конце строки см .: / bin / false

изменить на:

/bin/bash

и реши это!

(или любой, отображаемый в: vi /etc/shells)

Теперь ftp работает под вашим пользователем.

Думаю, мой намек был недостаточно хорош. :-) Оболочка /sbin/nologin НЕ содержится в /etc/shells файл. Таким образом, учетная запись считается отключенной proftpd.

Я часами ищу ответ, но не могу найти ... Ошибка заключается в "пользовательском" FTP. У меня 4 или 5 пользователей, но никто не работает. Наконец, я пытаюсь со своим имя пользователя в Ubuntu. Чтобы найти это, напишите в Терминале: $ whoami Ответ - ваш пользователь FTP. Для меня ответ - "мирча". Я помещаю это в ящик пользователя, а после этого мой пароль и работает. Это было так просто ...