搭建vsftp服务
1、准备工作
- 配置yum源
2、安装vsftp软件
[root@localhost ~]# yum install vsftpd -y
3、建立虚拟用户账户文件
自定义文件vusers.list
,并定义虚拟用户aaa,bbb
[root@localhost ~]# vim /etc/vsftpd/vusers.list
aaa //账户
123456a //密码
bbb
123456b
4、创建数据库文件
[root@localhost ~]# cd /etc/vsftpd/
[root@localhost vsftpd]# db_load -T -t hash -f vusers.list vusers.db
[root@localhost vsftpd]# chmod 600 /etc/vsftpd/vusers.*
[root@localhost vsftpd]# file vusers.db #查看转换后的文件类型
vusers.db: Berkeley DB (Hash, version 9, native byte-order) #提示这些是成了
5、添加虚拟用户的映射账号、ftp根目录
[root@localhost ~]# useradd -d /var/ftproot -s /sbin/nologin zhangsan
[root@localhost ~]# chmod 755 /var/ftproot
6、为虚拟用户建立pam认证文件
[root@localhost ~]# vim /etc/pam.d/vsftpd.vu
auth required pam_userdb.so db=/etc/vsftpd/vusers
account required pam_userdb.so db=/etc/vsftpd/vusers
7、修改vsftp配置,添加虚拟用户支持
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO //修改
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
guest_enable=YES //添加
guest_username=zhangsan //添加
anon_root=/var/ftp/soft //添加
user_config_dir=/etc/vsftpd/vusers_dir //添加
allow_writeable_chroot=YES //添加
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd.vu //修改
userlist_enable=YES
tcp_wrappers=YES
其它的一些参数说明包括:
ftpd_banner=welcome to ftp service :设置连接服务器后的欢迎信息
idle_session_timeout=60 :限制远程的客户机连接后,所建立的控制连接,在多长时间没有做任何的操作就会中断(秒)
data_connection_timeout=120 :设置客户机在进行数据传输时,设置空闲的数据中断时间
accept_timeout=60 设置在多长时间后自动建立连接
connect_timeout=60 设置数据连接的最大激活时间,多长时间断开,为别人所使用;
max_clients=200 指明服务器总的客户并发连接数为200
max_per_ip=3 指明每个客户机的最大连接数为3
local_max_rate=50000(50kbytes/sec) 本地用户最大传输速率限制
anon_max_rate=30000匿名用户的最大传输速率限制
pasv_min_port=端口
pasv-max-prot=端口号 定义最大与最小端口,为0表示任意端口;为客户端连接指明端口;
listen_address=IP地址 设置ftp服务来监听的地址,客户端可以用哪个地址来连接;
listen_port=端口号 设置FTP工作的端口号,默认的为21
local_root=path 无论哪个用户都能登录的用户,定义登录帐号的主目录, 若没有指定,则每一个用户则进入到个人用户主目录;
chroot_local_user=yes/no 是否锁定本地系统帐号用户主目录(所有);锁定后,用户只能访问用户的主目录/home/user
chroot_list_enable=yes/no 启用不锁定用户在主目录的名单
chroot_list_file=/etc/vsftpd/chroot_list指定列表文件
userlist_enable=YES/NO 是否加载用户列表文件;
userlist_deny=YES 表示上面所加载的用户允许登录;
userlist_file=/etc/vsftpd/user_list 指定列表文件
8、创建虚拟用户独立的配置文件
用户aaa
[root@localhost vsftpd]# mkdir /etc/vsftpd/vusers_dir
[root@localhost vsftpd]# cd /etc/vsftpd/vusers_dir
[root@localhost vusers_dir]#vim aaa
local_root=/var/ftp/soft //用户目录
virtual_use_local_privs=YES //虚拟用户和本地用户有相同的权限
write_enable=YES //虚拟用户具有写权限(上传、下载、删除、重命名)
用户bbb
[root@localhost vusers_dir]# vim bbb
local_root=/var/market //限定在此目录
virtual_use_local_privs=NO
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
#只能上传下载,无其他权限
然后重启服务就可;
[root@localhost vusers_dir]# systemctl restart vsftpd
9、测试
aaa用户登录可以上传下载,随意访问目录
bbb用户登录,则只能在限定目录内访问: