一. ftp
ftp即文件传输,它是INTERNET上仍然常用的最老的网络协议之一,它为系统提供了通过网络与远程服务器传输的简单方法,FTP服务器包的名称为vsftpd
二. 部署ftp服务
1. 安装ftp
yum install -y vsftpd #安装vsftpd软件包
systemctl start vsftpd
systemctl enable vsftpd
firewall-cmd --permanent --add-service=ftp #部署火墙策略
firewall-cmd --reload
firewall-cmd --list-all
yum install -y lftp #客户端安装lftp
2.部署ftp
vim /etc/sysconfig/selinux #SELINUX=disabled
reboot #使策略生效
/var/ftp/pub ##默认发布目录
/etc/vsftpd/vsftpd.service ##配置目录
注:配置目录修改完需要重启服务-----systemctl restart vsftpd.service 让修改配置生效
三. vsftpd服务的配置参数
1. 匿名用户设定
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES|NO #匿名用户限制登陆
systemctl restart vsftpd.service
1> 匿名用户上传
vim /etc/vsftpd/vsftpd.conf
write_enable=YES #可写
anon_upload_enable=YES #匿名用户可上传
systemctl restart vsftpd.service
chgrp ftp /var/ftp/pub
chmod 775 /var/ftp/pub
2> 匿名用户家目录修改
anon_root=/westos #匿名用户修改家目录为westos
3> 匿名用户上传文件默认权限修改
anon_umask=022 #修改匿名用户上传权限为022
3> 匿名用户建立目录
anon_mkdir_write_enable=YES #匿名用户创建目录
4>匿名用户下载
anon_world_readable_only=YES|NO #设定参数值为no表示匿名用户可以下载
5> 匿名用户删除
anon_other_write_enable=YES|NO #匿名用户是否可以删除
6> 匿名用户使用的用户身份修改
chown_uploads=YES #修改上传信息
chown_username=student #修改所有人为student
7> 最大上传速率
anon_max_rate=204800 #设定最大上传速率
8> 最大链接数
max_clients=1 #设定最大链接数
2. 本地用户设定
vim /etc/vsftpd/vsftpd.conf
local_enable=YES|NO #本地用户登陆限制
write_enable=YES|NO #本地用户写权限限制
systemctl restart vsftpd.service
1> 本地用户家目录修改
local_root=/westos #修改本地用户家目录
2> 本地用户上传文件权限
local_umask=022 #修改本地用户上传文件权限
3> 限制本地用户浏览/目录
chroot_local_user=YES
chmod u-w /home/*
3. 本地用户黑白名单的设定
1> 用户黑名单建立
vim /etc/vsftpd/vsftpd.conf
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
vim /etc/vsftpd/chroot_list #列出黑名单用户
systemctl restart vsftpd.service
2> 用户白名单建立
vim /etc/vsftpd/vsftpd.conf
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list #列出白名单用户
vim /etc/vsftpd/vsftpd.conf
3> 限制本地用户登陆
vim /etc/vsftpd/ftpusers #用户黑名单
vim /etc/vsftpd/user_list #用户临时黑名单
4> 用户白名单的设定
userlist_deny=NO #vim /etc/vsftpd/vsftpd.conf 修改参数
/etc/vsftpd/user_list #参数设定,此文件变成用户白名单,只在名单中出现的用户可以登陆ftp
三. ftp虚拟用户的设定
1. 创建虚拟帐号身份
vim /etc/vsftpd/westos #创建虚拟帐号身份文件
ftpuser1
123
ftpuser2
123
ftpuser3
123
2. 加密虚拟帐号身份文件
db_load -T -t hash -f /etc/vsftpd/westos westos.db
3. 虚拟帐号身份认证
vim /etc/pam.d/westos
4. 虚拟帐号身份配置
vim /etc/vsftpd/vsftpd.conf
pam_service_name=westos #指定pam配置文件
guest_enable=YES #启用虚拟帐号支持
guest_username=ftp #映射虚拟帐号身份
chmod u-w /home/ftp
5. 虚拟帐号家目录独立设定
vim /etc/vsftpd/vsftpd.conf
local_root=/ftpusers/$USER #指定虚拟帐号家目录
user_sub_token=$USER
mkdir /ftpusers
chgrp ftpuser /ftpusers
chmod g+s /ftpusers
mkdir /ftpusers/ftpuser{1..3}
6. 虚拟帐号配置独立
vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/userconf
mkdir -p /etc/vsftpd/userconf
vim /etc/vsftpd/userconf/ftpuser1 #在此文件中设定配置文件中的所有参数,此文件的优先级高
注:lftp中遇到的提示答疑
500:权力过大
530:认证失败
550:无写权限
553:权限问题