vftp 部署和优化

作为系统默认自带的ftp服务软件,vsftpd使用也是挺多的,下面介绍一下vsftpd。

  1. 安装vsftpd
1
yum install -y vsftpd db4-utils

这里安装两个软件包,同时会把依赖的包安装上。其中db4-utils 用来生成密码库文件。

  1. 建立账号
    vsftpd默认是可以支持使用系统账号体系登录的,但那样不太安全,我们可以参考下面的方法使用虚拟账号体系。

i. 建立虚拟账号相关联的系统账号

1
useradd virftp -s /sbin/nologin

ii. ###### 建立虚拟账户的相关文件

1
2
3
4
5
vim /etc/vsftpd/vsftpd_login //内容如下
test1
111222aaa
test2
aaa111ddd

iii. ######更改该文件的权限,提升安全级别

1
chmod 600 /etc/vsftpd/vsftpd_login

iv. ######vsftpd 使用的密码文件肯定不是明文的,需要生成对应的库文件

1
db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db

v. ######建立虚拟账号相关的目录以及配置文件

1
2
mkdir /etc/vsftpd/vsftpd_user_conf
cd /etc/vsftpd/vsftpd_user_conf

3. 创建和用户对应的配置文件
1
2
3
4
5
6
7
8
9
10
11
12
vim test1 //内容如下:
local_root=/home/virftp/test1
anonymous_enable=NO
write_enable=NO
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
idle_session_timeout=600
data_connection_timeout=120
max_clients=10
max_per_ip=5
local_max_rate=50000

说明:
local_root 表示该账号的家目录;
anonymous_enable 用来限制是否允许匿名账号登录;
write_enable 表示是否可写;
local_umask 指定umask值;
non_upload_enable 是否允许匿名账号上传文件;
non_mkdir_write_enable 是否允许匿名账号可写;
idle_session_timeout=600 空闲会话超时;
data_connection_timeout=120 数据链接超时;
max_clients=10 最大链接数
local_max_rate=50000 传输速度
以上是关键配置参数,其他暂时不用关心。创建test2账号的步骤和test1一样。

1
2
3
4
5
mkdir /home/virftp/test1
chown -R virftp:virftp /homevirftp
vim /etc/pam.d/vsftpd //在最开头添加两行:
auth sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

说明:32位系统的库文件路径为:/lib/security/pam_uesrdb.so ;64位系统为:/lib64/security/pam_uesrdb.so

3. 修改全局配置文件/etc/vsftpd.conf
1
vim /etc/vsftpd/vsftpd.conf

修改内容为:

1
2
3
4
5
6
anonymous_enable=NO
local_enable=YES
write_enable=YES
anon_upload_enable=NO
anon_mkdir_write_enable=NO
chroot_local_user=YES

添加内容为:

1
2
3
4
guest_enable=YES
guest_username=virftp
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vsftpd_user_conf

至此可以启动vsftp服务了

1
/etc/init.d/vsftpd start

在21端口没有被占用的前提下,可以成功启动。如果用户登录不了,请查看一下/var/log/secure 日志。