proftpd + mysql vs anonymous user

Статус
В этой теме нельзя размещать новые ответы.
S

snark

Прохожие
Поставил proftpd из портов под фрю, все заработало. Но потом для удобства решил подключиться к базе MySQL и использовать Для просмотра ссылки Войди или Зарегистрируйся
Все работает, юзеры добавляются, логи просматриваются, но анонимных юзеров хоть убей не пускает.

Код:
 <- 220 Servers identifying string
 -> USER anonymous
 <- 331 Anonymous login ok, send your complete email address as your
 -> PASS *hidden*
 <- 530 Login incorrect.
 -> QUIT
 <- 221 Goodbye.

Я так понимаю, это из-за того, что логины хранятся в базе. Покопался на Для просмотра ссылки Войди или Зарегистрируйся, поправил конфиг

Код:
<Anonymous ~ftp>

AnonRequirePassword off
SQLEngine off

   User						 ftp
   Group						ftp

  ### 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				   20

  ### We want 'welcome.msg' displayed at login, and '.message' displayed
  ### in each newly chdired directory.
   DisplayLogin				 welcome.msg
#   DisplayFirstChdir		   .message

  ### Limit WRITE everywhere in the anonymous chroot
<Limit READ>
AllowAll
</Limit>

<Limit WRITE>
DenyAll
</Limit>
</Anonymous>

