настройка proftpd

Lora8

Писатель
Заблокирован
Регистрация
22 Фев 2012
Сообщения
8
Реакции
8
  • Автор темы
  • Заблокирован
  • #1
Подскажите как настроить 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
 
Ты в конфиге то ковырялся вообще? Такое ощущение, что нет. Нужно директивы для пользователей прописывать и пассивный режим включать.
Если через роутер идёт коннект, то и порты пробрасывать соответственно через 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
Вообщем у меня почему то с Белорусского IP входит под всеми пользователями отлично в том числе и под root, а вот с Московского ни в какую, хотя сервер расположен в Москве.
 
Назад
Сверху