基于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
基于linux系统下的ftp服务
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

基于linux系统下的ftp服务

匿名用户家目录的修改
anon_root=/direcotry
匿名用户建立目录
anon_mkdir_write_enable=YES|NO


_基于linux系统下的ftp服务

anon_world_readable_only=YES|NO 参数为no表示用户可以下载

匿名用户删除
anon_other_write_enable=YES|NO
匿名用户使用的用户身份修改
chown_uploads=YES
chown_username=student
最大上传速率

anon_max_rate=102400

基于linux系统下的ftp服务


本地用户默认上传权限
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的优先级高)

基于linux系统下的ftp服务

用户白名单的设定

userlist_enable=YES
userlist_deny=NO
/etc/vsftpd/user_list 
此名单变为白名单,出现名字的用户可以登陆
基于linux系统下的ftp服务
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文件)