1 (09.11.2010 13:49:14 отредактировано lm_akella)

В общем здравствуйте =) здесь я в первый раз.
Построил ФТП сервер, хранящий пользователей в Мускуле. Устроено все через VSFTPD и MySQL. Вот лог конфига VSFTPD:

listen=YES
anonymous_enable=YES
local_enable=YES
write_enable=YES

##############################

anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
no_anon_password=YES
anon_root=/var/ftp/pub
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log

##########

chroot_local user=YES
write_enable=YES
ftpd_banner="Welcome To Hell"
connect_from_port_20=YES
nopriv_user=ftp


Чтобы юзеры забирались из Мускульной таблицы настроил Pam:

auth required pam_mysql.so user=vsftpd passwd=ftpdpass host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=0
account required pam_mysql.so user=vsftpd passwd=ftpdpass host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=0


Интересует вопрос: что значит вот этот конф CRYPT=0 в Pam.d.

Ещё мне неизвестно, почему не шифруется пароль в базе данных мускуля.. Когда я добавляю ник с базу вот так:

INSERT INTO accounts (username, pass) VALUES('testuser', PASSWORD('secret')); quit;
то пароль у юзера в таблице мускульной становится шифрованным. Когда я ввожу нормальный пароль в браузер (для входа на ФТП) он его не принимает.. когда вбиваю именно те цифры и буквы (как его зашифровали) то нормально пускает на фтп-шник.

если юзера создавать без шифрации:

INSERT INTO accounts (username, pass) VALUES('testuser', 'secret'); quit;
то входит без страблов с обычным паролем.. подскажите плиз по этим вопросам. хочу  настроить ФТП чтобы шифровал пароли =)

Всем заранее спасибо..
п.с. в юниксе я совсем совсем новичек, поэтому не пинайте плиз

2

crypt(0) -- Used to decide to use MySQL's PASSWORD() function or crypt()
0 = No encryption. Passwords in database in plaintext. NOT recommended!
1 = Use crypt
2 = Use MySQL PASSWORD() function

3 (09.11.2010 14:14:39 отредактировано lm_akella)

odin пишет:

crypt(0) -- Used to decide to use MySQL's PASSWORD() function or crypt()
0 = No encryption. Passwords in database in plaintext. NOT recommended!
1 = Use crypt
2 = Use MySQL PASSWORD() function

то есть если я поставлю Крипт на цифру 2, и создам пользователя с шифрацией, то все будет работать в обе стороны??


