FTP ( 文件传输协议 ) 是 INTERNET 上仍常用的最老的网络协议之一 , 它为系统提供了通过网络与远程服务器进行传输的简单方法
• 在 RED HAT ENTREPRISE LINUX 6 中。FTP服务器包的名称为VSFTPD,它代表Very Secure File Transfer Protocol Damon 服务器名称也叫做 vsftpd
• 默认配置文件让ANONYMOUS用户只能下载位于CHROOT目录中的内容./var/ftp/这意味着远程FTP客户端能以用户anonymous(匿名)或ftp身份连接到服务器(无需密码),并从ftp服务器上的/var/ftp/目录下载文件(其本地ftp用户可以读取这些文件)
yum install vsftpd -y ##安装软件
systemctl start vsftpd ##开启vsftpd服务
systemctl enable vsftpd ##开机自启动
setenforce 0 ##设置selinux
/var/ftp ##默认的发布目录
/etc/vsftpd ##配置目录
/etc/vsftpd/vsftpd.conf ##配置文件
Anonymous_enable=YES|NO ##匿名用户登陆限制
write_enable=YES
anon_upload_enable=YES ##匿名用户上传
Anon_root=/test ##匿名用户家目录修改
anon_umask=755 ##匿名用户上传文件默认权限修改
anon_mkdir_write_enable=YES|NO ##匿名用户建立目录
anon_world_readable_only=YES|NO ##匿名用户下载
##参数为NO,表示用户可以下载
参数为YES,且文件其他用户没有读权限,则匿名 用户不能下载。
参数为YES,且目录其他用户没有读权限,则匿名 用户访问目录时,目录为空。
注:即使文件或者目录的所有人和所有组用户为匿名 用户,参数为YES的情况仍成立
Access failed :550 服务不允许,因为配置文件已经 修改生效(anon_world_readable_only=YES)
anon_other_write_enable=YES|NO ##匿名用户删除
chown_uploads=YES ##匿名用户登陆使用的用户身份
chown_username=student ##上传的passwd文件所有者变为student
anon_max_rate=102400 (100K) ##最大上传速率
max_clients=2 ##最大连接2个客户端
local_enable=YES|NO ##本地用户登陆权限
Write_enable=YES|NO ##本地用户写权限限制
Local_root=/directory ##本地用户家目录修改
local_umask=022 ##本地用户上传文件权限
chroot_local_user=YES ##限制本地用户浏览/目录
chmod u-w /home/* ##所有用户被锁定到自己的家目录中
用户被锁定到家目录的黑名单建立
Chroot_local_user=NO
Chroot_list_enable=YES
Chroot_list_file=/etc/vsftpd/chroot_list
用户被锁定到家目录的白名单建立
Chroot_local_user=YES
Chroot_list_enable=YES
Chroot_list_file=/etc/vsftpd/chroot_list
限制本地用户登陆
vim /etc/vsftpd/ftpusers ##用户黑名单
vim /etc/vsftpd/user_list ##用户临时黑名单
本地用户白名单设定
userlist_deny=NO (配置文件)
/etc/vsftpd/user_list ##此文件因为参数设定变为白名 单,只有名单中的用户可以登陆ftp
创建虚拟帐号身份
vim /etc/vsftpd/loginusers
ftpuser1
123
ftpuser2
123
ftpuser3
123
在当前文件夹生成加密文件
db_load -T -t hash -f /etc/vsftpd/loginusers loginusers.db
生成验证登陆配置文件
vim /etc/pam.d/ckvsftpd ##文件名任意
account required pam_userdb.so db=/etc/vsftpd/loginusers
auth required pam_userdb.so db=/etc/vsftpd/loginusers
编写vsftpd配置
vim /etc/vsftpd/vsftpd.conf
pam_service_name=ckvsftpd
guest_enable=YES
guset_username=ftp
虚拟帐号登陆使用身份指定
Useradd ftpuser
guset_username=ftpuser
mkdir /home/ftpuser/pub
chmod u-w /home/ftpuser
虚拟帐号家目录独立设定
vim /etc/vsftpd/vsftpd.conf
local_root=/ftpuserhome/$USER
user_sub_token=$USER
mkdir /ftpuserhome
chgrp ftpuser /ftpuserhome
chmod g+s /ftpuserhome
mkdir /ftpuserhome/ftpuser{1..3}
虚拟帐号配置独立
vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/userconf
mkdir -p /etc/vsftpd/userconf
vim /etc/vsftpd/userconf/ftpuser1
在此文件中设定配置文件中的所有参数,此文件的优先级高