1. 什么是ftp
1)ftp是一种文件传输协议,目标是提高文件的共享性,提供非直接使用远程计算机,使存储介质对用户透明和可靠高效地传送数据。简单的说,FTP就是完成两台计算机之间的拷贝,从远程计算机拷贝文件至自己的计算机上,或将文件从自己计算机中拷贝至远程计算机上。
2)文件传输协议 ftp://
默认发布目录 /var/ftp
服务配置文件 /etc/vsftpd/vsftpd.conf
ftp协议提供的软件:在rhel中是vsftpd软件。
3)vsftpt提供三种远程的登录方式:
(1)匿名登录方式:不需要用户名和密码就可以登录到服务器上
(2)本地用户方式:需要用户名和密码才能登录,而且这些用户必须为系统已经存在的用户
(3)虚拟用户:同样需要用户名和密码才能登录,但是这些用户不是系统存在的用户
4)连接时部分报错id的解析
500 | 文件系统权限过大 |
---|---|
530 | 用户认证失败 |
550 | 服务本身功能未开放 |
553 | 本地文件系统权限过小 |
2. 部署ftp服务
1) 关闭内核级的加强火墙
vim /etc/sysconfig/selinux ##disabled
getenforce ##查看状态
在重启一下
2)下载这玩意儿
yum install vsftpd lftp -y 下载完后
还得开启服务 systemctl start vsftpd
在给设置个开机自启,systemctl enable vsftpd
将ftp设置为防火墙允许的应用
图形界面处理方法 firewall-config
弄好之后lftp连接一下看能进去看不
3. ftp配置
vim /etc/vsftpd/vsftpd.conf 编辑ftp的配置文件
1)匿名用户的设定
anonymous_enable=YES/NO 匿名用户是否可以登陆
2)匿名用户上传
write_enable=YES/NO ftp是否对登陆用户可写,即上传、下载、创建等功能的总开关
anon_upload_enable=YES/NO 允许匿名用户是否可以上传
systemctl restart vsftpd ##重启vsftpd服务
chgrp ftp /var/ftp/pub ##更改该文件组为ftp
chmod 775 /var/ftp/pub ##允许该文件被ftp组可读可写
3). 匿名用户家目录修改
anon_root=/directory 该目录即是匿名用户登陆时进入的目录
systemctl restart vsftpd
4).匿名用户上传文件默认权限修改
anon_umask=022 匿名用户新增文件时系统保留的权限为022
5). 匿名用户建立目录
anon_mkdir_write_enable=YES/NO 默认在33行,匿名用户是否可以创建目录
6). 匿名用户下载
anon_other_write_enable=YES/NO 匿名用户是否可以删除文件
7). 匿名用户使用的用户身份修改及最大上传速率和最大链接数
chown_uploads=YES 默认在48行,所有匿名上传的文件的所属用户将会被更改成chown_username
chown_username=redhat 默认在49行,匿名用户身份指定,必须是服务端已有的用户
anon_max_rate=102400 最大上传速率,单位为bit
max_clients=2 允许同时有2个用户登陆该ftp服务器
对本地用户的设定:
1).本地用户登陆
local_enable=YES/NO 本地用户是否可以登陆
2)本地用户家目录修改
local_root=/directory 家目录的用户权限应为r-x
chmod u-w /mnt/dc
3).本地用户上传文件权限
local_umask=022 本地用户新增文件时系统保留的权限为022
4). 限制本地用户浏览根目录
chroot_local_user=YES 默认在101行,将所有本地用户被锁定到自己的家目录中
5).本地用户黑名单建立
touch /etc/vsftpd/chroot_list 建立黑名单
vim /etc/vsftpd/chroot_list 在里面添加的用户不能进入根目录
chroot_local_user=NO 默认在101行,NO表示下面的路径是黑名单
chroot_list_enable=YES 默认在102行,YES表示开启黑白名单功能
chroot_list_file=/etc/vsftpd/chroot_list 默认在104行,黑名单路径
6). 本地用户白名单建立
touch /etc/vsftpd/chroot_listb 建立白名单
vim /etc/vsftpd/chroot_listb 在里面添加的用户可以进入根目录
chroot_local_user=YES 默认在101行,YES表示下面的路径是白名单
chroot_list_enable=YES 默认在102行,YES表示开启黑白名单功能
chroot_list_file=/etc/vsftpd/chroot_listb 默认在104行,白名单路径
7).限制本地用户登陆
vim /etc/vsftpd/ftpusers 用户永久黑名单,只要在该名单上出现的用户不能登陆ftp服务器
vim /etc/vsftpd/user_list 用户临时黑名单,当userlist_deny=NO出现时该名单变为白名单
userlist_deny=YES/NO YES时/etc/vsftpd/user_list时黑名单,NO时/etc/vsftpd/user_list是白名单
对虚拟用户的设定:
1)创建虚拟用户身份
vim /etc/vsftpd/virtfile 新建账户名单文件,文件名任意,
db_load -T -t hash -f /etc/vsftpd/virtuser /etc/vsftpd/virtuser.db hash加密,账户名单文件
vim /etc/pam.d/virt ##指定文件名任意
vim /etc/vsftpd/vsftpd.conf ##往配置文件里加