FTP定义
FTP(File Transfer Protocol)文件传输协议,是TCP/IP协议组中的协议之一。用于Internet上文件的双向传输。用户可以通过连接FTP去上传本机文件到服务端或者在服务端下载文件。
####ftp服务部署
- 服务端(172.25.254.215)安装软件,vsftpd:安全型服务器包
yum install vsftpd -y
systemctl start vsftpd ###开启ftp服务
systemctl enable vsftpd ###设置开机启动
- 开启防火墙,允许ftp服务通过防火墙
firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload
- 设置selinux=disabled 这里编辑/etc/sysconfig/selinux
系统重启检测selinux状态为Disabled
配置好后,我们用主机ip(172.25.254.55)测试
用户登录设置
配置文件vim /etc/vsftpd/vsftpd.conf
- 匿名用户登陆
anonymous_enable=YES ###允许匿名用户登陆
anonymous_enable=NO ###禁止匿名用户登陆
- 匿名用户上传
write_enable=YES
anon_upload_enable=YES
修改/var/ftp/pub的文件权限和用户组
chgrp ftp /var/ftp/pub
chmod g+w /var/ftp/pub
- 匿名用户家目录修改
anon_root=/directory
- 匿名用户上传文件默认权限修改
anon_umask=022
- 匿名用户建立目录
anon_mkdir_write_enable=NO ###禁止匿名用户建立目录
anon_mkdir_write_enable=YES ###允许匿名用户建立目录
- 匿名用户下载
anon_world_readable_only=NO ###允许匿名用户下载
anon_world_readable_only=YES ###禁止匿名用户下载
- 匿名用户删除
anon_other_write_enable=NO ###禁止匿名用户删除
anon_other_write_enable=YES ###允许匿名用户删除
- 匿名用户使用用户身份修改
chown_uploads=YES
chown_username=syf
chown_upload_mode=0644
用户syf的uid为1000
匿名用户登录后上传文件是使用用户syf身份上传
- 上传速率设定
anon_max_rate=102400
在没有设置最大速率时,我们上传一个1000M大小文件观测上传速率为265.11M/s
在设置最大速度100k/s左右时,观测上传速率仅仅只有145.5K/s
- 最大链接数,设置可同时访问的用户数量
max_clients=xxx
这里设置最大访问用户为2个,可以看到当第三个用户访问时,进入等待,其他用户退出后,方可连接。
- 本地用户登陆
local_enable=YES ###允许本地用户登陆
local_enable=NO ###禁止本地用户登陆
- 本地用户权限限定
write_enable=YES ###允许
- 所有用户被锁定在自己的家目录中
chroot_local_user=YES
chmod u-w /home/*
本地用户登陆后,只能被锁定在家目录中
未锁定前,
锁定后本地用户在自己家目录下,并且不能切换到根目录
用户黑名单的建立
chroot_local_user=NO
chroot_list_enable=YES
chroot_list file=/etc/vsftpd/chroot list
创建 文件/etc/chroot_list添加用户syf 到黑名单 该用户不可以切到根目录。
用户白名单的建立
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
添加用户syf在白名单,登陆后可切换到根目录
限定本地用户登陆
vim /etc/vsftpd/ftpusers ###用户黑名单
vim /etc/vsftpd/user_list ###临时用户黑名单
将syf用户添加到黑名单,该用户不能登陆
用户白名单设定
userlist_deny=NO
/etc/vsftpd/user_list ###在该配置文件添加用户白名单,只有该白名单中的用户可以登陆ftp,其他用户不可登陆