пробовал создавать юзера anonymous с пустым паролем, тоже не помогает. пришлось создать простые лог и пасс, чтобы люди могли качать файло, но как-то не солидно это :(
нужен мудрый совет. может кто ставил такую конфигурацию?
 
Попробуйте включить дебаг поболее и посмотрите логи.
Проверить свой конфиг:
proftpd -c /path/to/new/config/file -td5
включть дебаг:
proftpd -nd6
или
proftpd -nd5 2>&1 >& /path/to/debug/file
 
с дебагом что-то не получается. не выводится ничего в файл хоть я и дал права.
 
Проверь владельца и группу на каталоге для анонимов. ftp/ftp?
 
права есть. если бы прав не было, то система не писала бы incorrect password.
 
вот конфиг рабочий, только используется не ProFTPAdmin а другая прибамбасина, ее писать не буду, смысла нет, смысл в том что работает анонимный вход.
Код:
# имя сервера - показывается коннектящимся клиентам
ServerName              "Mн FTP serv"
# тип сервера (даже не тип самого сервера, а тип его запуска,
# standalone/inetd - сам или через inetd)
ServerType              standalone
# смысл следующей директивы такой: если клиент коннектится не на имя
# а на IP или на виртуальный хост, не описанный в конфиге, то при
# установке в `off` он получит отлуп, если же установлено `on` то
# он будет обслужен `сервером по-умолчанию`
DefaultServer           on
# e-mail администратора (по идее для каждого ВиртуалХоста его можно
# поставить разный - но я делаю один сервер без извращений с
# виртуальными хостами)
ServerAdmin             admin@admin.ru
# файло где хранится инфа о сессиях
#ScoreboardFile         /var/run/proftpd.scoreboard

# порт на котором работает сервер
Port                    21

# Маска с которой создаются новые файлы (не совсем маска - маска получается
# из этого значения, путём его вычитания из 777 - т.е. в даном случае получится
# маска 755)
Umask                   022

# Максимальное число `детей` (работает только в standalohe режиме)
# необходимо для защиты от атак типа `отказ в обслуживании` да и
# от перегрузки сервера поможет :)
MaxInstances            30

# Юзер от которого работает сервер
User                    ftp
# группа, под которой работает сервер
Group                   ftp

# если вылезет проблема, типа тормозов при подключении
# (в момент установления коннекта `задумывается` на 10-20 секунд)
# то раскомментируйте следующие две строки
#UseReverseDNS     off
#IdentLookups      off



# если надо чтобы ВСЕ пользователи по ftp были ограниченны
# своей домашней директорией, то надо раскомментировать
# следующую строку:
#DefaultRoot            ~
# у меня хитрее сделано - себе я разрешил шариться по всему серверу
# а остальных за`chroot`ил. Если, например, надо чтобы пользователи
# могли по серверу шариться а анонимоусы нет, то надо указать !users
# также можно указать определённую группу.
DefaultRoot             ~       !(YOUR_USER_HERE)

# Директории
<Directory ~>
AllowOverwrite          on
<Limit Write>
AllowAll
</Limit>
<Limit READ>
AllowAll
</Limit>
</Directory>


<Anonymous /usr/home/ftp>
# пользователь от которого анонимоусы шарятся
User            ftp
# группа анонимоусов
Group           ftp
# альясы ананонимоусов (можно будет входить как ftp, а
# не anonymous)
UserAlias       anonymous ftp
# максимально число анонимоусов
MaxClients      10      "Sorry, max %m users"
<Limit WRITE>
DenyAll
</Limit>
</Anonymous>

Кстати ты пользоателя ftp в систему добавил? анонимы под ним ходят в файловую систему.
 
Пользователя добавил в самом начале. Ваш конфиг ничем принципиально от моего не отличается.

Еще интересует Umask. Это NOT CHMOD чтоли? Не пойму. С Umask 022 админ не может файлы из аплоада перетаскивать. Методом тыка пришел к маске 011.
 
нашел грабли, поставил у себя се это хоз-во
вот конфиг рабочий:
Код:
ServerName                      "Servername"
ServerType                      standalone
ServerIdent                     on              "Servers identifying string"
DeferWelcome                    on
DefaultServer                   on

DisplayLogin                    .welcome        # Textfile to display on login
DisplayConnect                  .connect        # Textfile to display on connection
#DisplayFirstChdir               .firstchdir    # Textfile to display on first changedir

UseReverseDNS                   off
IdentLookups                    off

Port                            21
Umask                           022
MaxInstances                    15
MaxClientsPerHost               3               "Only %m connections per host allowed"
MaxClients                      10              "Only %m total simultanious logins allowed"
MaxHostsPerUser                 1

User                            ftp
Group                           ftp

ScoreboardFile                  /var/log/scoreboard

RequireValidShell off

# Some logging formats
LogFormat                       default         "%h %l %u %t \"%r\" %s %b"
LogFormat                       auth            "%v [%P] %h %t \"%r\" %s"
LogFormat                       write           "%h %l %u %t \"%r\" %s %b"

# Define log-files to use
TransferLog                     /var/log/proftpd.xferlog
ExtendedLog                     /var/log/proftpd.access_log    WRITE,READ write
ExtendedLog                     /var/log/proftpd.auth_log      AUTH auth
ExtendedLog                     /var/log/proftpd.paranoid_log  ALL default
SQLLogFile                      /var/log/proftpd.mysql

# Set up authentication via SQL
# ===========
[COLOR="Red"]#AuthOrder                       mod_sql.c[/COLOR]
SQLAuthTypes                    Backend
SQLConnectInfo                  proftpd@localhost root wb6qlfcp3o
SQLUserInfo                     usertable userid passwd uid gid homedir shell
SQLGroupInfo                    grouptable groupname gid members
SQLUserWhereClause              "disabled=0 and (NOW()<=expiration or expiration=-1 or expiration=0)"

# Log the user logging in
SQLLog PASS counter
SQLNamedQuery counter UPDATE "lastlogin=now(), count=count+1 WHERE userid='%u'" usertable

# logout log
SQLLog EXIT time_logout
SQLNamedQuery time_logout UPDATE "lastlogout=now() WHERE userid='%u'" usertable

# display last login time when PASS command is given
SQLNamedQuery login_time SELECT "lastlogin from usertable where userid='%u'"
SQLShowInfo PASS "230" "Last login was: %{login_time}"

# xfer Log in mysql
SQLLog RETR,STOR transfer1
SQLNamedQuery  transfer1 INSERT "'%u', '%f', '%b', '%h', '%a', '%m', '%T', now(), 'c', NULL" xfer_stat
SQLLOG ERR_RETR,ERR_STOR transfer2
SQLNamedQuery  transfer2 INSERT "'%u', '%f', '%b', '%h', '%a', '%m', '%T', now(), 'i', NULL" xfer_stat

AllowStoreRestart               on
AllowRetrieveRestart            on
RequireValidShell               off
PathDenyFilter                  "\\.ftp)|\\.ht)[a-z]+$"
DefaultRoot             ~       !poison
DenyFilter                      \*.*/
<Anonymous /ftp>
User                            ftp
Group                           ftp
UserAlias                       anonymous ftp
MaxClients              10      "Sorry"
</Anonymous>

<Directory /ftp/*>
        AllowOverwrite          off
        HideNoAccess            off
        <Limit READ>
                AllowAll
        </Limit>
        <Limit WRITE>
                DenyGroup       !admins
        </Limit>
</Directory>
<Directory /ftp/incoming/*>
        AllowOverwrite          on
        HideNoAccess            on
        <Limit READ>
                DenyGroup       !admins
        </Limit>

        <Limit STOR MKD>
                AllowAll
        </Limit>
</Directory>
красным закомменченная строка.
все пашет, пробуйте.
 
  • Заблокирован
  • #9
красным закомменченная строка.
все пашет, пробуйте.
Ну так а "мускульная" авторизация работает при этом?
У меня однажды был конфликт между мускулом и пам авторизацией, там это решилось в пользу мускула, закомментировал пам авторизацию...
А тут похоже наоборот?
 
у меня без
Код:
#AuthOrder                       mod_sql.c
работала mysql авторизация, но база пользователей была состряпана руками, не моими, и без web админки, так что я не знаю нафига мод этот нужен.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху