Linux中ftp服务

1.ftp的启用

环境配置

vim /etc/sysconfig/selinux ##修改配置文件,将SELINUX改为disabled。然后重启虚拟机
这里写图片描述

yum install vsftpd                 ##下载服务
systemctl start vsftpd             ##启动服务   
systemctl enable vsftpd            ##设定服务开机自启动
firewall-cmd --permanent --add-service=ftp  ##设置火墙
firewall-cmd --reload              ##重启

这里写图片描述

2.ftp的基本信息

访问数据端口:21
数据传输端口:大于1024的随机端口

默认发布目录:/var/ftp/
访问方式

lftp 172.25.254.115             ##匿名登陆,默认目录/var/ftp
lftp 172.25.254.115 -u student  ##用户登录,默认目录/home/student

配置文件:
/etc/vsftpd/vsftpd.conf

3.ftp访问的基本设定

匿名用户登陆
vim /etc/vsftpd/vsftpd.conf    ##修改配置文件
anonymous_enable=YES|NO        ##匿名用户是否可以登陆(YES可以登陆,NO不能登陆)
注意:每次修改完配置文件后都需重启服务

这里写图片描述
这里写图片描述

本地用户登陆
vim /etc/vsftpd/vsftpd.conf
local_enable=YES|NO       ##本地用户是否可以登陆(YES可以登陆,NO不能)

这里写图片描述
这里写图片描述

本地用户可写
vim /etc/vsftpd/vsftpd.conf
write_enable=YES|NO        ##本地用户是否可写

这里写图片描述
这里写图片描述

匿名用户上传
chmod 775 /var/ftp/pub
chgrp ftp /var/ftp/pub     ##上传之前需更改pub目录的权限和所在组
vim /etc/vsftpd/vsftpd.conf
anon_upload_enable=YES     ##匿名用户可以上传

这里写图片描述
这里写图片描述

匿名用户下载
vim /etc/vsftpd/vsftpd.conf
anon_world_readable_only=NO   

这里写图片描述
这里写图片描述

匿名用户建立目录,删除和重命名
vim /etc/vsftpd/vsftpd.conf
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

这里写图片描述
这里写图片描述

匿名用户家目录修改
vim /etc/vsftpd/vsftpd.conf
anon_root=/westos

这里写图片描述
这里写图片描述

匿名用户上传文件默认权限修改
vim /etc/vsftpd/vsftpd.conf
anon_umask=022

这里写图片描述
这里写图片描述

最大上传速率
dd if=/dev/zero of=file bs=1M count=1000  ##建立一个1G 的文件
vim /etc/vsftpd/vsftpd.conf
anon_max_rate=102400(单位:字节byte)

先建立一个1G的文件
可以看出在不限制上传速度时,上传速度大概60M,当限制最大上传速度为100K了之后,速度大概为100K左右
这里写图片描述
这里写图片描述

最大连接数
max_clients=1        ##最大连接数为1

这里写图片描述
这里写图片描述

匿名用户使用的用户身份修改
chown_uploads=YES
chown_username=student

这里写图片描述

本地用户家目录修改
local_root=/dir

这里写图片描述
这里写图片描述

本地用户上传文件权限
local_umask=077      ##本地用户上传文件权限为600

这里写图片描述

限制本地用户浏览/目录

当没限制时,本地用户可以切到/看到根目录下的所有东西
这里写图片描述
所有用户被锁定到自己家目录中

chroot_local_user=YES
chmod u-w /home/*     ##减小家目录权限,不然会因权限过大报错

这里写图片描述
用户只能查看自己家目录中的文件

本地用户访问黑名单建立

chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot.list
这里写图片描述
由于chroot.list文件不存在,所以要手动建立此文件。并在文件中写入用户
这里写图片描述
可以看到用户只能访问自己的家目录i

本地用户访问白名单建立

chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot.list
这里写图片描述
当chroot_local_user改为YES时,此时写在/etc/vsftpd/chroot_list下的为白名单,仍然将student写入此文件中
此时用户又可以访问/目录了

用户登陆黑名单设定

vim /etc/vsftpd/ftpusers       ##用户黑名单
vim /etc/vsftpd/user_list      ##用户临时黑名单
这里写图片描述
这里写图片描述

用户登陆白名单设定

vim /etc/vsftpd/vsftpd.conf
userlist_deny=NO
/etc/vsftpd/user_list  ##参数设定,此文件变成用户白名单,只在名单中出现的用户可以登陆ftp
这里写图片描述
这里写图片描述

4.ftp虚拟用户的设定

创建虚拟帐号身份

vim /etc/vsftpd/westosfile    ##文件名称任意
user1                         ##用户帐号
123                           ##密码
user2                         ##用户帐号
123                           ##密码
user3                         ##用户帐号
123                           ##密码

这里写图片描述

db_load -T -t hash -f /etc/vsftpd/westosfile /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
guest_enable=YES 
pam_service_name=westos     
guest_username=student      ##用student身份登陆

这里写图片描述
当使用虚拟账户登陆时发现进去后是student家目录
这里写图片描述

虚拟帐号家目录独立设定
vim /etc/vsftpd/vsftpd.conf
local_root=/ftphome/$USER
user_sub_token=$USER

这里写图片描述
建立虚拟用户家目录

mkdir /ftphome/user1/user1dir -p
mkdir /ftphome/user2/user2dir -p
mkdir /ftphome/user3/user3dir -p

这里写图片描述

虚拟帐号配置独立
chgrp ftp /ftphome/ -R
chmod 775 /ftphome/user1/user1dir
chmod 775 /ftphome/user2/user2dir
mkdir -p /etc/vsftpd/userconf   ##名称任意

这里写图片描述

vim /etc/vsftpd/vsftpd.conf

在配置文件中写入 user_config_dir=/etc/vsftpd/userconf
注意此处userconf需与上一步所建立的目录名称一致
这里写图片描述
vim /etc/vdftpd/userconf/user1
在此文件中设定配置文件中的所有参数,此文件的优先级高
这里写图片描述
此时user1具有上传及删除功能
这里写图片描述

5.ftp常见报错

530 报错表示认证失败
550 服务本身不允许这样做
500 权限过大
553 服务器上的文件系统不允许

猜你喜欢

转载自blog.csdn.net/qq657886445/article/details/81412874