harmless писал(а):В тот конфиг добавте те модули, которые вы поставили
Код: Выделить всё
LoadModule mod_tls.c
LoadModule mod_ratio.c
LoadModule mod_readme.c
LoadModule mod_rewrite.c
LoadModule mod_ban.c
LoadModule mod_copy.c
LoadModule mod_deflate.c
LoadModule mod_ifsession.c
LoadModule mod_ifversion.c
LoadModule mod_quotatab.c
LoadModule mod_quotatab_file.c
LoadModule mod_quotatab_sql.c
LoadModule mod_sftp.c
LoadModule mod_sql.c
LoadModule mod_sql_mysql.c
А где этот файл лежит?
Ну это ладно, мод MySQL я загрузил (может кому пригодится):
Код: Выделить всё
# Конфиг proftpd - 2006-02-19
# имя сервера - показывается коннектящимся клиентам
ServerName "ftp.western-soft.com"
# тип сервера (даже не тип самого сервера, а тип его запуска,
# standalone/inetd - сам или через inetd)
ServerType standalone
# смысл следующей директивы такой: если клиент коннектится не на имя
# а на IP или на виртуальный хост, не описанный в конфиге, то при
# установке в `off` он получит отлуп, если же установлено `on` то
# он будет обслужен `сервером по-умолчанию`
DefaultServer on
# e-mail администратора (по идее для каждого ВиртуалХоста его можно
# поставить разный - но я делаю один сервер без извращений с
# виртуальными хостами)
ServerAdmin admin@western-soft.com
# файло где хранится инфа о сессиях
#ScoreboardFile /var/run/proftpd.scoreboard
# We want the main server instance to listen on a specific IP
DefaultAddress 192.168.х.х
## Since 1.3.0rc1 it's also possible to use the following:
# DefaultAddress 192.168.х.х ftp.western-soft.com
# порт на котором работает сервер
Port 21
# Маска с которой создаются новые файлы (не совсем маска - маска получается
# из этого значения, путём его вычитания из 777 - т.е. в даном случае получится
# маска 755)
Umask 022
# Максимальное число `детей` (работает только в standalohe режиме)
# необходимо для защиты от атак типа `отказ в обслуживании` да и
# от перегрузки сервера поможет :)
MaxInstances 30
# Юзер от которого работает сервер
User nobody
# группа, под которой работает сервер
Group nogroup
# Загружаем модуль MySQL
LoadModule mod_sql.c
LoadModule mod_sql_mysql.c
# Тип авторизации (на самом деле - в каком виде хрянятся
# пароли в БД - в данном случае - открытым текстом)
SQLAuthTypes Plaintext
# Кого и как аутентифицируем - on - всех и вся :)
# Но - если поставить `on` то он ломится в БД за группами.
# мне группы никчему. Посему поставил `users`
SQLAuthenticate users
# инфа для соединения с MySQL сервером:
# имя_базы_данных@хост_где_MySQL:порт имя_пользователя пароль
SQLConnectInfo bd@host_bd:port_bd user_bd password_bd
# в каком порядке вернёт поля запрос - первое поле, это
# имя таблицы, где лежат пользователи
SQLUserInfo `users_table` `username` `password` `uid` `gid` \
`homedir` `shell`
# должен ли быть у юзера (для того, чтобы он мог коннектится),
# `реальный` shell описанный в /etc/shells
RequireValidShell off
# лог файл работы с SQL
SQLLogFile /var/log/proftpd.log
# Вот тут моя натура склонная к ведению логов на всё в
# БД MySQL смогла разыграться на полную катушку :)
# Записываем удачные логины в БД. Общий смысл такой - создаём
# именованую кверю, с указанием что мы должны сохранять
SQLLog PASS counter_login
SQLNamedQuery counter_login UPDATE "`last_login`=UNIX_TIMESTAMP(), \
`login_count`=`login_count`+1 WHERE \
`username`='%u'" `users_table`
# пишем неудачные логины в БД
SQLLog ERR_PASS counter_err
SQLNamedQuery counter_err UPDATE "`last_err_login`=UNIX_TIMESTAMP(), \
`err_login_count`=`err_login_count`+1 WHERE \
`username`='%U'" `users_table`
# логируем что сохраняет и тащщит с сервера:
# переменные
# %u - имя пользователя (с которым залогинился)
# %f - полный путь и имя файла который был скачан
# %b - число байт, которые были скачаны
# %h - имя клиента (из DNS), если не удалось разрешить - IP
# %a - IP-адрес клиента
# %m - имя команды полученной от клиента (RETR/STOR)
# %T - время (секунд) ушедшее на передачу файла клиенту
SQLLog RETR,STOR log_story_transfer
SQLNamedQuery log_story_transfer INSERT "'',\
UNIX_TIMESTAMP(),'%u',\
'%f', '%b', '%h', \
'%a', '%m', '%T'" \
`xfer_table`
# записываем ошибки при сохранении и чтении файлов
# (в одну строку не влезли - но работает и в таком виде :))
SQLLOG ERR_RETR,ERR_STOR,ERR_DELE,ERR_RMD,ERR_RNTO\
log_err_modify
SQLNamedQuery log_err_modify INSERT "'',\
UNIX_TIMESTAMP(),\
'%u', '%f', '%h', \
'%a', '%m'" `xfer_errors`
# если вылезет проблема, типа тормозов при подключении
# (в момент установления коннекта `задумывается` на 10-20 секунд)
# то раскомментируйте следующие две строки
#UseReverseDNS off
#IdentLookups off
# если надо чтобы ВСЕ пользователи по ftp были ограниченны
# своей домашней директорией, то надо раскомментировать
# следующую строку:
#DefaultRoot ~
# у меня хитрее сделано - себе я разрешил шариться по всему серверу
# а остальных за`chroot`ил. Если, например, надо чтобы пользователи
# могли по серверу шариться а анонимоусы нет, то надо указать !users
# также можно указать определённую группу.
DefaultRoot ~ !admins
# Директории
<Directory ~>
AllowOverwrite on
<Limit Write>
AllowAll
</Limit>
<Limit READ>
AllowAll
</Limit>
</Directory>
<Anonymous /usr/home/ftp/>
# пользователь от которого анонимоусы шарятся
User nobody
# группа анонимоусов
Group nogroup
# альясы ананонимоусов (можно будет входить как ftp, а
# не anonymous)
UserAlias anonymous ftp
# максимально число анонимоусов
MaxClients 10 "Sorry, max %m users - try again later"
<Limit WRITE>
DenyAll
</Limit>
</Anonymous>
proftpd.log:
Код: Выделить всё
Jul 26 15:46:33 mod_sql/4.3[11686]: defaulting to 'mysql' backend
Jul 26 15:46:33 mod_sql/4.3[11686]: backend module 'mod_sql_mysql/4.0.8'
Jul 26 15:46:33 mod_sql/4.3[11686]: backend api 'mod_sql_api_v1'
Jul 26 15:46:33 mod_sql/4.3[11686]: >>> sql_sess_init
Jul 26 15:46:33 mod_sql/4.3[11686]: entering mysql cmd_defineconnection
Jul 26 15:46:33 mod_sql/4.3[11686]: name: 'default'
Jul 26 15:46:33 mod_sql/4.3[11686]: user: 'user_bd'
Jul 26 15:46:33 mod_sql/4.3[11686]: host: 'host_bd'
Jul 26 15:46:33 mod_sql/4.3[11686]: db: 'bd'
Jul 26 15:46:33 mod_sql/4.3[11686]: port: 'port_bd'
Jul 26 15:46:33 mod_sql/4.3[11686]: ttl: '0'
Jul 26 15:46:33 mod_sql/4.3[11686]: exiting mysql cmd_defineconnection
Jul 26 15:46:33 mod_sql/4.3[11686]: connection 'default' successfully established
Jul 26 15:46:33 mod_sql/4.3[11686]: mod_sql engine : on
Jul 26 15:46:33 mod_sql/4.3[11686]: negative_cache : off
Jul 26 15:46:33 mod_sql/4.3[11686]: authenticate : users
Jul 26 15:46:33 mod_sql/4.3[11686]: usertable : `users_table`
Jul 26 15:46:33 mod_sql/4.3[11686]: userid field : `username`
Jul 26 15:46:33 mod_sql/4.3[11686]: password field : `password`
Jul 26 15:46:33 mod_sql/4.3[11686]: UID field : `uid`
Jul 26 15:46:33 mod_sql/4.3[11686]: GID field : `gid`
Jul 26 15:46:33 mod_sql/4.3[11686]: homedir field : `homedir`
Jul 26 15:46:33 mod_sql/4.3[11686]: shell field : `shell`
Jul 26 15:46:33 mod_sql/4.3[11686]: SQLMinUserUID : 999
Jul 26 15:46:33 mod_sql/4.3[11686]: SQLMinUserGID : 999
Jul 26 15:46:33 mod_sql/4.3[11686]: <<< sql_sess_init
Jul 26 15:46:50 mod_sql/4.3[11686]: >>> sql_pre_pass
Jul 26 15:46:50 mod_sql/4.3[11686]: <<< sql_pre_pass
Jul 26 15:46:50 mod_sql/4.3[11686]: >>> cmd_getpwnam
Jul 26 15:46:50 mod_sql/4.3[11686]: entering mysql cmd_escapestring
Jul 26 15:46:50 mod_sql/4.3[11686]: entering mysql cmd_open
Jul 26 15:46:50 mod_sql/4.3[11686]: exiting mysql cmd_open
Jul 26 15:46:50 mod_sql/4.3[11686]: exiting mysql cmd_escapestring
Jul 26 15:46:50 mod_sql/4.3[11686]: unrecoverable backend error
Jul 26 15:46:50 mod_sql/4.3[11686]: error: '1045'
Jul 26 15:46:50 mod_sql/4.3[11686]: message: 'Access denied for user 'user_bd'@'host_bd' (using password: YES)'
Jul 26 15:46:50 mod_sql/4.3[11686]: entering mysql cmd_exit
Jul 26 15:46:50 mod_sql/4.3[11686]: exiting mysql cmd_exit
По логу видно что пользователь bd не смог подключиться к MySQL, но не понятно почему?
Я через pma пробовал зайти под этим же логином паролем все нормально подключается, тоесть логин и пароль правильные. И базу этому пользователю видно, и привелегии на нее все есть.
При подключении к фтп получаю запрос пользователя, пробовал вводить:
и те что есть в базе:
admin
lissyara
и те что в конфиге анонимам указано:
anonymous
ftp
получал запрос пароля, отвечал теми же паролями что и в базе указаны, а анонимам как обычно писал email (любой что существующий что нет)
Во всех случаях получал:
Код: Выделить всё
>ftp 192.168.х.х
Связь с 192.168.х.х.
220 ProFTPD 1.3.4a Server (ftp.western-soft.com) [192.168.х.х]
Пользователь (192.168.х.х:(none)): anonymous
331 Password required for anonymous
Пароль:
Подключение разорвано удаленным узлом.