在linux上搭建ftp服务器及其配置

一、ftp
文件传输协议(英文:File Transfer Protocol,缩写:FTP)是用于在网络上进行文件传输的一套标准协议,使用客户/服务器模式。它属于网络传输协议的应用层。文件传送(file transfer)和文件访问(file access)之间的区别在于:前者由FTP提供,后者由如NFS等应用系统提供。
FTP是一个8位的客户端-服务器协议,能操作任何类型的文件而不需要进一步处理,就像MIME或Unicode一样。但是,FTP有着极高的延时,这意味着,从开始请求到第一次接收需求数据之间的时间,会非常长;并且不时的必须执行一些冗长的登录进程

连接时部分报错
500 文件系统权限过大
530 用户认证失败
550 服务本身功能未开放
553 本地文件系统权限过小

二、部署ftp服务
在服务端部署

vim /etc/sysconfig/selinux		##关闭selinux

 SELINUX=disabled		##更改第七行为disable

在这里插入图片描述

   reboot    更改完后须重启

getenforce				##查看selinux状态

在这里插入图片描述

yum install vsftpd lftp -y   下载ftp的服务端和客户端

在这里插入图片描述
在这里插入图片描述

systemctl start vsftpd 						##打开vsftp服务
systemctl start firewalld					##打开防火墙
firewall-cmd --permanent --add-service=ftp	##允许ftp通过防火墙
systemctl restart firewalld                   重启防火墙

在这里插入图片描述

在这里插入图片描述

firewall-config			##用图形更改防火墙设置

在这里插入图片描述

firewall-cmd --list-all		##查看防火墙状态

在这里插入图片描述

在客户端进行
##连接ftp服务器
在这里插入图片描述

在其中能使用命令则说明部署ftp服务成功

三、ftp配置文件

vim /etc/vsftpd/vsftpd.conf			##编辑ftp配置文件
*systemctl restart vsftpd.service  ##编辑完需要重启

Ⅰ.匿名用户的设定
1.匿名用户和本地用户的登陆限制

vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES/NO	匿名用户是否可以登陆
systemctl restart vsftpd.service  重启

在这里插入图片描述

2.匿名用户上传

    vim /etc/vsftpd/vsftpd.conf	
    write_enable=YES/NO	ftp是否对登陆用户可写,即上传、下载、创建等功能的总开关
    anon_upload_enable=YES/NO	允许匿名用户是否可以上传

在这里插入图片描述

   systemctl restart vsftpd	##重启vsftpd服务
    chgrp ftp /var/ftp/pub		##更改该文件组为ftp
    chmod 775 /var/ftp/pub		##允许该文件被ftp组可读可写/

在这里插入图片描述
测试:
在这里插入图片描述

注:上传命令是put

3.匿名用户家目录修改

vim /etc/vsftpd/vsftpd.conf	
anon_root=/directory	该目录即是匿名用户登陆时进入的目录
systemctl restart vsftpd	##重启vsftpd服务

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4.匿名用户上传文件默认权限修改

anon_umask=022	匿名用户新增文件时系统保留的权限为022
systemctl restart vsftpd.service  重启

在这里插入图片描述
测试:
在这里插入图片描述
由于系统对文件保留执行权限,所以文件最后的权限为644

5.匿名用户建立目录

anon_mkdir_write_enable=YES/NO

默认在33行(可能会有浮动),匿名用户是否可以创建目录
systemctl restart vsftpd.service  重启

在这里插入图片描述
测试:
在这里插入图片描述

6.匿名用户下载

anon_world_readable_only=YES/NO	设定参数值为NO表示匿名用户可以下载
    systemctl restart vsftpd.service  重启

在这里插入图片描述
注:下载命令是get,下载的文件会保存在进入lftp时所在的路径下
测试:
在这里插入图片描述

7.匿名用户删除

anon_other_write_enable=YES/NO	匿名用户是否可以删除文件
 systemctl restart vsftpd.service  重启

在这里插入图片描述

8.匿名用户使用的用户身份修改及最大上传速率和最大链接数
参数 解释

chown_uploads=YES	默认在48行(有浮动),所有匿名上传的文件的所属用户将会被更改成chown_username
chown_username=redhat	默认在49行(有浮动),匿名用户身份指定,必须是服务端已有的用户
anon_max_rate=102400	最大上传速率,单位为bit
max_clients=1	允许同时有1个用户登陆该ftp服务器
     systemctl restart vsftpd.service  重启

在这里插入图片描述
测试:
在这里插入图片描述
在这里插入图片描述

Ⅱ.本地用户设定
1.本地用户登陆

local_enable=YES/NO	本地用户是否可以登陆
     systemctl restart vsftpd.service  重启

在这里插入图片描述
在这里插入图片描述
2.本地用户家目录修改

