1、ftp协议
文件传输协议(File Transfer Protocol),适用与C/S模式。
2、ftp服务安装
在REDHAT Linux中由vsftpd提供ftp服务,lftp提供在该服务下进行文件传输的软件
服务端:安装vsftp,lftp
命令:yum install vsftpd yum install lftp
本地主机:安装lftp
命令:yum install lftp
3、服务端设置
- (1)将selinux设置为disable
配置文件:/etc/sysconfig/selinux
SELINUX=disabled
- (2)防火墙设置
firewall-cmd --list-all
查看services是否添加ftp
添加:firewall-cmd --permanent --add-service=ftp
并且重新加载
- (3)开启vsftpd服务
- (4)配置文件:/etc/vsftpd/vsftpd.conf
- 匿名用户设置
anonymous_enable=yes|no 是否允许匿名用户登陆
anon_upload_enable=yes|no 是否允许匿名用上传
anon_root=/admin 匿名用户的家目录设置,默认为/var/ftp
anon_umask=644 匿名用户上传文件的默认权限
anon_mkdir_write_enable=yes|no 是否允许匿名用户建立目录
anon_world_readable_only=yes|no 匿名用户是否可以下载,no可以,yes不行
anon_other_write_enable=yes|no 是否允许匿名用户删除
anon_max_rate=10240 限制最大上传速率10k,默认单位为bit
max_clients=5 限制最大连接数
chown_uploads=YES 匿名用户操作的身份更改,上传时身份发生改变
chown_username=student 身份设定为student
chown_upload_mode=0664 默认权限重新设定为664
- 本地用户设置
本地用户指使用被登陆方远端主机的用户进行连接
local_enable=yes|no 是否允许本地用户登陆
write_enable=yes|no 是否允许登陆本地用户具有可写权力
local_root=/admin 修改使用本地用户登陆家目录,默认进入该用户的家目录
local_umask=xxx 修改登陆用户umask值
实现黑名单,则黑名单用户不可登陆
方法一:
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftd/chroot_list
方法二:
etc/vsftd/ftpusers 用户黑名单(永久)
方法三:
userlist_deny=YES
/etc/vsftpd/user_list
编辑用户临时黑名单
建立用户白名单
实现白名单,则变为白名单上用户可登陆,非白名单用户不可登陆
方法一:
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
方法二:
userlist_deny=NO
/etc/vsftpd/user_list
编辑用户临时白名单
4、使用时的报错解释
500 访问的目标文件权限过大
530 认证失败(输入密码错误或处在黑名单)
550 功能未开启
553 访问的目标权限过小
5、匿名用户设置
(1)匿名用户是否可以登陆
anonymous_enable=yes|no
允许登陆
不允许登陆
(2)是否允许匿名用上传
anon_upload_enable=yes|no
当使用匿名用户上传时,匿名用户属于ftp组,默认系统创建的pub目录属于root组需要修改pub目录所属组及权限,若想上传至其他目录同样进行设定。
设定允许上传
(3)修改匿名用户登陆的家目录
anon_root=/admin 设定为远端主机/admin
(4)匿名用户是否可以下载
anon_world_readable_only=yes|no
设定可以进行下载
(5)是否允许匿名用户删除
anon_other_write_enable=yes|no
设定不允许删除
6、本地用户设置
(1)是否允许本地用户登陆
local_enable=yes|no
设定为允许
(2)是否允许登陆本地用户具有可写权力
write_enable=yes|no
设定具有
(3)修改使用本地用户登陆家目录,默认进入该用户的家目录
local_root=/admin
设定在/test
(4)建立用户黑名单
黑名单文件:etc/vsftd/ftpusers
(5)建立用户临时白名单
文件路径:/etc/vsftpd/user_list
7、虚拟用户设置
(1)创建虚拟帐号
路径:/etc/vsftpd/account_list(文件名任意)
(2)生成.db文件
命令:db_load -T -t hash -f /etc/vsftpd/account /etc/vsftpd/account.db
(3)设置读取文件
l路径:/etc/pam.d/account
(4)编辑vsftpd配置文件
(5)登陆验证
注意:修改了认证文件,原本地用户则无法登陆!恢复默认读取文件为pam_service_name=vsftpd
(5)设置虚拟用户家目录
建立目录
修改配置文件
验证设置
(5)设置虚拟用户单独配置文件
虚拟用户配置文件路径:/var/ftp/admind/admin1
vsftp配置文件
验证实现