首页 > 系统相关 >记录一次CentOS/Linux下安装vsftp服务器的过程

记录一次CentOS/Linux下安装vsftp服务器的过程

时间:2024-08-02 11:39:51浏览次数:10  
标签:ftp enable CentOS etc vsftpd vsftp Linux YES pam

1 安装ftp软件

yum install vsftpd* -y

2 配置服务启动

#启用 firewalld 服务
systemctl start vsftpd.service


#开启vsftpd服务 这条命令设置 firewalld 服务在系统启动时自动启动。systemctl enable 命令用于管理系统服务的启动和停止配置。启用服务后,它会在每次系统启动时自动运行。
[root@localhost ~]# systemctl enable vsftpd.service

返回结果

Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.

继续配置防火墙

#永久添加 FTP 服务到 public 区域
#这条命令将 ftp 服务永久添加到 public 区域的防火墙配置中。--permanent 选项指定更改是持久的,即即使系统重启后也会保持。--zone=public 指定了将要修改的区域(public 是一个常用的区域)。--add-service=ftp 表示允许 ftp 服务通过防火墙。
[root@localhost ~]# firewall-cmd --permanent --zone=public --add-service=ftp
success

#重新加载 firewalld 配置
[root@localhost ~]# firewall-cmd --reload
success

配置服务文件

/etc/vsftpd下的vsftpd.conf配置如下

anonymous_enable=YES
local_enable=YES
write_enable=YES
guest_enable=YES
guest_username=ftp
user_sub_token=$USER
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
# 虚拟用户配置目录
user_config_dir=/etc/vsftpd/user_conf
# 允许写入权限
local_root=/home/miot_update
chroot_local_user=YES
allow_writeable_chroot=YES

具体情况可以参考自己需要修改

local_root为默认访问目录

给访问目录赋予权限

chown -R ftp:ftp /home/miot_update

 

通常情况到此可以匿名访问ftp服务了,如果还有问题

给ftp授权

setsebool -P ftpd_full_access on

 

  • setsebool:这是用于设置SELinux布尔值的命令。
  • -P:这个选项表示将更改永久保存到SELinux策略配置中。没有这个选项的话,更改只会在当前会话中生效,系统重启后会丢失。
  • ftpd_full_access:这是一个SELinux布尔值,允许FTP守护进程(如vsftpdproftpd)访问文件系统中的所有文件,包括用户主目录。
  • on:表示启用这个布尔值,使其生效。

这个命令启用ftpd_full_access布尔值,使得FTP服务可以获得更高的权限,允许它访问系统上的更多文件和目录。这通常用于需要FTP访问用户主目录或其他受限区域的场景。
启用ftpd_full_access布尔值可能会有安全隐患,因为它允许FTP服务访问更多的文件和目录。务必确保在启用之前,了解相关安全影响和你的系统需求。

3 配置虚拟用户

如果有更多的需求,可以配置虚拟用户,用来管理ftp的上传目录,以及权限,强烈反对通过新增Linux系统用户的方式来设置访问权限

/etc/vsftpd新增vusers.txt

ruihao
ruihao
rqadmin
rqadmin
奇数行为用户名,偶数行为密码,最后一个密码结束后一定要加回车换行,否则可能解析错误
使用dbload命令把文本转成数据库
安装dbload,如果已经支持,可以省略

sudo yum install vsftpd db4-utils # 或者在 Debian/Ubuntu 上 sudo apt-get install vsftpd db-util 使用 db_load 创建虚拟用户数据库。首先,创建一个文本文件 vsftpd_virtual_users.txt,内容如下:

转换数据库

db_load -T -t hash -f vusers.txt vusers.db

确认下转换是否成功

 db_dump -p  /etc/vsftpd/vusers.db

 

设置pam认证信息,

cd /etc/pam.d

打开vsftpd编辑

#%PAM-1.0
auth       required     pam_userdb.so db=/etc/vsftpd/vusers
account    required     pam_userdb.so db=/etc/vsftpd/vusers
#session    optional     pam_keyinit.so    force revoke
#auth       required    pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
#auth       required    pam_shells.so
#auth       include    password-auth
#account    include    password-auth
#session    required pam_loginuid.so
#session    include    password-auth
#auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser
#account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser

新建

/etc/vsftpd 下user_conf文件夹

新建两个用户名的文件

 

rqadmin文件内容

anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/home/miot_update
write_enable=YES

ruihao文件内容,只读

anon_world_readable_only=NO
local_root=/home/miot_update

重启ftp服务

systemctl restart vsftpd

 

4 测试

使用filezilla验证

 

 只读用户ruihao,可以查看,无法修改上传

管理员用户,可以任意操作

 

5 常见问题

 5.1 命令: USER ruihao 响应: 530 Permission denied. 错误: 无法连接到服务器

 用户配置文件有冲突,user_list文件是否包含了新用户,默认user_list为黑名单用户

