LinuxForum.Fans
Тема

Помогите разобраться с установкой vsftpd (база пользователей mysql)!

Автор: zantonioz 9 сообщений 2293 просмотров
#371566

Нашел в сети следующий алгоритм по установке vsftpd (база пользователей mysql) на CentOS :

1) Установим сервиса vsftd

text
 yum install vsftpd

2) Установим фтп клиента

text
yum install ftp

3) Запустим сервис

text
service vsftpd start

4) Добавим правило в iptables

text
 -A INPUT -i eth0 -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT 

5) Сохраним первоначальный конфиг vsftpd (на всякий случай)

text
 mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.original

6) Установим pam-mysql. В стандартных репозиториях его нет.

text
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/pam_mysql-0.7-0.12.rc1.el6.x86_64.rpm 
text
yum localinstall pam_mysql-0.7-0.12.rc1.el6.x86_64.rpm

7) Установим mysql 5.5. Тоже нет в стандартных репозиториях его нет.

text
rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm
text
yum install mysql.`uname -i` yum-plugin-replace
text
yum replace mysql --replace-with mysql55
text
yum install mysql55 mysql55-server

8 ) Запустим mysql

text
service mysqld start

9) Настроим mysql

text
/usr/bin/mysql_secure_installation
text
set root password — vsftpd
Set root password? [Y/n] Y
Remove anonymous users? [Y/n] Y
… Success!

Normally, root should only be allowed to connect from ‘localhost’. This ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] Y … Success!

By default, MySQL comes with a database named ‘test’ that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment.

Remove test database and access to it? [Y/n] Y - Dropping test database… … Success! - Removing privileges on test database… … Success!

Reloading the privilege tables will ensure that all changes made so far will take effect immediately.

Reload privilege tables now? [Y/n] Y … Success!

10) Создадим базу данных

text
mysql -uroot -pvsftpd
text
CREATE DATABASE FTP;
    USE FTP;
    CREATE TABLE LOGINS(ftp_user VARCHAR(20), passwd VARCHAR(20));
    INSERT INTO LOGINS(ftp_user,passwd) VALUES ('IVAN','123');
    INSERT INTO LOGINS(ftp_user,passwd) VALUES ('test','test');

11) Создадим директори для пользователей

text
mkdir /var/ftp/IVAN; chown ftp:ftp /var/ftp/IVAN
     mkdir /var/ftp/test; chown ftp:ftp /var/ftp/test

12) PAM файл /etc/pam.d/vsftpd_mysql

text
#%PAM-1.0
    session optional pam_keyinit.so force revoke 
    auth required pam_mysql.so user=root passwd=vsftpd host=localhost db=FTP table=LOGINS usercolumn=ftp_user passwdcolumn=passwd crypt=0
    account required pam_mysql.so user=root passwd=vsftpd host=localhost db=FTP table=LOGINS usercolumn=ftp_user passwdcolumn=passwd crypt=0

13) Конфигурируем /etc/vsftpd/vsftpd.conf

text
anonymous_enable=NO
no_anon_password=YES
 file_open_mode=0777
 chmod_enable=YES
 anon_umask=022
 anon_other_write_enable=YES
 hide_ids=YES
 anon_root=/var/ftp/
 local_enable=YES
 write_enable=YES
 local_umask=022
 anon_upload_enable=YES
 anon_mkdir_write_enable=YES
 dirmessage_enable=YES
 xferlog_enable=YES
 connect_from_port_20=YES
 chown_uploads=YES
 chown_username=ftp
 xferlog_file=/var/log/vsftpd.log
 xferlog_std_format=YES
 ascii_upload_enable=YES
 ascii_download_enable=YES
 chroot_local_user=YES
  listen=YES
 pam_service_name=vsftpd_mysql
  userlist_enable=YES
  tcp_wrappers=YES
  pasv_enable=YES
  pasv_min_port=65000
  pasv_max_port=65000
  guest_enable=YES
  guest_username=ftp
  local_root=/var/ftp/$USER
  user_sub_token=$USER
  local_enable=yes
  virtual_use_local_privs=YES
  user_config_dir=/etc/vsftpd/vsftpd_user_conf

14) Перезапустим vsftpd

text
service vsftpd restart

Попытка подключения :

text
[root@localhost ~]# ftp 192.168.0.70
Connected to 192.168.0.70 (192.168.0.70).
220 (vsFTPd 2.2.2)
Name (192.168.0.70:root): IVAN
331 Please specify the password.
Password:                                                  // ввожу 123
530 Login incorrect.
Login failed.
ftp>

Объясните, почему не работает алгоритм? Какая версия mysql и pam_mysql должна быть?

#371568
"zantonioz" написал:
epel

почему бы не подключить эту репу и не скачивать пакеты?

#371569
"zantonioz" написал:
Установим mysql 5.5. Тоже нет в стандартных репозиториях его нет.

аналогично... Remi, CentAlt, Atomic, ну и Percona

и что в логах при попытке подключения?

#371595
alexfinn написал:
[quote="zantonioz"]Установим mysql 5.5. Тоже нет в стандартных репозиториях его нет.

аналогично... Remi, CentAlt, Atomic, ну и Percona

и что в логах при попытке подключения?[/quote]

Логи такие

text
Mar 13 21:36:36 localhost vsftpd[1797]: pam_mysql - MySQL error (Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (13))
#371932

собственно, в ошибке все написано
вместо localhost впишите 127.0.0.1 ради интереса и убедитесь, что мускул вообще работает

#371943
alexfinn написал:
собственно, в ошибке все написано
вместо localhost впишите 127.0.0.1 ради интереса и убедитесь, что мускул вообще работает

заработало всё))) святые угодники)

сделаю и выложу немного другой алгоритм скоро...

#371946

:) рад за вас

#371957

И еще вопрос..

Как можно сделать так, что бы ftp сервер был виден из вне ?

Есть купленное доменное имя....

И как сделать, чтобы русские названия файлов отображались?
Как добавить список папок для каждого пользователя ?

#371975
"zantonioz" написал:
Как можно сделать так, что бы ftp сервер был виден из вне ?

как обычно с любым из сервисов - повесить на внешний айпи, если еще не, и прописать этот айпи в днс

"zantonioz" написал:
И как сделать, чтобы русские названия файлов отображались?

не знаю, честно говоря... ищите

"zantonioz" написал:
Как добавить список папок для каждого пользователя ?

не совсем понял

Войдите или зарегистрируйтесь, чтобы ответить.