Linux系统中的ftp服务

本文详细介绍FTP(文件传输协议)的基础概念、服务搭建步骤、基本配置与安全管理,包括关闭SELinux、安装与启动服务、防火墙配置、访问方式、安全部署、匿名与本地用户管理、虚拟用户设定等关键环节。

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

一、什么是ftp

FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。

二、ftp的启用

1.关闭selinux

vim  /etc/sysconfig/selinux    ##编辑selinux配置文件

SELINUX=disable                    ##设置关闭selinux

reboot                                      ##重起生效

2.安装ftp服务和lftp工具

yum  install  vsftpd  lftp  -y

systemctl  start  vsftpd

systemctl  enable  vsftpd

3.配置防火墙

firewall-cmd  --permanent  --add-service=ftp      ##添加ftp服务到火墙白名单(不关闭防火墙)

firewall-cmd  --reload                                              ##重新加载防火墙配置

4.使用ftp访问主机

lftp  172.25.254.215

三、ftp的基本信息

访问数据端口:21

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

默认发布目录:/var/ftp/

netstat  -antlupe  |  grep  vsftpd       ##查看vsftpd服务所用端口信息

访问方式:

    lftp  172.25.254.115                         ##匿名登陆    默认目录/var/ftp

    lftp  172.25.254.115  -u  student    ##用户登录    默认目录/home/student

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

四、ftp的安全部署

vim  /etc/vsftpd/vsftpd.conf

12行 匿名用户登陆设置

anonymous_enable=YES|NO    ##匿名用户是否可以登陆

16行 本地用户登陆设置

local_enable=YES|NO    ##本地用户是否可以登陆

19行 本地用户w设置

write_enable=YES|NO    ##本地用户是否可写

systemctl  restart  vsftpd      ##重启服务,使配置生效

注意:每次修改完ftp配置文件后,都需要重新启动服务

操作过程中常见报错:

530  ##报错表示认证失败

550  ##服务本身不允许这样做

500  ##权限过大

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

五、匿名用户

1.匿名用户可上传

chmod  775  /var/ftp/pub

chgrp  ftp  /var/ftp/pub

vim  /etc/vsftpd/vsftpd.conf

29行 anon_upload_enable=YES

systemctl  restart  vsftpd

2.匿名用户可下载

默认不能下载不可读的文件

添加 anon_world_readable_only=NO 匿名用户可下载

3.匿名用户建立目录

34行 anon_mkdir_write_enable=YES 匿名用户可以新建目录

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

添加 anon_other_write_enable=YES  匿名用户可以删除,重命名

5.匿名用户家目录修改

anon_root=dir

6.匿名用户更改mask值

默认上传文件权限 600 建立目录权限700

anon_umask=022

改之前如下图所示:

更改后如下图所示:

7.匿名用户使用的用户身份修改

chown_uploads=YES

chown_username=student   匿名用户使用student身份进行操作

8.最大上传速率

anon_max_rate=102400(单位为字节)

9.最大链接数

max_clients=2

六、本地用户

1.本地用户家目录修改

local_root=/dir

2.本地用户上传文件权限mask

local_umask=033

3.限制本地用户浏览/目录

本地用户访问可一切换到/目录,这样很不安全,我们可以限制本地用户浏览/目录

chroot_local_user=YES

chmod u-w /home/*      ##减小目录权限,否则会出现权限过大的500报错

1)用户黑名单建立

chroot_local_user=NO

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list

2)用户白名单建立

chroot_local_user=YES

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list     ##白名单建立后黑名单失效,且黑名单文件变为白名单文件

4.限制本地用户登陆

1)用户黑名单设定

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

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

2)用户白名单设定

userlist_deny=NO

/etc/vsftpd/user_list       #参数设定,此文件变为用户白名单,只在名单中出现的用户可以登陆ftp(但是如果在名单中出现的用户也在永久黑名单中出现,那么该用户无法登录

七、ftp虚拟用户的设定

1.虚拟用户的作用

虚拟用户不是本地用户,无需占用大量主机空间,并且不能对系统进行修改,提高了系统安全性

2.创建虚拟帐号身份

vim /etc/vsftpd/westosfile        ##文件名称任意

user1

111

user2

222

user3

333

注意:帐号密码后面均不能添加空格

db_load -T -t hash -f /etc/vsftpd/westosfile /etc/vsftpd/westosfile.db           ##采用hash加密方式给westosfile加密

vim /etc/pam.d/westos                 

auth        required  pam_userdb.so  db=/etc/vsftpd/westosfile    

account  required  pam_userdb.so  db=/etc/vsftpd/westosfile

vim /etc/vsftpd/vsftpd.conf

pam_service_name=westos       ##采用ftp方式访问时会读取westos文件

guest_enable=YES

3.虚拟帐号身份指定

vim /etc/vsftpd/vsftpd.conf

guest_username=ftp

若指定为student用户,则登陆这三个虚拟帐号时将进入student用户家目录

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

vim /etc/vsftpd/vsftpd.conf

local_root=/ftphome/$USER

user_sub_token=$USER

mkdir /ftphome/user1/user1dir -p

mkdir /ftphome/user2/user2dir -p

systemctl restart vsftpd

5.虚拟帐号配置独立

可分别配置虚拟用户中各个用户的权限

chgrp ftp /ftphome -R

chmod 775 /ftphome/user1/user1dir

chmod 775 /ftphome/user2/user2dir

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

mkdir -p /etc/vsftpd/userconf

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

anon_mkdir_write_enable=YES

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值