5.2 530 Login incorrect. Login failed

用户配置文件包含空格,导致识别错误

5.3 bad bool value in config file for: anon_world_readable_only

同上,检查配置文件,包含空格或者其它字符导致

5.4 authentication failure; logname= uid=0 euid=0 tty=ftp ruser=rqadmin rhost=192.168.1.169

把pam下的无用配置注释后重启服务尝试

 

标签:ftp,enable,CentOS,etc,vsftpd,vsftp,Linux,YES,pam
From: https://www.cnblogs.com/MarsPanda/p/18338416

相关文章

  • Linux设备树配置指南:ES8388音频编解码器集成
    在嵌入式Linux开发中,设备树对于硬件集成至关重要。本文详细介绍了如何在设备树中配置ES8388音频编解码器,包括耳机检测、扬声器控制和音频路由。在嵌入式系统设计中,音频功能是一个常见需求。ES8388是一款流行的音频编解码器,支持多种音频输入输出功能。本文将指导您如何在Linux......
  • Linux命令快速复习,复制到记事本,忘记就ctrl+f速查
    命令:通用格式:command[-options][parameter];-options控制行为细节,parameter命令的指向目标ls[-a-l-h][Linux路径];显示目标路径下的文件;-a显示以.开头的隐藏项,-l列表形式展现更多信息,-h要与-l同时使用显示文件大小cd[Linus路径];切换目录,无参数切换到HOME目录【changed......
  • Linux内存管理与监控
    1、物理内存与虛拟内存物理内存就是系统硬件提供的内存大小,是真正的内存,相对于物理内存,在linux下还有一个虛拟内存:的概念,虚拟内存就是为了满足物理内存的不足而提出的策略,它是利用磁盘空间虚拟出的一块逻辑内存,用作虚拟内存的磁盘空间被称为交换空间(SwapSpace)linux的内存管......
  • Linux路径的概念及目录的操作命令 cd、pwd、mkdir、rmdir
    本文主要介绍Linux系统中路径的基本概念以及对目录的基础操作。根目录的概念在Windows操作系统中,是由盘符开始描述路径,如:C:\Programs\abc\或者D:\game\abc\。在Linux操作系统中,则是以目录树的形式展现,所有的文件及目录都是从根目录/开始的,如/home,/etc等,即便是有多......
  • C高级(2)linux命令
    目录1系统维护命令1.1man1.2su1.3sudo1.4df命令1.5mount命令2用户管理命令3进程管理命令3.1ps3.2top3.3修改优先级3.4grep命令3.5kill命令3.6前后台切换命令4网络管理命令4.1命令5文件系统管理命令5.1文件系统分类5.2根文件系统结构5.3文件内容显示5.4链......
  • Linux 命令,cat说明与使用
    1:grep命令功用:读一个或多个文件并显示到标准输出上,如果没有指定files或是指定一个文件,则从标准输入读取,输入以EOF结束。可以使用操作符>把几个文件组合为一个新文件,或者是使用>>在已经存在的文件里添加文件内容。2:命令构件:cat[options][files]3:参数选项:-A,--show-all......
  • 连载|浅谈红队中的权限维持(六)-Linux 主机后门与Linux 隐藏文件
    本文来源无问社区,更多实战内容,渗透思路可前往查看http://www.wwlib.cn/index.php/artread/artid/11584.html0x01Linux主机后门1、添加用户一句话添加用户useraddtest;echo-e"123456n123456n"|passwdtest或者使用openssluseradd-popensslpasswd-1-salt'salt'12......
  • 如何在Linux上配置虚拟主机
    在Linux上配置虚拟主机可以通过使用ApacheHTTP服务器来实现。Apache是一个开源的跨平台的Web服务器软件,可以在多种操作系统上运行并支持虚拟主机的配置。以下是在Linux上配置虚拟主机的步骤:安装ApacheHTTP服务器在终端中运行以下命令来安装Apache:sudoapt-getupdatesu......
  • linux系统下find查找特定的文件或目录路径
    linux系统下find查找特定的文件或目录路径#find:可以实时查询,不需要更新数据库#在特定路径/下递归查询特定的目录名test相应的路径#特定路径支持绝对/相对路径,#如果输入的特定查找路径为绝对路径,那么输出的路径也是绝对路径#类似地,输入为相对路径,输出也为相对路径......
  • Linux系统编程-临时文件
    临时文件:1、如何不冲突  2、及时销毁创建临时文件有两种方法:1、tmpnam  2、tmpfiletmpnam函数tmpnam的用法为一个临时文件创建一个名字。该方法创建临时文件,需要两步:1、产生文件名字   2、创建文件。所以从并发的角度,可能有两个用户获取同一个文件名字,因此......