ftp的定义:FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。
一.配置FTP
虚拟机中关闭selinux
vim /etc/sysconfig/selinux
SELINUX=disabled
1.ftp的启用
yum install vsftpd
systemctl start vsftpd
systemctl enable vsftpd
firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload
ftp://172.25.254.224 ##浏览器中打开配置成功。
二.ftp的基本信息
netstat -antlupe | grep vsftpd
访问的数据端口:21
数据传输端口:>1024随机端口
默认发布目录:/var/ftp
访问方式:
匿名登陆:
lftp 172.25.254.224 ##匿名登陆 ------> /ver/ftp
密码登陆
lftp 172.25.254.224 -u student ##用户登陆 ---->/home/student
配置文件:
vim /etc/vsftpd/vsftpd.conf
三.ftp的安全部署
修改配置文件必须重启
systemctl restart vsftpd
500 权限过大
530 标识认证失败
550 标识服务本身不让做
anonymous_enable=YES ##匿名用户是否可以登陆
local_enable=YES ##本地用户是否可以登陆
write_enable=YES ##本地用户是否可写
四.匿名用户
匿名用户可上传
chmod 775 /var/ftp/pub
chgrp ftp /var/ftp/pub
vim /etc/vsftpd/vsftpd.conf
29行anonymous_enable=YES
systemctl restart vsftpd
root用户登录 cd /pub
put file 上传成功
匿名用户可下载(下载没有)
vim /etc/vsftpd/vsftpd.conf
anon_world_readable_only=NO
systemctl restart vsftpd
匿名用户新建目录
vim /etc/vsftpd/vsftpd.conf 34行
anon_mkdir_write_enable=YES
systemctl restart vsftpd
匿名用户删除,重命名,移动
vim /etc/vsftpd/vsftpd.conf
anon_other_write_enable=YES
匿名用户家目录修改
anon_root=/westos
匿名用户使用用户的身份修改即以用户student的身份登陆,上传文件的组id为1000
chown_uploads=YES
chown_username=student
最大上传速率
anon_max_rate=102400 ##上传速率100kb/s 单位是字节
最大用户数:
max_clients=10
五.本地用户
本地用户上传文件权限
local umask =xxx
local_umask=033 ##文件默认权限为644
本地用户家目录修改
local_root=/directory
限制本地用户浏览/目录
所有本地用户被锁定到自己的家目录中
chroot_local_user=YES
chmod u-w /home/*
用户黑名单建立
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
将student加入临时黑名单
ftpusers 永久黑名单,user_list 临时黑名单
vim /etc/vsftpd/ftpusers ##用户黑名单
vim /etc/vsftpd/user_list ##用户临时黑名单
用户白名单建立:
chroot_local_user=YSE
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
用户白名单设定:
userlist_deny=NO 拒绝默认用户,(拒绝功能关掉就是允许),在名单里可登陆,白名单
vim /etc/vsftpd/user_list
'
将student加入白名单
student可以登陆,tom不能登陆
六.ftp虚拟用户的设定
vim /etc/vsftpd/westosfile ##文件名称任意
user1
123
user2
123
user3
123
db_load -T -t hash -f /etc/vsftpd/westosfile /etc/vsftpd/westosfile.db 加密
file /etc/vsftpd/westosfile.db ##查看是否加密
vim /etc/pam.d/westos ##文件名称任意
account required pam_userdb.so db=/etc/vsftpd/westosfile
auth required pam_userdb.so db=/etc/vsftpd/westosfile
vim /etc/vsftpd/vsftpd.conf
pam_service_name=westos##pam读取虚拟用户文件westos
guest_enable=YES ##开启虚拟用户登陆
虚拟帐号身份指定:
guest_username=ftp ##使虚拟用户以ftp映射用户登陆
systemctl restart vsftpd
使用虚拟帐号user1可以登陆上去
虚拟帐号家目录独立设定
vim /etc/vsftpd/vsftpd.conf
local_root=/ftphome/$USER
user_sub_token=$USER
mkdir /ftphome/user1/user1dir -p
mkdir /ftphome/user2/user2dir -p
systemctl restart vsftpd
虚拟帐号配置独立
chgrp ftp /ftphome -R
chmod 775 /ftphome/user1/user1dir
chmod 775 /ftphome/user2/user2dir
vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/userconf ##userconf 目录中的文件相当于“VIP名单”
在/etc/vsftpd/userconf目录下建立文件,以虚拟用户名命名
mkdir useconf
touch userconf/user1
vim userconf/user1
anon_upload_enable=YES
在/etc/vsftpd/userconf目录下建立文件,以虚拟用户名命名
重启vsftpd服务
user1可以有权利建立目录,user2不行