mysql vsftp_VSFTP+MySQL虚拟用户配置

  • Post author:
  • Post category:mysql


VSFTP+MySQL虚拟用户配置

1、安装vsftp软件

如果要开始ssl功能的话,安装vsftp之前要先安装openssl-0.9.8g.tar.gz包

[root@server2

ftp]# tar xzvf openssl-0.9.8g.tar.gz

[root@server2

ftp]# cd openssl-0.9.8g

[root@server2

openssl-0.9.8g]# ./config

[root@server2

openssl-0.9.8g]# make && make install

安装vsftp:

[root@server2

ftp]# tar xzvf vsftpd-2.1.0.tar.gz

[root@server2

ftp]# cd vsftpd-2.1.0

[root@server2

vsftpd-2.1.0]# vi builddefs.h

#ifndef

VSF_BUILDDEFS_H

#define

VSF_BUILDDEFS_H

#undef

VSF_BUILD_TCPWRAPPERS

#define

VSF_BUILD_PAM

#undef

VSF_BUILD_SSL

#endif /*

VSF_BUILDDEFS_H */

把undef都更改成define,支持tcp_wrappers,支持PAM认证方式,支持SSL

不知道为什么用2.10.0版本的时候make的时候老是出现:

ssl.o(.text+0x760): In function

`ssl_cert_digest’:

: undefined reference to `EVP_sha256′

collect2: ld returned 1 exit status

make: *** [vsftpd] Error 1

所以换成2.0.3版本!

[root@server2

vsftpd-2.0.3]# make

[root@server2

vsftpd-2.0.3]# ls -l vsftpd

-rwxr-xr-x1 root root 85932 Mar 23 14:53 vsftpd//可执行程序安装成功

创建必要的帐号,目录:# useradd nobody  //可能你的系统已经存在此帐号,那就不用建立# mkdir /usr/share/empty  //可能你的系统已经存在此目录,那就不用建立# mkdir /var/ftp  //可能你的系统已经存在此目录,那就不用建立# useradd -d /var/ftp ftp  //可能你的系统已经存在此帐号,那就不用建立# chown root:root /var/ftp

# chmod og-w /var/ftp请记住,如果你不想让用户在本地登陆,那么你需要把他的登陆SHELL设置成/sbin/nologin,比如以上的nobody和ftp我就设置成/sbin/nologin

安装vsftp配置文件,可执行程序,man等:

# install -m 755 vsftpd /usr/local/sbin/vsftpd

# install -m 644 vsftpd.8 /usr/share/man/man8

# install -m 644 vsftpd.conf.5 /usr/share/man/man5

# install -m 644 vsftpd.conf /etc/vsftpd.conf

这样vsftp的安装就完成了

2、安装mysql数据库,并进行相关的设置

Mysql的安装就不说了,这里只说明对mysql数据库的相关操作:

(1)建立一个库并设置相应权限

[root@server2

vsftpd-2.0.3]# mysql –uroot

mysql>create database ftpd;

mysql>use ftpd;

mysql>create table user(name char(20) binary,passwd char(20) binary);

mysql>insert into user (name,passwd) values (‘zhang1′,’123456’);

mysql>insert into user (name,passwd) values (‘zhang2′,’654321’);

mysql>grant select on ftpd.user to ftpd@localhost identified by ‘123456’;

mysql>flush privileges;刷新权限设置mysql>quit

(2)测试ftpd对数据库的权限是否OK!

3、下载、安装、编译pam-mysql

[root@server2 ftp]#

tar xzvf pam_mysql-0.5.tar.gz

[root@server2 ftp]#

cd pam_mysql

[root@server2

pam_mysql]# cp pam_mysql.so/lib/security/

4、建立PAM认证信息

vi /etc/pam.d/ftp ,内容如下auth required /lib/security/pam_mysql.so user=ftpd passwd=123456 host=localhost

db=ftpd table=user usercolumn=name passwdcolumn=passwd crypt=0

account required /lib/security/pam_mysql.so user=ftpd passwd=123456

host=localhost db=ftpd table=user usercolumn=name passwdcolumn=passwd crypt=0注意:crypt= n

crypt=0:明文密码crypt=1:使用crpyt()函数(对应SQL数据里的encrypt(),encrypt()随机产生salt)

crypt=2:使用MYSQL中的password()函数加密crypt=3:表示使用md5的散列方式

5、建立本地虚拟用户:

useradd -d /home/ftpd

-s /sbin/nologin ftpd

6、修改配置文件:

anonymous_enable=NO

local_enable=YES

write_enable=YES

local_umask=022

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

chroot_local_user=YESguest_enable=YES

guest_username=ftpdlisten=YES

listen_port=21

pasv_enable=YES

pasv_min_port=30000

pasv_max_port=30999

anon_world_readable_only=NO

virtual_use_local_privs=YES

7、启动vsftpd

/usr/local/sbin/vsftpd /etc/vsftpd.conf &//后台运行!

8、Test

[root@server2 vsftpd-2.0.3]# ftp 127.0.0.1

Connected to 127.0.0.1.

220 (vsFTPd 2.0.3)

530 Please login with USER and PASS.

530 Please login with USER and PASS.

KERBEROS_V4 rejected as an authentication

type

Name (127.0.0.1:root): zhang1

331 Please specify the password.

Password:

230 Login successful.\\已经登录成功了!

Remote system type is UNIX.

Using binary mode to transfer files.

ftp> quit

221 Goodbye.



版权声明:本文为weixin_30564447原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。