FTP

本文介绍了FTP(文件传输协议)及其在RHEL7中使用vsftpd作为FTP服务器的配置过程。内容涵盖FTP服务器的基本信息、软件安装、匿名用户和本地用户登录设置、权限控制、目录操作、上传下载限制、用户身份验证以及虚拟用户设定等关键点。

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

FTP(File Transfer Protocol,文件传输协议):是INTERNET上常用的最老的网络协议之一,是TCP/IP协议组中的协议之一,由FTP服务器和FTP客户端组成。FTP服务器用来存储文件,用户使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。

1.ftp:// 文件传输协议
2.ftp协议提供的软件
在rhel7中:vsftpd
3.部署ftp服务

yum install vsftpd -y                 ##下载vsftpd
systemctl start vsftpd                ##打开vsftpd
systemctl enable vsftpd               ##开机自动启动vsftpd
firewall-cmd  --permanent  --add-service=ftp       
##防火墙中添加ftp服务
firewall-cmd  --reload                ##加载防火墙

vim /etc/sysconfig/selinux

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

reboot

这里写图片描述

ftp的基本信息
软件安装包:vsftpd
默认发布目录:/var/ftp
协议接口:21 20
服务配置文件:/etc/vsftpd/vsftpd.conf

报错id解析:
550 没有权限,服务本身拒绝开放
553 本地文件系统权限过小
530 用户认证失败
500 权限太大,服务拒绝使用

4.匿名用户,本地用户登陆

anonymous_enable=YES    ##匿名用户是否可以登陆ftp服务
local_enable=YES | NO   ##本地用户是否可以登陆

这里写图片描述

[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES ##匿名用户可以登陆ftp服务
local_enable=YES ##本地用户可以登陆
[root@localhost ~]# systemctl restart vsftpd
这里写图片描述

5.ftp对本地用户是否可写

write_enable=NO          ##ftp对本地用户不可写

[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
write_enable=NO
[root@localhost ~]# systemctl restart vsftpd
[root@localhost ~]# lftp 172.25.254.203
lftp 172.25.254.203:~> ls
drwxr-xr-x 2 0 0 6 Mar 07 2014 pub
lftp 172.25.254.203:/> put /etc/passwd
put: Access failed: 550 Permission denied. (passwd)
lftp 172.25.254.203:/>
这里写图片描述

6.匿名用户建立目录

anon_mkdir_write_enable=YES     ##匿名用户建立目录

这里写图片描述
测试:
lftp 172.25.254.203:/pub> mkdir test
mkdir ok, `test’ created
这里写图片描述

7.匿名用户上传

write_enable=YES
anon_upload_enable=YES
chgrp ftp /var/ftp/pub
chmod 755 /var/ftp/pub

这里写图片描述

8.匿名用户家目录修改

anon_root=/directory

这里写图片描述

测试
这里写图片描述

9.匿名用户上传文献默认权限修改

anon_umask=xxx

这里写图片描述

测试
这里写图片描述

10.匿名用户下载

anon_world_readable_only=NO   ##设置为no表示可以下载

这里写图片描述

测试
这里写图片描述

11.匿名用户删除

anon_other_write_enable=YES

这里写图片描述
测试
这里写图片描述

12.匿名用户使用的用户身份登陆

chown_uploads=YES        
chown_username=ftp   

这里写图片描述

测试

[root@localhost ~]# lftp 172.25.254.203
lftp 172.25.254.203:~> cd pub/
cd ok, cwd=/pub
lftp 172.25.254.203:/pub> ls
lftp 172.25.254.203:/pub> put /etc/passwd
2005 bytes transferred
lftp 172.25.254.203:/pub> ls -ld /etc/passwd
lftp 172.25.254.203:/pub> ls
-rw-------    1 1000     50           2005 Nov 05 07:55 passwd
lftp 172.25.254.203:/pub> 

这里写图片描述

13.最大上传速度

anon_max_rate=2048000    ##最大上传速度

这里写图片描述

14.最大链接数

max_clients=2            ##最大链接数

这里写图片描述

测试
这里写图片描述

15.限制本地用户登陆

vim  /etc/vsftpd/ftpusers                            ##用户黑名单

这里写图片描述

vim  /etc/vsftpd/user_list                           ##用户临时黑名单

这里写图片描述

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

local_umask=022

这里写图片描述

测试
这里写图片描述

17.本地用户家目录修改

local_root=/westos

这里写图片描述

测试
这里写图片描述

18.限制本地用户浏览目录
所有的用户被锁定到自己的家目录中

chroot_local_user=YES
chmod u-w  /home/*

这里写图片描述

测试
这里写图片描述

19.用户黑名单建立

chroot_local_user=YES
chroot_list_enable=YES
 (default follows)
chroot_list_file=/etc/vsftpd/chroot_list

这里写图片描述

测试
这里写图片描述

20.用户白名单建立

userlist_deny=NO
/etc/vsftpd/user_list    ##参数设定,此文件变成用户白名单,在名单中出现的用户可以登陆ftp服务

这里写图片描述

这里写图片描述
测试
这里写图片描述

21.ftp虚拟用户的设定

pam_service_name=redhat    ##指定pam配置文件
guest_enable=YES           ##启用虚拟帐号支持
guest_username=ftp         ##映射虚拟用户身份
userlist_enable=YES
tcp_wrappers=YES

虚拟帐号家目录独立设定:
local_root=/ftpuserhome/$USER  ##对虚拟用户默认末路进行设置
user_sub_token=$USER           ##安全认证
[root@localhost ~]# vim /etc/vsftpd/redhat  ##文件名称任意
ftpuser1
123
ftpuser2
123
ftpuser3
123
[root@localhost ~]# 
[root@localhost ~]#db_load -T -t hash -f /etc/vsftpd/redhat redhat.db
[root@localhost ~]# vim /etc/pam.d/redhat   ##文件名称任意
account     required    pam_userdb.so   db=/etc/vsftpd/redhat
auth        required    pam_userdb.so   db=/etc/vsftpd/redhat
vim /etc/vsftpd/vsftpd.conf
pam_service_name=redhat       ##指定pam配置文件
guest_enable=YES              ##启用虚拟帐号支持

虚拟帐号身份指定)
guest_username=ftp            ##映射虚拟用户身份
chmod u-w /home/ftp         

虚拟帐号家目录独立设定)
vim /etc/vsftpd/vsftpd.conf
local_root=/ftpuserhome/$USER  ##对虚拟用户默认末路进行设置
user_sub_token=$USER           ##安全认证

mkdir /ftpuserhome
chgrp ftp /ftpuserhome
chmod g+s /ftpuserhome
mkdir /ftpuserhome/ftpuser{1..3}

这里写图片描述

测试:
这里写图片描述

虚拟帐号配置独立
vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/userconf
mkdir -p /etc/vsftpd/userconf

vim /etc/vsftpd/userconf/ftpuser1
在此文件中设定配置文件中的所有参数,此文件的优先级搞

22.本地用户上传文件

write_enable=YES                      ##本地用户可写
local_enable=YES                      ##本地用户可以登陆
setsebool ftp_home_dir --> off on     ##修改布尔值

测试:
[root@localhost Desktop]# lftp 172.25.254.187 -u student
Password: 
lftp student@172.25.254.187:~> ls      
lftp student@172.25.254.187:~> put /etc/passwd
2058 bytes transferred
lftp student@172.25.254.187:~> ls
-rw-r--r--    1 1000     1000         2058 Nov 24 15:11 passwd
lftp student@172.25.254.187:~> exit

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值