попробовал поставить crypt=2 и попробовал зайти пользователем, которого сделал с шифрованием.. Ни фига не заходит - пишет что пользователь некорректно аутентифицирован
Плюс ко всему другими юзерами, которыми раньше заходил, зайти тоже не могу =(

Подскажите что делать

4

народ!!! подскажите плз... оч надо

5

а если использовать crypt=1 и зашифрованные пароли?

6

Хот ядолжно работать с crypt=2... вообщем, логи при неудачных попытках в студию

7

Tue Nov  9 11:12:46 2010 [pid 2462] CONNECT: Client "192.168.56.101"
Tue Nov  9 11:12:46 2010 [pid 2461] [crypto] FAIL LOGIN: Client "192.168.56.101"

вот логи vsftpd
в логах мускуля он не пишет..

я подозреваю что это при вводе пароля шифрация либо не идет либо идет не так... а как с этим бороться я не знаю....

8

создайте нового пользователя в мускуле... и пробуйте на нем... и хорошо бы разговорчивость фтп-сервера увеличить

9

создавал - пробовал... расскажите как разговорчивость увеличить.. что подключить.. какое логирование?

10

ну где все линуксоиды????поумирали чтоли все?

11

lm_akella пишет:

ну где все линуксоиды????поумирали чтоли все?

А Вы сами кто? Что Вы выяснили за это время? Включли более подробное логгирование? Или выяснили возможную причину проблемы? Снесли все настроенное и поставили хотя бы ради чистоты эксперимента заново?

Вы забываете, что это Вам впервую очередь надо.

12

Hrafn пишет:
lm_akella пишет:

ну где все линуксоиды????поумирали чтоли все?

А Вы сами кто? Что Вы выяснили за это время? Включли более подробное логгирование? Или выяснили возможную причину проблемы? Снесли все настроенное и поставили хотя бы ради чистоты эксперимента заново?

Вы забываете, что это Вам впервую очередь надо.

я сносил и делал заново раз пять... во всех мануалах расписано именно так, как у меня..
но не работает... совсем не работает... а надо чтобы работало =(

13

Соответственно, вы или неправильно читаете мануалы и следуете им, или же не знаю даже.
Вот пара ссылок, обе рабочие.
http://articles.sunfinedata.com/windows … mysql.html
http://centosforserver.blogspot.com/201 … mysql.html

14

[root@localhost ~]# vim /etc/pam.d/vsftpd
[root@localhost ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 5.0.77 Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> use vsftpd
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> insert into accounts (username,pass) VALUES ('user1', md5('secret'));
Query OK, 1 row affected (0.16 sec)

mysql> select*from accounts
    -> ;
+----+----------+----------------------------------+
| id | username | pass                             |
+----+----------+----------------------------------+
|  1 | testuser | secret                           |
|  4 | hell     | 123                              |
|  5 | crypto   | 773359240eb9a1d9                 |
|  6 | lol      | 123                              |
|  7 | testcr   | 123                              |
|  8 | testcry  | 773359240eb9a1d9                 |
|  9 | user1    | 5ebe2294ecd0e0f08eab7690d2a6ee69 |
+----+----------+----------------------------------+
7 rows in set (0.00 sec)

mysql> quit
Bye
[root@localhost ~]# service vsftpd restart
Shutting down vsftpd:                                      [  OK  ]
Starting vsftpd for vsftpd:                                [  OK  ]
[root@localhost ~]# service mysql restart
mysql: unrecognized service
[root@localhost ~]# service mysqld restart
Stopping MySQL:                                            [  OK  ]
Starting MySQL:                                            [  OK  ]



вот конфиг pam.d
auth required pam_mysql.so user=vsftpd passwd=ftpdpass host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=3
account required pam_mysql.so user=vsftpd passwd=ftpdpass host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=3



все как в инструкции, но с другим ключем шифрования...
такая же шляпа.. авторазация не пройдена

15

Логи дайте нормальные. Ради интереса и фтп-сервера и мускула. Или думайте наконец сами.

16

логи vsftpd.log

Wed Nov 10 09:07:59 2010 [pid 4210] CONNECT: Client "192.168.56.101"
Wed Nov 10 09:07:59 2010 [pid 4209] [user1] FAIL LOGIN: Client "192.168.56.101"
Wed Nov 10 09:10:41 2010 [pid 4247] CONNECT: Client "192.168.56.101"
Wed Nov 10 09:10:41 2010 [pid 4246] [user1] FAIL LOGIN: Client "192.168.56.101"

логи мускуля

101110  2:52:00 [Warning] option 'max_join_size': unsigned value 18446744073709551615 adjusted to 4294967295
101110  2:52:00  InnoDB: Started; log sequence number 0 43655
101110  2:52:00 [Note] /usr/libexec/mysqld: ready for connections.
Version: '5.0.77'  socket: '/var/lib/mysql/mysql.sock'  port: 3306  Source distribution
101110  4:07:03 [Note] /usr/libexec/mysqld: Normal shutdown

101110  4:07:03  InnoDB: Starting shutdown...
101110  4:07:03  InnoDB: Shutdown completed; log sequence number 0 43655
101110  4:07:03 [Note] /usr/libexec/mysqld: Shutdown complete

101110 04:07:03  mysqld ended

101110 04:07:04  mysqld started
101110  4:07:04 [Warning] option 'max_join_size': unsigned value 18446744073709551615 adjusted to 4294967295
101110  4:07:04 [Warning] option 'max_join_size': unsigned value 18446744073709551615 adjusted to 4294967295
101110  4:07:04  InnoDB: Started; log sequence number 0 43655
101110  4:07:04 [Note] /usr/libexec/mysqld: ready for connections.
Version: '5.0.77'  socket: '/var/lib/mysql/mysql.sock'  port: 3306  Source distribution

17

Добавьте в конфиг

log_ftp_protocol=YES 

и попробуйте залогиниться снова. Логи всего этого дела  - сюда.

18

как будет называться файл, который хранит логи протокола? листинг кторый сюда мне скинуть?

19

должно быть в стандартном файле логов

20

root@localhost var]# cd log
[root@localhost log]# ls
acpid            btmp        faillog     mysqld.log  secure.1      wtmp
anaconda.log     conman      lastlog     pm          spooler       yum.log
anaconda.syslog  conman.old  mail        ppp         spooler.1
anaconda.xlog    cron        maillog     prelink     tallylog
audit            cron.1      maillog.1   rpmpkgs     vbox
boot.log         cups        messages    rpmpkgs.1   vsftpd.log
boot.log.1       dmesg       messages.1  secure      vsftpd.log.1

вот всяких разных файлов лога.. стандартный это vsftpd.conf?

21

Господи-то, Вы мне до сих пор логи фтп-сервера откуда брали? Вот туда и логи и должны продолжать идти.

22

после попытки логирования логи vsftpd.conf так и пишут только login failed

23

Что-то устал я уже...
Последний шанс ab
Выкладывайте полные конфиги всего, что относится к вашей связке, включая названия файлов и т.д. Не забывайте использовать тэги для форматирования. Будем разбираться, почему и что у Вас неправильно забито туда.

24

SELinux включен у Вас или нет?

25

извините.. я очень стараюсь но не всегда понимаю о чем вы...

как выключить селинукс??

п.с. все логи, относительно моей связки выложил выше

26

Я про конфиги. Те, что сейчас. Все, что касается вашего фтп-сервера. Целиком. С комментариями.

Пока жду, но терпения у меня осталось немного.

Мне нужны:
полный конфиг вашего фтп-сервера
насторйки PAM

Учтите, что лог и кофиг  - это вещи разные.

27

А еще интересно, по какому руководству вы поднимали эту связку у себя

28

http://www.linuxjournal.su/?p=84
это руководство по которому я все делал

Конфиги:

ФТП:
[root@localhost ~]# cat /etc/vsftpd/vsftpd.conf
listen=YES
anonymous_enable=YES
local_enable=YES
write_enable=YES

##############################

anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
no_anon_password=YES
anon_root=/var/ftp/pub
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
log_ftp_protocol=YES
##########

write_enable=YES
ftpd_banner="Welcome To Hell"
connect_from_port_20=YES
nopriv_user=ftp
local_root=/var/ftp/$USER
pam_service_name=vsftpd
guest_enable=YES
guest_username=ftp
user_sub_token=$USER
virtual_use_local_privs=YES
user_config_dir=/etc/vsftps/vsftpd_user_conf



Пам


[root@localhost ~]# cat /etc/pam.d/vsftpd
auth required pam_mysql.so user=vsftpd passwd=ftpdpass host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=2
account required pam_mysql.so user=vsftpd passwd=ftpdpass host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=2
[root@localhost ~]#

29

если Вы делали по этому руководству, то как-то странно. Конфиг сервера не идентичне, как минимум... Попробуйте для начал добавить

pam_service_name=vsftpd

30

Нашел ошибку, которая стала причиной корявого шифрования мускульных
паролей для ФТП..
/etc/my.conf

вот в этом файле
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
*#old_passwords=1*
# nastraival MUDAK
# Disabling symbolic-links is recommended to prevent assorted security
risks;
# to do so, uncomment this line:
# symbolic-links=0

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
~

вот эта жирная строчка была незакоменчена... у мускула были одни пароли,
а у меня другие =) вот и получалось несоответствие...

я закоментил строчку, поменял пароль для главного пользователя Мускула и
все заработало =))