一、什么是ftp服务

1.ftp定义:ftp是一种文件传输协议,该协议是internet文件传输的基础,它由一系列规格文档组成,目标是提高文件的共享性,提供非直接使用远程计算机,使存储介质对用户透明和可靠高效的传送数据。FTP是完成两台计算机之间的拷贝即上传与下载。

2.ftp的启用
yum install vsftpd

Linux下的ftp服务

Linux下的ftp服务
systemctl start vsftpd
systemctl enable vsftpd

firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload

Linux下的ftp服务

修改内核极限制文件    vim /etc/sysconfig/selinux

Linux下的ftp服务

编写完成后需进行虚拟机重启

Linux下的ftp服务

检查状态

Linux下的ftp服务

3.测试:ftp://172.25.254.142

Linux下的ftp服务

注:默认发布目录: /var/ftp
访问方式
            lftp 172.25.254.142                  ##匿名登录     ---> /var/ftp
            lftp 172.25.254.142 -u student  ##用户登录      ---> /home/student

二、用户登陆

1.匿名登陆

Linux下的ftp服务

2.本地用户登陆

Linux下的ftp服务

3.ftp的安全部署
anonymous_enable=YES|NO      ##匿名用户是否可以登录
local_enable=YES|NO                ##本地用户是否可以登录
write_enable=YES|NO                ##本地用户是否可写

注:设置anonymous_enable=NO 重启vsftpd服务,则真机无法登陆,本地用户student输入密码可以登陆

Linux下的ftp服务

真机无法登陆

Linux下的ftp服务

本地用户正常登陆

Linux下的ftp服务

4.本地用户读写

是否允许读写

write_enable=YES

write_enable=NO

允许读写

Linux下的ftp服务

Linux下的ftp服务

三、匿名用户上传文件权限

chmod 775 /var/ftp/pub
chgrp ftp /var/ftp/pub

vim /etc/vsftpd/vsftpd.conf
anon_upload_enable=YES

systemctl restart vsftpd

Linux下的ftp服务

Linux下的ftp服务

实验效果:

Linux下的ftp服务

 

1.匿名用户可下载

vim /etc/vsftpd/vsftpd.conf
anon_world_readable_only=NO

Linux下的ftp服务

实验效果:

Linux下的ftp服务

 

2.匿名用户建立目录

vim /etc/vsftpd/vsftpd.conf
anon_mkdir_write_enable=YES

Linux下的ftp服务

实验效果:

Linux下的ftp服务

3.匿名用户是否可以删除和重命名

vim /etc/vsftpd/vsftpd.conf

anon_other_write_enable=YES

Linux下的ftp服务

实验效果:

Linux下的ftp服务

 

四、用户家目录的修改

1.首先建立/westos目录并建立文件方便查询

Linux下的ftp服务
anon_root=/westos         匿名用户家目录的修改,匿名用户再次进入时,则是/westos目录

Linux下的ftp服务

编写完命令配置,需从启vsftpd服务

Linux下的ftp服务

实验效果:

Linux下的ftp服务

 

2.local_root=/westos          本地用户家目录的修改,本地用户再次进入时,则是/westos目录

Linux下的ftp服务

实验效果:

Linux下的ftp服务

3.匿名用户上传文件默认权限修改
anon_umask=xxx

Linux下的ftp服务

Linux下的ftp服务

 

注:匿名用户使用的用户身份修改,即以用户student的身份登陆

注:student用户id为1000,此时可以看到上传的文件组id为1000

chown_uploads=YES
chown_username=student

Linux下的ftp服务

Linux下的ftp服务

4.最大上传速率
anon_max_rate=102400

Linux下的ftp服务

Linux下的ftp服务

5.最大链接数
max_clients=6

当超过链接数6时,需等待当有人退出时,下一个方链接

Linux下的ftp服务

五、限制本地用户浏览/目录


所有用户被锁定到自己的家目录中
chroot_local_user=YES
chmod u-w /home/*                    ##权限过大,所以减小家目录下的权限,保护安全不让访问

当没有限制本地用户浏览时,本地用户可以浏览根目录

Linux下的ftp服务

进行限制

Linux下的ftp服务

修改家目录权限

Linux下的ftp服务

进行限制后的效果,本地用户无法访问根目录下的文件

Linux下的ftp服务

 

六、用户黑白名单建立

 

1.用户白名单建立
chroot_local_user=YES                                 ##当锁定用户家目录时,/etc/vsftpd/chroot_list为白名单
chroot_list_enable=YES                                ##开启黑/白名单
chroot_list_file=/etc/vsftpd/chroot_list            ##列表文件为/etc/vsftpd/chroot_list 

注:/etc/vsftpd/chroot_list文件本身不存在,需要建立

Linux下的ftp服务

vim /etc/vsftpd/vsftpd.conf进入文件编写

Linux下的ftp服务

vim  /etc/vsftpd/chroot_list  向白名单中添加用户

Linux下的ftp服务

实验效果,student用户不再被限制,可以访问根目录下的文件

Linux下的ftp服务

 

 

2.用户黑名单建立                                             
chroot_local_user=NO                                   ##当不锁定用户家目录时,/etc/vsftpd/chroot_list为黑名单
chroot_list_enable=YES                                ##开启黑/白名单
chroot_list_file=/etc/vsftpd/chroot_list           ##列表文件为/etc/vsftpd/chroot_list 

 

vim /etc/vsftpd/vsftpd.conf进入文件编写

Linux下的ftp服务

vim  /etc/vsftpd/chroot_list  向白名单中添加用户

Linux下的ftp服务

实验效果,student用户被加入黑名单,因此不能访问根目录下的文件

Linux下的ftp服务

 

七、建立虚拟用户

 

在/etc/vsftpd/下建立userfile,并进行加密,-T(新建文件),-t(加密格式),-f(加密文件)

Linux下的ftp服务

加密后查看,为此状态

Linux下的ftp服务

1.虚拟帐号身份指定

pam_service_name=编写pam文件的名称

Linux下的ftp服务

修改配置文件

Linux下的ftp服务

Linux下的ftp服务

auth(表示密码)   account(表示用户)

Linux下的ftp服务

完成后进行登陆

Linux下的ftp服务

2.虚拟帐号家目录独立设定

vim /etc/vsftpd/vsftpd.conf
local_root=/ftphome/$USER
user_sub_token=$USER

Linux下的ftp服务

mkdir /ftphome/ftpuser1/user1dir -p
mkdir /ftphome/ftpuser2/user2dir -p

Linux下的ftp服务

Linux下的ftp服务

实验效果

Linux下的ftp服务

八、虚拟帐号配置独立


vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/userconf

Linux下的ftp服务

Linux下的ftp服务

加入想要赋予功能:

Linux下的ftp服务

Linux下的ftp服务

实验效果:

Linux下的ftp服务

注:常见报错

530:认证失败

550:程序本身不允许

553:服务器上的文件系统不允许写入

500:权限过大

 

相关文章: