настройка proftpd

Тема в разделе "Администрирование серверов", создана пользователем Lora8, 14 июл 2012.

Модераторы: mefish, stooper
  1. Lora8

    Lora8 Писатель

    Заблокирован
    Регистр.:
    22 фев 2012
    Сообщения:
    8
    Симпатии:
    8
    Подскажите как настроить proftpd.
    Код:
    Статус:Соединение установлено
    Статус:Получение списка каталогов...
    Команда:PWD
    Ответ:257 "/" is the current directory
    Команда:TYPE I
    Ответ:200 Type set to I
    Команда:PASV
    Ошибка:Превышено время ожидания соединения
    Ошибка:Не могу получить список каталогов!
    Файл proftpd
    Код:
    # This is the ProFTPD configuration file
    # $Id: proftpd.conf,v 1.1 2004/02/26 17:54:30 thias Exp $
     
    ServerName            "ProFTPD server"
    ServerIdent            on "FTP Server ready."
    ServerAdmin            root@localhost
    ServerType            standalone
    #ServerType            inetd
    DefaultServer            on
    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                nobody
    Group                nobody
     
    # 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>
    </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>
     
    DefaultRoot ~
    ListOptions -la
    
     
  2. Maza

    Maza

    Регистр.:
    3 июл 2007
    Сообщения:
    255
    Симпатии:
    117
    Ты в конфиге то ковырялся вообще? Такое ощущение, что нет. Нужно директивы для пользователей прописывать и пассивный режим включать.
    Если через роутер идёт коннект, то и порты пробрасывать соответственно через iptables на нём.
    У меня такой конфиг стоит.
    Для включения пассивного режима нужно включить в ядро.
    Код:
    modprobe ip_conntrack
    modprobe ip_conntrack_ftp
    Собственно создать 2-х пользователей. Как то так

    adduser userftp -d /opt/ftp/ -s /bin/false
    adduser adminftp -d /opt/ftp/admin -s /bin/false


    Код:
    /opt/etc/proftpd.config
     
    ServerName                      "Station"
    ServerType                      standalone
    DefaultServer                  on
    UseReverseDNS                  off
    IdentLookups                    off
     
    # Port 21 is the standard FTP port.
    Port                            21
    UseIPv6                        off
    PassivePorts                    65500 65534
    MasqueradeAddress              10.39.229.219
     
    # Umask 022 is a good standard umask to prevent new dirs and files
    # from being group and world writable.
    Umask                          022 022
    MaxInstances                    8
    MaxLoginAttempts                3
     
    # Логирование:
    ExtendedLog                    /opt/var/log/proftpd/extend.log
    TransferLog                    /opt/var/log/proftpd/transfer.log
    SystemLog                      /opt/var/log/proftpd/syslog.log
    ScoreboardFile                  /opt/var/run/proftpd.scoreboard
     
    # Не использовать файл /etc/ftpusers
    UseFtpUsers                    off
     
    PersistentPasswd                off
    MultilineRFC2228                on
     
    # "таймауты", по истечению которых сервер будет закрывать соединение
    TimeoutLogin                    120
    TimeoutNoTransfer              900
    TimeoutStalled                  100
    TimeoutIdle                    2200
     
    <Global>
      RootLogin                      Off
      AuthUserFile                    /etc/passwd
      AllowStoreRestart              on
      ShowSymlinks                    on
      AllowOverwrite                  on
      DisplayChdir                    .message
      ListOptions                    .-l.
      RequireValidShell              off
     
    #  TransferRate RETR 25
    #  TransferRate APPE,STOR 100:2048
    </Global>
     
    <Limit ALL>
      DenyAll
    </Limit>
     
    # Set the user and group under which the server will run.
    User                            nobody
    Group                          nobody
    DefaultRoot                    ~
     
    # A basic anonymous configuration, no upload directories.  If you do not
    # want anonymous users, simply delete this entire <Anonymous> section.
    <Anonymous /opt/ftp>
      User                          userftp
      Group                        ftp
      # We want clients to be able to login with "anonymous" as well as "ftp"
      UserAlias                    anonymous userftp
      AuthAliasOnly                on
     
      # Limit the maximum number of anonymous logins
      MaxClients                    5
     
      # Отключаем требования валидного шелла пользователя
      # позволяет "пускать" в систему юзером без доступа по SSH (nologin)
      RequireValidShell            on
     
      # Скрывать файлы и папки пользователя root
      HideUser                    adminftp
     
      # Разрешаем авторизацию, чтение файлов и перемещение по папкам
      <Limit LOGIN READ DIRS>
            AllowAll
      </Limit>
     
      DisplayLogin                  welcome.msg
      # Разрешаем запись
      <Directory upload/*>
            <Limit WRITE>
                  AllowAll
            </Limit>
      </Directory>
    </Anonymous>
     
     
    # Объявляем анонимный сервер с корнем в домашнем каталоге пользователя adminftp
    <Anonymous ~adminftp>
            # От кого будет работать демон
            User                    adminftp
            Group                  adminftp
     
            # Установка владельца на новые файлы
            UserOwner              adminftp
            GroupOwner              adminftp
     
            # Включаем запрос пароля
            AnonRequirePassword    on
     
            # Разрешаем все для нашего пользователя
            <Limit ALL>
                Order Allow, Deny
                AllowUser        adminftp
            </Limit>
    </Anonymous>
    Настройка iptables на серве или маршрутизаторе.
    Код:
    IPT=/sbin/iptables
    $IPT -F
    $IPT -X
    $IPT -t nat -F
    $IPT -t nat -X
    $IPT -t mangle -F
    $IPT -t mangle -X
     
    # Setting default filter policy
    $IPT -P INPUT DROP
    $IPT -P OUTPUT ACCEPT
     
    # Allow Passive FTP Connections
    $IPT -A INPUT -p tcp --sport 1024: --dport 1024:  -m state --state ESTABLISHED -j ACCEPT
    $IPT -A OUTPUT -p tcp --sport 1024: --dport 1024:  -m state --state ESTABLISHED,RELATED -j ACCEPT
     
  3. Lora8

    Lora8 Писатель

    Заблокирован
    Регистр.:
    22 фев 2012
    Сообщения:
    8
    Симпатии:
    8
    Вообщем у меня почему то с Белорусского IP входит под всеми пользователями отлично в том числе и под root, а вот с Московского ни в какую, хотя сервер расположен в Москве.