linux下的FTP服务

本文介绍了Linux下的FTP服务,包括FTP基本知识,如FTP协议、FTP服务器和常见错误代码。接着,详细阐述了如何部署FTP服务,关闭防火墙,安装vsftpd,并设置权限文件,涉及匿名用户、本地用户及黑白名单的管理。此外,还讲解了ftp虚拟用户的设定,包括创建虚拟帐号、设定独立家目录和配置独立。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、关于FTP的基本知识
1、ftp:// ##文件传输协议‘
2、ftp协议提供的软件
在rhel7中:vsftpd
3、FTP文件传输协议(英文:File Transfer Protocol,缩写:FTP)是用于在网络上进行文件传输的一套标准协议,使用客户/服务器模式。它属于网络传输协议的应用层。
4、ftp服务器
简单地说,支持FTP协议的服务器就是FTP服务器。
与大多数Internet服务一样,FTP也是一个客户机/服务器系统。用户通过一个支持FTP协议的客户机程序,连接到在远程主机上的FTP服务器程序。用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。比如说,用户发出一条命令,要求服务器向用户传送某一个文件的一份拷贝,服务器会响应这条命令,将指定文件送至用户的机器上。客户机程序代表用户接收到这个文件,将其存放在用户目录中。
5、报错id解析
500 文件系统权限过大
530 用户认证失败
550 服务本身功能未开放
553 本地文件系统权限过小

二、部署ftp服务
1、关闭内核级的加强型防火墙

vim /etc/sysconfig/selinux    ##修改selinux的状态
################
SELINUX=disabled 
################
getenforce     ##查看当前selinux状态
reboot

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2、部署yum,安装lftp,vsftpd

yum install lftp vsftpd -y
systemctl start vsftpd
systemctl enable vsftpd 
systemctl status vsftpd

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

3、设置防火墙永久允许ftp服务

systemctl restart firewalld
firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload  
firewall-cmd --list-all

在这里插入图片描述
4、测试服务
lftp 172.25.254.136
在这里插入图片描述

三、vsftpd权限文件
vim /etc/vsftpd/vsftpd.conf   ##修改ftp权限文件
1、匿名用户:

匿名登陆格式:lftp 目标主机ip

匿名用户是否可以登录:anonymous_enable=YES/NO

匿名用户家目录修改:anon_root=/westos

匿名用户上传文件: anon_upload_enable=YES

默认权限修改:anon_umask=022

匿名用户下载文件:anon_world_readable_only=YES|NO  ##no表示匿名用户可以下载

匿名用户建立目录:anon_mkdir_write_enable=YES|NO

匿名用户删除文件目录:anon_other_write_enable=YES|NO

匿名用户使用的用户身份修改 :

chown_uploads=YES
chown_username=student
chown_upload_mode=0644

最大上传速率:anon_max_rate=102400
2、本地用户:

登陆格式:lftp 目标主机ip -u student

local_enable=YES/NO                               ##本地用户登录限制
write_enable=YES/NO                               ##本地用户写权限限制
local_root=/directory                             ##本地用户家目录修改
local_umask=077                                   ##本地用户上传文件权限
max_clients=1                                     ##能够最大连接客户端数量
3、黑白名单

(1)白名单

vim /etc/vsftpd/vsftpd.conf 
###########################
 chroot_local_user=YES          ##白名单(只有在名单内的用户才能登陆)
 chroot_list_enable=YES
 chroot_list_file=/etc/vsftpd/chroot_list
###########################
systemctl restart vsftpd
vim /etc/vsftpd/ftpusers        ##编辑用户白名单

(2)黑名单

vim /etc/vsftpd/vsftpd.conf 
###########################
 chroot_local_user=NO           ##黑名单(在名单内的用户均不能登陆)
 chroot_list_enable=YES
 chroot_list_file=/etc/vsftpd/chroot_list
 ###########################
systemctl restart vsftpd
 vim /etc/vsftpd/ftpusers       ##编辑用户黑名单
四、ftp虚拟用户的设定
(1)、创建虚拟帐号身份

1、编辑虚拟帐号和密码
vim /etc/vsftpd/
2、文件加密
-T转换
-t类型
-f文件

db_load -T -t hash -f login_file login_file.db

3、创建pam认证文件
验证规则vim vsftpd

vim /etc/pam.d/westos
写入:
account		required	pam_userdb.so	db=/etc/vsftpd/login_file
auth		required	pam_userdb.so	db=/etc/vsftpd/login_file

4、开启虚拟功能

vim /etc/vsftpd/vsftpd.conf 

加入/修改为以下参数

pam_service_name=westos           将认证文件改为westos
guest_enable=YES                         开启虚拟登陆

重启服务

systemctl restart  vsftpd

5、测试

(2)、虚拟帐号家目录独立设定

1、了解变量$USER

2、编辑配置文件

vim /etc/vsftpd/vsftpd.conf

在里面加入以下参数

local_root=/ftpdir/$USER            是什么用户的时候显示什么用户的目录
user_sub_token=$USER              告诉系统用的是shell里的$USER方式

3、测试

(3)、虚拟帐号配置独立

1、改变虚拟用户家目录以及子目录的权限

2、建立配置目录与配置文件

mkdir -p /etc/vsftpd/westos
cd /etc/vsftpd/westos

vim user1 在此文件中设定配置文件中的参数,此文件的优先级高
写入user1用户操作的参数

anon_upload_enable=YES
anon_other_write_enable=YES

3、编辑vsftpd的配置文件

vim /etc/vsftpd/vsftpd.conf

在里面加入配置参数

user_config_dir=/etc/vsftpd/westos     ###让用户在配置目录里读取自己的配置文件      

4、测试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值