标签:
vsftpd
端口:
主动模式: 20/21
被控模式: 21/ >1024
部署ftp服务
#yum install vsftpd -y
#rpm -ql vsftpd
#service vsftpd start
#chkconfig vsftpd on
访问ftp服务器需要登录
有三种方式可以登录到ftp
01 使用匿名用户(ftp、anonymous) 登录时无需密码
登录以后的目录是/var/ftp
02 系统账户登录(需要提供用户名/密码[useradd/passwd])
登录以后的目录是用户自己的家目录,有完全控制权限
(在selinux没有开启的情况下)
03 虚拟账户(所有用户映射一个本地用户)
通常这个本地用户是禁止登录系统的
虚拟账户可以实现一些上述两种用户无法实现的特殊效果
-------------------------------
ftp的客户端命令
#yum install ftp lftp -y
-------------------------------
01 实现匿名下载功能
* vsftpd服务启动以后,默认支持匿名登录下载功能
#touch /var/ftp/pub/test.txt
#wget ftp://172.16.254.101/pub/test.txt
#wget ftp://172.16.254.101/pub/test.txt -O /tmp/test.txt
02 实现匿名上传功能
# vi /etc/vsftpd/vsftpd.conf
-------------------------------
23 anon_umask=022 上传的文件的反掩码
28 anon_upload_enable=YES 允许匿名用户上传文件
-------------------------------
# mkdir /var/ftp/up
# chmod 757 /var/ftp/up
# service vsftpd restart
# ftp 172.16.254.101
03 实现匿名用户创建目录
-------------------------------
anon_mkdir_write_enable=YES
-------------------------------
# service vsftpd restart
# ftp 172.16.254.101
04 创建系统账户,然后登录到ftp服务器进程上传,下载
#useradd user1
#passwd user1
#ftp 172.16.254.101
user:user1
passwd: user1-password
-------------------------------
在网页浏览器使用系统账户登录时可以使用
ftp://user:password@IP
对系统用户登录ftp以后的路径问题
# vi /etc/vsftpd/vsftpd.conf
----------------------
96 #chroot_local_user=YES
97 #chroot_list_enable=YES
99 #chroot_list_file=/etc/vsftpd/chroot_list
----------------------
01 只开启chroot_local_user=YES,将所有的系统用户禁锢在自己的家目录
02 开启 96 chroot_local_user=YES
97 chroot_list_enable=YES
99 chroot_list_file=/etc/vsftpd/chroot_list
设置白名单,出现在chroot_list中的用户不受限制的
03 开启 97 chroot_list_enable=YES
99 chroot_list_file=/etc/vsftpd/chroot_list
设置黑名单,出现在chroot_list中的用户受限制
ftp虚拟账户
虚拟账户可以使用用户名/密码登录系统
但是并不是正真的系统用户。
所有的虚拟账户都映射到一个系统账户上
这个系统账户通常会被禁止登录
验证这些虚拟账户的信息使用PAM来做验证
PAM (Plugable Authentication Module)
PAM是由Sun公司开发出来的
使用pam来验证ftp虚拟用户可以验证本地文件,可以验证mysql数据库内的用户信息
本地文件需要做成数据类型,需要使用db4-utils
#yum install db4-utils -y
#cd /etc/vsftpd
#vi vuser.txt 用户/密码文件(奇数行用户;偶数行密码)
---------------
vu1
123456
vu2
654321
---------------
# db_load -T -t hash -f vuser.txt vuser.db
//将明文用户名密码变成数据格式
# file vuser.txt
vuser.txt: ASCII text
# file vuser.db
vuser.db: Berkeley DB (Hash, version 9, native byte-order)
创建系统账户(用来映射虚拟用户)
#useradd vuser -s /sbin/nologin
编辑vsftpd的配置文件
# vi /etc/vsftpd/vsftpd.conf
---------------
117 #pam_service_name=vsftpd //注释点原有pam验证文件
120 guest_enable=YES //启用虚拟用户
121 guest_username=vuser //虚拟用户映射的本地用户
122 pam_service_name=vsftpd.vu //虚拟用户验证是使用的pam文件
---------------
编写pam配置文件
# vi /etc/pam.d/vsftpd.vu
---------------
auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser
---------------
重启vsftpd服务
# service vsftpd restart
使用客户端命令测试是否可以使用vu1;vu2登录到ftp服务器
如果登录成功,但是提示226 Transfer done (but failed to open directory).
需要添加一条记录,anon_world_readable_only=no
加完以后,重启vsftpd服务
给不同的虚拟用户设置不同的权限
01 定义虚拟用户的自定义配置文件目录
# vi /etc/vsftpd/vsftpd.conf
---------------
user_config_dir=/etc/vsftpd/vuser_config //指定虚拟用户的配置文件目录
--------------- //每个用户在这个目录里有一个与名字相同的配置文件
# mkdir /etc/vsftpd/vuser_config
# vi /etc/vsftpd/vuser_config/vu1
---------------
local_root=/home/vuser/vu1
anon_world_readable_only=no
---------------
# mkdir /home/vuser/vu1
# chown vuser:vuser /home/vuser/vu1
# chmod 700 /home/vuser/ vu1
# service vsftpd restart
#
=================
虚拟用户高级设置
=================
virtual_use_local_privs参数
当virtual_use_local_privs=YES时,
虚拟用户和本地用户有相同的权限;
当virtual_use_local_privs=NO时,
虚拟用户和匿名用户有相同的权限,默认是NO。
virtual_use_local_privs=YES
write_enable=YES
虚拟用户具有写权限(上传、下载、删除、重命名)。
virtual_use_local_privs=NO
write_enable=YES
anon_world_readable_only=YES
anon_upload_enable=YES
虚拟用户不能浏览目录,只能上传文件,无其他权限。
virtual_use_local_privs=NO
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=NO
虚拟用户只能下载文件,无其他权限。
virtual_use_local_privs=NO
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
虚拟用户只能上传和下载文件,无其他权限。
virtual_use_local_privs=NO
write_enable=YES
anon_world_readable_only=NO
anon_mkdir_write_enable=YES
虚拟用户只能下载文件和创建文件夹,无其他权限。
virtual_use_local_privs=NO
write_enable=YES
anon_world_readable_only=NO
anon_other_write_enable=YES
虚拟用户只能下载、删除和重命名文件,无其他权限。
标签:
原文地址:http://www.cnblogs.com/mayuansheng/p/5802708.html