|
基础介绍什么的就自行搜索了。下面直接从安装配置开始。
环境:centos6
一、安装
安装完成后可以直接启动。service vsftpd start
二、配置
使用pam_mysql或者db_load的认证方式:
a)使用db_load来设置虚拟用户
1、在/etc/vsftpd/下创建两个目录
1
| mkdir /etc/vsftpd/vuser_dir #后续存放虚拟用户的配置文件
|
1
| mkdir /etc/vsftpd/vuser_db #存放虚拟用户的认证文件
|
2、生成数据库文件
1
2
3
4
5
6
| cd /etc/vsftpd/vuser_db/
vim login_vuser
username #依次单行用户名,密码
password
username
password
|
1
| db_load -T -t -f /etc/vsftpd/vuser_db/login_vuser /etc/vsftpd/vuser_db/vuser.db #生成虚拟用户的数据库文件
|
3、更改pam认证模块
1
2
3
4
| cd /etc/pam.d/
vim vsftpd.vuser
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_db/vuser #此处注意不要加.db后缀
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_db/vuser
|
4、更改vsftpd的配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES #开启匿名用户访问
local_enable=YES #本地用户访问
write_enable=YES #用户的写权限
local_umask=022
######################################################
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
######################################################
listen=YES
user_config_dir=/etc/vsftpd/vuser_dir
pam_service_name=/etc/pam.d/vsftpd.vuser
userlist_enable=NO
tcp_wrappers=YES
chroot_list_enable=YES #不允许用户切换家目录
######################################################
guest_enable=YES #开启匿名用户
guest_username=vuser
######################################################
chown_uploads=YES #是否允许上传的文件改变属主
chown_username=root #改变为哪个属主
|
5、为虚拟用户创建对应的配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| cd /etc/vsftpd/vuser_dir/ #创建两个虚拟用户的配置文件
vim test
anon_upload_enable=YES
download_enable=YES
anon_other_write_enable=NO
anon_mkdir_write_enable=NO
local_root=/some/to/path/
######################################################
vim admin
anon_upload_enable=YES
download_enable=YES
anon_other_write_enable=YES
anon_mkdir_write_enable=YES
anon_world_readable_only=NO
local_root=/some/to/path/
|
6、重启vsftpd测试登陆
1
2
3
| service vsftpd restart
lftp -u username,password host #测试
|
b)使用pam_mysql来认证用户
1、创建目录存储虚拟用户配置文件
mkdir /etc/vsftpd/vuser_dir
2、安装mysql-server mysql-devel openssl-devel pam_mysql软件
1
| yum -y install mysql-server mysql-devel openssl-devel pam_mysql #epel源里有pam_mysql模块
|
3、登陆mysql创建vsftpd库文件等
1
2
3
4
5
6
7
8
9
10
11
| mysql -uroot -p password
create database vsftpd
grant all on vsftpd.* to 'vsftpd'@'localhost' identified by 'vsftpd';
grant all on vsftpd.* to 'vsftpd'@'127.0.0.1' identified by 'vsftpd';
use vsftpd;
CREATE TABLE `users` (`id` int(10) unsigned NOT NULL AUTO_INCREMENT,`name` varchar(50) NOT NULL,`password` char(48) NOT NULL,PRIMARY KEY (`id`));
INSERT INTO users (name,password) VALUES ('username','password'),('username','password');
flush privileges;
mysql -uUSERNAME -pPASSWORD #测试上述创建的用户是否有效
|
4、创建mysql的pam认证文件
1
2
3
| vim vsftpd.mysql
auth required /lib64/security/pam_mysql.so user=vsftpd passwd=vsftpd host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password cypt=0
account required /lib64/security/pam_mysql.so user=vsftpd passwd=vsftpd host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password cypt=0
|
5、修改vsftpd配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES #开启匿名用户访问
local_enable=YES #本地用户访问
write_enable=YES #用户的写权限
local_umask=022
######################################################
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
######################################################
listen=YES
user_config_dir=/etc/vsftpd/vuser_dir
pam_service_name=/etc/pam.d/vsftpd.mysql #这里与上面的hash认证是有区别的
userlist_enable=NO
tcp_wrappers=YES
chroot_list_enable=YES #不允许用户切换家目录
######################################################
guest_enable=YES #开启匿名用户
guest_username=vuser
######################################################
chown_uploads=YES #是否允许上传的文件改变属主
chown_username=root #改变为哪个属主
|
6、为虚拟用户创建对应的文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| cd /etc/vsftpd/vuser_dir/ #创建两个虚拟用户的配置文件
vim test
anon_upload_enable=YES
download_enable=YES
anon_other_write_enable=NO
anon_mkdir_write_enable=NO
local_root=/some/to/path/
######################################################
vim admin
anon_upload_enable=YES
download_enable=YES
anon_other_write_enable=YES
anon_mkdir_write_enable=YES
anon_world_readable_only=NO
local_root=/some/to/path/
|
7、重启vsftpd测试登陆
1
2
| service vsftpd restart
lftp -u username,password host #测试
|
三、所有的针对于用户权限的配置都可以在包含的虚拟用户配置文件的路径下进行单独的配置选项。
如果其中配置好登陆不上,可以查看安全认证日志。
|
|