local_root=/directory	家目录的用户权限应没有写的权限
 systemctl restart vsftpd.service  重启
chmod u-w /mnt/mnlu

测试:
在这里插入图片描述

3.本地用户上传文件权限

local_umask=022	本地用户新增文件时系统保留的权限为022
     systemctl restart vsftpd.service  重启

在这里插入图片描述
上传得到的passwd文件权限为777-022-111=644,与结果rw-r–r–相符
测试:
在这里插入图片描述

4.限制本地用户浏览根目录

chroot_local_user=YES	默认在101行(有浮动),将所有本地用户被锁定到自己的家目录中
     systemctl restart vsftpd.service  重启
 chmod u-w /home/student/

在这里插入图片描述
在这里插入图片描述
5.本地用户黑名单建立
作用:其他用户用黑名单上的本地用户登陆ftp时,会被锁定到该本地用户的家目录中。

touch /etc/vsftpd/chroot_list	##建立黑名单
vim /etc/vsftpd/chroot_list		##在里面添加的用户不能进入根目录

在这里插入图片描述
在这里插入图片描述

chroot_local_user=NO	默认在101行(有浮动),NO表示下面的路径是黑名单
chroot_list_enable=YES	默认在102行(有浮动),YES表示开启黑白名单功能
chroot_list_file=/etc/vsftpd/chroot_list	默认在104行(有浮动),黑名单路径

在这里插入图片描述
测试:
在这里插入图片描述

6.本地用户白名单建立
作用:其他用户用白名单上的本地用户登陆ftp时,可以访问根目录

touch /etc/vsftpd/chroot_listb	##建立白名单
vim /etc/vsftpd/chroot_listb	##在里面添加的用户可以进入根目录

在这里插入图片描述

在这里插入图片描述

chroot_local_user=YES	默认在101行(有浮动),YES表示下面的路径是白名单
chroot_list_enable=YES	默认在102(有浮动)行,YES表示开启黑白名单功能
chroot_list_file=/etc/vsftpd/chroot_listb	默认在104行(有浮动),白名单路径

在这里插入图片描述
在这里插入图片描述

7.限制本地用户登陆

vim /etc/vsftpd/ftpusers      ##用户永久黑名单,只要在该名单上出现的用户不能登陆ftp服务器

在这里插入图片描述

    vim /etc/vsftpd/user_list     ##用户临时黑名单,当userlist_deny=NO出现时该名单变为白名单
    
userlist_deny=YES/NO	YES时/etc/vsftpd/user_list时黑名单,NO时/etc/vsftpd/user_list是白名单

在这里插入图片描述
在这里插入图片描述

Ⅲ.虚拟用户的设定
1.创建虚拟用户身份

vim /etc/vsftpd/westos	##新建账户名单文件,文件名任意,奇数行时帐号,偶数行是密码

在这里插入图片描述

db_load -T -t hash -f /etc/vsftpd/westos /etc/vsftpd/westos.db		##hash加密,账户名单文件

在这里插入图片描述

vim /etc/pam.d/westos ##指定文件名任意

用户或密码	 判定方式	 指向插件	 帐号文件
account	required	pam_userdb.so	db=/etc/vsftpd/westos
auth	required	pam_userdb.so	db=/etc/vsftpd/westos

在这里插入图片描述

vim /etc/vsftpd/vsftpd.conf	##更改配置文件
pam_service_name=westos	关联/etc/pam.d目录下的virt文件
guest_enable=YES	打开虚拟用户登陆
guest_username=ftp	虚拟用户登陆时用的身份
     systemctl restart vsftpd.service  重启

在这里插入图片描述
测试:
在这里插入图片描述
2.虚拟帐号独立家目录设置

mkdir -p /var/ftpuserdir/westos{1..3}	##家目录名须和虚拟账户名相同
vim /etc/vsftpd/vsftpd.conf				##更改配置文件
local_root=/var/ftpuserdir/$USER	设置用户进入时的家目录为/var/ftpuserdir/$USER, $USER表示当前用户的名字
user_sub_token=$USER	设置该配置文件识别$USER符号时使用shell里的 $USER
     systemctl restart vsftpd.service  重启

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3.虚拟帐号独立配置

 mkdir -p /etc/vsftpd/user_conf	##创建独立配置路径

在这里插入图片描述

vim /etc/vsftpd/user_conf/ftpuser1

再次2文件中设定配置文件中的所有参数。此文件优先级高
在这里插入图片描述

vim /etc/vsftpd/vsftpd.conf			##更改配置文件

在这里插入图片描述ser_config_dir=/etc/vsftpd/userconf设置虚拟用户独立配置路径

在这里插入图片描述

 systemctl restart vsftpd.service  重启
  • 3
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值