基于linux系统下的ftp服务
http 超文本传输
ftp 文件传输
部署ftp服务
报错解析
500 文件系统权限过大
530 用户认证失败
550 服务本地功能未开放
553 本地系统权限过小
服务端
yum install vsftpd -y
systemctl start vsftpd
systemctl enable vsftpd
firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload
客户端
yum install lftp
lftp 172.25.254.209
ls
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES 匿名用户是否可以登陆(用真机作客户端)
local_enable=YES
本地用户
local_enable=YES|NO ##本地用户是否可以登陆
write_enable=YES|NO ##ftp是否对本地用户可写
赋予匿名用户权力进行操作
vim /etc/vsftpd/vsftpd.conf(对本地用户和匿名用户权利的赋予都在这个文件里执行)
systemctl restart vsftpd
匿名用户上传wtite_enable=YES
anon_upload_enable=YES
chgrp ftp /var/ftp/pub
chmod 775 /var/ftp/pub
anon_root=/direcotry
匿名用户建立目录
anon_mkdir_write_enable=YES|NO
_
anon_world_readable_only=YES|NO 参数为no表示用户可以下载
匿名用户删除
anon_other_write_enable=YES|NO
匿名用户使用的用户身份修改
chown_uploads=YES
chown_username=student
最大上传速率
anon_max_rate=102400
local_umask=077
匿名用户默认上传权限
anon_umask=022(umask为子网掩码,为空闲权限,内核占用111权限,文件真实权限为777-111-子网掩码权限)
限制本地用户浏览/目录(所有用户被所锁定在家目录中)
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/vsftpd.conf
vim /etc/vsftpd/user_list(用户默认不能登陆,可更改为白名单)
vim /etc/vsftpd/ftpusers(黑名单的建立,优先级高于use_list,黑白名单冲突,则ftpusers的优先级高)
用户白名单的设定
userlist_enable=YESuserlist_deny=NO
/etc/vsftpd/user_list 此名单变为白名单,出现名字的用户可以登陆
ftp虚拟用户的设定
第一步:设置虚拟用户
vim /etc/vsftpd/studentfile
ftpuser1
123
ftpuser2
123
ftpuser3
123退出保存
db_load -T -t hash -f /etc/vsftpd/studentfile /etc/vsftpd/studentfile.db 对文件进行加密
使用 file userdb对加密文件类型进行查看
第二步:指定认证方式
vim /etc/pam.d/student
account required(必须通过否则拒绝) pam_userdb.so db=/etc/vsftpd/studentfile.db
auth required pam_userdb.so db=/tc/studentfile.db
第三步:改变ftp配置文件
pam_service_name=student
guest_enable=YES
虚拟帐号用户指定家目录
guest_username=ftp
chmod u-w /home/ftpuser
虚拟帐号家目录独立设定
vim /etc/vsftpd/vsftpd.conf
local_sub_token=$USER
mkdir /ftpuserhome
mkdir /ftpuserhome/ftpuser{1..3}
touch /ftpuserhome/ftpuser1/ftpuserfile1}
chgrp ftp /ftpuserhome
chmod g+s /ftpuserhome
lftp 172.25.254.209 -u ftpuser1(用户名需要和家目录名保持一致)
虚拟帐号配置独立
vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/userconf
mkdir -p /etc/vsftpd/userconf
vim /etc/vsftpd/userconf/ftpuser1
vim /etc/vsftpd/userconf/ftpuser2
vim /etc/vsftpd/userconf/ftpuser3
mkdir /ftpuserhome/ftpuser{1..3}/pub
chgrp ftp /ftpuserhome/ftpuser{1..3}/pub
chmod 775 /ftpuserhome/ftpuser{1..3}/pub
验证lftp 172.25.254.209 -u ftpuser1
cd /pub
put /etc/passwd (首先保证之前此用户没有上传passwd文件)