From: Александр <firmord@front.ru>
To: ALT Linux sysadmins' discussion <sysadmins@lists.altlinux.org>
Subject: Re: [Sysadmins] vsftpd + pam-mysql auth problem
Date: Sat, 22 Jan 2011 13:38:20 +0300
Message-ID: <4D3AB39C.5090601@front.ru> (raw)
In-Reply-To: <4D39D2D5.9050103@front.ru>
попробую описать процесс:
имеем 530 ошибку - проблема в логине/пароле и/или правах.
проверяем пошагово.
mysql, БД vsftpd:
---
CREATE TABLE IF NOT EXISTS `users` (
`id` int(11) NOT NULL auto_increment,
`name` char(128) character set utf8 collate utf8_bin NOT NULL,
`passwd` char(128) character set utf8 collate utf8_bin NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=8 ;
+таблица для логов, но в аутентификации она не участвует. опустим.
в БД ходит юзер vsftpd с паролем LRqwQ
---
pam.d/vsftpd:
#%PAM-1.0
session optional pam_keyinit.so force revoke
auth required /lib/security/pam_mysql.so user=vsftpd passwd=LRqwQ
host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=passwd
crypt=0 sqllog=1 logtable=logs logmsgcolumn=msg logusercolumn=user
logpidcolumn=pid loghostcolumn=host logrhostcolumn=rhost
logtimecolumn=logtime verbose=1 debug
account required /lib/security/pam_mysql.so user=vsftpd passwd=LRqwQ
host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=passwd
crypt=0 sqllog=1 logtable=logs logmsgcolumn=msg logusercolumn=user
logpidcolumn=pid loghostcolumn=host logrhostcolumn=rhost
logtimecolumn=logtime verbose=1 debug
---
заходим (пытаемся) на ФТП пользователем test с plain-text паролем 111
логи mysql queries:
---
89 Connect vsftpd@localhost on vsftpd
89 Init DB vsftpd
89 Query SELECT passwd FROM users WHERE name = 'test'
89 Query INSERT INTO logs (msg, user, host, rhost, pid, logtime)
VALUES ('AUTHENTICATION FALURE (FIRST_PASS)', 'test', '(unknown)',
'192.168.хх.хх', '1', NOW())
---
логи PAM secure:
---
Jan 22 11:49:33 nanoRED vsftpd: pam_mysql - option verbose is set to "1"
Jan 22 11:49:33 nanoRED vsftpd: pam_mysql - option debug is set to ""
Jan 22 11:49:33 nanoRED vsftpd: pam_mysql - pam_mysql_close_db() called.
Jan 22 11:49:33 nanoRED vsftpd: pam_mysql - pam_sm_authenticate() called.
Jan 22 11:49:33 nanoRED vsftpd: pam_mysql - pam_mysql_open_db() called.
Jan 22 11:49:33 nanoRED vsftpd: pam_mysql - pam_mysql_open_db() returning 0.
Jan 22 11:49:33 nanoRED vsftpd: pam_mysql - pam_mysql_check_passwd() called.
Jan 22 11:49:33 nanoRED vsftpd: pam_mysql - pam_mysql_format_string() called
Jan 22 11:49:33 nanoRED vsftpd: pam_mysql - pam_mysql_quick_escape() called.
Jan 22 11:49:33 nanoRED vsftpd: pam_mysql - SELECT passwd FROM users
WHERE name = 'test'
Jan 22 11:49:33 nanoRED vsftpd: pam_mysql - pam_mysql_check_passwd()
returning 6.
Jan 22 11:49:33 nanoRED vsftpd: pam_mysql - pam_mysql_sql_log() called.
Jan 22 11:49:33 nanoRED vsftpd: pam_mysql - pam_mysql_format_string() called
Jan 22 11:49:33 nanoRED vsftpd: pam_mysql - pam_mysql_quick_escape() called.
Jan 22 11:49:33 nanoRED last message repeated 3 times
Jan 22 11:49:33 nanoRED vsftpd: pam_mysql - INSERT INTO logs (msg, user,
host, rhost, pid, logtime) VALUES ('AUTHENTICATION FALURE (FIRST_PASS)',
'test', '(unknown)', '192.168.', '1', NOW())
Jan 22 11:49:33 nanoRED vsftpd: pam_mysql - pam_mysql_sql_log() returning 0.
Jan 22 11:49:33 nanoRED vsftpd: pam_mysql - pam_mysql_converse() called.
Jan 22 11:49:33 nanoRED vsftpd: pam_mysql - pam_sm_authenticate()
returning 3.
Jan 22 11:49:33 nanoRED vsftpd: pam_mysql - pam_mysql_release_ctx() called.
Jan 22 11:49:33 nanoRED vsftpd: pam_mysql - pam_mysql_destroy_ctx() called.
Jan 22 11:49:33 nanoRED vsftpd: pam_mysql - pam_mysql_close_db() called.
---
проблем с соединением с БД нет, данные читаются.
пароль выбирается из таблицы.
верно-ли из логов не ясно, но если повторить запрос напрямую, выбирается
верно.
интересное сообщение тут:
http://forum.altlinux.org/index.php/topic,5038.msg71717.html#msg71717
что дальше попробовать?
---
vftpd.log
---
Sat Jan 22 11:49:33 2011 [pid 2] CONNECT: Client "192.168."
Sat Jan 22 11:49:33 2011 [pid 2] FTP response: Client "192.168.", "220
(vsFTPd 2.2.1)"
Sat Jan 22 11:49:33 2011 [pid 2] FTP command: Client "192.168.", "USER test"
Sat Jan 22 11:49:33 2011 [pid 2] [test] FTP response: Client
"192.168.88.253", "331 Please specify the password."
Sat Jan 22 11:49:33 2011 [pid 2] [test] FTP command: Client
"192.168.88.253", "PASS <password>"
Sat Jan 22 11:49:33 2011 [pid 1] [test] FAIL LOGIN: Client "192.168.88.253"
Sat Jan 22 11:49:34 2011 [pid 2] [test] FTP response: Client
"192.168.88.253", "530 Login incorrect."
Sat Jan 22 11:49:35 2011 [pid 2] FTP command: Client "192.168.", "QUIT"
Sat Jan 22 11:49:35 2011 [pid 2] FTP response: Client "192.168.", "221
Goodbye."
---
на папки /home/ftp и ниже даны права 777 для отладки
---
vsftpd.conf:
---
listen=YES
#анонимам
anonymous_enable=NO
local_enable=YES
write_enable=YES
dirmessage_enable=YES
anon_mkdir_write_enable=YES
anon_upload_enable=YES
anon_other_write_enable=YES
#логи
xferlog_enable=YES
log_ftp_protocol=YES
connect_from_port_20=YES
nopriv_user=novsftpd
#запираем юзеров в их папках
chroot_local_user=YES
pam_service_name=vsftpd
#говорим, что входящие - гости с именем ...
guest_enable=YES
guest_username=ftp_virtual
secure_chroot_dir=/home/ftp
#пользовательские конфиги
user_config_dir=/usr/local/etc/vsftpd/user_conf
local_root=/home/ftp/$USER
user_sub_token=$USER
virtual_use_local_privs=YES
---
21.01.2011 21:39, Александр пишет:
> разбираться будем с проблемой?
> имею мнение, что проблема с дистрибутивом ШС 5.0.2.
> если кто поопытней сможет проверить работоспособность связки
> vsftpd+pam-mysql буду оч благодарен.
> или как-то иначе, но надо решать.
> модуль pam-mysql - pam-mysql-0.7-alt10.RC1.i586.rpm
>
>
> 15.01.2011 17:26, Александр пишет:
>> Добрый день,
>> проблема состоит в невозможности аутентификации в vsftpd через pam-mysql
>> при хранении юзеров и паролей в БД.
>> как прийти к пониманию, на чём затык?
>> пароль не криптованные и криптованные не проходят.
>> в vsftpd.log
>> [login] fail login
>>
>> подобная тема уже была, но решения, я так понимаю, не нашли:
>> http://lists.altlinux.org/pipermail/sysadmins/2009-December/031524.html
>> проблема не в NSS.
>>
>> --
>> С Уважением, Александр
>> _______________________________________________
>> Sysadmins mailing list
>> Sysadmins@lists.altlinux.org
>> https://lists.altlinux.org/mailman/listinfo/sysadmins
>
--
С Уважением, Александр
next prev parent reply other threads:[~2011-01-22 10:38 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-01-15 14:26 Александр
2011-01-21 18:39 ` Александр
2011-01-22 10:38 ` Александр [this message]
2011-01-25 16:14 ` Александр
2011-01-25 19:51 ` Afanasov Dmitry
2011-01-26 12:31 ` Afanasov Dmitry
2011-01-28 16:23 ` Александр
2011-01-28 19:04 ` Afanasov Dmitry
2011-01-28 23:36 ` Alexey Borisenkov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4D3AB39C.5090601@front.ru \
--to=firmord@front.ru \
--cc=sysadmins@lists.altlinux.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
ALT Linux sysadmins discussion
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/sysadmins/0 sysadmins/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 sysadmins sysadmins/ http://lore.altlinux.org/sysadmins \
sysadmins@lists.altlinux.org sysadmins@lists.altlinux.ru sysadmins@lists.altlinux.com
public-inbox-index sysadmins
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.sysadmins
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git